@bongos/core 1.24.44 → 1.24.46
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 +179 -144
- package/clients/bongos-client/README.md +1 -1
- package/clients/bongos-client/bongos-client.global.js +4 -0
- package/clients/bongos-client/index.cjs +4 -0
- package/clients/bongos-client/index.d.ts +8 -0
- package/clients/bongos-client/index.mjs +4 -0
- package/docs/adr/0307-autobongos-a-deterministic-supervisor-and-agentic-workers.md +15 -0
- package/docs/api/openapi.json +152 -3
- package/docs/api-reference.md +4 -2
- package/docs/copy-inventory.md +1111 -1111
- package/docs/copy-registry.json +1547 -1547
- package/docs/module-api-changelog.md +4 -0
- package/docs/onboarding/diagrams/assertions.json +2 -2
- package/docs/page-inventory.json +11 -0
- package/docs/page-readings.json +823 -823
- package/migrations/core_295_runner_logins.sql +50 -0
- package/modules/government/session-scopes.json +5 -0
- package/modules/hall-ui/public/ai-studio.html +1 -1
- package/modules/hall-ui/public/ai-studio.states.json +2 -0
- package/modules/hall-ui/public/atlas.html +1 -1
- package/modules/hall-ui/public/atlas.states.json +2 -0
- package/modules/hall-ui/public/blockers.html +1 -1
- package/modules/hall-ui/public/board-room.html +1 -1
- package/modules/hall-ui/public/board-room.states.json +2 -0
- package/modules/hall-ui/public/city.html +1 -1
- package/modules/hall-ui/public/city.states.json +2 -0
- package/modules/hall-ui/public/collab.html +1 -1
- package/modules/hall-ui/public/collab.states.json +2 -0
- package/modules/hall-ui/public/commands.html +1 -1
- package/modules/hall-ui/public/commands.states.json +2 -0
- package/modules/hall-ui/public/copy-desk.html +1 -1
- package/modules/hall-ui/public/copy-desk.states.json +2 -0
- package/modules/hall-ui/public/craft-mode.js +4 -1
- package/modules/hall-ui/public/deploy.html +1 -1
- package/modules/hall-ui/public/deploy.states.json +2 -0
- package/modules/hall-ui/public/goal-map.html +1 -1
- package/modules/hall-ui/public/goal-map.states.json +2 -0
- package/modules/hall-ui/public/goals.css +1 -0
- package/modules/hall-ui/public/goals.html +1 -1
- package/modules/hall-ui/public/goals.states.json +2 -0
- package/modules/hall-ui/public/government.html +1 -1
- package/modules/hall-ui/public/government.states.json +2 -0
- package/modules/hall-ui/public/idea.html +1 -1
- package/modules/hall-ui/public/idea.states.json +2 -0
- package/modules/hall-ui/public/ideas.html +1 -1
- package/modules/hall-ui/public/ideas.states.json +2 -0
- package/modules/hall-ui/public/index-founding.states.json +2 -0
- package/modules/hall-ui/public/index-genesis-decide.states.json +2 -0
- package/modules/hall-ui/public/index-genesis-demo.states.json +2 -0
- package/modules/hall-ui/public/index-genesis.states.json +2 -0
- package/modules/hall-ui/public/index.html +1 -1
- package/modules/hall-ui/public/index.states.json +5 -0
- package/modules/hall-ui/public/market-watch-item.html +1 -1
- package/modules/hall-ui/public/market-watch-item.states.json +2 -0
- package/modules/hall-ui/public/market-watch-rules.html +1 -1
- package/modules/hall-ui/public/market-watch-rules.states.json +2 -0
- package/modules/hall-ui/public/market-watch.html +1 -1
- package/modules/hall-ui/public/market-watch.states.json +2 -0
- package/modules/hall-ui/public/modules.html +1 -1
- package/modules/hall-ui/public/modules.states.json +2 -0
- package/modules/hall-ui/public/money.html +1 -1
- package/modules/hall-ui/public/money.states.json +2 -0
- package/modules/hall-ui/public/my-agents.html +1 -1
- package/modules/hall-ui/public/my-agents.states.json +2 -0
- package/modules/hall-ui/public/notes-panel.css +1 -1
- package/modules/hall-ui/public/primer.html +1 -1
- package/modules/hall-ui/public/primer.states.json +2 -0
- package/modules/hall-ui/public/profile.html +1 -1
- package/modules/hall-ui/public/profile.states.json +2 -0
- package/modules/hall-ui/public/project-settings.html +1 -1
- package/modules/hall-ui/public/roster.html +1 -1
- package/modules/hall-ui/public/roster.states.json +2 -0
- package/modules/hall-ui/public/settings.html +1 -1
- package/modules/hall-ui/public/settings.states.json +2 -0
- package/modules/hall-ui/public/shell.js +21 -1
- package/modules/hall-ui/public/street-card.states.json +2 -0
- package/modules/hall-ui/public/street.html +1 -1
- package/modules/hall-ui/public/street.states.json +2 -0
- package/modules/hall-ui/public/studio.html +1 -1
- package/modules/hall-ui/public/studio.states.json +2 -0
- package/modules/hall-ui/public/style.css +27 -24
- package/modules/hall-ui/public/task.html +1 -1
- package/modules/hall-ui/public/task.states.json +2 -0
- package/modules/hall-ui/public/thinking.html +1 -1
- package/modules/hall-ui/public/thinking.states.json +2 -0
- package/modules/hall-ui/public/tweak-editor.html +1 -1
- package/modules/hall-ui/public/tweak-editor.states.json +2 -0
- package/modules/hall-ui/public/watch.html +1 -1
- package/modules/hall-ui/public/watch.states.json +2 -0
- package/modules/hall-ui/public/welcome-boot.js +6 -2
- package/modules/hall-ui/public/work-founding.states.json +2 -0
- package/modules/hall-ui/public/work.html +1 -1
- package/modules/hall-ui/public/work.states.json +3 -1
- package/modules/hall-ui/records/hall-navigation.md +5 -0
- package/modules/lifecycle/db-claims.js +6 -3
- package/modules/lifecycle/routes/claims.js +10 -0
- package/modules/lifecycle/routes/tasks.js +1 -1
- package/modules/lifecycle/runner-self-guard.js +19 -10
- package/modules/platform-identity/platform-identity.js +1 -1
- package/modules/platform-identity/tests/platform-identity.mjs +13 -2
- package/modules/provisioning/core-upgrade-authz.js +8 -0
- package/modules/public-landing/public/account.html +1 -0
- package/modules/public-landing/public/community.html +1 -0
- package/modules/public-landing/public/connections.html +1 -0
- package/modules/public-landing/public/contact.html +1 -0
- package/modules/public-landing/public/guild.html +1 -0
- package/modules/public-landing/public/index.html +1 -0
- package/modules/public-landing/public/invitations.html +1 -0
- package/modules/public-landing/public/privacy.html +1 -0
- package/modules/public-landing/public/projects.html +1 -0
- package/modules/public-landing/public/terms.html +1 -0
- package/modules/raise/views/gate.html +1 -0
- package/modules/raise/views/nda.html +1 -0
- package/modules/raise/views/page.html +1 -0
- package/modules/status-ui/public/index.html +1 -0
- package/modules/ui-design/kit/README.md +1 -1
- package/modules/ui-design/kit/fixtures/versions.json +1 -0
- package/modules/ui-design/kit/lib.js +48 -3
- package/modules/ui-design/kit/probe.js +1 -0
- package/modules/ui-design/kit/render.js +2 -0
- package/modules/ui-design/kit/serve.js +1 -0
- package/modules/ui-design/module.json +1 -1
- package/modules/ui-design/public/tokens.css +125 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +20 -0
- package/scripts/bongos/fitness.js +1 -1
- package/scripts/bongos/gen-hall-sitemap.js +3 -1
- package/scripts/bongos/run-unit-tests.js +3 -0
- package/src/bongos/auth.js +25 -4
- package/src/bongos/route-rank-check.js +5 -0
- package/src/bongos/routes/auth.js +48 -0
- package/src/bongos/runner-login.js +151 -0
- package/src/bongos/serve-internal.js +6 -1
- package/src/module-api.js +1 -1
- package/tests/autobongos_runner_login.mjs +296 -0
- package/tests/autobongos_runner_login_db.mjs +105 -0
- package/tests/craft_mode_nav.mjs +51 -3
- package/tests/design_tokens_shared.mjs +183 -0
- package/tests/government_session_scope.mjs +2 -1
- package/tests/hall_reading_world.mjs +5 -1
- package/tests/hall_tokens.mjs +22 -3
- package/tests/nav_permission_atoms.mjs +2 -1
- package/tests/ui_design_kit.mjs +30 -0
- package/tests/welcome_boot_browser.mjs +4 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
-- core_295_runner_logins.sql — an Autobongos runner signs in with its OWN login, and the
|
|
2
|
+
-- server marks every claim that login makes as autonomous (task 1004547, goal 1000139).
|
|
3
|
+
--
|
|
4
|
+
-- WHY. A runner used to run under its builder's own CLI session, so the server could
|
|
5
|
+
-- tell a runner's claim from a person's only by the worktree name the runner chose
|
|
6
|
+
-- (runner-self.js RUNNER_TREE_RE). A worker that claimed under another name was
|
|
7
|
+
-- treated as a person, and the runner-only walls (the self-modification refusal at
|
|
8
|
+
-- publish) did not apply. Worse, the worker carried the installer's full authority,
|
|
9
|
+
-- so it could move a live core pin (task 1004974).
|
|
10
|
+
--
|
|
11
|
+
-- Three additive changes, all in core because every table here is core's:
|
|
12
|
+
-- 1. builder_sessions.source admits 'runner': a session minted by exchanging a
|
|
13
|
+
-- one-time code from Settings (src/bongos/runner-login.js). The session-scope
|
|
14
|
+
-- registry declares it; auth.js drops system permissions for it.
|
|
15
|
+
-- 2. runner_enrollment_codes: the one-time codes. The plaintext is never stored
|
|
16
|
+
-- (sha256, like builder_sessions.token_hash); a code works once and expires.
|
|
17
|
+
-- 3. claims.autonomous: set by the SERVER from the claiming session's source,
|
|
18
|
+
-- never from the request body, so a worker cannot claim its way out of it.
|
|
19
|
+
-- Default false, so every existing claim reads exactly as before.
|
|
20
|
+
|
|
21
|
+
BEGIN;
|
|
22
|
+
|
|
23
|
+
-- 1. The session source. Rebuilt by name, as core_258 did when it dropped 'box'.
|
|
24
|
+
ALTER TABLE builder_sessions
|
|
25
|
+
DROP CONSTRAINT IF EXISTS builder_sessions_source_check;
|
|
26
|
+
ALTER TABLE builder_sessions
|
|
27
|
+
ADD CONSTRAINT builder_sessions_source_check CHECK (source IN ('cli', 'web', 'runner'));
|
|
28
|
+
|
|
29
|
+
-- 2. One-time codes. `label` is the PC's name as the builder typed it in Settings.
|
|
30
|
+
CREATE TABLE IF NOT EXISTS runner_enrollment_codes (
|
|
31
|
+
id bigserial PRIMARY KEY,
|
|
32
|
+
builder_id bigint NOT NULL REFERENCES builders(id) ON DELETE CASCADE,
|
|
33
|
+
code_hash text NOT NULL UNIQUE,
|
|
34
|
+
label text,
|
|
35
|
+
created_at timestamptz NOT NULL DEFAULT now(),
|
|
36
|
+
expires_at timestamptz NOT NULL,
|
|
37
|
+
used_at timestamptz,
|
|
38
|
+
used_session_id bigint REFERENCES builder_sessions(id) ON DELETE SET NULL
|
|
39
|
+
);
|
|
40
|
+
CREATE INDEX IF NOT EXISTS runner_enrollment_codes_builder
|
|
41
|
+
ON runner_enrollment_codes (builder_id, created_at DESC);
|
|
42
|
+
|
|
43
|
+
-- 3. The autonomous mark on a claim.
|
|
44
|
+
ALTER TABLE claims
|
|
45
|
+
ADD COLUMN IF NOT EXISTS autonomous boolean NOT NULL DEFAULT false;
|
|
46
|
+
|
|
47
|
+
INSERT INTO schema_migrations (version) VALUES ('core_295_runner_logins')
|
|
48
|
+
ON CONFLICT DO NOTHING;
|
|
49
|
+
|
|
50
|
+
COMMIT;
|
|
@@ -19,6 +19,11 @@
|
|
|
19
19
|
"label": "web session",
|
|
20
20
|
"note": "Hall browser cookie — same authority as the CLI session."
|
|
21
21
|
},
|
|
22
|
+
{
|
|
23
|
+
"source": "runner",
|
|
24
|
+
"label": "Autobongos runner",
|
|
25
|
+
"note": "An Autobongos PC's own login, minted from a one-time code issued in Settings (src/bongos/runner-login.js, task 1004547). It acts for its builder, with two server-side limits the kernel applies, not this registry: its rank is capped at Metic and it holds no system permission (src/bongos/auth.js). Every claim it makes is marked autonomous."
|
|
26
|
+
},
|
|
22
27
|
{
|
|
23
28
|
"source": null,
|
|
24
29
|
"label": "legacy session",
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
90
90
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
91
91
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
92
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
92
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
93
93
|
<script src="/builders/palette.js" defer></script>
|
|
94
94
|
<script src="/builders/tweak-editor-lib.js?v=2026-09-28-tw23"></script>
|
|
95
95
|
<script src="/builders/studio-lib.js?v=2026-10-09-day"></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "The studio's AI pages (task 1004921, goal 1000136), built 1:1 on option C of the AI Studio options canvas plus the owner's addition (change the request on the result and make it again). Against the kit's own stub the page renders its could-not-read states (no ai-studio feeds). TO SEE IT POPULATED, point the kit at the hall-preview harness with the module on: `node scripts/hall-preview/server.js --port 4637 --fixture-me --modules-on ai-studio` then `render.js --base-in http://builders.localhost:4637 --base-out http://builders.localhost:4637`. The harness answers keys, balance, the top-up quote and the request list from the ai-studio__*.json fixtures; a request by id (1002 running, 1003 failed, 1004 own Gemini key, any other the finished result on the balance); an upload, a request and a top-up from its CANNED WRITES; and every file as a stand-in picture. ?from=1001 opens the steps on that request's files and words, which is how the populated steps render without an upload.",
|
|
3
3
|
"page": "/builders/ai-studio",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": {
|
|
6
8
|
"prefix": "/builders/"
|
|
@@ -92,7 +92,7 @@
|
|
|
92
92
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
93
93
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
94
94
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
95
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
95
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
96
96
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
97
97
|
<script src="/builders/palette.js" defer></script>
|
|
98
98
|
<script src="/builders/atlas.js?v=2026-09-02-index" defer></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "Repo atlas — the self-drawing module map. Its SEMANTIC node palette is fixed by ADR 0094 and is not the token tier's business; everything around it (the panel, the view switch, the caption, the detail card, the legend, the island index) is chrome and rides the world. Written with the re-skin (task 1003307) so this page is MEASURED at three widths in both modes rather than looked at once; the redesign (task 1003472) added the `truth`, `detail` and `index` states. Populated look: the hall-preview harness serves modules/hall-ui/public/atlas.json when scripts/bongos/gen-atlas.js has written it (the file is generated on deploy and gitignored, so run the generator first).",
|
|
3
3
|
"page": "/builders/atlas",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": {
|
|
6
8
|
"prefix": "/builders/"
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
62
62
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
63
63
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
64
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
64
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
65
65
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
66
66
|
<script src="/builders/palette.js" defer></script>
|
|
67
67
|
<!-- the branding pack's currency label, loaded BEFORE blockers.js. -->
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
64
64
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
65
65
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
66
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
66
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
67
67
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
68
68
|
<script src="/builders/palette.js" defer></script>
|
|
69
69
|
<script src="/builders/hall-kit.js"></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "Board Room — the sittings, the ballot and the vote form, carved out of the /government tab strip onto its own page by ADR 0266. Unlike its neighbours in the Government group this page is gated on the `board.vote.cast` atom (xenos floor) rather than page.view.government, so the sealed state here means the permission was withheld, not that the reader stands below a rung.",
|
|
3
3
|
"page": "/builders/board-room",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": {
|
|
6
8
|
"prefix": "/builders/"
|
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
109
109
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers" defer></script>
|
|
110
110
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals" defer></script>
|
|
111
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
111
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar" defer></script>
|
|
112
112
|
<script src="/builders/palette.js" defer></script>
|
|
113
113
|
<script src="/builders/gov-living.js?v=2026-10-09-positions1" defer></script>
|
|
114
114
|
<script src="/builders/gov-feeds.js?v=2026-10-09-living3" defer></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "THE GOVERNOR CITY's home (task 1004524, goal 1000125) through modules/ui-design/kit/render.js. The page draws GET /government/docket, GET /goals and GET /goals/rollups; against the kit's own stub none exists, so every state renders the city with no districts and no pins and the line saying the docket could not be read: a real state the floors must hold in. To look at the populated city, run it against the hall-preview harness, whose government__docket.json fixture carries the reference design's seven sample matters (3 need you, 2 moving, 2 settled) and whose goals fixtures carry the open goals:\n\n node scripts/hall-preview/server.js --port 4624 --fixture-me\n node modules/ui-design/kit/render.js --states modules/hall-ui/public/city.states.json --base-in http://localhost:4624 --base-out http://localhost:4624\n\nThe page follows the OS mode until the switch is pressed (then the hall's own 'hall-theme' preference), so the kit's dark/light emulation renders both modes.",
|
|
3
3
|
"page": "/builders/city",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": {
|
|
6
8
|
"prefix": "/builders/"
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
163
163
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
164
164
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
165
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
165
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
166
166
|
<script src="/builders/palette.js" defer></script>
|
|
167
167
|
<script src="/builders/collab-lib.js?v=2026-09-24-archive"></script>
|
|
168
168
|
<script src="/builders/collab.js?v=2026-09-24-archive"></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "Collab — the two-sided ask board. ASKED OF YOU comes first because it is the half where someone is waiting, and the empty state of that half is the page's most common render. Written with the re-skin (task 1003307) so this page is MEASURED at three widths in both modes rather than looked at once; the redesign (task 1003471) put four asks and two of the viewer's own in the harness so the rows can be looked at.",
|
|
3
3
|
"page": "/builders/collab",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": {
|
|
6
8
|
"prefix": "/builders/"
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
55
55
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
56
56
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
57
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
57
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
58
58
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
59
59
|
<script src="/builders/palette.js" defer></script>
|
|
60
60
|
<script src="/builders/hall-kit.js"></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "The Commands page (task 1004473): every skill and every bongos CLI verb as two grouped ledgers, filled from GET /specialities/installed-skills and GET /cli/commands. Against the kit's stub both reads 404, so the page renders its 'not available' state, which the floors must hold too. The populated look was verified against a real local server (bongos dev), since both lists are read from disk.",
|
|
3
3
|
"page": "/builders/commands",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": { "prefix": "/builders/" },
|
|
6
8
|
"modeQuery": false,
|
|
@@ -180,7 +180,7 @@
|
|
|
180
180
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
181
181
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
182
182
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
183
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
183
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
184
184
|
<script src="/builders/palette.js" defer></script>
|
|
185
185
|
<script src="/builders/hall-kit.js"></script>
|
|
186
186
|
<script src="/builders/copy-desk.js?v=2026-09-01-redesign"></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "Copy desk — the one-voice review queue. Its three dialogs are real <dialog>s, so their ::backdrop is the sheet's single sanctioned literal (black with alpha as a scrim). Written with the re-skin (task 1003307) so this page is MEASURED at three widths in both modes rather than looked at once; the redesign (task 1003471) put a queue, ten duplicates and a search's hits in the harness so the rows and the dialogs can be looked at; task 1003114 (R03) added the proposal composer and the `proposer` state that opens it.",
|
|
3
3
|
"page": "/builders/copy-desk",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": {
|
|
6
8
|
"prefix": "/builders/"
|
|
@@ -103,8 +103,11 @@
|
|
|
103
103
|
// Primer is the newcomer's way in, and only Building could see it.
|
|
104
104
|
var ALWAYS_TABS = ['roster', 'collab', 'profile', 'my-agents',
|
|
105
105
|
'primer', 'commands', 'atlas', 'modules', 'apidocs'];
|
|
106
|
+
// No mode lists 'home': the craft plate under the brand is the Home button in
|
|
107
|
+
// every mode (task 1005065), so a Home tab beside it is a second home icon
|
|
108
|
+
// (task 1005070). With no mode the plate is absent and the Home tab shows.
|
|
106
109
|
var MODE_TABS = {
|
|
107
|
-
building: ['
|
|
110
|
+
building: ['goals', 'goal-map', 'work', 'blockers', 'thinking', 'studio',
|
|
108
111
|
'market-watch'],
|
|
109
112
|
artistry: ['studio', 'goals', 'thinking'],
|
|
110
113
|
ideating: ['goal-map', 'thinking', 'goals', 'market-watch'],
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
82
82
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
83
83
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
84
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
84
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
85
85
|
<script src="/builders/palette.js" defer></script>
|
|
86
86
|
<script src="/builders/hall-kit.js"></script>
|
|
87
87
|
<!-- the shared ask card the move is drawn with (task 1004829) -->
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "DEPLOY (task 1003159, ADR 0293; the npm-release module's sections, task 1002622) through modules/ui-design/kit/render.js. The page reads authenticated routes gated on core.pin.move, so against the kit's own stub it renders its restricted or failed-read state. To look at the populated page — the deploy door AND the module's 'where the work is' + version history, from a fixture taken off the live registry and ledger — run the hall-preview harness with the module on:\n\n BONGOS_MODULE_NPM_RELEASE=1 node scripts/hall-preview/server.js --port 4602 --rank archon --fixture-me --modules-on npm-release,provisioning\n node modules/ui-design/kit/render.js --states modules/hall-ui/public/deploy.states.json --base-in http://localhost:4602 --base-out http://localhost:4602",
|
|
3
3
|
"page": "/builders/deploy",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": { "prefix": "/builders/" },
|
|
6
8
|
"modeQuery": false,
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
141
141
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
142
142
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
143
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
143
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
144
144
|
<script src="/builders/palette.js" defer></script>
|
|
145
145
|
|
|
146
146
|
<script src="/builders/idea-objects.js?v=2026-09-27-split"></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "THE PROJECT SKY (task 1004232 / sky part 4 of 5, goal 1000095; ADR 0331, ADR 0227 §11) through modules/ui-design/kit/render.js — the same renderer as /thinking (thinking.states.json), but its own sky: its only lens is 'the whole project', and it carries no switcher (task 1004328). The page draws GET /sky + GET /sky/mine; against the kit's own stub neither exists, so every state below renders the EMPTY sky — a real state the floors must hold in (the tools, the ledger drawer and the tour all exist with no goal read). To look at the populated sky — the wells sized by credits, the routes, the shuttle menu, explore's 'where do you begin' — run it against the hall-preview harness, whose sky.json + sky__mine.json fixtures carry the wells and the routes:\n\n node scripts/hall-preview/server.js --port 4620 --fixture-me\n node modules/ui-design/kit/render.js --states modules/hall-ui/public/goal-map.states.json --base-in http://localhost:4620 --base-out http://localhost:4620\n\nThe tour opens by itself on a first visit (sky-map-tour-seen — its own key, since the two tours differ), so states that want the bare sky skip it first; explore is on by default and asks where you begin the first time (sky-seen), so the 'sky' state renders that prompt on purpose.",
|
|
3
3
|
"page": "/builders/goal-map",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": { "prefix": "/builders/" },
|
|
6
8
|
"modes": ["dark"],
|
|
@@ -585,5 +585,6 @@
|
|
|
585
585
|
.goals-line__map { display: inline-flex; align-items: center; min-height: 26px; padding: 0 4px; font-size: 13px; color: var(--ink-soft); }
|
|
586
586
|
.goals-line .goal-author { flex: 1 1 100%; order: 9; margin: 6px 0 0; }
|
|
587
587
|
.goal-detail__back { margin: 0 0 10px; font-size: 13px; }
|
|
588
|
+
.goal-detail__back a { display: inline-flex; align-items: center; min-height: 24px; } /* the 24px target floor (task 1005080) */
|
|
588
589
|
/* Join requests are the shared ask card (task 1004823): no ledger rules between cards. */
|
|
589
590
|
.pending-list--ask { gap: 10px; }
|
|
@@ -253,7 +253,7 @@
|
|
|
253
253
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
254
254
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
255
255
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
256
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
256
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
257
257
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
258
258
|
<script src="/builders/palette.js" defer></script>
|
|
259
259
|
<!-- task 1004727: the ONE karma vote control every task/idea list renders -->
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "The hall's Goals list + goal detail through modules/ui-design/kit/render.js (task 1003307; redesigned in task 1003470). Goals is the LIST ARCHETYPE the governance-and-lists re-skin applies across thirteen pages, so its floors are measured first and the rest are held against them. Populated look: node scripts/hall-preview/server.js --port 4620 --fixture-me, then --base-in/--base-out at that origin (the harness carries goals, goals/rollups and work-categories since task 1003470). `filters` opens the kit's Filters disclosure (the five lenses that left the open bar); `cards` flips the rows|cards toggle on the count line.",
|
|
3
3
|
"page": "/builders/goals",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": {
|
|
6
8
|
"prefix": "/builders/"
|
|
@@ -157,7 +157,7 @@
|
|
|
157
157
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
158
158
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
159
159
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
160
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
160
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
161
161
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
162
162
|
<script src="/builders/palette.js" defer></script>
|
|
163
163
|
<script src="/builders/hall-kit.js"></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "Government — the constitution, ranks, permissions and assignments, behind requireGovernmentPage (metic+). The tabbed panels are the state vocabulary here: one render per tab is what proves the panel switch does not reflow the column. Written with the re-skin (task 1003307) so this page is MEASURED at three widths in both modes rather than looked at once.",
|
|
3
3
|
"page": "/builders/government",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": {
|
|
6
8
|
"prefix": "/builders/"
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
54
54
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
55
55
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
56
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
56
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
57
57
|
<script src="/builders/palette.js" defer></script>
|
|
58
58
|
<!-- task-detail.js still owns the #/idea/N and #/blocker/N overlay, so a ref
|
|
59
59
|
written inside an idea's own prose keeps resolving from this page. -->
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "The hall's IDEA RECORD through modules/ui-design/kit/render.js (task 1003305). Same harness note as task.states.json: the idea's five answers, its completeness bar and its author-only mark control need a LOADED idea, so run it against the hall-preview harness:\n\n node scripts/hall-preview/server.js --port 4612 --fixture-me\n node modules/ui-design/kit/render.js --states modules/hall-ui/public/idea.states.json --base-in http://builders.localhost:4612 --base-out http://builders.localhost:4612",
|
|
3
3
|
"page": "/idea/12",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": { "prefix": "/builders/" },
|
|
6
8
|
"modeQuery": false,
|
|
@@ -228,7 +228,7 @@
|
|
|
228
228
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
229
229
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
230
230
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
231
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
231
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
232
232
|
<script src="/builders/palette.js" defer></script>
|
|
233
233
|
<!-- task 1004727: the ONE karma vote control every task/idea list renders -->
|
|
234
234
|
<script src="/builders/vote-control.js"></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "The hall's IDEA COMPOSER through modules/ui-design/kit/render.js (task 1003305). The five questions are rendered from GET /inbox/template and the spark queue from GET /inbox/sparks, so the populated form needs the hall-preview harness; the kit's own stub answers neither and renders the honest `could not load the idea template` line instead, which is the `no-template` state below.\n\n node scripts/hall-preview/server.js --port 4612 --fixture-me\n node modules/ui-design/kit/render.js --states modules/hall-ui/public/ideas.states.json --base-in http://builders.localhost:4612 --base-out http://builders.localhost:4612\n\nTHE FOLD (task 1004087 / spec R04) is why there are now three states rather than two. `compose` is what a builder actually lands on — the one-line composer at the top, the Full Idea form folded away behind one press, and NO rail reserve, which is the whole reason that state is rendered at 1440 as well as at 390/320. `full` is the same page one press later: the five questions, the meter, and the rail. Rendering only one of them would measure half the page, and the half that is measured on every arrival is the first.",
|
|
3
3
|
"page": "/ideas",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": { "prefix": "/builders/" },
|
|
6
8
|
"modeQuery": false,
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "The founding wall on Home (task 1004424): the home-founding widget a founded project shows, from the kit fixture founding-builders-sample.json. The page itself is index.states.json's; only the founding read differs. The never-founded case is index.states.json, where the wall stays hidden. Run it with --states (Home has no last path segment).",
|
|
3
3
|
"page": "/builders/",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": { "prefix": "/builders/", "fixtures": { "founding-builders": "founding-builders-sample" } },
|
|
6
8
|
"modeQuery": false,
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "The genesis home on Home (task 1004423) while the founder decides the plan: each stage's length and done-when line, the starting government by its real name with its plain explanation (the recommended one picked, from government-constitution-sample.json), passes and advisors, every default pre-picked so a solo founder needs one click. /founding/genesis answers founding-genesis-decide.json, built from the real server shaper.",
|
|
3
3
|
"page": "/builders/",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": { "prefix": "/builders/", "fixtures": { "me": "me-founding", "founding-genesis": "founding-genesis-decide", "government-constitution": "government-constitution-sample" } },
|
|
6
8
|
"modeQuery": false,
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "The genesis home of a DEMO, born into genesis (task 1004506): 3 people, 4 hours each. The plan was settled at birth from the demo's picks, so there is no decide form: one line names the plan, and each stage reads in minutes (scope in progress, due at a time). /me says founding at scope (kit fixture me-founding-demo.json) and /founding/genesis answers founding-genesis-demo.json, built from the real server shaper. A real project's genesis is index-genesis.states.json and index-genesis-decide.states.json; a hall that is not founding is index.states.json.",
|
|
3
3
|
"page": "/builders/",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": { "prefix": "/builders/", "fixtures": { "me": "me-founding-demo", "founding-genesis": "founding-genesis-demo" } },
|
|
6
8
|
"modeQuery": false,
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "The genesis home on Home (task 1004423), mid-genesis: scope passed, strategize in progress. /me says founding (kit fixture me-founding.json) and /founding/genesis answers founding-genesis-stage.json, built from the real server shaper. The deciding step is index-genesis-decide.states.json; a hall that is not founding is index.states.json, where the card never renders and never asks. Run it with --states (Home has no last path segment).",
|
|
3
3
|
"page": "/builders/",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": { "prefix": "/builders/", "fixtures": { "me": "me-founding", "founding-genesis": "founding-genesis-stage" } },
|
|
6
8
|
"modeQuery": false,
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
<script src="/builders/welcome-boot.js?v=2026-10-23-city1" defer></script>
|
|
110
110
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers" defer></script>
|
|
111
111
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals" defer></script>
|
|
112
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
112
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar" defer></script>
|
|
113
113
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
114
114
|
<script src="/builders/palette.js" defer></script>
|
|
115
115
|
<!-- task 2166: the shared component kit (window.OTBKit) — pager/ledger/rail.
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "The hall's HOME page through modules/ui-design/kit/render.js (task 1003304). Home is served at the surface root, so its page path has no last segment to name the file — run it with `--states modules/hall-ui/public/index.states.json`, not `--page`.",
|
|
3
3
|
"page": "/builders/",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": {
|
|
6
8
|
"prefix": "/builders/"
|
|
@@ -8,6 +10,9 @@
|
|
|
8
10
|
"modeQuery": false,
|
|
9
11
|
"_feeds": "As work.states.json: the kit's stub is not the hall's feed set, so Home renders its skeletons and empty states here. The populated dashboard is the hall-preview harness.",
|
|
10
12
|
"ignoreRequests": [
|
|
13
|
+
"/version$",
|
|
14
|
+
"/api/(gds|bongos)/removal-proposals",
|
|
15
|
+
"/api/(gds|bongos)/blockers",
|
|
11
16
|
"/api/(gds|bongos)/me$",
|
|
12
17
|
"/api/(gds|bongos)/me/",
|
|
13
18
|
"/api/(gds|bongos)/tasks",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
75
75
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
76
76
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
77
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
77
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
78
78
|
<script src="/builders/palette.js" defer></script>
|
|
79
79
|
<script src="/builders/hall-kit.js"></script>
|
|
80
80
|
<script src="/builders/market-watch-lib.js"></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "MARKET WATCH ITEM, the dossier (task 1004939; design of record docs/design/mocks/market-watch/item.html, option B). One read, GET /market-watch/items/:id. Against the kit's own stub it 404s with no item code, which the page reads as the module being off. The populated card and case file need the hall-preview harness with the module reported on; its market-watch__items__4.json (GitHub Copilot coding agent) and market-watch__items__37.json (NLnet Foundation) fixtures were built from the committed 2026-10-28 seed through the real shapes:\n\n node scripts/hall-preview/server.js --port 4639 --fixture-me --modules-on market-watch\n node modules/ui-design/kit/render.js --states modules/hall-ui/public/market-watch-item.states.json --base-in http://localhost:4639 --base-out http://localhost:4639",
|
|
3
3
|
"page": "/builders/market-watch-item?id=4",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": {
|
|
6
8
|
"prefix": "/builders/"
|
|
@@ -43,7 +43,7 @@
|
|
|
43
43
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
44
44
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
45
45
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
46
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
46
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
47
47
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
48
48
|
<script src="/builders/palette.js" defer></script>
|
|
49
49
|
<script src="/builders/hall-kit.js"></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "The Market Watch rules page (task 1004941), built to docs/design/mocks/market-watch/rules.html, option C (the pipeline map). One read, GET /market-watch/rules. Against the kit's own stub it 404s, so the page renders its 'Market Watch is off' state, which the floors must hold too. TO SEE IT POPULATED, point the kit at the hall-preview harness: `node scripts/hall-preview/server.js --port 4641 --fixture-me`, then `render.js --page /builders/market-watch-rules --base-in http://builders.localhost:4641 --base-out http://builders.localhost:4641`. The harness answers from fixtures/market-watch__rules.json, built by the real composers (rules-view.buildView over the seed's rules and 60 items, two approved changes and four open proposals). Steps are opened with clickIfVisible because against the stub the nodes do not exist.",
|
|
3
3
|
"page": "/builders/market-watch-rules",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": { "prefix": "/builders/" },
|
|
6
8
|
"modeQuery": false,
|
|
@@ -188,7 +188,7 @@
|
|
|
188
188
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
189
189
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
190
190
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
191
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
191
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
192
192
|
<script src="/builders/palette.js" defer></script>
|
|
193
193
|
<script src="/builders/hall-kit.js"></script>
|
|
194
194
|
<script src="/builders/market-watch-lib.js"></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "MARKET WATCH HOME, the watchtower desk (task 1004939; design of record docs/design/mocks/market-watch/home.html, option D). One read, GET /market-watch/home. Against the kit's own stub it 404s, which the page reads as the module being off, so the stub render is the quiet off state. The populated desk needs the hall-preview harness with the module reported on; its market-watch__home.json fixture was built from the committed 2026-10-28 seed through the real shapes (tests/fixtures/market-watch-seed-rows.cjs):\n\n node scripts/hall-preview/server.js --port 4639 --fixture-me --modules-on market-watch --rank archon\n node modules/ui-design/kit/render.js --states modules/hall-ui/public/market-watch.states.json --base-in http://localhost:4639 --base-out http://localhost:4639\n\nThe 'settings' state is the owner's Settings tab (task 1005045; task 1004938's page before it), drawn from GET /market-watch/settings (the harness's market-watch__settings.json, the mockup's month). Only an archon viewer gets the tab, so the harness needs --rank archon; for anyone else the state renders the desk with no tab strip.",
|
|
3
3
|
"page": "/builders/market-watch",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": { "prefix": "/builders/" },
|
|
6
8
|
"modeQuery": false,
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
129
129
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
130
130
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
131
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
131
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
132
132
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
133
133
|
<script src="/builders/palette.js" defer></script>
|
|
134
134
|
<script src="/builders/brand-apply.js"></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "Modules — the catalog as ONE panel of oversight rows (task 1003472): the kit filter bar, the figure band, two groups under heads. The empty state matters more than the populated one: a filter that matches nothing is the state a browse page spends real time in. Written with the re-skin (task 1003307) so this page is MEASURED at three widths in both modes rather than looked at once; the redesign added the `lens` and `details` states. Populated look: the hall-preview harness (scripts/hall-preview/fixtures/modules.json carries eighteen modules, one built by the project).",
|
|
3
3
|
"page": "/builders/modules",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": {
|
|
6
8
|
"prefix": "/builders/"
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
83
83
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
84
84
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
85
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
85
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
86
86
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
87
87
|
<script src="/builders/palette.js" defer></script>
|
|
88
88
|
<script src="/builders/hall-kit.js"></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "MONEY (task 1005047; once FLEET COSTS, task 1001949, ADR 0327) through modules/ui-design/kit/render.js. The page reads three authenticated routes — GET /project-account/outflow (payout.approve), GET /public/cost-summary and GET /provisioning/fleet/cost-ledger (provisioning.fleet.manage) — each section hidden until its own read answers. Against the kit's own stub every read fails, so the page shows its one 'Nothing to show yet' line, a state the floors must hold in. To look at the populated page run it against the hall-preview harness, whose fixtures answer all three (the ledger's two cloud hosts carry no recorded plan, the state live is in today):\n\n node scripts/hall-preview/server.js --port 4620 --fixture-me\n node modules/ui-design/kit/render.js --states modules/hall-ui/public/money.states.json --base-in http://localhost:4620 --base-out http://localhost:4620",
|
|
3
3
|
"page": "/builders/money",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": { "prefix": "/builders/" },
|
|
6
8
|
"modeQuery": false,
|
|
@@ -84,7 +84,7 @@
|
|
|
84
84
|
<script src="/builders/dom-utils.js?v=2026-11-05-numbers"></script>
|
|
85
85
|
<script src="/builders/shell-trail.js?v=2026-11-05-numbers"></script>
|
|
86
86
|
<script src="/builders/craft-mode.js?v=2026-11-05-goals"></script>
|
|
87
|
-
<script src="/builders/shell.js?v=2026-11-
|
|
87
|
+
<script src="/builders/shell.js?v=2026-11-06-sidebar"></script>
|
|
88
88
|
<!-- jump palette (Ctrl/Cmd-K). Optional by design: without it the shell's slot stays hidden. -->
|
|
89
89
|
<script src="/builders/palette.js" defer></script>
|
|
90
90
|
<script src="/builders/gov-living.js?v=2026-10-10-real1"></script>
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_": "MY AGENTS (task 1004685, the living-city prototype) through modules/ui-design/kit/render.js. Every row is filled from GET /me and its prefs, so the floors run against the hall-preview harness, which serves those reads and records the pref writes (scripts/hall-preview/pref-writes.js):\n\n node scripts/hall-preview/server.js --port 4614 --fixture-me --rank archon\n node modules/ui-design/kit/render.js --states modules/hall-ui/public/my-agents.states.json --base-in http://builders.localhost:4614 --base-out http://builders.localhost:4614\n\nAgainst the kit's own stub the reads 404 and the page shows its sign-in line. The 'nobody' state is the same page as a builder who holds no seat (?as=nobody, a stand-in that can only take away, gov-positions.js).",
|
|
3
3
|
"page": "/my-agents",
|
|
4
|
+
"_storage": "The hall asks a first-visit question (the session mode picker, craft-mode.js) over every page; seeding \"already asked\" renders the page a returning builder sees (task 1005080).",
|
|
5
|
+
"storage": { "session": { "hall-craft-asked": "1" } },
|
|
4
6
|
"surface": "hall-ui",
|
|
5
7
|
"stub": { "prefix": "/builders/" },
|
|
6
8
|
"modeQuery": false,
|