@bongos/core 1.19.64 → 1.19.66

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 (36) hide show
  1. package/.bongos-core.json +55 -40
  2. package/docs/adr/0166-module-maintenance-and-deprecation-policy.md +91 -0
  3. package/docs/adr/README.md +1 -0
  4. package/docs/modules-contract.md +23 -1
  5. package/modules/autonomy/module.json +1 -0
  6. package/modules/builder-settings/module.json +1 -0
  7. package/modules/dev-box/module.json +1 -0
  8. package/modules/discord/module.json +1 -0
  9. package/modules/economy/module.json +1 -0
  10. package/modules/governance/module.json +1 -0
  11. package/modules/grading/module.json +1 -0
  12. package/modules/hall-ui/module.json +1 -0
  13. package/modules/hall-ui/public/modules.js +17 -1
  14. package/modules/ideas/module.json +1 -0
  15. package/modules/lifecycle/module.json +1 -0
  16. package/modules/memory/module.json +1 -0
  17. package/modules/onboarding/module.json +1 -0
  18. package/modules/platform-identity/module.json +1 -0
  19. package/modules/provisioning/module.json +1 -0
  20. package/modules/security/module.json +1 -0
  21. package/modules/sessions/module.json +1 -0
  22. package/modules/status-ui/module.json +1 -0
  23. package/package-lock.json +2 -2
  24. package/package.json +1 -1
  25. package/public-landing/create.html +11 -2
  26. package/public-landing/projects.html +591 -0
  27. package/scripts/gds/module.js +103 -9
  28. package/scripts/gds/upgrade.js +50 -5
  29. package/src/bongos/routes/modules.js +4 -0
  30. package/src/module-api.js +5 -1
  31. package/src/module-loader/manifest-schema.js +69 -2
  32. package/src/platform-server.js +9 -0
  33. package/tests/module_cli.mjs +126 -0
  34. package/tests/module_manifest.mjs +65 -0
  35. package/tests/public_landing_projects.mjs +121 -0
  36. package/tests/upgrade.mjs +94 -0
@@ -4,6 +4,7 @@
4
4
  "description": "The build state machine — tasks · claims · versions · done-when criteria · goals · dependencies · the claim→ship→grade→credit lifecycle · override requests · the ship/confirm/promote orchestration · github-push + merge-lease + conflict-resolve + the publish reconciler. The LAST and most-coupled core domain carved out of the GDS core in BV1.R86 (ADR 0093 §1,§3, 02-module-map §4 — kept whole, never split). default-on; every instance runs the lifecycle. Registers the `lifecycle` kernel PORT (createTask · VOTABLE_TASK_STATUSES · classifyTaskKind · tallyPeerVotes + the work-tracking reads) that core read routes + the ideas/discord/autonomy modules resolve. As a transaction-participant it RESOLVES the `reward` + `onboarding` ports inside its claim/ship/confirm txns — but via resolveOptional (graceful, like sessions→reward), so consumes is empty: a vanilla instance without those modules degrades the credit/onboarding writes to best-effort no-ops, it does not fail.",
5
5
  "coreVersion": "^1.12.0",
6
6
  "default": true,
