@bongos/core 1.19.370 → 1.19.371
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
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.371",
|
|
6
|
+
"core_contract": "1.19.371",
|
|
7
|
+
"source_commit": "587eb4ed0b68da54bf63fb01b69fab937450bd66",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-08-25T22:
|
|
9
|
+
"built_at": "2026-08-25T22:08:11.031Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 334,
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
19
|
"file_count": 1900,
|
|
20
|
-
"tree_sha256": "
|
|
20
|
+
"tree_sha256": "55cb6adeadbe8a337b32bba8352f2dbc38d655ec2cdd807c550d527b9f49822d",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/blocker-review/SKILL.md",
|
|
@@ -1862,7 +1862,7 @@
|
|
|
1862
1862
|
{
|
|
1863
1863
|
"path": "docs/recipes/work-on-a-task-from-your-dev-box.md",
|
|
1864
1864
|
"mode": "0000644",
|
|
1865
|
-
"sha256": "
|
|
1865
|
+
"sha256": "be4d67926e39c9f9c146f5f709d30595057058f5c4444c1e87ed92e37b3f3190"
|
|
1866
1866
|
},
|
|
1867
1867
|
{
|
|
1868
1868
|
"path": "docs/research/cursor-competitive-analysis.md",
|
|
@@ -4902,12 +4902,12 @@
|
|
|
4902
4902
|
{
|
|
4903
4903
|
"path": "package-lock.json",
|
|
4904
4904
|
"mode": "0000644",
|
|
4905
|
-
"sha256": "
|
|
4905
|
+
"sha256": "9013a462765ac09e02093fd322534183ef67983cba7fb17b01ffd9e514c904ba"
|
|
4906
4906
|
},
|
|
4907
4907
|
{
|
|
4908
4908
|
"path": "package.json",
|
|
4909
4909
|
"mode": "0000644",
|
|
4910
|
-
"sha256": "
|
|
4910
|
+
"sha256": "02ba6d7d5c371b3b07671bb84216d7a38a23b9ab97f3ab491d218fb31f9afa46"
|
|
4911
4911
|
},
|
|
4912
4912
|
{
|
|
4913
4913
|
"path": "public-docs/index.html",
|
|
@@ -6792,7 +6792,7 @@
|
|
|
6792
6792
|
{
|
|
6793
6793
|
"path": "src/module-api.js",
|
|
6794
6794
|
"mode": "0000644",
|
|
6795
|
-
"sha256": "
|
|
6795
|
+
"sha256": "acc072cf951d0eb479345626f462425a47d7f8a0247db473375fa614f64e7589"
|
|
6796
6796
|
},
|
|
6797
6797
|
{
|
|
6798
6798
|
"path": "src/module-loader/catalog.js",
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
# Work on a task from your dev box
|
|
2
2
|
|
|
3
|
-
> Your dev box
|
|
4
|
-
>
|
|
5
|
-
>
|
|
6
|
-
>
|
|
7
|
-
>
|
|
8
|
-
>
|
|
9
|
-
>
|
|
3
|
+
> Your dev box serves your **rank scope**: Metic+ boxes carry the **whole repo**;
|
|
4
|
+
> newcomer (starter) boxes carry the safe starter surface. Task-scoped slices are
|
|
5
|
+
> **paused** per [ADR 0193](../adr/<redacted>.md) (the
|
|
6
|
+
> machinery from [ADR 0148](../adr/<redacted>.md) remains;
|
|
7
|
+
> `BOX_TASK_SCOPE=on` re-enables it). Your GitHub token never leaves the server —
|
|
8
|
+
> see "How git works on a box" below, and
|
|
9
|
+
> [ADR 0150](../adr/<redacted>.md) for how the
|
|
10
|
+
> box comes up.
|
|
10
11
|
|
|
11
12
|
## TL;DR
|
|
12
13
|
|
|
@@ -15,32 +16,48 @@ In your dev box's terminal:
|
|
|
15
16
|
```bash
|
|
16
17
|
/builder-start # see what you can claim
|
|
17
18
|
/builder-claim <N> # claim task N (locks it to your session)
|
|
18
|
-
/builder-sync # pull
|
|
19
|
+
/builder-sync # pull the latest main onto the box right now
|
|
19
20
|
# …work in /workspace…
|
|
20
21
|
/builder-ship # smoke + review, then land + deploy — awards credits
|
|
21
22
|
```
|
|
22
23
|
|
|
23
|
-
That's the whole loop. `/builder-sync`
|
|
24
|
-
|
|
24
|
+
That's the whole loop. `/builder-sync` pulls fresh code within seconds instead of
|
|
25
|
+
waiting for the box's ~10-minute refresh.
|
|
26
|
+
|
|
27
|
+
## How git works on a box — read this BEFORE diagnosing "stuck"
|
|
28
|
+
|
|
29
|
+
The box holds **no stored git credential, ever** — and that is the design, not a
|
|
30
|
+
fault ([ADR 0055](../adr/<redacted>.md)):
|
|
31
|
+
|
|
32
|
+
- **Reads are server-mediated, per request.** Every remote git operation goes
|
|
33
|
+
through `/usr/local/bin/otb-git-credential`, which asks the control plane
|
|
34
|
+
(`GET /box/source-access`) for a **short-lived, read-only** credential. The
|
|
35
|
+
server checks your **live** rank + status on every single request — demotion or
|
|
36
|
+
deactivation cuts off the next fetch instantly.
|
|
37
|
+
- **`git push` always fails with 403 here — by design.** The read credential
|
|
38
|
+
cannot write. Landing code is the server's job: `/builder-ship` uploads your
|
|
39
|
+
work, opens the PR, and lands it. Never try to fix the 403 by embedding a
|
|
40
|
+
token or editing git config.
|
|
41
|
+
- **Source refreshes from `main` every ~10 minutes** (the `box-source-fetch`
|
|
42
|
+
cron; log at `/tmp/box-source-fetch.log`). `/builder-sync` runs the same fetch
|
|
43
|
+
on demand.
|
|
44
|
+
- **If a remote git op says `could not read Username`, or the sync log shows
|
|
45
|
+
401:** the box's GDS session expired. Run `/builder-reauth`, then
|
|
46
|
+
`/builder-sync`. That is the whole fix.
|
|
47
|
+
|
|
48
|
+
The box writes these same facts to `/workspace/CLAUDE.local.md` on every sync, so
|
|
49
|
+
a Claude session on the box loads them automatically (the file is gitignored and
|
|
50
|
+
box-written — don't edit it).
|
|
25
51
|
|
|
26
52
|
## The model — what's on your box
|
|
27
53
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
(`goals.scope_modules` → globs, [ADR 0086](../adr/<redacted>.md)). Claim a `dev-box` task → you get
|
|
36
|
-
`modules/dev-box/`; claim a `game` task → you get the game world too. Nothing
|
|
37
|
-
else.
|
|
38
|
-
|
|
39
|
-
What you do **not** get: other builders' modules, the product/game runtime (unless
|
|
40
|
-
your task is game-scoped), and — the point — **no GitHub credential on the box**.
|
|
41
|
-
The box asks the control plane (`GET /box/source-access`) for its slice on each
|
|
42
|
-
fetch; the server holds the token and returns a scoped, cone-mode sparse-checkout
|
|
43
|
-
spec. Lose the claim or a rank, and the next fetch is cut off at the server.
|
|
54
|
+
- **Metic and above:** the full repo in `/workspace` — same tree as a laptop
|
|
55
|
+
clone, refreshed from `main` by the sync cron.
|
|
56
|
+
- **Below Metic (starter):** the starter surface — methodology (`CLAUDE.md`,
|
|
57
|
+
`.claude/`), build tooling (`scripts/`, `src/bongos/`), `docs/`, `infra/`,
|
|
58
|
+
`tests/`, and the sandbox-runnable product code. Rank, checked live by the
|
|
59
|
+
server, is what bounds a box — not the task you claimed
|
|
60
|
+
([ADR 0193](../adr/<redacted>.md)).
|
|
44
61
|
|
|
45
62
|
## Step by step
|
|
46
63
|
|
|
@@ -51,11 +68,10 @@ If you haven't yet, run **`/builder-connect`** (or follow the
|
|
|
51
68
|
box, then **`/builder-setup`** once on the box to sign the Bongos CLI in. The browser
|
|
52
69
|
terminal drops you into `/workspace` — the one working folder.
|
|
53
70
|
|
|
54
|
-
> **`bongos shell` / `bongos code`
|
|
55
|
-
> either verb runs the
|
|
56
|
-
>
|
|
57
|
-
>
|
|
58
|
-
> claimed or switched since your last sync.)
|
|
71
|
+
> **`bongos shell` / `bongos code` sync on connect (BV1.R101).** Connecting with
|
|
72
|
+
> either verb runs the source fetch for you first, so you land in `/workspace`
|
|
73
|
+
> already fresh. (The browser terminal drops you straight into `/workspace`; run
|
|
74
|
+
> `/builder-sync` there if you want the latest immediately.)
|
|
59
75
|
|
|
60
76
|
### 2. See what you can claim — `/builder-start`
|
|
61
77
|
|
|
@@ -64,21 +80,18 @@ claims. Pick one.
|
|
|
64
80
|
|
|
65
81
|
### 3. Claim it — `/builder-claim <N>`
|
|
66
82
|
|
|
67
|
-
Locks task N to your session
|
|
68
|
-
access is computed from your **active claim** — its task → goal → `scope_modules`.
|
|
83
|
+
Locks task N to your session so no parallel session collides with your work.
|
|
69
84
|
|
|
70
|
-
### 4.
|
|
85
|
+
### 4. Freshen the code — `/builder-sync`
|
|
71
86
|
|
|
72
|
-
Re-runs the box's source
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
87
|
+
Re-runs the box's source fetch immediately so `/workspace` is on the current
|
|
88
|
+
`main` before you branch. (The ~10-minute cron does this on its own as a
|
|
89
|
+
backstop.) Off a box there's nothing to sync — your source is your local
|
|
90
|
+
checkout — and the command tells you so.
|
|
76
91
|
|
|
77
92
|
### 5. Work — in `/workspace`
|
|
78
93
|
|
|
79
|
-
|
|
80
|
-
when you switch tasks it **re-scopes in place**, so there are no per-task folders to
|
|
81
|
-
manage.
|
|
94
|
+
One folder, always. When you switch tasks, keep working in place.
|
|
82
95
|
|
|
83
96
|
### 6. Ship — `/builder-ship`
|
|
84
97
|
|
|
@@ -90,19 +103,20 @@ One box, one working folder, one active claim at a time (the server enforces
|
|
|
90
103
|
one-claim-per-session). To move to a different task:
|
|
91
104
|
|
|
92
105
|
1. `/builder-ship` (or `/builder-release`) the current claim.
|
|
93
|
-
2. `/builder-claim <M>` the new one
|
|
94
|
-
3. `/builder-sync` — the box re-scopes to task M in place.
|
|
106
|
+
2. `/builder-claim <M>` the new one — and keep working in `/workspace`.
|
|
95
107
|
|
|
96
108
|
## Notes + gotchas
|
|
97
109
|
|
|
98
|
-
- **`tests/` is
|
|
99
|
-
live in the top-level `tests/`, not inside `modules/<key>/`).
|
|
100
|
-
- **Idle boxes
|
|
101
|
-
|
|
102
|
-
|
|
110
|
+
- **`tests/` is on every box** — a starter box can run the suite for the code it
|
|
111
|
+
holds (tests live in the top-level `tests/`, not inside `modules/<key>/`).
|
|
112
|
+
- **Idle boxes park, they don't die.** After ~2 hours of no activity the box is
|
|
113
|
+
**parked**: a snapshot is kept and the droplet is destroyed, so compute billing
|
|
114
|
+
stops and a wake restores your filesystem. Only weeks of staying parked lead to
|
|
115
|
+
reclaim (with a warning first). Still: **ship or commit before you step away** —
|
|
116
|
+
a snapshot is a safety net, not a workflow.
|
|
103
117
|
- **`/builder-sync` is idempotent** — safe to re-run; it just does, on demand, what
|
|
104
118
|
the cron does on its schedule.
|
|
105
|
-
- **A fresh box comes up with the
|
|
119
|
+
- **A fresh box comes up with the code already cloned.** If a box ever comes up
|
|
106
120
|
*bare* (no code, no terminal), that's the packaging bug
|
|
107
121
|
[ADR 0150](../adr/<redacted>.md) fixed on the
|
|
108
122
|
control plane — flag it rather than working around it.
|
package/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bongos/core",
|
|
3
|
-
"version": "1.19.
|
|
3
|
+
"version": "1.19.371",
|
|
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.371",
|
|
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.371",
|
|
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",
|
package/src/module-api.js
CHANGED
|
@@ -1170,8 +1170,10 @@ const { validateOrRespond, LIMITS, parseId, asyncHandler, corsPublicGet, parsePa
|
|
|
1170
1170
|
// landed since 1.19.368 with no explicit bump. run 32903289072. (task 1002620)
|
|
1171
1171
|
// 1.19.370 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
1172
1172
|
// landed since 1.19.369 with no explicit bump. run 32904231221. (task 1002620)
|
|
1173
|
+
// 1.19.371 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
|
|
1174
|
+
// landed since 1.19.370 with no explicit bump. run 32904582252. (task 1002620)
|
|
1173
1175
|
// ---------------------------------------------------------------------------
|
|
1174
|
-
const CORE_VERSION = '1.19.
|
|
1176
|
+
const CORE_VERSION = '1.19.371'; // CI auto-patch carrier (ADR 0161); see changelog above
|
|
1175
1177
|
|
|
1176
1178
|
// A namespaced logger so a module's log lines are attributable + consistent.
|
|
1177
1179
|
// Usage: const log = api.logger('dev-box'); log.info('mounted');
|