@bongos/core 1.19.554 → 1.19.555
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 +20 -20
- package/docs/api/openapi.json +3 -3
- package/docs/api-reference.md +3 -3
- package/docs/design/hall-direction-v2.md +1 -1
- package/docs/design/landing-page-direction-v2.md +1 -1
- package/docs/file-map.md +8 -8
- package/docs/module-api-changelog.md +2 -0
- package/docs/onboarding/diagrams/assertions.json +2 -2
- package/docs/recipes/redteam-patrol.md +3 -3
- package/docs/recipes/work-on-a-task-from-your-dev-box.md +1 -1
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/scripts/gds/gen-diagrams.js +8 -7
- package/src/bongos/routes/live.js +1 -1
- package/src/bongos/routes/public.js +2 -2
- package/src/module-api.js +1 -1
package/.bongos-core.json
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"artifact": "bongos-core",
|
|
3
3
|
"manifest_schema": 1,
|
|
4
4
|
"generator": "scripts/gds/package-core.js",
|
|
5
|
-
"core_version": "1.19.
|
|
6
|
-
"core_contract": "1.19.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.19.555",
|
|
6
|
+
"core_contract": "1.19.555",
|
|
7
|
+
"source_commit": "24fee783e3642be3f89811525120bcc2714f4fe7",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-09-06T16:
|
|
9
|
+
"built_at": "2026-09-06T16:20:21.615Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 443,
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
19
|
"file_count": 2486,
|
|
20
|
-
"tree_sha256": "
|
|
20
|
+
"tree_sha256": "d57c07e4504ac8b16360e27f874cfc39373a7dfc066c854f1da2e7cb84443a6f",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/blocker-review/SKILL.md",
|
|
@@ -1777,12 +1777,12 @@
|
|
|
1777
1777
|
{
|
|
1778
1778
|
"path": "docs/api-reference.md",
|
|
1779
1779
|
"mode": "0000644",
|
|
1780
|
-
"sha256": "
|
|
1780
|
+
"sha256": "41a9d190c9df11d3adba109668508d147d8a148ae4222c2dc6aacf2ea811c7f3"
|
|
1781
1781
|
},
|
|
1782
1782
|
{
|
|
1783
1783
|
"path": "docs/api/openapi.json",
|
|
1784
1784
|
"mode": "0000644",
|
|
1785
|
-
"sha256": "
|
|
1785
|
+
"sha256": "60adc1a2c18e8237b1c7a6d261998aa77d08b0c699231d31551276d8621e5085"
|
|
1786
1786
|
},
|
|
1787
1787
|
{
|
|
1788
1788
|
"path": "docs/architecture.md",
|
|
@@ -1837,12 +1837,12 @@
|
|
|
1837
1837
|
{
|
|
1838
1838
|
"path": "docs/design/hall-direction-v2.md",
|
|
1839
1839
|
"mode": "0000644",
|
|
1840
|
-
"sha256": "
|
|
1840
|
+
"sha256": "80bfef3747395e2e389535a7ad8114c6959c33982a8231a8ece72cfaf43902b2"
|
|
1841
1841
|
},
|
|
1842
1842
|
{
|
|
1843
1843
|
"path": "docs/design/landing-page-direction-v2.md",
|
|
1844
1844
|
"mode": "0000644",
|
|
1845
|
-
"sha256": "
|
|
1845
|
+
"sha256": "332d3820e168f2bea93f6a60dd159fdc9cf57d20e2aa25bcdeb7dff7272f1f60"
|
|
1846
1846
|
},
|
|
1847
1847
|
{
|
|
1848
1848
|
"path": "docs/design/landing-page-direction.md",
|
|
@@ -2647,7 +2647,7 @@
|
|
|
2647
2647
|
{
|
|
2648
2648
|
"path": "docs/file-map.md",
|
|
2649
2649
|
"mode": "0000644",
|
|
2650
|
-
"sha256": "
|
|
2650
|
+
"sha256": "8b756e1acdec79324f026463292134b1e80613f207015d65fe5f1d158476c306"
|
|
2651
2651
|
},
|
|
2652
2652
|
{
|
|
2653
2653
|
"path": "docs/handoff-template.md",
|
|
@@ -2657,7 +2657,7 @@
|
|
|
2657
2657
|
{
|
|
2658
2658
|
"path": "docs/module-api-changelog.md",
|
|
2659
2659
|
"mode": "0000644",
|
|
2660
|
-
"sha256": "
|
|
2660
|
+
"sha256": "4fbdf9b8a0c6ed21e403472dcec14bfc4cad53d58e43dd717e6bea8531a8cb47"
|
|
2661
2661
|
},
|
|
2662
2662
|
{
|
|
2663
2663
|
"path": "docs/modules-contract.md",
|
|
@@ -2702,7 +2702,7 @@
|
|
|
2702
2702
|
{
|
|
2703
2703
|
"path": "docs/onboarding/diagrams/assertions.json",
|
|
2704
2704
|
"mode": "0000644",
|
|
2705
|
-
"sha256": "
|
|
2705
|
+
"sha256": "56de4892dbe0bd388bdf904d25dd6c8ebc6b2f5553e640c761245dbc1e463a92"
|
|
2706
2706
|
},
|
|
2707
2707
|
{
|
|
2708
2708
|
"path": "docs/onboarding/diagrams/puppeteer-config.json",
|
|
@@ -2852,7 +2852,7 @@
|
|
|
2852
2852
|
{
|
|
2853
2853
|
"path": "docs/recipes/redteam-patrol.md",
|
|
2854
2854
|
"mode": "0000644",
|
|
2855
|
-
"sha256": "
|
|
2855
|
+
"sha256": "f6d2bb1da53f03f54080b8e0aec9f63390d3343c32917b64225ac47ae4ba7b42"
|
|
2856
2856
|
},
|
|
2857
2857
|
{
|
|
2858
2858
|
"path": "docs/recipes/search-index-ingestion.md",
|
|
@@ -2902,7 +2902,7 @@
|
|
|
2902
2902
|
{
|
|
2903
2903
|
"path": "docs/recipes/work-on-a-task-from-your-dev-box.md",
|
|
2904
2904
|
"mode": "0000644",
|
|
2905
|
-
"sha256": "
|
|
2905
|
+
"sha256": "c6eebb55d9a77c6bb2bf44e4e47932039c3d8a389126cc324fa74d0e78cdc75c"
|
|
2906
2906
|
},
|
|
2907
2907
|
{
|
|
2908
2908
|
"path": "docs/research/cursor-competitive-analysis.md",
|
|
@@ -7477,12 +7477,12 @@
|
|
|
7477
7477
|
{
|
|
7478
7478
|
"path": "package-lock.json",
|
|
7479
7479
|
"mode": "0000644",
|
|
7480
|
-
"sha256": "
|
|
7480
|
+
"sha256": "04c6a38f5cf60c8912b9254235861cc431f7af898d7ae34924248f34c9f62ac2"
|
|
7481
7481
|
},
|
|
7482
7482
|
{
|
|
7483
7483
|
"path": "package.json",
|
|
7484
7484
|
"mode": "0000644",
|
|
7485
|
-
"sha256": "
|
|
7485
|
+
"sha256": "057cb53bcef464cfe8d189bbc80b9d9860a32c19b20e33a6ae58ce64b1aeb775"
|
|
7486
7486
|
},
|
|
7487
7487
|
{
|
|
7488
7488
|
"path": "public-docs/index.html",
|
|
@@ -7972,7 +7972,7 @@
|
|
|
7972
7972
|
{
|
|
7973
7973
|
"path": "scripts/gds/gen-diagrams.js",
|
|
7974
7974
|
"mode": "0000644",
|
|
7975
|
-
"sha256": "
|
|
7975
|
+
"sha256": "bc3b7c7298d9caa122cbe552bd24630693649b33e4effac3e81ed3bdaf804bc3"
|
|
7976
7976
|
},
|
|
7977
7977
|
{
|
|
7978
7978
|
"path": "scripts/gds/gen-file-map.js",
|
|
@@ -9092,7 +9092,7 @@
|
|
|
9092
9092
|
{
|
|
9093
9093
|
"path": "src/bongos/routes/live.js",
|
|
9094
9094
|
"mode": "0000644",
|
|
9095
|
-
"sha256": "
|
|
9095
|
+
"sha256": "86c0ad1c39d735acae2ee6449a5d99cfa94dd3cbc424cc4e7a089c235384eeaf"
|
|
9096
9096
|
},
|
|
9097
9097
|
{
|
|
9098
9098
|
"path": "src/bongos/routes/llm-cache.js",
|
|
@@ -9122,7 +9122,7 @@
|
|
|
9122
9122
|
{
|
|
9123
9123
|
"path": "src/bongos/routes/public.js",
|
|
9124
9124
|
"mode": "0000644",
|
|
9125
|
-
"sha256": "
|
|
9125
|
+
"sha256": "7265d554a8feeb192a874d8f5ff2fe08af70cd5e7dc999e60b581fa4f5525800"
|
|
9126
9126
|
},
|
|
9127
9127
|
{
|
|
9128
9128
|
"path": "src/bongos/routes/security.js",
|
|
@@ -9177,7 +9177,7 @@
|
|
|
9177
9177
|
{
|
|
9178
9178
|
"path": "src/module-api.js",
|
|
9179
9179
|
"mode": "0000644",
|
|
9180
|
-
"sha256": "
|
|
9180
|
+
"sha256": "aa7e5a37bf8cdacca8bd176ac732662b81d868df50e21930a23517c040882534"
|
|
9181
9181
|
},
|
|
9182
9182
|
{
|
|
9183
9183
|
"path": "src/module-loader/catalog.js",
|
package/docs/api/openapi.json
CHANGED
|
@@ -8222,7 +8222,7 @@
|
|
|
8222
8222
|
"live"
|
|
8223
8223
|
],
|
|
8224
8224
|
"summary": "GET /live",
|
|
8225
|
-
"description": "GET /api/gds/live — SSE stream of
|
|
8225
|
+
"description": "GET /api/gds/live — SSE stream of Bongos state-change nudges for the hall. rank: any-builder — requireBuilder gates anonymous/abuse traffic (defense in depth; the payload leaks nothing). Mirrors the room's task 983 signed-in gate. EventSource carries the gds_session cookie on this same-origin GET, so a signed-in viewer authenticates transparently. NOT module-gated: the hall's live refresh is core to every instance (the done-when is \"live on a game-less boot\"), so it mounts unconditionally in the GDS router.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
8226
8226
|
"x-rank": "any-builder",
|
|
8227
8227
|
"x-source": "src/bongos/routes/live.js",
|
|
8228
8228
|
"responses": {
|
|
@@ -12272,7 +12272,7 @@
|
|
|
12272
12272
|
"public"
|
|
12273
12273
|
],
|
|
12274
12274
|
"summary": "GET /public/cost-summary",
|
|
12275
|
-
"description": "
|
|
12275
|
+
"description": "Bongos task 118: `daily` + `daily_credits` are guaranteed gap-free (one row per day from the earliest event through CURRENT_DATE, server timezone) so the treasury chart's cumulative line carries forward on idle days and always reaches today. The gap-fill is implemented inside db.costSummary() via generate_series + LEFT JOIN. System 1 / task 1345: the same payload now also carries additive by_source / by_tier / savings blocks (existing keys keep their shape) — a pure passthrough; the shaping + the savings-table guard live in costSummary(). rank: public — treasury chart feed.\n\n**Rank:** `public` — No authentication — any caller.",
|
|
12276
12276
|
"x-rank": "public",
|
|
12277
12277
|
"x-source": "src/bongos/routes/public.js",
|
|
12278
12278
|
"responses": {
|
|
@@ -12461,7 +12461,7 @@
|
|
|
12461
12461
|
"public"
|
|
12462
12462
|
],
|
|
12463
12463
|
"summary": "GET /public/recent-shipped",
|
|
12464
|
-
"description": "
|
|
12464
|
+
"description": "Bongos task 191: `?days=7|30|90` restricts to that trailing window; `?days=all` or omitted with no query returns the historical 30-row \"recent\" feed. Any other value falls back to all-time (still capped by the row limit) so a malformed query never produces an empty list. rank: public — recent shipped tasks (windowed).\n\n**Rank:** `public` — No authentication — any caller.",
|
|
12465
12465
|
"x-rank": "public",
|
|
12466
12466
|
"x-source": "src/bongos/routes/public.js",
|
|
12467
12467
|
"responses": {
|
package/docs/api-reference.md
CHANGED
|
@@ -340,7 +340,7 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/<redacted>
|
|
|
340
340
|
|
|
341
341
|
| Method | Path | Rank | Body | Description |
|
|
342
342
|
|---|---|---|---|---|
|
|
343
|
-
| GET | `/api/bongos/live` | `any-builder` | — | GET /api/gds/live — SSE stream of
|
|
343
|
+
| GET | `/api/bongos/live` | `any-builder` | — | GET /api/gds/live — SSE stream of Bongos state-change nudges for the hall. |
|
|
344
344
|
|
|
345
345
|
## `llm-cache` (2)
|
|
346
346
|
|
|
@@ -493,14 +493,14 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/<redacted>
|
|
|
493
493
|
| GET | `/api/bongos/public/blockers/:id` | `public` | — | Public blocker resolver (task 654) — same minimal-projection posture as the idea resolver. |
|
|
494
494
|
| GET | `/api/bongos/public/bounty-table` | `public` | — | V3.R65 task 284: red-team bounty payout table by severity. |
|
|
495
495
|
| GET | `/api/bongos/public/branding` | `public` | — | the client-safe branding projection (R56 task 1195, ADR 0062 §3). |
|
|
496
|
-
| GET | `/api/bongos/public/cost-summary` | `public` | — |
|
|
496
|
+
| GET | `/api/bongos/public/cost-summary` | `public` | — | Bongos task 118: `daily` + `daily_credits` are guaranteed gap-free (one row per day from the earliest event through CURRENT_DATE, server … |
|
|
497
497
|
| GET | `/api/bongos/public/estimation-drift` | `public` | — | est-vs-actual aggregate. |
|
|
498
498
|
| GET | `/api/bongos/public/grades` | `public` | — | PMS-V2 task 197: rolling 7d quality-grade tile + 30d trend for the dashboard. |
|
|
499
499
|
| GET | `/api/bongos/public/ideas/:id` | `public` | — | Public idea resolver (task 654) — the open-web counterpart to the hall's authenticated /inbox/:id. |
|
|
500
500
|
| GET | `/api/bongos/public/leaderboard` | `public` | — | PMS-V2 task 188: each row now carries an `achievements` string[] (top 5 unlocked IDs by sort_order) so the dashboard can render inline em… |
|
|
501
501
|
| GET | `/api/bongos/public/modules` | `public` | — | the client-safe feature-module set (R54 task 1193, ADR 0062 §4). |
|
|
502
502
|
| GET | `/api/bongos/public/progress` | `public` | — | version progress aggregate. |
|
|
503
|
-
| GET | `/api/bongos/public/recent-shipped` | `public` | — |
|
|
503
|
+
| GET | `/api/bongos/public/recent-shipped` | `public` | — | Bongos task 191: `?days=7\|30\|90` restricts to that trailing window; `?days=all` or omitted with no query returns the historical 30-row "r… |
|
|
504
504
|
| GET | `/api/bongos/public/ref-ids` | `public` | — | The id allow-list the doc-ref linkifier (scripts/gds/linkify-refs.js) and its CI gate consult to decide which bare "#NNN" are real refere… |
|
|
505
505
|
| GET | `/api/bongos/public/repo-health` | `public` | — | V3.R91 task 352: repo-health substrate. |
|
|
506
506
|
| GET | `/api/bongos/public/repo-info` | `public` | — | GitHub URL bases for the deployed checkout (V3.R13-followup-2 task 411). |
|
|
@@ -116,7 +116,7 @@ Five things were reconciled **between** the archetypes, since the builders ran i
|
|
|
116
116
|
satisfied the "at least one" rule. All five now point at `nav-items-<group>`. **This is a real addition the build
|
|
117
117
|
inherits, not a mock artefact.**
|
|
118
118
|
- **The goal-detail data was made true.** An earlier pass inferred the titles of tasks 1003303 to 1003309 and
|
|
119
|
-
showed one as shipped. Nothing in goal 1000081 has shipped; all eight rows now carry their real
|
|
119
|
+
showed one as shipped. Nothing in goal 1000081 has shipped; all eight rows now carry their real Bongos titles and
|
|
120
120
|
statuses, and the Completed pane renders its honest empty state, which also gives the round an empty case inside
|
|
121
121
|
an otherwise populated page.
|
|
122
122
|
- **An invented task id collided with a real one** on goal 1000064's card. All seven of that goal's tasks are
|
|
@@ -6,7 +6,7 @@ This document records the landing composition round: what it had to do, how it w
|
|
|
6
6
|
|
|
7
7
|
## 1. What this round had to do
|
|
8
8
|
|
|
9
|
-
Three MATERIALLY different full-page compositions of `cloudbongos.com/` inside the approved world, as real HTML mocks under `docs/design/mocks/landing/v{1,2,3}.html` with a contact sheet `landing-sheet.html`, both modes, desktop and a 390 frame. Every version carries: two equal doors that read as one claim; the bongo pair as the mark; the platform's proof (real
|
|
9
|
+
Three MATERIALLY different full-page compositions of `cloudbongos.com/` inside the approved world, as real HTML mocks under `docs/design/mocks/landing/v{1,2,3}.html` with a contact sheet `landing-sheet.html`, both modes, desktop and a 390 frame. Every version carries: two equal doors that read as one claim; the bongo pair as the mark; the platform's proof (real Bongos surfaces, real project orbs, nothing invented); the hall link in the footer; the apex-only regions marked so the shared `index.html` still serves a child instance's plain landing. The taste pre-flight applies (hero at most four text elements, headline at most two lines, lede at most twenty words, nav on one line at most 80px, one eyebrow per three sections at most, no three-equal-card row, no div-built fake screenshots, no em dash or emoji in visible copy, real imagery or a labeled placeholder, motion motivated and reduced-motion safe).
|
|
10
10
|
|
|
11
11
|
The owner's steer from the world round, applied here: (1) the **animated chrome background** is the named signature interaction, code-led, one authored moment, dead under reduced motion, with at least one version whose forms are bongo-shaped; (2) the **light-mode decision** is put to the owner explicitly with the three compositions (rebuild light to the dark standard, or ship the landing dark-only while the hall and the hub keep both modes).
|
|
12
12
|
|
package/docs/file-map.md
CHANGED
|
@@ -132,7 +132,7 @@
|
|
|
132
132
|
│ ├── status-ui/ ← CORE-DOMAIN WEB-SURFACE carve (BV1.R84, default-on): the public status dashboard at status.<apex>, moved from public-status/. NO routes/db/port — declares contributes.webSurfaces:[{host:"status.",dir:"public"}], served by the loader web-surface seam (moduleWebSurfaces → serve-internal). CLAUDE.md, module.json, public/{index.html,status.js,style.css,cursors/,snapshots/}.
|
|
133
133
|
│ ├── hall-ui/ ← CORE-DOMAIN WEB-SURFACE carve (BV1.R85, default-on): the authenticated builders' hall at builders.<apex>, moved from public-builders/ (~13k LOC, the largest). NO routes/db/port — declares contributes.webSurfaces:[{host:"builders.",dir:"public"}] for discovery, but UNLIKE status-ui keeps its DEDICATED serving block in serve-internal (the /builders shim + canonical redirects + citizen/Archon page gates + asset-stamping + hall-widget injection), partitioned out of the generic web-surface loop and served from BUILDERS_DIR. CLAUDE.md, module.json, public/{index.html,builders.js,style.css,work,watch,harbor,gate,pair,settings,ranks,sessions,primer,diagrams,atlas,...}.{html,js},cursors/,chime.wav. Four ARCHETYPE sheets sit beside the per-page ones: `record.css` (the task + idea records, task 1003305), `room.css` (the READING ROOMS — the primer + the diagrams index, task 1003306: the reading measure and rhythm, the table of contents, the progress hairline and the framed figure diagram-viewer.js upgrades on both pages), `oversight.css` (the OVERSIGHT family — government, watch, harbor, gate, task 1003469: the row, the figure band inside a panel, the group head, the inline form, the grant toggle and the shared confirm modal; named oversight because the vocabulary wall bans "governance" on the government surface) and `panel.css` (the PANEL family — settings, profile, pair, not-ready, task 1003308: the row, the switch, the field with its label above, the chip control, the four voices and the sign-in gate; the hall's my-projects page was DELETED in the same task — "my projects" is the hub's user-level page, and the hall keeps no link or redirect). A page sheet then holds only what one page has and the others do not — `primer.css` the acknowledge gate, `diagrams.css` the legend strip, `gate.css` the hold reasons and file chips, `watch.css` the severities, the report reader and the grade trend, `settings.css` the rail layout, the group head, the token ladder and the voices grid, `profile.css` the identity band and the shelf, `pair.css` the device row, `people.css` the directory's identity cell (task 1003470 made the legacy door `/scouting` ship the same body and script as `/people`; task 1003440 then deleted the door — `scouting.html` and `scouting.states.json` are gone and the URL 301s to `/people`).
|
|
134
134
|
│ ├── lifecycle/ ← CORE-DOMAIN carve (BV1.R86, default-on): the build state machine — tasks · claims · versions · done-when · goals · dependencies · claim→ship→grade→credit · github-push + merge-lock + conflict-resolve + publish-reconciler. The LAST, most-coupled carve; registers the `lifecycle` kernel port (createTask, classifyTaskKind, tallyPeerVotes, work-tracking reads). CLAUDE.md, module.json, routes/{tasks,claims,versions,done-when,goals,dependencies,gate-approvals,analytics}.js, lifecycle.js, github-push.js, merge-lock.js, conflict-resolve.js, publish-reconciler.js, task-visuals.js + task-visual-db.js + routes/visuals.js (the optional ship-time visual, task 1003109 — the route file is NOT named task-*.js on purpose; see the module CLAUDE.md).
|
|
135
|
-
│ ├── copy-desk/ ← CORE-DOMAIN module (task 1003113 / R02 of goal 1000074, default-on): the COPY half of the design contract — ADR 0081 gave design TOKENS a repo-owned source of truth, text had none. Owns the FLAG (anyone in any role marks a string or a whole surface as needing an artist's attention, with a reason required in BOTH the route and a CHECK constraint) and the QUEUE an artist reads it from. READS R01's committed registry (docs/copy-registry.json, generated by scripts/gds/copy-inventory.js) and never writes it. NO LIVE CMS is the hard non-goal: no column here could hold replacement text, and copy_no_cms.mjs pins that. Key is `copy-desk`, not `copy` — the branding contract already owns a `copy` block, so the bare word reds the "core carries no module code" fitness check. R03 (task 1003114, ADR 0233) added the PROPOSAL: an artist writes the replacement wording and it becomes a
|
|
135
|
+
│ ├── copy-desk/ ← CORE-DOMAIN module (task 1003113 / R02 of goal 1000074, default-on): the COPY half of the design contract — ADR 0081 gave design TOKENS a repo-owned source of truth, text had none. Owns the FLAG (anyone in any role marks a string or a whole surface as needing an artist's attention, with a reason required in BOTH the route and a CHECK constraint) and the QUEUE an artist reads it from. READS R01's committed registry (docs/copy-registry.json, generated by scripts/gds/copy-inventory.js) and never writes it. NO LIVE CMS is the hard non-goal: no column here could hold replacement text, and copy_no_cms.mjs pins that. Key is `copy-desk`, not `copy` — the branding contract already owns a `copy` block, so the bare word reds the "core carries no module code" fitness check. R03 (task 1003114, ADR 0233) added the PROPOSAL: an artist writes the replacement wording and it becomes a Bongos task carrying a fenced copy-proposal patch — no row, NO second migration (a proposals table is the forbidden column with extra steps), and scripts/gds/copy-apply.js lands it as a real diff under a claim. CLAUDE.md, module.json, registry.js, flags.js, proposals.js, routes/copy-desk.js, migrations/copy_desk_001_flags.sql, tests/{copy_flags,copy_queue,copy_no_cms,copy_proposals}.mjs. Its hall surface lives with hall-ui (public/copy-desk.{html,js,css}), per the one-key-per-web-surface precedent.
|
|
136
136
|
│ ├── ui-design/ ← CORE-DOMAIN module (task 1003324 / ADR 0197, default-on): the design capability every builder on every instance gets — ships METHOD, never a world. Absorbs ADR 0081's layer: adapters/{claude-design,figma}/index.js (moved from src/ui/adapters/), scripts/{design-sync,figma-design-sync,validate-design}.js (moved from scripts/gds/, which keeps thin shims), docs/design-contract.md (moved from docs/). Declaration-only: contributes.skills design (the /design playbook, new) + design-sync + figma-design-sync; no routes/port/migrations, so disabling it touches no served surface. CLAUDE.md separates the platform FLOORS (the Fifteen Rule, the dark twins, no page :root, the 24px floor, AA in both modes, the kill switch) from the instance's WORLD (its packs + DESIGN.md). kit/ (task 1003320) is the look-before-you-ship kit: lib.js (the floors, the states/probes contracts, the action + expectation vocabularies, the WCAG maths, the stub spawner), serve.js (any surface through the doorway's real transforms + fixtures/), render.js (states × 1440/390/320 × dark/light, audited), probe.js (PASS/FAIL contracts), check-mock.js (platform rules + the instance's DESIGN.md taste bans, then the detector), tells.js (task 1003329 / ADR 0223: the anti-pattern detector as two tiers — floors FAIL, craft tells WARN, kit-ignore waivers per file; the rendered twins live in lib.js factsInPage), contrast.js + png.js; a page's <page>.states.json / <page>.probes.json sit BESIDE the surface (modules/public-landing/public/, modules/hall-ui/public/). Recipe: docs/recipes/ui-look-before-you-ship.md. skills/ (task 1003321 / ADR 0198) is the vendoring policy: policy.json (licence allowlist, verdicts that may land, sidecar fields, preamble markers), PREAMBLE.md (the platform preamble every vendored SKILL.md opens with), README.md (the roster — both origins scanned dangerous on 2026-08-28, landed as rebuild specs; nothing vendored — and the landing recipe); a landable copy goes under skills/vendor/<name>/ with PROVENANCE.md + LICENSE and is materialised into an instance's .claude/skills/ by claude-materialize.js step 1b. skills/<name>/ (task 1003325 / ADR 0220) are the in-house rebuilds from the specs, first-party and counted: design-taste-frontend (the default taste skill), design-taste-frontend-v1 (the earlier generation, kept distinct), high-end-visual-design (the polish pass), redesign-existing-projects (the in-place upgrade); each opens with the same preamble and carries a "Rebuilt from" section instead of a sidecar. impeccable/ (task 1003326 / ADR 0221) is the design-craft method as ONE skill with sub-commands: SKILL.md (the router, the menu, the craft floor, the bounded finish) + reference/<sub-command>.md (eighteen playbooks, one loaded per request); no hooks, no bypass agent, no telemetry, no live server. minimalist-ui/, industrial-brutalist-ui/, gpt-taste/, stitch-design-taste/ (task 1003327 / ADR 0230) are the four looks, composition grammars with no colours of their own: the palette is the instance's pack and the texture is a named entry in styles/; a substrate is an archetype that still ships both modes, gpt-taste's selection is derived from the route rather than rolled, and stitch-design-taste writes a DESIGN.md-shaped contract document whose thirteen are transcribed from the pack. image-to-code/, imagegen-frontend-web/, imagegen-frontend-mobile/, brandkit/ (task 1003328 / ADR 0222) are the image family under the hero-only rule: plates and hero objects only, the pair (JPEG dark plate + WebP alpha cutout) with a <file>.json sidecar beside each, through the instance's art pipeline key; the grove specimen's styles/grove/assets/ is the worked example. style/ (task 1003475 / ADR 0231) is the module's first FIRST-PARTY skill (no upstream, so a `## First party` section instead of `## Rebuilt from`): the /style session in which an owner authors their own look in four bounded steps, rendering the nearest library entries before asking, drafting inside the contract, retuning by measurement, and handing over the one-step adoption without ever writing config/branding.json. styles/ (task 1003323 / ADR 0219) is the style library: <name>/pack.json (the theme.ui overlay, exactly the fifteen) + DESIGN.md (the look's derived recipes, thirteen in lockstep with the pack) + mock.html (the specimen); chrome-world (pinned to the neutral pack), expedition, grove, blueprint (the first cool look, authored through /style at task 1003475); STYLE=<name> on the kit lays a look over the instance's pack through GDS_BRANDING_FILE; tests/ui_design_styles.mjs runs the world/cosmos/hall token suites once per alternate (UI_DESIGN_PACK). config/design-tokens.* + design-sources.json STAY in config/ as the host boundary; public-landing keeps its own key (first customer, not owner).
|
|
137
137
|
│ ├── character-anim/ ← consistent-character generative animation (ADR 0088) — graded painterly frame sets + manifest, the otb-character-review skill. CLAUDE.md, module.json.
|
|
138
138
|
│ ├── provisioning/ ← stands up + operates a Cloud Bongos instance's own infra (server/DB/domain/DNS/TLS) via the API (ADR 0111); web-tier request+state only, no cloud tokens — a separate control-plane runner drains the intents. Distinct from the `hosting` module (ADR 0092), which brokers compute workloads. CLAUDE.md, module.json.
|
|
@@ -373,7 +373,7 @@ tests/
|
|
|
373
373
|
<!-- BEGIN GENERATED FILE-MAP .claude/skills/ (scripts/gds/gen-file-map.js — do not hand-edit; notes live in docs/file-map.notes.json) -->
|
|
374
374
|
```
|
|
375
375
|
.claude/skills/
|
|
376
|
-
├── blocker-review/SKILL.md ← /blocker-review — daily review of open
|
|
376
|
+
├── blocker-review/SKILL.md ← /blocker-review — daily review of open Bongos blockers (resolve / escalate / note); Metic+
|
|
377
377
|
├── blocker-solve/SKILL.md ← /blocker-solve N — drive ONE blocker to done: do the doable parts, hand back owner-only steps, verify, auto-resolve (auto-promotes waiters); Metic+
|
|
378
378
|
├── bug-triage/SKILL.md ← /bug-triage — daily walk through open kind=bug tasks (batch-cluster near-dups, merge / won't-fix); the idea-triage counterpart built on the new tasks.merge primitive (task 1001478); Metic+
|
|
379
379
|
├── builder-backup/SKILL.md ← /builder-backup — check DB backup status or trigger a fresh local dump before risky changes (migrations, destructive SQL); no SSH required
|
|
@@ -384,28 +384,28 @@ tests/
|
|
|
384
384
|
├── builder-end/SKILL.md ← /builder-end — safely close out a session: resolve the claim (ship/release) + clean-git verify + worktree teardown + (on a dev box) offer to close the box; the bookend to /builder-start, and the own-scoped session close-out that /builder-exit redirects non-Archons to
|
|
385
385
|
├── builder-exit/SKILL.md ← /builder-exit — gracefully offboard (or reactivate) a builder: release claims, seal session logs, drop rank to xenos
|
|
386
386
|
├── builder-key/SKILL.md ← /builder-key — list API-key status, render the visual 'key needed' callout for anything missing, drive the UI-first Settings add-flow + re-sync/confirm; never accepts a key pasted in chat (task 1391)
|
|
387
|
-
├── builder-reauth/SKILL.md ← /builder-reauth — refresh an expired
|
|
387
|
+
├── builder-reauth/SKILL.md ← /builder-reauth — refresh an expired Bongos CLI session the UI-first way (no terminal Device Flow)
|
|
388
388
|
├── builder-redteam/SKILL.md ← /builder-redteam — file a red-team / vulnerability report (severity, target, repro) to /api/gds/security
|
|
389
389
|
├── builder-release/SKILL.md ← /builder-release — abandon a claim (task returns to ready, no credits)
|
|
390
390
|
├── builder-sequence/SKILL.md ← /builder-sequence N — walk a whole dependency chain from one kickoff (claim → build → ship → next), one claim at a time; halts and reports on migration/security/protected-path/thin-spec/judgement tasks (scripts/gds/sequence.js, task 1002484)
|
|
391
|
-
├── builder-setup/SKILL.md ← /builder-setup — one-time GitHub Device Flow auth (
|
|
391
|
+
├── builder-setup/SKILL.md ← /builder-setup — one-time GitHub Device Flow auth (Bongos); multi-builder-on-one-device gate
|
|
392
392
|
├── builder-ship/SKILL.md ← /builder-ship — record + award credits (runs touches[] scanner; warns on drift; sandbox-first review gate on dev boxes, ADR 0046)
|
|
393
393
|
├── builder-stage/SKILL.md ← /builder-stage — stage work on the builder's sandbox (sandbox-<login>) for browser review before shipping (#927, ADR 0046)
|
|
394
394
|
├── builder-start/SKILL.md ← /builder-start — list claimable tasks (parallel-safe vs active claims)
|
|
395
395
|
├── builder-sync/SKILL.md ← /builder-sync — 'sync now': re-run the box source-fetch on demand so a freshly-claimed task's code lands within seconds, re-scoped to the active claim (BV1.R96, ADR 0148)
|
|
396
396
|
├── close-box/SKILL.md ← /close-box — tear down the dev box you're working on, from inside the box terminal (POST /box/close)
|
|
397
397
|
├── design/SKILL.md ← /design — the UI design session: the operating playbook for ui-discipline work on ANY instance (load the instance's pack + DESIGN.md first, look before you ship, build inside the platform floors, ship the tests with the UI); routed from a `ui` claim via discipline-modes.json; shipped by the ui-design module (task 1003324, ADR 0197)
|
|
398
|
-
├── design-sync/SKILL.md ← /design-sync — export repo design tokens + surfaces into Claude Design (token-preview bundle) and land generated UI code back as a
|
|
398
|
+
├── design-sync/SKILL.md ← /design-sync — export repo design tokens + surfaces into Claude Design (token-preview bundle) and land generated UI code back as a Bongos task (ADR 0081)
|
|
399
399
|
├── dev/SKILL.md ← /dev — engineering-session playbook for engineer-discipline tasks; the default understand→scoped-change→verify→ship loop made explicit ([#1272](https://example.com/builders#/task/1272))
|
|
400
400
|
├── feedback/SKILL.md ← /feedback — pull the latest Bongos feedback bundle (prompt.md + screenshot file paths) into a Claude Code session; backed by scripts/gds/feedback-latest.js (BV1.R13, ADR 0087)
|
|
401
401
|
├── figma-design-sync/SKILL.md ← sync UI-surface tokens/surfaces with Figma (push a frame plan, land a designer's Code Connect / MCP snapshot edit back as code) — the ADR 0081 human escape hatch; distinct from otb-figma-sync's pixel-art tile review (task 2048)
|
|
402
|
-
├── fix-task/SKILL.md ← /fix-task N — claim, fix (test-first), verify, and ship a single
|
|
402
|
+
├── fix-task/SKILL.md ← /fix-task N — claim, fix (test-first), verify, and ship a single Bongos task by id end to end; defers to /builder-claim + /builder-ship for their own mechanics
|
|
403
403
|
├── goal-create/SKILL.md ← /goal-create — plan and create ONE goal (the module-scoped workspace between version and criteria, ADR 0086) in one session: <redacted>, scope wall, 2-4 criteria, seed tasks; also the auto-pickup when a task is created with no goal to live in (goal_advisory); Metic+ (Archon for a protected-module scope)
|
|
404
404
|
├── goal-review/SKILL.md ← /goal-review — walk the criterion review queue: each auto-flagged 'met — pending review' criterion gets confirm / reject / defer; confirming a goal's last criterion auto-achieves it (ADR 0086 §6); Metic+
|
|
405
405
|
├── grade-audit/SKILL.md ← /grade-audit — manual-cadence accountability sweep: override ledger (shipped-despite-fail, infra vs real, un-requested confirms named), dropped blocker/major findings on passes queued via capture.js with the advisory-Narc filter, runtime-blindness false-pass spot-check, outage roll-up → /grader-health; describes and queues only, never confirms (ADR 0162, task 1002657)
|
|
406
406
|
├── grade-recover/SKILL.md ← /grade-recover N — the 'my grade failed, now what' loop: diagnose outage vs fabricated fail vs genuine fail from the persisted grade, then run the right recovery (--regrade or the auditable override-request); adds no ship-path gate (ADR 0162, task 1002655)
|
|
407
407
|
├── grader-health/SKILL.md ← /grader-health — read-only grader health check: outage runs (n_unavailable streaks, outage-vs-rejection confirmation), pass-rate drift vs baseline, per-grade cost anomalies, stale model pins; emits exact --regrade remediation lines; optional --probe live calibration (Metic+, paid) (task 1002656)
|
|
408
|
-
├── idea-triage/SKILL.md ← /idea-triage — daily walk through the
|
|
408
|
+
├── idea-triage/SKILL.md ← /idea-triage — daily walk through the Bongos idea_inbox (promote / discard / merge); Metic+
|
|
409
409
|
├── ideate/SKILL.md ← /ideate — ideation-session playbook for ideator-discipline tasks; inverts the loop (human drives, Claude is the sounding board) ([#1267](https://example.com/builders#/task/1267))
|
|
410
410
|
├── merge-mode/SKILL.md ← /merge-mode — manual fallback for the auto-merge: land every confirmed task (merge + smoke + deploy)
|
|
411
411
|
├── new-project/SKILL.md ← /new-project — the canonical zero-to-live onboarding runbook for a new STANDALONE instance (name+address → init → scaffold → provision → OAuth+verified-secret+sign-in → verify → brand); the CLI + hall wizard are forms over it ([#1981](https://example.com/builders#/task/1981))
|
|
@@ -415,7 +415,7 @@ tests/
|
|
|
415
415
|
├── otb-figma-sync/SKILL.md ← /otb-figma-sync — push tiles into the Example Figma file as a review canvas
|
|
416
416
|
├── otb-tile-generate/SKILL.md ← /otb-tile-generate — run the pixel-art pipeline (generate world tiles/sprites)
|
|
417
417
|
├── paint/SKILL.md ← /paint — art-session playbook for artist-discipline tasks; show-first/low-text, drives the otb-* pixel-art pipeline underneath ([#1269](https://example.com/builders#/task/1269))
|
|
418
|
-
├── planning-session/SKILL.md ← /planning-session — run a structured planning session for an upcoming version (set criteria, brainstorm, rank, seed
|
|
418
|
+
├── planning-session/SKILL.md ← /planning-session — run a structured planning session for an upcoming version (set criteria, brainstorm, rank, seed Bongos); Metic+
|
|
419
419
|
├── priority-session/SKILL.md ← /priority-session — a trusted builder answers plain-speech questions; the answers reweight the idea_inbox + suggest what to build next
|
|
420
420
|
├── read-session-export/SKILL.md ← /read-session-export — read a Claude Code /export zip fast (prompts + thinking + tool calls → stdout); reads the existing export, doesn't make one. Backed by scripts/gds/read-session-export.js
|
|
421
421
|
├── recall/SKILL.md ← /recall — one-call project-knowledge search across repo docs + DB prose (tasks, learnings, session logs)
|
|
@@ -1557,5 +1557,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
|
|
|
1557
1557
|
landed since 1.19.552 with no explicit bump. run 34044208907. (task 1002620)
|
|
1558
1558
|
1.19.554 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
1559
1559
|
landed since 1.19.553 with no explicit bump. run 34044540046. (task 1002620)
|
|
1560
|
+
1.19.555 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
1561
|
+
landed since 1.19.554 with no explicit bump. run 34045075186. (task 1002620)
|
|
1560
1562
|
---------------------------------------------------------------------------
|
|
1561
1563
|
```
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
},
|
|
75
75
|
"drachmae_karma": {
|
|
76
76
|
"diagram": "03-drachmae-karma",
|
|
77
|
-
"_comment": "Pieces of 03-drachmae-karma that are gated on a backing
|
|
77
|
+
"_comment": "Pieces of 03-drachmae-karma that are gated on a backing Bongos task. A piece is LIVE iff its task is 'shipped'. live_tasks must ALL be shipped live; pending_tasks must NOT yet be shipped. Rebuilt automatically by scripts/gds/gen-diagrams.js from the authenticated /tasks/:id status; the diagram is regenerated in lockstep, so this slice is a redundant backstop the drift checker verifies. D_SHIP (credit_log trigger) and D_ACH (achievement bonuses) have no task gate and are always LIVE. achievements_seeded mirrors 03's 'N seeded' label, counted from the achievements seed INSERTs in migrations/.",
|
|
78
78
|
"live_tasks": [
|
|
79
79
|
{
|
|
80
80
|
"id": 284,
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
},
|
|
108
108
|
"architecture": {
|
|
109
109
|
"diagram": "04-architecture",
|
|
110
|
-
"_comment": "Pieces of 04-architecture gated on a backing
|
|
110
|
+
"_comment": "Pieces of 04-architecture gated on a backing Bongos task. A piece is LIVE iff its task is 'shipped'; live_tasks must ALL be shipped, pending_tasks must NOT yet be. Rebuilt by scripts/gds/gen-diagrams.js in lockstep with the diagram, so this is the drift checker's backstop. The device/box/server/GitHub topology is structural (not task-gated); these are the LIVE/PLANNED markers. MEMORY layer (ADR 0024): 273 schema / 274 sync-on-ship / 275 pull-on-start / 276 isolation. DEV BOX + box→prod: 904/774 (on-off + browser terminal), 897 (sandbox preview), 919 (scoped box token), 1025 (server-mediated publish), 1028 (GitHub App push credential), 1027 (end-to-end hardware-verify). The deploy leg is the standalone AUTO-PULL (ADR 0108/0129), not a task-gated GitHub-Actions CI job, so 859 is intentionally absent. Supersedes the old server_repo_memory + dev_box slices.",
|
|
111
111
|
"live_tasks": [
|
|
112
112
|
{
|
|
113
113
|
"id": 273,
|
|
@@ -46,9 +46,9 @@ clean. ADR 0188 §2.1.
|
|
|
46
46
|
|
|
47
47
|
### Filing from CI (optional)
|
|
48
48
|
|
|
49
|
-
A CI runner has no
|
|
49
|
+
A CI runner has no Bongos session, so by default the scheduled run **reports but
|
|
50
50
|
cannot file**: findings go to the Actions job summary and the job exits 2. To let
|
|
51
|
-
it file, set the repo secret **`GDS_PATROL_SESSION`** to a
|
|
51
|
+
it file, set the repo secret **`GDS_PATROL_SESSION`** to a Bongos CLI session JSON
|
|
52
52
|
(`{"token":…,"api_base":…}`) for a builder holding `security.report.file`; the
|
|
53
53
|
workflow writes it to the session path `instance-config` resolves and the patrol
|
|
54
54
|
files normally. This is opt-in on purpose — the patrol must not *require* a
|
|
@@ -75,7 +75,7 @@ being broken.
|
|
|
75
75
|
the dependency + pin checks still run. The scheduled lane installs it itself —
|
|
76
76
|
version-pinned and checksum-verified, the same binary and digest the unit gate
|
|
77
77
|
uses, rather than a mutable action tag (the tj-actions lesson).
|
|
78
|
-
- A
|
|
78
|
+
- A Bongos session (the normal builder token) for `--file`; dry runs need nothing.
|
|
79
79
|
`--file` preflights it, so a sessionless run prints its findings and says it
|
|
80
80
|
could not file them — it never drops into the CLI's interactive re-auth wall,
|
|
81
81
|
which in a cron log is indistinguishable from a crash.
|
|
@@ -42,7 +42,7 @@ fault ([ADR 0055](../adr/<redacted>.md)):
|
|
|
42
42
|
cron; log at `/tmp/box-source-fetch.log`). `/builder-sync` runs the same fetch
|
|
43
43
|
on demand.
|
|
44
44
|
- **If a remote git op says `could not read Username`, or the sync log shows
|
|
45
|
-
401:** the box's
|
|
45
|
+
401:** the box's Bongos session expired. Run `/builder-reauth`, then
|
|
46
46
|
`/builder-sync`. That is the whole fix.
|
|
47
47
|
|
|
48
48
|
The box writes these same facts to `/workspace/CLAUDE.local.md` on every sync, so
|
package/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bongos/core",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.555",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@bongos/core",
|
|
9
|
-
"version": "1.19.
|
|
9
|
+
"version": "1.19.555",
|
|
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.
|
|
3
|
+
"version": "1.19.555",
|
|
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",
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
//
|
|
24
24
|
// The 2 CONCEPTUAL diagrams (03-drachmae-karma, 04-architecture) used to be
|
|
25
25
|
// hand-authored and only flagged on drift. As of #436 they are auto-generated
|
|
26
|
-
// too: each feature-piece is LIVE iff its backing
|
|
26
|
+
// too: each feature-piece is LIVE iff its backing Bongos task is 'shipped', so their
|
|
27
27
|
// LIVE/PLANNED labels + edge styles are driven by live data and never need a
|
|
28
28
|
// hand-fix. CAVEAT — they reduce to the AUTHENTICATED /tasks/:id status, so when
|
|
29
|
-
// no
|
|
29
|
+
// no Bongos session is available (headless run, no creds) facts.gatherFacts returns
|
|
30
30
|
// conceptual=null and this generator SKIPS 03/04 (leaving the files untouched)
|
|
31
31
|
// rather than emit wrong data. The 3 mechanical diagrams have no such dependency
|
|
32
32
|
// and always regenerate. The drift checker remains as a belt-and-braces backstop.
|
|
@@ -336,7 +336,7 @@ function drachmaeKarmaMmd(f) {
|
|
|
336
336
|
// Merges the old 04-server-repo-memory (the three layers) + 06-dev-box (the box
|
|
337
337
|
// → prod ship flow) into one map (task 1059), collapsing the SERVER they both
|
|
338
338
|
// drew. Conceptual like 03: every feature-piece + flow edge is LIVE/solid iff its
|
|
339
|
-
// backing
|
|
339
|
+
// backing Bongos task is 'shipped', dotted/PLANNED otherwise — so the map is an
|
|
340
340
|
// honest snapshot that flips itself as pieces ship (or regresses if one is
|
|
341
341
|
// reopened). Pieces → live task ids:
|
|
342
342
|
// memory layer : 273 schema · 274 sync-on-ship · 275 pull-on-start · 276 isolation
|
|
@@ -506,7 +506,7 @@ function rebuildAssertions(prev, f) {
|
|
|
506
506
|
next.architecture = {
|
|
507
507
|
diagram: '04-architecture',
|
|
508
508
|
_comment:
|
|
509
|
-
"Pieces of 04-architecture gated on a backing
|
|
509
|
+
"Pieces of 04-architecture gated on a backing Bongos task. A piece is LIVE iff its task is 'shipped'; live_tasks must ALL be shipped, pending_tasks must NOT yet be. Rebuilt by scripts/gds/gen-diagrams.js in lockstep with the diagram, so this is the drift checker's backstop. The device/box/server/GitHub topology is structural (not task-gated); these are the LIVE/PLANNED markers. MEMORY layer (ADR 0024): 273 schema / 274 sync-on-ship / 275 pull-on-start / 276 isolation. DEV BOX + box→prod: 904/774 (on-off + browser terminal), 897 (sandbox preview), 919 (scoped box token), 1025 (server-mediated publish), 1028 (GitHub App push credential), 1027 (end-to-end hardware-verify). The deploy leg is the standalone AUTO-PULL (ADR 0108/0129), not a task-gated GitHub-Actions CI job, so 859 is intentionally absent. Supersedes the old server_repo_memory + dev_box slices.",
|
|
510
510
|
live_tasks: arch.live_tasks,
|
|
511
511
|
pending_tasks: arch.pending_tasks,
|
|
512
512
|
};
|
|
@@ -517,10 +517,11 @@ function rebuildAssertions(prev, f) {
|
|
|
517
517
|
|
|
518
518
|
// 03-drachmae-karma — bounty + karma pieces (D_SHIP/D_ACH have no task gate).
|
|
519
519
|
const dk = split([284, 286, 282, 245, 248, 246]);
|
|
520
|
-
next.drachmae_karma =
|
|
520
|
+
next.drachmae_karma = {
|
|
521
|
+
...next.drachmae_karma,
|
|
521
522
|
diagram: '03-drachmae-karma',
|
|
522
523
|
_comment:
|
|
523
|
-
"Pieces of 03-drachmae-karma that are gated on a backing
|
|
524
|
+
"Pieces of 03-drachmae-karma that are gated on a backing Bongos task. A piece is LIVE iff its task is 'shipped'. live_tasks must ALL be shipped live; pending_tasks must NOT yet be shipped. Rebuilt automatically by scripts/gds/gen-diagrams.js from the authenticated /tasks/:id status; the diagram is regenerated in lockstep, so this slice is a redundant backstop the drift checker verifies. D_SHIP (credit_log trigger) and D_ACH (achievement bonuses) have no task gate and are always LIVE. achievements_seeded mirrors 03's 'N seeded' label, counted from the achievements seed INSERTs in migrations/.",
|
|
524
525
|
};
|
|
525
526
|
next.drachmae_karma.live_tasks = dk.live_tasks;
|
|
526
527
|
next.drachmae_karma.pending_tasks = dk.pending_tasks;
|
|
@@ -555,7 +556,7 @@ const CONCEPTUAL_TARGETS = [
|
|
|
555
556
|
TARGETS.push(...CONCEPTUAL_TARGETS);
|
|
556
557
|
} else {
|
|
557
558
|
console.log(
|
|
558
|
-
'gen-diagrams: conceptual facts unavailable (no
|
|
559
|
+
'gen-diagrams: conceptual facts unavailable (no Bongos session / API unreachable) — SKIPPING 03-drachmae-karma + 04-architecture; the 3 mechanical diagrams still regenerate.'
|
|
559
560
|
);
|
|
560
561
|
}
|
|
561
562
|
|
|
@@ -105,7 +105,7 @@ function streamLive(req, res, deps = {}) {
|
|
|
105
105
|
function buildLiveRouter() {
|
|
106
106
|
const router = express.Router();
|
|
107
107
|
|
|
108
|
-
// GET /api/gds/live — SSE stream of
|
|
108
|
+
// GET /api/gds/live — SSE stream of Bongos state-change nudges for the hall.
|
|
109
109
|
// rank: any-builder — requireBuilder gates anonymous/abuse traffic (defense
|
|
110
110
|
// in depth; the payload leaks nothing). Mirrors the room's #983 signed-in
|
|
111
111
|
// gate. EventSource carries the gds_session cookie on this same-origin GET, so
|
|
@@ -186,7 +186,7 @@ module.exports = function buildPublicRouter() {
|
|
|
186
186
|
res.json({ progress });
|
|
187
187
|
});
|
|
188
188
|
|
|
189
|
-
//
|
|
189
|
+
// Bongos task 118: `daily` + `daily_credits` are guaranteed gap-free (one row
|
|
190
190
|
// per day from the earliest event through CURRENT_DATE, server timezone)
|
|
191
191
|
// so the treasury chart's cumulative line carries forward on idle days
|
|
192
192
|
// and always reaches today. The gap-fill is implemented inside
|
|
@@ -213,7 +213,7 @@ module.exports = function buildPublicRouter() {
|
|
|
213
213
|
res.json(summary);
|
|
214
214
|
});
|
|
215
215
|
|
|
216
|
-
//
|
|
216
|
+
// Bongos task 191: `?days=7|30|90` restricts to that trailing window; `?days=all`
|
|
217
217
|
// or omitted with no query returns the historical 30-row "recent" feed. Any
|
|
218
218
|
// other value falls back to all-time (still capped by the row limit) so a
|
|
219
219
|
// malformed query never produces an empty list.
|
package/src/module-api.js
CHANGED
|
@@ -49,7 +49,7 @@ const { validateOrRespond, LIMITS, parseId, asyncHandler, corsPublicGet, parsePa
|
|
|
49
49
|
// there. scripts/gds/bump-version.js still rewrites the literal below; it appends
|
|
50
50
|
// the entry to that file. Look for a version's history there, not here.
|
|
51
51
|
// ---------------------------------------------------------------------------
|
|
52
|
-
const CORE_VERSION = '1.19.
|
|
52
|
+
const CORE_VERSION = '1.19.555'; // CI auto-patch carrier (ADR 0161); changelog: docs/module-api-changelog.md
|
|
53
53
|
|
|
54
54
|
// A namespaced logger so a module's log lines are attributable + consistent.
|
|
55
55
|
// Usage: const log = api.logger('dev-box'); log.info('mounted');
|