7
+ "maintenance": { "status": "core-maintained" },
7
8
  "contributes": {
8
9
  "routes": ["tasks", "claims", "versions", "done-when", "goals", "dependencies", "gate-approvals", "analytics", "lifecycle"],
9
10
  "pollers": ["publish-reconciler"]
@@ -4,6 +4,7 @@
4
4
  "description": "Per-builder session memory, the lexical recall/search retrieval layer (ADR 0060), and durable learnings. A core-domain module carved out of the GDS core in BV1.R72 (ADR 0091); default-on because every instance needs the build system's memory.",
5
5
  "coreVersion": "^1.5.0",
6
6
  "default": true,
7
+ "maintenance": { "status": "core-maintained" },
7
8
  "contributes": {
8
9
  "routes": ["memory", "search", "learnings"]
9
10
  },
@@ -4,6 +4,7 @@
4
4
  "description": "The newcomer ADMISSION + ORIENTATION domain — the public access-request → Archon-approval gate, the server-ticked onboarding state machine (the 'Path into the City' checklist that graduates a Xenos to Thetes), the friction analyzer (feedback-without-asking on consented onboarding transcripts), and the evergreen newcomer-chore restock (a fresh first-builder task is always waiting). A core-domain module carved out of the GDS core in BV1.R81 (ADR 0093 §1); default-on because every instance onboards its own builders. The access-requests admission routes mount here; the core lifecycle (db.js claim/ship), auth callbacks, and the me/builders profile readers resolve the `onboarding` kernel PORT for the state-machine + restock surface they need — never importing the module.",
5
5
  "coreVersion": "^1.9.0",
6
6
  "default": true,
7
+ "maintenance": { "status": "core-maintained" },
7
8
  "contributes": { "routes": ["onboarding"] },
8
9
  "provides": ["onboarding"],
9
10
  "consumes": []
@@ -8,6 +8,7 @@
8
8
  "origin": "Cloud Bongos platform (cloudbongos.com)",
9
9
  "license": "AGPL-3.0",
10
10
  "maintainer": "Cloud Bongos maintainers",
11
+ "maintenance": { "status": "core-maintained" },
11
12
  "contributes": {
12
13
  "routes": ["sso", "projects", "my-projects", "scouting"],
13
14
  "migrations": true,
@@ -8,6 +8,7 @@
8
8
  "origin": "Off the Boats (the first Cloud Bongos instance, amazonprimea.com)",
9
9
  "license": "AGPL-3.0",
10
10
  "maintainer": "Off the Boats maintainers",
11
+ "maintenance": { "status": "core-maintained" },
11
12
  "contributes": {
12
13
  "routes": ["provisioning"],
13
14
  "migrations": true
@@ -4,6 +4,7 @@
4
4
  "description": "The red-team / vulnerability-report intake and the bounty payout system (rank-gated Metic+): the /builder-redteam skill files a report, the Archon dashboard adjudicates (confirm/dispute/fix/link-fix), and the env-aware bounty table sets the per-severity drachmae payout. A core-domain module carved out of the GDS core in BV1.R79 (ADR 0093 §1; 02-module-map §5 — security-the-FEATURE, NOT security-the-property, which stays kernel). default-on because every instance can take red-team reports. Registers the `security` kernel PORT the core /public/bounty-table resolves for the payout schedule. Also owns the scan-before-install surface (goal 1000055): the artifact-scan engine (quarantine/manifest/mirror) and the security_tool_scans record — POST Metic+, GET every rank.",
5
5
  "coreVersion": "^1.8.0",
6
6
  "default": true,
7
+ "maintenance": { "status": "core-maintained" },
7
8
  "contributes": { "routes": ["reports", "scans"], "migrations": true },
8
9
  "provides": ["security"],
9
10
  "consumes": []
@@ -4,6 +4,7 @@
4
4
  "description": "The session-records corpus + its data plane (POST /sessions upload, the Archon-gated cross-builder /sessions/search + /sessions/:id deep-dive), the BFG 'read-the-room' cross-builder scorer (ADR 0026 §6B), and the session-pulse / stale-claim heartbeat helpers. A core-domain module carved out of the GDS core in BV1.R82 (ADR 0093 §1); default-on because every instance records its builders' sessions for the BFG. Like the memory module, sessions registers no port — core never calls back into it: the ship-time digest write is an HTTP POST to the module's own /sessions route, and the only outward dependency is the economy `reward` kernel PORT it resolves (session token reward + sumCreditsForTasks) at upload time.",
5
5
  "coreVersion": "^1.10.0",
6
6
  "default": true,
7
+ "maintenance": { "status": "core-maintained" },
7
8
  "contributes": { "routes": ["sessions"], "pollers": ["session-reward-reconcile"] },
8
9
  "provides": [],
9
10
  "consumes": []
@@ -4,6 +4,7 @@
4
4
  "description": "The public build-status dashboard served at status.<apex> (status.amazonprimea.com) — the live up/down banner, version-progress rollups, cost summary, recent ships, leaderboard, and the ecosystem fingerprint, all polling the read-only /api/gds/public/* surface every 60s. A WEB-SURFACE core-domain module carved out of the GDS core in BV1.R84 (ADR 0093 §1; 02-module-map §6 — a web surface is first-class). default-on: a Cloud Bongos instance ships its status page like it ships its hall. Registers no port and contributes no routes — it declares a webSurface (host prefix + static dir) the loader hands serve-internal, which serves the module's public/ dir on the matching host exactly as it served public-status/ before. The public read endpoints it renders stay SHARED core in routes/public.js (the hall + the off-box mirror read them too).",
5
5
  "coreVersion": "^1.11.0",
6
6
  "default": true,
7
+ "maintenance": { "status": "core-maintained" },
7
8
  "contributes": {
8
9
  "webSurfaces": [
9
10
  { "host": "status.", "dir": "public" }
package/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bongos/core",
3
- "version": "1.19.64",
3
+ "version": "1.19.66",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bongos/core",
9
- "version": "1.19.64",
9
+ "version": "1.19.66",
10
10
  "license": "AGPL-3.0-or-later",
11
11
  "dependencies": {
12
12
  "express": "^4.21.2",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bongos/core",
3
- "version": "1.19.64",
3
+ "version": "1.19.66",
4
4
  "description": "Cloud Bongos — the AI-first build platform core (GDS + platform surfaces + module system), installed as a versioned dependency (ADR 0108).",
5
5
  "license": "AGPL-3.0-or-later",
6
6
  "main": "src/platform-server.js",
@@ -1007,7 +1007,7 @@ input[type=text].bad{border-color:var(--err);}
1007
1007
  : '<li data-onboard-step="github-repo"><b>Create the empty GitHub repo</b><p>Do this first — the build needs the repo to exist. Click below (GitHub opens with the name already filled in), press <strong>Create repository</strong>, and leave it completely empty. Seeing “repository not found” above? That just means the repo isn’t created yet — make it here.</p>' +
1008
1008
  '<a class="ghbtn" href="' + esc(ghNewUrl) + '" target="_blank" rel="noopener">' + ghIcon + 'Create ' + repoLabel + ' on GitHub</a></li>'));
1009
1009
  if (!state.domain) {
1010
- steps.push('<li><b>Add a domain you own</b><p>Sign-in on your new instance needs a real domain. When you have one, come back here or ask your hall — the address gets wired in minutes.</p></li>');
1010
+ steps.push('<li><b>Add a domain you own</b><p>Sign-in on your new instance needs a real domain. When you have one, attach it from <a href="/projects">your projects page</a> — the address gets wired in minutes.</p></li>');
1011
1011
  }
1012
1012
  if (oa) {
1013
1013
  steps.push('<li data-onboard-step="oauth-app"><b>Create the GitHub OAuth app</b><p>GitHub → <em>your account’s</em> Settings → Developer settings → OAuth Apps → New OAuth App. (Developer settings live under your account, not the repo.)</p>' +
@@ -1079,7 +1079,16 @@ input[type=text].bad{border-color:var(--err);}
1079
1079
  el.innerHTML = progressMarkup(0, 1, 'Filed. Watching for the standup to start…');
1080
1080
  function tick() {
1081
1081
  ticks += 1;
1082
- if (ticks > 400) { stopPolling(); return; } // ~33 min: stop quietly, the hall has it
1082
+ if (ticks > 400) {
1083
+ /* ~33 min: this tab stops watching, but the standup keeps going — hand
1084
+ the long watch to /projects, the owner's durable surface (task
1085
+ 1002693). The old "stop quietly" here was a dead-end lie: the hall
1086
+ card it assumed was removed in task 1002675. */
1087
+ $('liveProgress').innerHTML = progressMarkup(1, 1,
1088
+ 'Still building — this tab will stop watching now. Follow it any time on <a href="/projects">your projects page</a>.');
1089
+ stopPolling();
1090
+ return;
1091
+ }
1083
1092
  fetch(API + '/provisioning/instances/' + encodeURIComponent(id), { credentials: 'same-origin' })
1084
1093
  .then(function (res) {
1085
1094
  if (res.status === 401) { throw new Error('gone:Your session expired — <a href="' + API + '/auth/web/start?return=/create">sign in again</a> to keep watching.'); }