@bongos/core 1.19.725 → 1.19.727

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 (229) hide show
  1. package/.bongos-core.json +179 -494
  2. package/.devcontainer/Dockerfile +1 -1
  3. package/.devcontainer/devcontainer.json +2 -2
  4. package/.devcontainer/healthcheck.sh +1 -1
  5. package/.devcontainer/init-firewall.sh +1 -1
  6. package/.devcontainer/post-create.sh +2 -2
  7. package/.env.local.example +1 -1
  8. package/Dockerfile +1 -1
  9. package/docs/copy-inventory.md +1 -1
  10. package/docs/copy-registry.json +9 -9
  11. package/docs/module-api-changelog.md +4 -0
  12. package/docs/recipes/devbox-app-release.md +4 -4
  13. package/modules/dev-box/app/scripts/dmgbuild-settings.py +5 -5
  14. package/modules/dev-box/app/scripts/gen-brand.js +1 -1
  15. package/modules/dev-box/app/src/brand.js +1 -1
  16. package/modules/dev-box/app/test/unit.mjs +16 -16
  17. package/modules/dev-box/box-access.js +1 -1
  18. package/modules/dev-box/routes/box.js +1 -1
  19. package/modules/discord/discord-approvals.js +1 -1
  20. package/modules/grading/grader-model.js +1 -1
  21. package/modules/grading/grader-prompt.js +1 -1
  22. package/modules/grading/grader-workers/quality.js +1 -1
  23. package/modules/hall-ui/module.json +1 -1
  24. package/modules/hall-ui/public/brand-apply.js +1 -1
  25. package/modules/hall-ui/public/shell.js +1 -1
  26. package/modules/hall-ui/public/work.js +1 -1
  27. package/modules/lifecycle/conflict-resolve.js +1 -1
  28. package/modules/lifecycle/db-analytics.js +1 -1
  29. package/modules/lifecycle/routes/analytics.js +1 -1
  30. package/modules/onboarding/approval-broadcast.js +1 -1
  31. package/modules/onboarding/onboarding.js +1 -1
  32. package/modules/provisioning/tests/liveness.mjs +1 -1
  33. package/modules/public-landing/public/index.html +1 -1
  34. package/modules/public-landing/public/projects-floor.states.json +2 -2
  35. package/modules/public-landing/public/projects.probes.json +4 -4
  36. package/modules/public-landing/public/projects.states.json +2 -2
  37. package/modules/status-ui/module.json +1 -1
  38. package/modules/status-ui/public/status.js +4 -4
  39. package/modules/status-ui/public/style.css +1 -1
  40. package/modules/ui-design/kit/fixtures/cost-summary.json +1 -1
  41. package/modules/ui-design/kit/fixtures/featured-hub.json +1 -1
  42. package/modules/ui-design/kit/fixtures/featured.json +1 -1
  43. package/modules/ui-design/kit/fixtures/leaderboard.json +1 -1
  44. package/modules/ui-design/kit/fixtures/my-projects.json +1 -1
  45. package/modules/ui-design/kit/fixtures/progress.json +1 -1
  46. package/modules/ui-design/kit/fixtures/recent-shipped.json +1 -1
  47. package/package-lock.json +2 -2
  48. package/package.json +1 -1
  49. package/scripts/cron/style_guide_audit.sh +1 -1
  50. package/scripts/discord/lib.js +1 -1
  51. package/scripts/discord/post.js +1 -1
  52. package/scripts/gds/audit-authorship.sh +1 -1
  53. package/scripts/gds/audit-replay.sh +29 -2
  54. package/scripts/gds/audit-ships.js +1 -1
  55. package/scripts/gds/backfill-sessions.js +2 -2
  56. package/scripts/gds/cf-tunnel.js +4 -4
  57. package/scripts/gds/claude-materialize.js +2 -2
  58. package/scripts/gds/cli-lib.js +6 -6
  59. package/scripts/gds/cutover-codemod.js +1 -1
  60. package/scripts/gds/dev-lib.js +2 -2
  61. package/scripts/gds/diagnose-achievements.js +2 -2
  62. package/scripts/gds/fitness-checks-identity.js +6 -4
  63. package/scripts/gds/gate-review.js +14 -6
  64. package/scripts/gds/gen-diagrams.js +1 -1
  65. package/scripts/gds/leak-scan-allowlist.js +293 -0
  66. package/scripts/gds/learning-capture.js +1 -1
  67. package/scripts/gds/linkify-refs.js +2 -2
  68. package/scripts/gds/local-preview-lib.js +1 -1
  69. package/scripts/gds/mirror-lineage-check.js +1 -1
  70. package/scripts/gds/mirror-redact.js +17 -2
  71. package/scripts/gds/newcomer-floor.templates.json +1 -1
  72. package/scripts/gds/package-core.js +18 -1
  73. package/scripts/gds/paste-token.js +1 -1
  74. package/scripts/gds/provision-units.js +2 -2
  75. package/scripts/gds/publish-manifest.js +15 -0
  76. package/scripts/gds/repo-metrics.js +1 -1
  77. package/scripts/gds/sandbox-stage.js +1 -1
  78. package/scripts/gds/seed-bongos-coreB-tranche1-tasks.js +1 -1
  79. package/scripts/gds/seed-bongos-coreB-tranche2-tasks.js +1 -1
  80. package/scripts/gds/seed-bongos-goal-hierarchy-tasks.js +1 -1
  81. package/scripts/gds/seed-bongos-tasks.js +2 -2
  82. package/scripts/gds/seed-gds-v4-tasks.js +1 -1
  83. package/scripts/gds/seed-medusa-tasks.js +10 -10
  84. package/scripts/gds/seed-module-upstreaming.js +1 -1
  85. package/scripts/gds/seed-productization-tasks.js +6 -6
  86. package/scripts/gds/seed-provisioning-tasks.js +2 -2
  87. package/scripts/gds/seed-staging.sh +19 -6
  88. package/scripts/gds/ship-deploy-target.js +1 -1
  89. package/scripts/gds/ship-flow.js +1 -1
  90. package/scripts/gds/smoke-gds.js +1 -1
  91. package/scripts/status-probe.mjs +2 -2
  92. package/src/bongos/auth-discord.js +2 -2
  93. package/src/bongos/live-channel.js +1 -1
  94. package/src/bongos/permission-path-check.js +80 -3
  95. package/src/bongos/pool.js +1 -1
  96. package/src/bongos/routes/auth.js +11 -11
  97. package/src/bongos/routes/security.js +1 -1
  98. package/src/bongos/routes.js +1 -1
  99. package/src/branding.js +1 -1
  100. package/src/devbox-downloads.js +1 -1
  101. package/src/instance-config.js +2 -2
  102. package/src/module-api.js +1 -1
  103. package/src/module-loader/provenance.js +2 -2
  104. package/tests/art_stage.mjs +2 -2
  105. package/tests/auth_anthropic_identity.mjs +1 -1
  106. package/tests/auth_duplicate_cookie.mjs +1 -1
  107. package/tests/auth_error_brand.mjs +1 -1
  108. package/tests/auth_inactive_builder.mjs +1 -1
  109. package/tests/backup_cli.mjs +4 -4
  110. package/tests/bongos_box_connect.mjs +2 -2
  111. package/tests/bongos_downloads.mjs +2 -2
  112. package/tests/bongos_login.mjs +5 -5
  113. package/tests/box_connect_e2e.mjs +2 -2
  114. package/tests/box_dns_repoint.mjs +10 -10
  115. package/tests/box_host_keys.mjs +1 -1
  116. package/tests/box_onboard.mjs +9 -9
  117. package/tests/box_scope_session.mjs +1 -1
  118. package/tests/box_terminal_ssrf.mjs +7 -7
  119. package/tests/boxes.mjs +9 -9
  120. package/tests/branding.mjs +2 -2
  121. package/tests/bump_version.mjs +2 -2
  122. package/tests/cf_tunnel.mjs +40 -40
  123. package/tests/cli_token_reissue.mjs +7 -7
  124. package/tests/cloud_bongos_pack.mjs +1 -1
  125. package/tests/currency_label.mjs +8 -8
  126. package/tests/dev_lib.mjs +4 -4
  127. package/tests/devbox_dmg_backdrop.mjs +1 -1
  128. package/tests/devbox_downloads.mjs +2 -2
  129. package/tests/devbox_icons.mjs +1 -1
  130. package/tests/discord_approvals.mjs +1 -1
  131. package/tests/discord_oauth.mjs +2 -2
  132. package/tests/executed_closure.mjs +6 -1
  133. package/tests/first_admin_bootstrap.mjs +1 -1
  134. package/tests/gate_approvals.mjs +5 -5
  135. package/tests/government_protected_surfaces.mjs +137 -0
  136. package/tests/grade_aggregates_unavailable.mjs +1 -1
  137. package/tests/hook_user_agents.mjs +2 -2
  138. package/tests/init.mjs +6 -6
  139. package/tests/instance_config.mjs +1 -1
  140. package/tests/instance_manifest.mjs +5 -5
  141. package/tests/instance_mismatch_guard.mjs +13 -13
  142. package/tests/leak_scan_allowlist.mjs +94 -0
  143. package/tests/migrate_root_resolution.mjs +4 -4
  144. package/tests/mirror_redact.mjs +28 -4
  145. package/tests/module_catalog.mjs +5 -5
  146. package/tests/module_submissions.mjs +3 -3
  147. package/tests/package_core.mjs +1 -1
  148. package/tests/parallel-load.mjs +6 -6
  149. package/tests/projects_hub.mjs +2 -2
  150. package/tests/provision.mjs +50 -50
  151. package/tests/provisioning_github_app_routes.mjs +1 -1
  152. package/tests/provisioning_onboard_mode.mjs +2 -2
  153. package/tests/publish_reconciler.mjs +4 -4
  154. package/tests/sandbox_stage.mjs +1 -1
  155. package/tests/scrubber_corpus.mjs +3 -3
  156. package/tests/search_isolation.mjs +1 -1
  157. package/tests/session_records.mjs +1 -1
  158. package/tests/ship_card.mjs +6 -6
  159. package/tests/ship_ci_deploy.mjs +1 -1
  160. package/tests/single_host_hall.mjs +9 -9
  161. package/tests/smoke_preflight.mjs +1 -1
  162. package/tests/smoke_target.mjs +1 -1
  163. package/tests/status-probe.mjs +1 -1
  164. package/tests/status_mirror_sync.mjs +1 -1
  165. package/docs/adr/0004-amazonprimea-name-and-trademark-acceptance.md +0 -45
  166. package/docs/design/mocks/_schemes.css +0 -604
  167. package/docs/design/mocks/component-sheet.html +0 -428
  168. package/docs/design/mocks/hall/_tokens.css +0 -370
  169. package/docs/design/mocks/hall/board/v1.html +0 -846
  170. package/docs/design/mocks/hall/board/v2.html +0 -858
  171. package/docs/design/mocks/hall/board/v3.html +0 -884
  172. package/docs/design/mocks/hall/goals/v1.html +0 -1212
  173. package/docs/design/mocks/hall/goals/v2.html +0 -1192
  174. package/docs/design/mocks/hall/goals/v3.html +0 -1205
  175. package/docs/design/mocks/hall/hall-sheet.html +0 -244
  176. package/docs/design/mocks/hall/reading/v1.html +0 -1125
  177. package/docs/design/mocks/hall/reading/v2.html +0 -1177
  178. package/docs/design/mocks/hall/reading/v3.html +0 -1150
  179. package/docs/design/mocks/hall/settings/v1.html +0 -1238
  180. package/docs/design/mocks/hall/settings/v2.html +0 -1235
  181. package/docs/design/mocks/hall/settings/v3.html +0 -1299
  182. package/docs/design/mocks/hall/task/v1.html +0 -633
  183. package/docs/design/mocks/hall/task/v2.html +0 -646
  184. package/docs/design/mocks/hall/task/v3.html +0 -647
  185. package/docs/design/mocks/hub/assets/r3-space-deepfield-half.jpg +0 -0
  186. package/docs/design/mocks/hub/assets/r3-space-deepfield-half.jpg.json +0 -13
  187. package/docs/design/mocks/hub/assets/r3-space-dust-half.jpg +0 -0
  188. package/docs/design/mocks/hub/assets/r3-space-dust-half.jpg.json +0 -13
  189. package/docs/design/mocks/hub/assets/r3-space-nebula-half.jpg +0 -0
  190. package/docs/design/mocks/hub/assets/r3-space-nebula-half.jpg.json +0 -13
  191. package/docs/design/mocks/hub/assets/r3-space-starfield-half.jpg +0 -0
  192. package/docs/design/mocks/hub/assets/r3-space-starfield-half.jpg.json +0 -13
  193. package/docs/design/mocks/hub/hub-sheet.html +0 -192
  194. package/docs/design/mocks/hub/mine.html +0 -465
  195. package/docs/design/mocks/hub/picker.html +0 -421
  196. package/docs/design/mocks/hub/planets.html +0 -356
  197. package/docs/design/mocks/hub/v1.html +0 -1209
  198. package/docs/design/mocks/hub/v2.html +0 -1257
  199. package/docs/design/mocks/hub/v3.html +0 -1496
  200. package/docs/design/mocks/hub/wizard.html +0 -421
  201. package/docs/design/mocks/landing/landing-sheet.html +0 -131
  202. package/docs/design/mocks/landing/v1.html +0 -956
  203. package/docs/design/mocks/landing/v2.html +0 -708
  204. package/docs/design/mocks/landing/v3.html +0 -911
  205. package/docs/design/mocks/landing-page-mock.html +0 -687
  206. package/docs/design/mocks/landing-palettes.html +0 -103
  207. package/docs/design/mocks/projects-hub-mock.html +0 -991
  208. package/docs/design/mocks/projects-hub-variants.html +0 -146
  209. package/docs/design/mocks/projects-page-mock.html +0 -167
  210. package/docs/design/mocks/world/blue-hud/_tokens.css +0 -246
  211. package/docs/design/mocks/world/blue-hud/hall.html +0 -595
  212. package/docs/design/mocks/world/blue-hud/landing.html +0 -424
  213. package/docs/design/mocks/world/blue-hud/status.html +0 -410
  214. package/docs/design/mocks/world/chrome-blobs/_tokens.css +0 -479
  215. package/docs/design/mocks/world/chrome-blobs/hall.html +0 -553
  216. package/docs/design/mocks/world/chrome-blobs/landing-b.html +0 -581
  217. package/docs/design/mocks/world/chrome-blobs/landing.html +0 -328
  218. package/docs/design/mocks/world/chrome-blobs/status.html +0 -416
  219. package/docs/design/mocks/world/natgeo-editorial/_tokens.css +0 -377
  220. package/docs/design/mocks/world/natgeo-editorial/hall.html +0 -649
  221. package/docs/design/mocks/world/natgeo-editorial/landing-b.html +0 -743
  222. package/docs/design/mocks/world/natgeo-editorial/landing.html +0 -475
  223. package/docs/design/mocks/world/natgeo-editorial/status.html +0 -437
  224. package/docs/design/mocks/world/organic-cards/_tokens.css +0 -462
  225. package/docs/design/mocks/world/organic-cards/hall.html +0 -625
  226. package/docs/design/mocks/world/organic-cards/landing-b.html +0 -736
  227. package/docs/design/mocks/world/organic-cards/landing.html +0 -420
  228. package/docs/design/mocks/world/organic-cards/status.html +0 -458
  229. package/docs/design/mocks/world/world-sheet.html +0 -156
