@bongos/core 1.20.49 → 1.20.51

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 (77) hide show
  1. package/.bongos-core.json +104 -79
  2. package/.claude/skills/new-project/SKILL.md +5 -0
  3. package/clients/bongos-client/index.d.ts +1 -1
  4. package/docs/api/openapi.json +3 -0
  5. package/docs/api-reference.md +1 -1
  6. package/docs/copy-inventory.md +367 -345
  7. package/docs/copy-registry.json +663 -463
  8. package/docs/module-api-changelog.md +4 -0
  9. package/docs/page-inventory.json +10 -1
  10. package/docs/page-readings.json +986 -947
  11. package/modules/hall-ui/public/atlas.html +1 -1
  12. package/modules/hall-ui/public/blockers.html +1 -1
  13. package/modules/hall-ui/public/board-room.html +1 -1
  14. package/modules/hall-ui/public/collab.html +1 -1
  15. package/modules/hall-ui/public/commands.html +1 -1
  16. package/modules/hall-ui/public/copy-desk.html +1 -1
  17. package/modules/hall-ui/public/deploy.html +1 -1
  18. package/modules/hall-ui/public/diagrams.html +1 -1
  19. package/modules/hall-ui/public/drachmae.html +1 -1
  20. package/modules/hall-ui/public/fleet.html +1 -1
  21. package/modules/hall-ui/public/gate.html +1 -1
  22. package/modules/hall-ui/public/goal-map.html +29 -14
  23. package/modules/hall-ui/public/goal-map.states.json +12 -0
  24. package/modules/hall-ui/public/goals.html +1 -1
  25. package/modules/hall-ui/public/government.html +1 -1
  26. package/modules/hall-ui/public/idea.html +1 -1
  27. package/modules/hall-ui/public/ideas.html +1 -1
  28. package/modules/hall-ui/public/index.html +1 -1
  29. package/modules/hall-ui/public/modules.html +1 -1
  30. package/modules/hall-ui/public/primer.html +1 -1
  31. package/modules/hall-ui/public/profile.html +1 -1
  32. package/modules/hall-ui/public/project-settings.html +1 -1
  33. package/modules/hall-ui/public/ranks.html +1 -1
  34. package/modules/hall-ui/public/roadmap.html +1 -1
  35. package/modules/hall-ui/public/roster.html +1 -1
  36. package/modules/hall-ui/public/sessions.html +1 -1
  37. package/modules/hall-ui/public/settings.html +1 -1
  38. package/modules/hall-ui/public/shell.js +145 -15
  39. package/modules/hall-ui/public/studio.html +1 -1
  40. package/modules/hall-ui/public/style.css +61 -5
  41. package/modules/hall-ui/public/task.html +1 -1
  42. package/modules/hall-ui/public/thinking.css +15 -11
  43. package/modules/hall-ui/public/thinking.html +1 -1
  44. package/modules/hall-ui/public/tweak-editor.css +6 -0
  45. package/modules/hall-ui/public/tweak-editor.html +2 -2
  46. package/modules/hall-ui/public/watch.html +1 -1
  47. package/modules/hall-ui/public/work.html +1 -1
  48. package/modules/hall-ui/records/hall-navigation.md +22 -0
  49. package/modules/hall-ui/records/sky.md +2 -0
  50. package/modules/platform-identity/routes/sso.js +5 -0
  51. package/modules/provisioning/migrations/provisioning_033_terms_ack.sql +33 -0
  52. package/modules/provisioning/onboard-plan.js +5 -0
  53. package/modules/provisioning/provisioning.js +7 -4
  54. package/modules/provisioning/routes/provisioning.js +3 -3
  55. package/modules/provisioning/terms-ack.js +36 -0
  56. package/modules/public-landing/public/projects.html +226 -77
  57. package/modules/public-landing/public/projects.probes.json +8 -2
  58. package/modules/public-landing/public/projects.states.json +16 -12
  59. package/modules/ui-design/kit/serve.js +6 -0
  60. package/package-lock.json +2 -2
  61. package/package.json +1 -1
  62. package/release-notes.json +12 -0
  63. package/src/module-api.js +1 -1
  64. package/tests/goal_map_page.mjs +10 -7
  65. package/tests/hall_audit.mjs +3 -4
  66. package/tests/hall_fullscreen.mjs +99 -14
  67. package/tests/hall_tweak_editor.mjs +1 -1
  68. package/tests/nav_permission_atoms.mjs +1 -1
  69. package/tests/projects_hub.mjs +4 -2
  70. package/tests/projects_hub_app_status.mjs +1 -1
  71. package/tests/projects_hub_app_step.mjs +9 -9
  72. package/tests/projects_hub_module_picker.mjs +7 -7
  73. package/tests/projects_hub_pre_uat.mjs +4 -1
  74. package/tests/provisioning_terms_ack.mjs +216 -0
  75. package/tests/wizard_draft_resume.mjs +4 -4
  76. package/tests/wizard_front_door.mjs +271 -0
  77. package/tests/wizard_intent_resume.mjs +31 -19
@@ -21,6 +21,10 @@ Six steps are **irreducibly human** and must be rendered as **precise, UI-first,
21
21
 
22
22
  ## The canonical sequence
23
23
 
24
+ ### 0. Before the rail — the front door (task 1004417)
25
+
26
+ The hub's wizard opens on two screens before step 1, after sign-in. **The terms:** the owner ticks that they can sign legally (or get a signature) for the platform's use and acknowledge the terms. The create request carries only `terms_acknowledged: true`; the server records WHICH terms version on the project (`provisioning_instances.terms_ack_at` / `terms_ack_version`, read from the platform's own `TERMS_VERSION`, never from the body). **Demo or create:** two equal doors. The demo route is not built yet (BV2.PS09), so walk the create door. When you guide an owner through the CLI or by hand, send the owner to `/terms` and get the same acknowledgement from them in words before you file anything. The CLI does not record it yet, so a project filed that way stores none.
27
+
24
28
  ### 1. Decide name + address
25
29
 
26
30
  Interview the owner for: product name, world name, company; the **GitHub repo** (`owner/name`); the **domain** they will use (bring-your-own — ADR 0111 §4); and a DNS/db-safe **instance slug** (lowercase `[a-z0-9-]`, e.g. `mercury`).
@@ -183,6 +187,7 @@ Steps 12 and 13 are **not** part of that criterion and must never gate it. They
183
187
  ## Constraints
184
188
 
185
189
  - **This skill is the source of truth for the sequence.** If a step changes, change it here; `bongos onboard` (task 1982) and the hall wizard (task 1983) must render the same sequence. The machine-readable twin is [`modules/provisioning/onboard-plan.js`](../../../modules/provisioning/onboard-plan.js), served at `GET /provisioning/onboard-plan` — a **rail** step added here gets a step there in the same change, or the two drift and each claims to be canonical.
190
+ - **Step 0 (the front door) is not in that plan either**, for the opposite reason: it comes before the rail, is a hub-screen acknowledgement rather than a creation step, and carries no step of the machine setup. Its record is the project's terms columns, not a rail key.
186
191
  - **Steps 12 and 13 are deliberately NOT in that plan**, and that is the distinction to keep: the plan is the creation rail, and both of those run only once the project exists. A step that can only run after the terminal step is not a step in the rail ([ADR 0249](../../../docs/adr/0249-the-invite-step-is-the-done-panel-s-first-act-not-a-rail-step.md)) — it belongs to the done panel and the project's own page, each of which carries its own way back.
187
192
  - **Standalone only** (ADR 0108) — do not fall back to editing this monorepo's checkout for a new project.
188
193
  - **Never weaken the trust boundary** — the web tier enqueues; only the control-plane runner (`provision.js`) touches cloud tokens (ADR 0016 / 0111 §2).
@@ -412,7 +412,7 @@ export interface PostProvisioningInstancesIdRenderResponse { ok: boolean; queued
412
412
  export interface PostProvisioningInstancesIdRepoPrivateResponse { ok: boolean; queued: unknown; action: unknown; status: unknown; message: unknown }
413
413
  export interface PostProvisioningInstancesIdRestartResponse { ok: boolean; queued: unknown; action: unknown; status: unknown; message: unknown }
414
414
  export interface PostProvisioningInstancesIdTeardownResponse { ok: boolean; queued: unknown; action: unknown; status: unknown; superseded: unknown; message: unknown }
415
- export interface PostProvisioningInstancesRequest { slug: string; target_ref?: string; hosting_shape?: string; domain?: string; no_address?: boolean; tier?: string; onboard_mode?: string; type?: string; description?: string; detail?: Record<string, unknown>; modules?: string[] }
415
+ export interface PostProvisioningInstancesRequest { slug: string; target_ref?: string; hosting_shape?: string; domain?: string; no_address?: boolean; tier?: string; onboard_mode?: string; type?: string; description?: string; detail?: Record<string, unknown>; modules?: string[]; terms_acknowledged?: boolean }
416
416
  export interface PostProvisioningRenderLookupRequest { key: string; owner_id?: string }
417
417
  export interface PostRemovalProposalsIdDecideRequest { verdict: string; note?: string }
418
418
  export interface PostRenderDeployActRequest { action?: string; deployId?: string; confirm?: unknown; expectLiveDeployId?: unknown }
@@ -28310,6 +28310,9 @@
28310
28310
  "type": "string"
28311
28311
  },
28312
28312
  "maxItems": 50
28313
+ },
28314
+ "terms_acknowledged": {
28315
+ "type": "boolean"
28313
28316
  }
28314
28317
  },
28315
28318
  "required": [
@@ -586,7 +586,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/0016-trust
586
586
  | GET | `/api/bongos/provisioning/github-app/status` | `public` | — | GET /provisioning/github-app/status?state=<> — the PUBLIC progress read the onboarding callback page polls (task 2096) to know when setup… |
587
587
  | GET | `/api/bongos/provisioning/health` | `public` | — | GET /provisioning/health — liveness + the core version this module mounted against. |
588
588
  | GET | `/api/bongos/provisioning/instances` | `any-builder` | — | GET /provisioning/instances — the caller's own instances + each open intent. |
589
- | POST | `/api/bongos/provisioning/instances` | `any-builder` | `slug`, `target_ref`, `hosting_shape`, `domain`, `no_address`, `tier`, `onboard_mode`, `type`, `description`, `detail`, `modules` | POST /provisioning/instances — request a new instance. |
589
+ | POST | `/api/bongos/provisioning/instances` | `any-builder` | `slug`, `target_ref`, `hosting_shape`, `domain`, `no_address`, `tier`, `onboard_mode`, `type`, `description`, `detail`, `modules`, `terms_acknowledged` | POST /provisioning/instances — request a new instance. |
590
590
  | GET | `/api/bongos/provisioning/instances/:id` | `any-builder` | — | GET /provisioning/instances/:id — read one instance (the manage page's read). |
591
591
  | GET | `/api/bongos/provisioning/instances/:id/core-upgrade` | `archon` | — | GET the same path — step ONE of the two-step (ADR 0293 D4): what a move would do. |
592
592
  | POST | `/api/bongos/provisioning/instances/:id/core-upgrade` | `archon` | — | POST /provisioning/instances/:id/core-upgrade — move the core pin. |