@@ -1,146 +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>The hub's ground — three candidates (task 1002758)</title>
7
- <link rel="stylesheet" href="../../../modules/public-landing/public/assets/cosmos.css">
8
- <link href="https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700&family=Quicksand:wght@400;500;600;700&family=Fira+Code:wght@400;500&display=swap" rel="stylesheet">
9
- <style>
10
- /* Contact sheet — the same pattern landing-palettes.html used for the palette
11
- choice. Each tile is the REAL mock at ?rail=0, scaled, so nothing is drawn
12
- twice and the comparison cannot drift from the thing being approved. */
13
- body{background:var(--page-bg);padding:clamp(18px,3vw,36px);}
14
- .head{max-width:1180px;margin:0 auto 26px;}
15
- .head h1{font-family:var(--font-display);font-size:var(--fs-h2);letter-spacing:-.5px;margin-bottom:8px;}
16
- .head p{font-size:var(--fs-lede);color:var(--ink-soft);font-weight:500;line-height:1.6;max-width:74ch;}
17
- .head p + p{margin-top:10px;}
18
- .head b{color:var(--ink);}
19
- .sheet{max-width:1180px;margin:0 auto;display:grid;gap:var(--pad-md);grid-template-columns:repeat(2,1fr);}
20
- @media (max-width:920px){.sheet{grid-template-columns:1fr;}}
21
- .tile{background:var(--bg-card);border:2px solid var(--line);border-radius:20px;overflow:hidden;
22
- box-shadow:var(--shadow-card);}
23
- .tile h2{font-family:var(--font-display);font-size:16px;padding:14px 18px 4px;display:flex;
24
- align-items:center;gap:10px;flex-wrap:wrap;}
25
- .tile h2 .tag{font-family:var(--font-mono);font-size:11px;font-weight:500;padding:2px 9px;
26
- border-radius:999px;background:var(--accent-soft);color:var(--accent-deep);}
27
- .tile h2 .rec{background:var(--ok-soft);color:var(--ok);}
28
- .tile p{font-size:13.5px;color:var(--ink-soft);font-weight:500;line-height:1.55;padding:0 18px 12px;}
29
- .tile p .risk{color:var(--err);font-weight:700;}
30
- .frame{position:relative;height:430px;border-top:2px solid var(--line);background:var(--bg-deep);overflow:hidden;}
31
- .frame iframe{position:absolute;top:0;left:0;width:1440px;height:900px;border:0;
32
- transform:scale(.4097);transform-origin:0 0;}
33
- .pair{display:grid;grid-template-columns:1fr 1fr;}
34
- .pair .frame{height:300px;}
35
- .pair .frame iframe{transform:scale(.2861);}
36
- .pair .lbl{position:absolute;left:9px;top:9px;z-index:2;font-family:var(--font-mono);font-size:10.5px;
37
- background:rgba(0,0,0,.62);color:#fff;padding:2px 8px;border-radius:999px;}
38
- .pair .frame + .frame{border-left:2px solid var(--line);}
39
- .foot{max-width:1180px;margin:26px auto 0;font-size:13.5px;color:var(--ink-soft);font-weight:500;line-height:1.6;}
40
- .foot a{color:var(--accent-deep);font-weight:700;}
41
- </style>
42
- </head>
43
- <body>
44
-
45
- <div class="head">
46
- <h1>The hub’s ground — three candidates</h1>
47
- <p>Task 1002758 · goal 1000061. <b>Structure is already settled</b> — <code>/projects</code> is the one hub
48
- holding the map, your projects, and create. What is open is the <b>ground</b>: today the sky is a dark
49
- full-bleed canvas while <code>/projects</code> and <code>/create</code> are light marigold document pages, and
50
- one hub has to reconcile them.</p>
51
- <p>Each tile below is the <b>real mock</b> (<code>projects-hub-mock.html</code>) running at that ground, in
52
- light and dark. Open any of them full size to walk it. The status quo is included as a labelled option —
53
- <b>C</b> is what the gate ships today.</p>
54
- </div>
55
-
56
- <div class="sheet">
57
-
58
- <div class="tile">
59
- <h2>B · dual-mode full-bleed <span class="tag rec">recommended</span> <span class="tag">default</span></h2>
60
- <p>The sky is the page, and it follows light/dark like everything else: marigold daylight in light, warm-umber
61
- space in dark. <b>cosmos.css already encodes this</b> — <code>--sky-bg</code> is <code>#f9d9a8</code>/<code>#150c06</code>
62
- and <code>--star-display</code> flips <code>none</code>/<code>block</code> (:61-62, :99-100), so no new decision
63
- is needed and the mode toggle keeps meaning something in every view.
64
- <span class="risk">Its risk:</span> light mode loses the starfield drama entirely — the map becomes a calm
65
- diagram rather than a place.</p>
66
- <div class="pair">
67
- <div class="frame"><span class="lbl">light</span>
68
- <iframe src="projects-hub-mock.html?view=map&rail=0#b-light" data-g="b" data-m="light" loading="lazy"></iframe></div>
69
- <div class="frame"><span class="lbl">dark</span>
70
- <iframe src="projects-hub-mock.html?view=map&rail=0#b-dark" data-g="b" data-m="dark" loading="lazy"></iframe></div>
71
- </div>
72
- </div>
73
-
74
- <div class="tile">
75
- <h2>A · framed window <span class="tag">document-first</span></h2>
76
- <p>The hub is a marigold document page in both modes and the sky lives inside a bounded, rounded panel —
77
- a component rather than the environment. The chrome never changes character between views, and the map
78
- stops competing with the page it sits on.
79
- <span class="risk">Its risk:</span> a 540px window onto a gravity field reads as a widget; the sky’s whole
80
- appeal is that it feels like somewhere you are, and a panel makes it somewhere you are looking at.</p>
81
- <div class="pair">
82
- <div class="frame"><span class="lbl">light</span>
83
- <iframe src="projects-hub-mock.html?view=map&rail=0#a-light" data-g="a" data-m="light" loading="lazy"></iframe></div>
84
- <div class="frame"><span class="lbl">dark</span>
85
- <iframe src="projects-hub-mock.html?view=map&rail=0#a-dark" data-g="a" data-m="dark" loading="lazy"></iframe></div>
86
- </div>
87
- </div>
88
-
89
- <div class="tile">
90
- <h2>C · locked deep space <span class="tag">the status quo</span></h2>
91
- <p>What the gate ships today: the blue-violet starfield, full-bleed, in <b>both</b> modes — the locked
92
- <code>--space-deep/mid/high</code> palette (cosmos.css:47-49) that no branding pack can re-theme. Keeps the
93
- sky exactly as designed.
94
- <span class="risk">Its risk:</span> the light/dark toggle silently does nothing on the hub’s main view, and
95
- the hub reads as a different product from the marigold landing page a visitor just came through.</p>
96
- <div class="pair">
97
- <div class="frame"><span class="lbl">light</span>
98
- <iframe src="projects-hub-mock.html?view=map&rail=0#c-light" data-g="c" data-m="light" loading="lazy"></iframe></div>
99
- <div class="frame"><span class="lbl">dark</span>
100
- <iframe src="projects-hub-mock.html?view=map&rail=0#c-dark" data-g="c" data-m="dark" loading="lazy"></iframe></div>
101
- </div>
102
- </div>
103
-
104
- <div class="tile">
105
- <h2>The other two views <span class="tag">ground-independent</span></h2>
106
- <p>Your projects and New project are document views in every candidate — they carry controls a canvas cannot.
107
- Shown here in light and dark so the card vocabulary, the verification chips, and the dropped-buddha create
108
- step can be judged alongside the map.</p>
109
- <div class="pair">
110
- <div class="frame"><span class="lbl">your projects</span>
111
- <iframe src="projects-hub-mock.html?view=mine&rail=0" loading="lazy"></iframe></div>
112
- <div class="frame"><span class="lbl">new project</span>
113
- <iframe src="projects-hub-mock.html?view=new&rail=0" loading="lazy"></iframe></div>
114
- </div>
115
- </div>
116
-
117
- </div>
118
-
119
- <p class="foot">
120
- Walk the real thing: <a href="projects-hub-mock.html">projects-hub-mock.html</a> — the rail at the bottom
121
- switches ground, view, mode and signed-in state; <code>S</code> outlines apex-only blocks and <code>C</code>
122
- previews the child-instance shape. Serve over HTTP (<code>python -m http.server 8899</code>), not
123
- <code>file://</code>.
124
- </p>
125
-
126
- <script>
127
- /* Each tile drives its own iframe to a ground/mode after load. The iframes share
128
- a localStorage key, so the attribute is written directly into the frame's
129
- document instead of relying on the mock's own persistence. */
130
- document.querySelectorAll('iframe[data-g]').forEach(function (f) {
131
- f.addEventListener('load', function () {
132
- try {
133
- var d = f.contentDocument.documentElement;
134
- d.setAttribute('data-ground', f.dataset.g);
135
- d.setAttribute('data-mode', f.dataset.m);
136
- } catch (e) {}
137
- });
138
- });
139
- document.querySelectorAll('iframe:not([data-g])').forEach(function (f, i) {
140
- f.addEventListener('load', function () {
141
- try { f.contentDocument.documentElement.setAttribute('data-mode', i === 0 ? 'light' : 'dark'); } catch (e) {}
142
- });
143
- });
144
- </script>
145
- </body>
146
- </html>
@@ -1,167 +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>/projects redesigned — all-in space, light/dark (task 1002696)</title>
7
- <link rel="preconnect" href="https://fonts.googleapis.com">
8
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
9
- <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700&family=Quicksand:wght@400;500;600;700&family=Fira+Code:wght@400;500&display=swap">
10
- <!-- This mock links the REAL token/component layer the live pages use, so what
11
- you review here is what ships. Toggle ☾/☀ in the header to see both modes. -->
12
- <link rel="stylesheet" href="../../../modules/public-landing/public/assets/cosmos.css">
13
- <script>
14
- try{var _m=localStorage.getItem('cb-color-mode');if(_m==='light'||_m==='dark')document.documentElement.setAttribute('data-mode',_m);}catch(e){}
15
- </script>
16
- <style>
17
- .wrap{position:relative;z-index:1;max-width:880px;margin:0 auto;padding:0 clamp(16px,4vw,40px) 80px;}
18
- .card{margin-bottom:26px;}
19
- .mockNote{background:rgba(13,15,40,0.55);border:1.5px solid rgba(255,217,138,0.35);border-radius:16px;padding:12px 18px;font-size:13px;font-weight:600;color:var(--gold);line-height:1.5;margin-bottom:20px;backdrop-filter:blur(6px);}
20
- h2.sub{font-family:var(--font-display);font-weight:700;font-size:19px;margin:0 0 6px;}
21
- .subnote{font-size:13.5px;font-weight:500;color:var(--ink-soft);line-height:1.55;margin-bottom:18px;max-width:70ch;}
22
- </style>
23
- </head>
24
- <body>
25
- <div class="sky" aria-hidden="true">
26
- <span class="star" style="top:2%;left:12%;width:2px;height:2px;"></span>
27
- <span class="star" style="top:5%;left:28%;width:1.5px;height:1.5px;animation-delay:.7s;"></span>
28
- <span class="star" style="top:3%;left:47%;width:2px;height:2px;animation-delay:1.4s;"></span>
29
- <span class="star" style="top:8%;left:63%;width:1.5px;height:1.5px;animation-delay:.3s;"></span>
30
- <span class="star" style="top:4%;left:78%;width:2.5px;height:2.5px;animation-delay:2s;"></span>
31
- <span class="star" style="top:10%;left:88%;width:1.5px;height:1.5px;animation-delay:1s;"></span>
32
- <span class="star" style="top:14%;left:20%;width:1.5px;height:1.5px;animation-delay:1.8s;"></span>
33
- <span class="star" style="top:22%;left:55%;width:2px;height:2px;animation-delay:.5s;"></span>
34
- <span class="star" style="top:34%;left:36%;width:1.5px;height:1.5px;animation-delay:2.4s;"></span>
35
- <span class="star" style="top:30%;left:78%;width:1.5px;height:1.5px;animation-delay:1.2s;"></span>
36
- <span class="star" style="top:48%;left:8%;width:2px;height:2px;animation-delay:.9s;"></span>
37
- <span class="star" style="top:55%;left:90%;width:1.5px;height:1.5px;animation-delay:1.6s;"></span>
38
- <span class="star" style="top:68%;left:24%;width:1.5px;height:1.5px;animation-delay:2.1s;"></span>
39
- <span class="star" style="top:76%;left:64%;width:2px;height:2px;animation-delay:.4s;"></span>
40
- <span class="star" style="top:88%;left:42%;width:1.5px;height:1.5px;animation-delay:1.9s;"></span>
41
- </div>
42
-
43
- <header class="top">
44
- <a class="mark" href="#">cloud <span>bongos</span></a>
45
- <div class="top-right">
46
- <a class="btn-space" href="#">+ New project</a>
47
- <button type="button" class="mode-toggle" id="modeToggle" title="Switch light / dark">☾</button>
48
- <div class="who"><span>jaxri</span></div>
49
- </div>
50
- </header>
51
-
52
- <div class="hero">
53
- <h1>Your projects</h1>
54
- <p class="lede">The same sky as the front door — every project you own is an <b>orb</b> here. Each card says what the platform last verified, and when.</p>
55
- </div>
56
-
57
- <div class="wrap">
58
-
59
- <div class="mockNote">Mock of the REAL page (linked to the live cosmos.css layer) — all-in space backdrop, light/dark via the ☾/☀ toggle or your OS setting. Fleet data faithful to Aug 12; raw notes paraphrased.</div>
60
-
61
- <main class="card">
62
- <ul class="projects">
63
-
64
- <li class="proj">
65
- <span class="orb" style="--acc:#fb923c" title="Open Spike Harbor"></span>
66
- <div class="projBody">
67
- <div class="projHead"><span class="projName">spike-harbor</span><span class="chip live"><span class="cdot"></span>live <span class="rec">· checked 2m ago</span></span></div>
68
- <div class="projMeta"><span>repo <code>spike-harbor</code></span><span>its own server</span><span>back live since Aug 12</span></div>
69
- <div class="addr">Answering at <a href="#">spike-harbor.cloudbongos.com</a></div>
70
- <div class="actions"><button class="btn small ghost">Change address</button><button class="btn small danger">Tear it down</button></div>
71
- </div>
72
- </li>
73
-
74
- <li class="proj">
75
- <span class="orb ashen" style="--acc:#fb7185" title="swag"></span>
76
- <div class="projBody">
77
- <div class="projHead"><span class="projName">swag</span><span class="chip bad"><span class="cdot"></span>snagged <span class="rec">· since Aug 7</span></span></div>
78
- <div class="projMeta"><span>repo <code>swag</code></span><span>its own server</span></div>
79
- <div class="projMsg err">We couldn’t push the starter code to the repository — it wasn’t found on GitHub. We stopped trying on Aug 7 — nothing more will happen until you try again.
80
- <details><summary>Technical details</summary><pre>Command failed: git -C /srv/cloudbongos/swag push -u origin main
81
- ERROR: Repository not found.</pre></details>
82
- </div>
83
- <div class="actions"><button class="btn small">Try again</button><button class="btn small danger">Tear it down</button></div>
84
- </div>
85
- </li>
86
-
87
- <li class="proj gone">
88
- <span class="orb ghost" style="--acc:#38bdf8" title="jaxri-spike"></span>
89
- <div class="projBody">
90
- <div class="projHead"><span class="projName">jaxri-spike</span><span class="chip calm"><span class="cdot"></span>torn down <span class="rec">· Aug 11</span></span></div>
91
- <div class="projMeta"><span>repo <code>jaxri-spike</code></span><span>shared server</span></div>
92
- <div class="projMsg">Torn down Aug 11. The repository is still yours, and its database is kept — bringing it back takes one click. Or <a href="#">start another</a>.</div>
93
- <div class="actions"><button class="btn small">Bring it back</button></div>
94
- </div>
95
- </li>
96
-
97
- </ul>
98
-
99
- <p class="finePrint">Buttons here ask the platform to act — a runner does the real work, and each card reports only what was verified, with a timestamp. Standups keep running even with this tab closed.</p>
100
- </main>
101
-
102
- <main class="card">
103
- <h2 class="sub">Also in today's fleet — states the design must absorb</h2>
104
- <p class="subnote">These exist in the live system right now under other accounts.</p>
105
-
106
- <ul class="projects">
107
-
108
- <li class="proj">
109
- <span class="orb dim" style="--acc:#f6c976" title="charter"></span>
110
- <div class="projBody">
111
- <div class="projHead"><span class="projName">charter</span><span class="chip maybe"><span class="cdot"></span>live? <span class="rec">· last seen Jul 25</span></span></div>
112
- <div class="projMeta"><span>repo <code>charter</code></span><span>its own server</span></div>
113
- <div class="addr"><span class="none">No address yet</span> — sign-in on this project can’t be set up until it has one.</div>
114
- <div class="attach"><input type="text" placeholder="myproject.example.com"><button class="btn small">Give it an address</button></div>
115
- <div class="actions"><button class="btn small danger">Tear it down</button></div>
116
- </div>
117
- </li>
118
-
119
- <li class="proj">
120
- <span class="orb" style="--acc:#38bdf8;--glow:rgba(56,189,248,.5)" title="Open hermeslines-marketing"></span>
121
- <div class="projBody">
122
- <div class="projHead"><span class="projName">hermeslines-marketing</span><span class="chip live"><span class="cdot"></span>live <span class="rec">· checked 4m ago</span></span></div>
123
- <div class="projMeta"><span>repo <code>hermeslines-marketing</code></span><span>its own server</span><span>adopted repo</span></div>
124
- <div class="addr">Answering at <a href="#">hermeslines-marketing.cloudbongos.com</a></div>
125
- <div class="actions"><button class="btn small ghost">Change address</button><button class="btn small danger">Tear it down</button></div>
126
- </div>
127
- </li>
128
-
129
- <li class="proj">
130
- <span class="orb ashen" style="--acc:#8b7ec8" title="trial"></span>
131
- <div class="projBody">
132
- <div class="projHead"><span class="projName">trial</span><span class="chip bad"><span class="cdot"></span>snagged <span class="rec">· since Jul 17</span></span></div>
133
- <div class="projMeta"><span>repo <code>trial</code></span><span>its own server</span></div>
134
- <div class="projMsg err">We couldn’t push the starter code — the account that set it up doesn’t have permission. We stopped trying on Jul 17 — nothing more will happen until you try again.
135
- <details><summary>Technical details</summary><pre>Command failed: git -C /srv/cloudbongos/trial push -u origin main
136
- ERROR: Permission denied to the provisioning account.</pre></details>
137
- </div>
138
- <div class="actions"><button class="btn small">Try again</button><button class="btn small danger">Tear it down</button></div>
139
- </div>
140
- </li>
141
-
142
- </ul>
143
- </main>
144
-
145
- <main class="card">
146
- <h2 class="sub">Empty state — a first-timer's landing</h2>
147
- <div class="empty">
148
- <p>You don't own any projects yet. Creating one takes about five minutes — name it, pick a home for its code, and it gets an address of its own in this sky.</p>
149
- <a class="btn" href="#">Create your first project</a>
150
- </div>
151
- </main>
152
-
153
- </div>
154
-
155
- <div class="foot">cloud bongos · your projects live at addresses like <code>name.cloudbongos.com</code></div>
156
-
157
- <script>
158
- (function(){
159
- function resolved(){var m=document.documentElement.getAttribute('data-mode');if(m==='light'||m==='dark')return m;return (window.matchMedia&&window.matchMedia('(prefers-color-scheme: dark)').matches)?'dark':'light';}
160
- var t=document.getElementById('modeToggle');
161
- function paint(){t.textContent=resolved()==='dark'?'☀':'☾';}
162
- t.addEventListener('click',function(){var next=resolved()==='dark'?'light':'dark';document.documentElement.setAttribute('data-mode',next);try{localStorage.setItem('cb-color-mode',next);}catch(e){}paint();});
163
- paint();
164
- })();
165
- </script>
166
- </body>
167
- </html>
@@ -1,246 +0,0 @@
1
- /* THE HUD - Cloud Bongos world candidate "blue-hud".
2
- World: an instrument panel read in the dark. Black ground, white condensed caps, one electric blue
3
- that lights only what is live or pressable, and HUD registration marks (crosshairs, hairline rules
4
- with a node, tracked caps, dot rows, hatch strips) that frame every region.
5
- Palette strategy: RESTRAINED - one accent hue over a neutral black / neutral off-white scale,
6
- sampled from the owner's template (ground #000103, headline blue #65a9fb, light ground #eeecee).
7
- Faces: Antonio (condensed caps display, the readout voice), Barlow (body, UI, tracked caps labels),
8
- Azeret Mono (task numbers, credits, figures, tabular), JetBrains Mono (light-hall group labels).
9
- Materials: a white-hot ring with a blue bloom behind the mark, the misty-forest plate under the dark
10
- hall glass, the iridescent hud-sphere plate inside the status world card, hatch for a blocked cell.
11
- Corners (template system): PILL for anything pressable, 10px for containers, marks stay sharp.
12
- Derived from the contract: every blue is color-mix()'d off --accent / --accent-deep and every surface
13
- off --bg / --bg-card / --bg-frame, so a host pack overriding the 14 contract tokens still wins. */
14
-
15
- :root {
16
- /* ---- contract tokens (a host instance overrides exactly these) ---- */
17
- --bg: #eeecee;
18
- --bg-card: #ffffff;
19
- --bg-deep: #e5e3e5;
20
- --bg-frame: #f8f7f8;
21
- --ink: #12161b;
22
- --ink-soft: #4c555f;
23
- --ink-faint: #626b75;
24
- --rule: #dcdadc;
25
- --rule-soft: #e8e6e8;
26
- --accent: #65a9fb;
27
- --accent-deep: #0a55b0;
28
- --sea: #1c5f8e;
29
- --terracotta: #c2673a;
30
- --font-display: 'Antonio', 'Oswald', 'Arial Narrow', sans-serif;
31
- --font-body: 'Barlow', system-ui, -apple-system, 'Segoe UI', sans-serif;
32
-
33
- /* ---- derived: faces ---- */
34
- --font-mono: 'Azeret Mono', ui-monospace, 'Cascadia Mono', Consolas, monospace;
35
- --font-mono-alt: 'JetBrains Mono', 'Azeret Mono', ui-monospace, Consolas, monospace;
36
- --label-font: 'JetBrains Mono', 'Barlow', system-ui, sans-serif;
37
- --label-track: .12em;
38
- /* the mode toggle's glyph is chosen by token, so page CSS never branches on mode */
39
- --icon-moon: none;
40
- --icon-sun: block;
41
-
42
- /* ---- derived: accent roles (all mixed off the contract blues) ---- */
43
- --accent-text: color-mix(in srgb, var(--accent-deep) 92%, #000);
44
- --accent-ui: var(--accent-deep);
45
- --accent-fill: var(--accent-deep);
46
- --on-accent: #ffffff;
47
- --accent-tint: color-mix(in srgb, var(--accent) 34%, #fff);
48
- --accent-faint: color-mix(in srgb, var(--accent) 15%, #fff);
49
- --halo: color-mix(in srgb, var(--accent-deep) 45%, #fff);
50
- --halo-bloom: var(--accent);
51
-
52
- /* ---- derived: structure (template corner system) ---- */
53
- --line: 1px;
54
- --radius: 10px;
55
- --radius-sm: 7px;
56
- --radius-pill: 999px;
57
- --bracket: #8f96a0;
58
- --bracket-page: color-mix(in srgb, var(--accent-deep) 68%, #737b85);
59
- --edge-ui: #767f88;
60
- --glass: #ffffff;
61
- --glass-edge: var(--rule);
62
- --glass-blur: 0px;
63
- --side-bg: var(--bg-frame);
64
- --panel-bg: var(--bg-card);
65
- --topbar-bg: var(--bg-card);
66
- --row-hover: color-mix(in srgb, var(--accent) 13%, transparent);
67
- --hatch: #c9c7c9;
68
- /* a closed (not-live) bar or step: neutral, so the accent stays on what is live */
69
- --bar-quiet: color-mix(in srgb, var(--ink) 24%, var(--bg-card));
70
- --shadow-card: 0 10px 26px -18px rgba(16, 20, 26, .30);
71
- --world-ground: #000103;
72
-
73
- /* ---- derived: plate (the ground photograph; dark hall only) ---- */
74
- --plate: none;
75
- --plate-tint: transparent;
76
- --plate-blur: 0px;
77
-
78
- /* ---- derived: the inherited bongo mark, painted as a silhouette ---- */
79
- --skin-hi: #cfd4da;
80
- --skin-mid: #a8b0b9;
81
- --skin-lo: #7c858f;
82
- --drum-shadow: #2b3138;
83
- --drum-shell: #2a3138;
84
- --drum-shell-deep: #12171c;
85
- --drum-shell-2: #232a31;
86
- --drum-ink: #000000;
87
- --drum-rim: color-mix(in srgb, var(--accent-deep) 55%, transparent);
88
-
89
- /* ---- derived: state ---- */
90
- --ok: #0f7a58;
91
- --warn: #8a5a06;
92
- --err: #b4292b;
93
- --focus: var(--accent-deep);
94
- --sel-bg: color-mix(in srgb, var(--accent) 45%, #fff);
95
- --sel-ink: var(--ink);
96
- --scroll-track: var(--bg-deep);
97
- --scroll-thumb: #bbb9bb;
98
- }
99
-
100
- :root[data-mode="dark"] {
101
- --bg: #000103;
102
- --bg-card: #06090f;
103
- --bg-deep: #000000;
104
- --bg-frame: #05080d;
105
- --ink: #f4f7fa;
106
- --ink-soft: #b2bdc8;
107
- --ink-faint: #838f9b;
108
- --rule: #19222c;
109
- --rule-soft: #0f151c;
110
-
111
- --label-font: 'Barlow', system-ui, sans-serif;
112
- --icon-moon: block;
113
- --icon-sun: none;
114
-
115
- --accent-text: var(--accent);
116
- --accent-ui: var(--accent);
117
- --accent-fill: var(--accent);
118
- --on-accent: #02060c;
119
- --accent-tint: color-mix(in srgb, var(--accent) 15%, transparent);
120
- --accent-faint: color-mix(in srgb, var(--accent) 8%, transparent);
121
- --halo: color-mix(in srgb, var(--accent) 26%, #fff);
122
- --halo-bloom: var(--accent);
123
-
124
- --bracket: color-mix(in srgb, var(--accent) 55%, #6a747f);
125
- --bracket-page: var(--accent);
126
- --edge-ui: #6d7f91;
127
- --glass: rgba(14, 19, 26, .70);
128
- --glass-edge: rgba(214, 228, 240, .17);
129
- --glass-blur: 18px;
130
- --side-bg: rgba(6, 10, 15, .68);
131
- --panel-bg: var(--glass);
132
- --topbar-bg: rgba(9, 13, 18, .58);
133
- --hatch: rgba(158, 180, 200, .34);
134
- --shadow-card: 0 22px 52px -26px rgba(0, 0, 0, .92);
135
- --world-ground: #000103;
136
-
137
- --plate: url('../../../../../.impeccable/mocks/world-assets/forest-mist.jpg');
138
- --plate-tint: linear-gradient(180deg, rgba(4, 11, 20, .42), rgba(2, 6, 13, .72));
139
- --plate-blur: 11px;
140
-
141
- --skin-hi: #3b424a;
142
- --skin-mid: #262c34;
143
- --skin-lo: #14181d;
144
- --drum-shadow: #000000;
145
- --drum-shell: #131820;
146
- --drum-shell-deep: #05080c;
147
- --drum-shell-2: #11151b;
148
- --drum-ink: #000000;
149
- --drum-rim: color-mix(in srgb, var(--accent) 34%, transparent);
150
-
151
- --ok: #4fd1a5;
152
- --warn: #ffb454;
153
- --err: #ff7b72;
154
- --focus: color-mix(in srgb, var(--accent) 55%, #fff);
155
- --sel-bg: color-mix(in srgb, var(--accent) 40%, transparent);
156
- --sel-ink: #ffffff;
157
- --scroll-track: rgba(255, 255, 255, .05);
158
- --scroll-thumb: #35465a;
159
- }
160
-
161
- @media (prefers-color-scheme: dark) {
162
- :root:not([data-mode="light"]) {
163
- --bg: #000103;
164
- --bg-card: #06090f;
165
- --bg-deep: #000000;
166
- --bg-frame: #05080d;
167
- --ink: #f4f7fa;
168
- --ink-soft: #b2bdc8;
169
- --ink-faint: #838f9b;
170
- --rule: #19222c;
171
- --rule-soft: #0f151c;
172
-
173
- --label-font: 'Barlow', system-ui, sans-serif;
174
- --icon-moon: block;
175
- --icon-sun: none;
176
-
177
- --accent-text: var(--accent);
178
- --accent-ui: var(--accent);
179
- --accent-fill: var(--accent);
180
- --on-accent: #02060c;
181
- --accent-tint: color-mix(in srgb, var(--accent) 15%, transparent);
182
- --accent-faint: color-mix(in srgb, var(--accent) 8%, transparent);
183
- --halo: color-mix(in srgb, var(--accent) 26%, #fff);
184
- --halo-bloom: var(--accent);
185
-
186
- --bracket: color-mix(in srgb, var(--accent) 55%, #6a747f);
187
- --bracket-page: var(--accent);
188
- --edge-ui: #6d7f91;
189
- --glass: rgba(14, 19, 26, .70);
190
- --glass-edge: rgba(214, 228, 240, .17);
191
- --glass-blur: 18px;
192
- --side-bg: rgba(6, 10, 15, .68);
193
- --panel-bg: var(--glass);
194
- --topbar-bg: rgba(9, 13, 18, .58);
195
- --hatch: rgba(158, 180, 200, .34);
196
- --shadow-card: 0 22px 52px -26px rgba(0, 0, 0, .92);
197
- --world-ground: #000103;
198
-
199
- --plate: url('../../../../../.impeccable/mocks/world-assets/forest-mist.jpg');
200
- --plate-tint: linear-gradient(180deg, rgba(4, 11, 20, .42), rgba(2, 6, 13, .72));
201
- --plate-blur: 11px;
202
-
203
- --skin-hi: #3b424a;
204
- --skin-mid: #262c34;
205
- --skin-lo: #14181d;
206
- --drum-shadow: #000000;
207
- --drum-shell: #131820;
208
- --drum-shell-deep: #05080c;
209
- --drum-shell-2: #11151b;
210
- --drum-ink: #000000;
211
- --drum-rim: color-mix(in srgb, var(--accent) 34%, transparent);
212
-
213
- --ok: #4fd1a5;
214
- --warn: #ffb454;
215
- --err: #ff7b72;
216
- --focus: color-mix(in srgb, var(--accent) 55%, #fff);
217
- --sel-bg: color-mix(in srgb, var(--accent) 40%, transparent);
218
- --sel-ink: #ffffff;
219
- --scroll-track: rgba(255, 255, 255, .05);
220
- --scroll-thumb: #35465a;
221
- }
222
- }
223
-
224
- /* ---- house floor shared by all three pages ---- */
225
- *, *::before, *::after { box-sizing: border-box; }
226
- html { -webkit-text-size-adjust: 100%; }
227
- body {
228
- margin: 0;
229
- background: var(--bg);
230
- color: var(--ink);
231
- font-family: var(--font-body);
232
- font-weight: 400;
233
- -webkit-font-smoothing: antialiased;
234
- }
235
- ::selection { background: var(--sel-bg); color: var(--sel-ink); }
236
- :focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
237
- a { color: inherit; }
238
- .sr-only {
239
- position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
240
- overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
241
- }
242
- .num { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-feature-settings: 'tnum' 1; }
243
-
244
- @media (prefers-reduced-motion: reduce) {
245
- *, *::before, *::after { animation: none !important; transition: none !important; }
246
- }