@bongos/core 1.19.588 → 1.19.589

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,22 +2,22 @@
2
2
  "artifact": "bongos-core",
3
3
  "manifest_schema": 1,
4
4
  "generator": "scripts/gds/package-core.js",
5
- "core_version": "1.19.588",
6
- "core_contract": "1.19.588",
7
- "source_commit": "1833a4d18085bddf05b12c89aea4381e5ac5207e",
5
+ "core_version": "1.19.589",
6
+ "core_contract": "1.19.589",
7
+ "source_commit": "29fe6277ac47bc629f56c68e20dca829ed9370f2",
8
8
  "source_ref": "HEAD",
9
- "built_at": "2026-09-08T02:03:26.993Z",
9
+ "built_at": "2026-09-08T02:16:53.692Z",
10
10
  "redaction": {
11
11
  "model": "docs-redacted+functional-verbatim",
12
- "docs_redacted": 456,
12
+ "docs_redacted": 457,
13
13
  "agent_docs_stubbed": 24,
14
14
  "functional_verbatim": 2060,
15
15
  "rules": 3,
16
16
  "gate_literals": 3,
17
17
  "gate": "passed"
18
18
  },
19
- "file_count": 2540,
20
- "tree_sha256": "c1fc62840116ec8d78c3841c8a17e3172d902aadea6e084717199ab6bf5af95c",
19
+ "file_count": 2541,
20
+ "tree_sha256": "d96aab84f10a639efe4d035824854aed5cb9bf2fcc7723f62a69f4b1a8074591",
21
21
  "files": [
22
22
  {
23
23
  "path": ".claude/skills/blocker-review/SKILL.md",
@@ -1834,10 +1834,15 @@
1834
1834
  "mode": "0000644",
1835
1835
  "sha256": "07a3561c7bc7f55bb2077925df4df6a24b68a1f0c8d4052ac50278edd9d4eba1"
1836
1836
  },
1837
+ {
1838
+ "path": "docs/adr/0264-the-ten-working-areas.md",
1839
+ "mode": "0000644",
1840
+ "sha256": "03f1cf19a181d6726066ba6fb72156add0cb8ede004ebc7ddf8ac3859a335596"
1841
+ },
1837
1842
  {
1838
1843
  "path": "docs/adr/README.md",
1839
1844
  "mode": "0000644",
1840
- "sha256": "fce8c6fab919a332b83cd467b2c0548499c58a2e032ca8e8d4da4b06d35bb715"
1845
+ "sha256": "b38a32c8557012f9e5e761c5e219901ad628af9b63d2cb190d32e783dbf9aaa9"
1841
1846
  },
1842
1847
  {
1843
1848
  "path": "docs/api-reference.md",
@@ -2722,7 +2727,7 @@
2722
2727
  {
2723
2728
  "path": "docs/module-api-changelog.md",
2724
2729
  "mode": "0000644",
2725
- "sha256": "44d532bc6f634ef0730d4f5d3a778c67516143ea202f126c48aed43ffc8e8664"
2730
+ "sha256": "0ca6c49c46b3bc4621613099885595eb387c784e86f9fb83d5600912c1ea4c38"
2726
2731
  },
2727
2732
  {
2728
2733
  "path": "docs/modules-contract.md",
@@ -7597,12 +7602,12 @@
7597
7602
  {
7598
7603
  "path": "package-lock.json",
7599
7604
  "mode": "0000644",
7600
- "sha256": "93ff5dd9e6965597f8af514e41a02d0c5149e31e6a456576f6dc9b1bd1a773fc"
7605
+ "sha256": "57bf21d2c0b7e235c4628f7f1d7e52c8b65b30375d96adcce8558a5e1cce1b5a"
7601
7606
  },
7602
7607
  {
7603
7608
  "path": "package.json",
7604
7609
  "mode": "0000644",
7605
- "sha256": "ed02b11ea51fdadd43ceb8fcaa9c3613ca172bf8c06caeeb0a351b8c65405900"
7610
+ "sha256": "fc682e53b7902f41fb4a455c9f61d70a5b154159df150b6e7e6c696c596df4e4"
7606
7611
  },
7607
7612
  {
7608
7613
  "path": "public-docs/index.html",
@@ -9312,7 +9317,7 @@
9312
9317
  {
9313
9318
  "path": "src/module-api.js",
9314
9319
  "mode": "0000644",
9315
- "sha256": "d1b45d7bf6ca9667e8ef78fbb8dc255eda9bb60a27a74e48f59fb067e882d8d4"
9320
+ "sha256": "9264831ff874468719e9a6f73a3dfa39507f6ce033f25cdfc9d08e840d1a58fe"
9316
9321
  },
9317
9322
  {
9318
9323
  "path": "src/module-loader/catalog.js",
@@ -0,0 +1,144 @@
1
+ # 0264 — The ten working areas: one goal per area, held until 5,000 builders
2
+
3
+ - **Status:** Accepted
4
+ - **Date:** 2026-09-07
5
+ - **Tasks:** [#1003696](https://cloudbongos.com/builders#/task/1003696) (this record). Executed by BV1.R25 ([#1003612](https://cloudbongos.com/builders#/task/1003612)), R26 ([#1003613](https://cloudbongos.com/builders#/task/1003613)), R27 ([#1003614](https://cloudbongos.com/builders#/task/1003614)), R28 ([#1003615](https://cloudbongos.com/builders#/task/1003615)) and R29 ([#1003617](https://cloudbongos.com/builders#/task/1003617)).
6
+ - **Goal:** [#1000086](https://cloudbongos.com/builders#/goal/1000086) — Strict versioning, criterion `sv-cutover-proven-live`.
7
+ - **Decided by:** the owner and the full team, in a manual goal review on 2026-09-07.
8
+ - **Builds on:** [ADR 0250](<redacted>.md) (the version boundary is the scope gate — this is the scope that boundary will hold), [ADR 0086](<redacted>.md) (the goal tier).
9
+
10
+ ## 1. The decision
11
+
12
+ **The platform runs on exactly ten goals — one per working area — until it has
13
+ 5,000 builders.** Each area has a named owner and a description of what "done"
14
+ looks like at that scale. Thirty-eight goals are open today; they collapse into
15
+ these ten.
16
+
17
+ | # | Working area | Owner | The 5,000-builder state |
18
+ |---|---|---|---|
19
+ | 1 | **Project creation** | Rini | Any new user, developer or not, can create a project from an existing folder or code repository whatever it already contains. |
20
+ | 2 | **Account creation, management & community** | Rini | — |
21
+ | 3 | **Human project management** | Scott | A project-management system with scalable levels of hierarchy — not infinitely configurable. Users edit, scope and manage work without ever prompting Claude. |
22
+ | 4 | **Bongos Core distribution** (staging of updates) | Lars / Will | Core updates are offered in every project's UI, and via the update CLI or skill. Approved users decide whether to take an update. A changelog is visible inside the update. |
23
+ | 5 | **Module distribution & economy** | Will | Modules are bought with money or credits and update the same way. Bongos assesses and ranks module quality; willing users test before mass deployment; only the best modules are listed, on price and assessed quality. |
24
+ | 6 | **Governor / Builder / Artist / Ideator experience** (incl. agents) | Masterqua / Rini | Each role gets a tailored experience that cannot break into the others. Noise is limited at every human interface. Agents are designed to aid all these roles. |
25
+ | 7 | **Government** | Will / Masterqua | Fully customizable creation of ranks and what each entails for project access. Recommended base ranks and governments ship for different project types and sizes. |
26
+ | 8 | **Platform credit economy** | Scott | Real money reaches users for completed work, without fail. Users hold platform balances, fund projects and pay each other with no fees. Bongos banks project funds and delivers them on cash-out. |
27
+ | 9 | **Platform analytics** | Lars | Bongos gathers as much user data as it can to improve itself — session transcripts as an efficiency signal, plus every user action and work delivery across the ecosystem through the Bongos API. |
28
+ | 10 | **Security** | all except Nils and Scott | Ranks are enforced. The Bongos server is not hackable by Claude's latest model. Red-teaming is consistent. |
29
+
30
+ ## 2. Why ten, and why now
31
+
32
+ Thirty-eight open goals is not a plan; it is a list of everything anyone has ever
33
+ wanted. [ADR 0250](<redacted>.md) measured what that costs — 523 open tasks, fourteen goals
34
+ reporting done while holding thirty-five unfinished tasks — and built the
35
+ machinery to stop the drift. But **enforcement alone cannot shrink a scope that
36
+ is already too large**: D1 closes the goal set of a *building* version, which
37
+ freezes thirty-eight goals in place just as effectively as it would freeze ten.
38
+
39
+ So the rules and the cut are two halves of one move. This ADR is the cut. Ten is
40
+ chosen to be small enough that every area has a single owner who can hold its
41
+ whole shape in their head, and the horizon is **5,000 builders** rather than a
42
+ date, because the point at which this set stops being the right set is a scale
43
+ question, not a calendar one.
44
+
45
+ ## 3. The disposition of all 38 open goals
46
+
47
+ Nothing on this list is a guess. Every row below the horizontal rule was named in
48
+ the review; the three rows above it were not, and are marked as such.
49
+
50
+ ### Not covered by the review — open questions
51
+
52
+ | Goal | Note |
53
+ |---|---|
54
+ | [#1000003](https://cloudbongos.com/builders#/goal/1000003) — Work with no goal yet | The per-version catch-all. Already R25's target: drained and archived there. No separate decision needed. |
55
+ | [#1000065](https://cloudbongos.com/builders#/goal/1000065) — Community surface | Reads as the community half of area 2 and is treated as such below, but the review did not say so. **Confirm before executing R25.** |
56
+ | [#1000088](https://cloudbongos.com/builders#/goal/1000088) — Repo cleanup: everything justifies itself | Genuinely unmentioned, and maps to no area. **Needs an owner decision: fold, keep as an eleventh, or close.** |
57
+
58
+ ### Becomes an area, or folds into one
59
+
60
+ | Goal | Disposition | Area |
61
+ |---|---|---|
62
+ | [#1000046](https://cloudbongos.com/builders#/goal/1000046) — Project creation | **becomes the area** (active; Rini building, Lars on the npm package) | 1 |
63
+ | [#1000065](https://cloudbongos.com/builders#/goal/1000065) — Community surface | becomes the area *(assumed — see above)* | 2 |
64
+ | [#1000045](https://cloudbongos.com/builders#/goal/1000045) — Public builder profiles | fold — relevant, active | 2 |
65
+ | [#1000075](https://cloudbongos.com/builders#/goal/1000075) — Collaboration & the social hall | fold — Niels almost done; builder collaboration is refined under community | 2 |
66
+ | [#1000085](https://cloudbongos.com/builders#/goal/1000085) — The operable hall | fold | 3 |
67
+ | [#1000054](https://cloudbongos.com/builders#/goal/1000054) — Public distribution | fold — Rini and Lars, relevant | 4 |
68
+ | [#1000029](https://cloudbongos.com/builders#/goal/1000029) — Module upstreaming & catalog | fold — looped into the module goal | 5 |
69
+ | [#1000066](https://cloudbongos.com/builders#/goal/1000066) — Role-composed context | fold — this is the working-area goal | 6 |
70
+ | [#1000038](https://cloudbongos.com/builders#/goal/1000038) — Agent framework & registry | fold — stays, needs cleanup from Rini; dedicated agents for specific tasks | 6 |
71
+ | [#1000039](https://cloudbongos.com/builders#/goal/1000039) — Agent authoring & first roster | fold into the agents one | 6 |
72
+ | [#1000040](https://cloudbongos.com/builders#/goal/1000040) — Agent scheduling & spend limits | fold into the agents one | 6 |
73
+ | [#1000025](https://cloudbongos.com/builders#/goal/1000025) — Builder experience | review first, close out solid tasks, then fold | 6 |
74
+ | [#1000068](https://cloudbongos.com/builders#/goal/1000068) — Government, not governance | **becomes the area** — Lars blitzes it; bugs and a rename | 7 |
75
+ | [#1000057](https://cloudbongos.com/builders#/goal/1000057) — Rank blocker matrix | fold into government | 7 |
76
+ | [#1000078](https://cloudbongos.com/builders#/goal/1000078) — Project money out | merge into builder compensation | 8 |
77
+ | [#1000067](https://cloudbongos.com/builders#/goal/1000067) — Ideator compensation | merge into builder payout | 8 |
78
+ | [#1000084](https://cloudbongos.com/builders#/goal/1000084) — Execution integrity & tenant isolation | bring into the security goal | 10 |
79
+ | [#1000070](https://cloudbongos.com/builders#/goal/1000070) — Scan-before-install | fold — Rini does the bug task | 10 |
80
+
81
+ Areas **3** (human project management), **4** (core distribution), **5** (module
82
+ distribution & economy), **8** (credit economy), **9** (platform analytics) and
83
+ **10** (security) have no single existing goal to promote and are **created** by
84
+ R29, taking the folds listed against them.
85
+
86
+ ### Finish, then close
87
+
88
+ | Goal | Disposition |
89
+ |---|---|
90
+ | [#1000086](https://cloudbongos.com/builders#/goal/1000086) — Strict versioning | *"EVERYONE DO THIS NOW."* Finish, then close — it is the enabling work for the cut itself. |
91
+ | [#1000073](https://cloudbongos.com/builders#/goal/1000073) — Finish the GDS→Bongos rename | Niels finishes; small. |
92
+ | [#1000082](https://cloudbongos.com/builders#/goal/1000082) — Status ledger in the world | Lars deletes the status page, then closes it out. |
93
+ | [#1000024](https://cloudbongos.com/builders#/goal/1000024) — Build-pipeline integrity | A pile of bugs — check relevance, then fold or close. |
94
+ | [#1000032](https://cloudbongos.com/builders#/goal/1000032) — Instance hosting + domains | Clean out, then close. |
95
+ | [#1000058](https://cloudbongos.com/builders#/goal/1000058) — Non-cloudbongos project lifecycle | All bugs — fold into another goal. |
96
+
97
+ ### Deleted
98
+
99
+ Twelve goals are cut outright:
100
+
101
+ [#1000037](https://cloudbongos.com/builders#/goal/1000037) Pay-on-land incentive alignment ·
102
+ [#1000043](https://cloudbongos.com/builders#/goal/1000043) Platform security: safe multi-tenant hosting ·
103
+ [#1000044](https://cloudbongos.com/builders#/goal/1000044) Living project sky ·
104
+ [#1000047](https://cloudbongos.com/builders#/goal/1000047) Project pricing & hosting revenue ·
105
+ [#1000048](https://cloudbongos.com/builders#/goal/1000048) SEO & public discoverability ·
106
+ [#1000049](https://cloudbongos.com/builders#/goal/1000049) Orb Physics ·
107
+ [#1000050](https://cloudbongos.com/builders#/goal/1000050) Self-hosted project analytics ·
108
+ [#1000052](https://cloudbongos.com/builders#/goal/1000052) First-run onboarding ·
109
+ [#1000053](https://cloudbongos.com/builders#/goal/1000053) Sessions start knowing ·
110
+ [#1000063](https://cloudbongos.com/builders#/goal/1000063) The front door ·
111
+ [#1000064](https://cloudbongos.com/builders#/goal/1000064) The hall as the room ·
112
+ [#4](https://cloudbongos.com/builders#/goal/4) CB-V1 — general (the old general bucket).
113
+
114
+ **"Delete" means `archived`, not a row removal.** `goals.status` is
115
+ `open|achieved|archived` (migration 160) and nothing deletes a goal — archiving is
116
+ the disposition, and it is reversible via `POST /goals/:id/reopen`. Preserving the
117
+ rows is deliberate: shipped tasks under a cut goal keep their attribution and
118
+ credit history, which a delete would strand.
119
+
120
+ ## 4. The consequence that reorders the goal: R14 is the keystone
121
+
122
+ **None of section 3 can be executed today, and the reason is a rule this goal
123
+ shipped four tasks ago.**
124
+
125
+ R10 ([task #1003597](https://cloudbongos.com/builders#/task/1003597)) made
126
+ `POST /goals/:id/archive` refuse a goal that still holds unfinished tasks, returning
127
+ the tasks and demanding a disposition. That was correct and is exactly ADR 0250 D3.
128
+ But **the vector that supplies a disposition is R14** ([task #1003601](https://cloudbongos.com/builders#/task/1003601)), which has not shipped. So right now the
129
+ archive door is closed and the key has not been cut.
130
+
131
+ Every one of the twelve deletes and every fold in section 3 goes through that
132
+ door. That makes R14 the **keystone of the entire cut**, not one feature among
133
+ thirteen, and it should be built before the rest of the version-close chain
134
+ rather than in rank order.
135
+
136
+ This is worth stating plainly because it looks like a bug and is not: the refusal
137
+ is the system working as designed, one task ahead of its own remedy.
138
+
139
+ ## 5. What this does not decide
140
+
141
+ - **It does not renumber or re-rank the ten areas.** The order in §1 is the review's order, not a priority.
142
+ - **It does not set criteria for the six new goals.** R29 scopes them; an area without done-when criteria cannot close, and inventing criteria for someone else's area is how a goal acquires scope its owner never agreed to.
143
+ - **It does not move any task.** Rehoming is R25 (the catch-alls) and R26 (the closed goals holding open work).
144
+ - **It does not decide the three open questions in §3.** They are surfaced, not guessed.
@@ -355,3 +355,4 @@ This keeps the decision history honest and traceable.
355
355
  | 0261 | [**A preselect always carries a reason; the bundle’s summary is the floor** ([task 1003684](https://cloudbongos.com/builders#/task/1003684) · goal 1000046 — *Project creation*). Resolves a collision between two rules that were each right alone. [ADR 0243](<redacted>.md) made `adjustments` a **delta** — a team-shape rule that fires without moving anything claims nothing, because a sentence explaining a change that did not happen is a claim the owner cannot check. [ADR 0237](<redacted>.md) says a preselect the owner cannot see a reason for is one they must audit, which is worse than no preselect at all. The two collide whenever a type’s bundle **already contains** what a rule would add: `game` is `[dev-box, discord]` and the `small-team` rule adds `dev-box`, so the rule fires, moves nothing, and correctly reports `adjustments: []`. Confirmed on live core 1.19.580 — `byTeamShape[small-team]` = `{"bundle":["dev-box","discord"],"adjustments":[]}`. The owner then reached step 4 and saw **two extras switched on with no reason beside them**, `#modWhy` an empty hidden div: exactly what 0237 exists to prevent, produced by 0243 behaving correctly. Filed as a dropped adjustment; it was not — the engine is right, and the panel simply had ONE voice and fell silent when the rule had nothing to say. **Decision: the why-line has two voices and the type’s is the floor.** A real adjustment still speaks for itself and is never displaced; when none moved, the type’s own curated `summary` explains the preselect; when the owner has answered the picker themselves the panel stays silent (unchanged — a reason handed back for a toggle they just flipped reads as the panel arguing with them); a bundle with no summary still says nothing, because a floor is not an invention. **No new copy, endpoint or field** — the summary was authored for this job in `starter-bundles.js`, served on every row of `GET /provisioning/starter-bundles`, and rendered NOWHERE in the product until now. 0243 is not weakened: the delta stays a delta and no rule is credited with a change it did not make. The pin `tests/projects_hub_module_picker.mjs` carried a fixture with **no `summary` field**, which made four “no adjustment, no sentence” cases pass for the wrong reason; the fixture now carries the real summaries and those cases assert the new contract, including explicitly that no RULE sentence is invented for a change that did not happen. Rejected: making the rule claim a no-op change (re-introduces the unverifiable claim 0243 removed); widening the bundles so no rule is ever redundant (contorts curated presets for a rendering concern, and the redundancy returns on the next edit); and leaving it silent, declined by the owner once the trade-off was put to them directly.](<redacted>.md) | provisioning / starter bundles / owner-facing copy |
356
356
  | 0262 | [**A bug never lands in the inbox: the system names the home the reporter didn't** ([task 1003691](https://cloudbongos.com/builders#/task/1003691) · goal 1000086 — *Strict versioning*). `routing.js` returned early on a goal-less filing, so its own `kind='bug'` hard-land branch was UNREACHABLE without a goal — `kind` only ever chose a routed task's STATUS, never whether it routed — and a reported defect sat in `idea_inbox` awaiting the triage pass criterion C1 exists to remove. The premise that [ADR 0250](<redacted>.md) D4 and [ADR 0235](<redacted>.md) contradict each other is FALSE: 0235's exemption is an advisory silence in `goal-advisory.adviseGoal`, and its actual decision already requires a real `goal_id`. So nothing is amended; this is the explicit decision 0235 §6 said would be needed. **D1** a homeless bug gets the version's MAINTENANCE goal (R18's design), find-or-created under an advisory lock inside the route's own transaction — not the catch-all R11 is deleting, and adding no `allowCatchAll` caller. **D2** the gate is the VECTOR (`api`, `discord-bugs`), not the kind: `#ideas` passes no kind, so the classifier guesses one from keywords, and gating on kind alone would silently overturn [ADR 0234](<redacted>.md)'s owner-interview decision. Rejected: goal-less bug tasks (breaks D4 a day after it landed); rejecting the filing (Discord cannot retry, so the report is lost); the catch-all (repopulates the bucket being drained); building R18 whole first.](<redacted>.md) | work intake / idea routing / the version-goal invariant |
357
357
  | 0263 | [**How a version closes: auto, early, roll-forward, and the maintenance exemption** ([task 1003593](https://cloudbongos.com/builders#/task/1003593) · goal 1000086 — *Strict versioning*). [ADR 0250](<redacted>.md) D5 decided a version *can* close; this is the design pass that makes its five build tasks mechanical, so they do not each invent their own refusal codes and payload shapes and meet only in production. **The asymmetry that shrinks the feature:** auto-close fires when the last non-maintenance goal achieves — so by construction every non-maintenance goal is already closed and the set needing a disposition is EMPTY. All the machinery (the disposition map, the refusal that returns the goals, successor lineage) belongs to EARLY close alone; R16 is small and R12 carries the weight. **Auto-close hangs off BOTH achievement writers** (`db-goals.achieveGoalIfComplete` and the `done-when` cascade — the deliberate duplicate D2 already governs, a require cycle being the reason they are not one helper), on the caller `exec` so it sees the ship's uncommitted flip, and **may never fail a ship**: wrapped and swallowed like `closeCompletedWorkForShip`, idempotent under `WHERE status='building'`, so a failure leaves a version un-closed (self-healing on the next reconciler sweep) and never half-closed. **Early close** is the R10 archive two-step verbatim in spirit — refuse with `version_holds_open_goals` **returning the goals**, then proceed with a per-goal `roll_forward`/`abandon` map and a required `reason`; six named codes, because the callers are agents. **Two briefs are corrected by measurement:** the lineage column is `succeeded_by_goal_id` (migration 160, on the OLD row pointing forward) — not the `succeeds_goal_id` both 0250 and R17's brief name, so R17 needs NO migration; and R18's `is_maintenance` flag is load-bearing rather than cosmetic, because answering the close count with a `title NOT LIKE` would let a hand-titled goal silently exempt itself from the gate that decides when a VERSION closes. Promotion runs inside the close txn and BEFORE roll-forward (`ensureMaintenanceGoal` returns null for a non-`building` version, so a carry-over run first silently carries nothing); zero planning versions is not an error; R19's one migration should carry the `building` AND `planning` partial unique indexes so the promotion race resolves like a 23505 rather than a prayer. Rejected: auto-creating the successor version inside a close (the "fake hotfix version" escape hatch 0250 built the override counter to prevent), writing `limitations/<version>-shipped.md` from the route (file I/O in a ship transaction — it stays R23's CLI work), and a version reopen.](<redacted>.md) | version lifecycle / scope closure |
358
+ | 0264 | [**The ten working areas: one goal per area, held until 5,000 builders** ([task 1003696](https://cloudbongos.com/builders#/task/1003696) · goal 1000086 — *Strict versioning*, criterion `sv-cutover-proven-live`). The owner and the full team ran a manual goal review on 2026-09-07 and cut **38 open goals down to 10**, one per working area, each with a named owner and a described 5,000-builder end state: project creation (Rini), account/community (Rini), human project management (Scott), core distribution (Lars/Will), module distribution & economy (Will), the four-role experience incl. agents (Masterqua/Rini), government (Will/Masterqua), the credit economy (Scott), platform analytics (Lars), security (everyone bar Nils and Scott). **Why the rules were not enough on their own:** [ADR 0250](<redacted>.md) D1 closes the goal set of a BUILDING version — which freezes 38 goals exactly as effectively as it would freeze 10. Enforcement cannot shrink a scope that is already too large, so the rules and the cut are two halves of one move; the horizon is a SCALE (5,000 builders), not a date, because that is the question that decides when this set stops being the right set. **The finding that reorders the goal:** none of the cut can be executed today. R10 ([task 1003597](https://cloudbongos.com/builders#/task/1003597)) made `POST /goals/:id/archive` refuse a goal holding unfinished tasks and demand a disposition — correct, and exactly D3 — but the vector that SUPPLIES a disposition is R14 ([task 1003601](https://cloudbongos.com/builders#/task/1003601)), unshipped. Every one of the 12 deletes and every fold goes through that door, so **R14 is the keystone of the whole cut**, not one feature among thirteen, and is built before the rest of the version-close chain rather than in rank order. It looks like a bug and is not: the refusal is the design, landed one task ahead of its own remedy. "Delete" means `archived`, never a row removal (`goals.status` is open|achieved|archived, migration 160; reversible via `/reopen`) — preserving the rows keeps shipped-task attribution and credit history a delete would strand. Three open goals were NOT covered by the review and are surfaced as open questions rather than guessed: 1000003 (the catch-all — already R25's target), 1000065 (assumed to be area 2's community half), and 1000088 (repo cleanup — maps to no area, needs an owner decision). Deliberately does not decide: the areas' priority order, criteria for the six goals R29 must create (inventing criteria for someone else's area is how a goal acquires scope its owner never agreed to), or any task rehoming (R25/R26).](<redacted>.md) | scope / goal set / owner decision |
@@ -1625,5 +1625,7 @@ is load-bearing: the script throws rather than guess if it is missing, and
1625
1625
  landed since 1.19.586 with no explicit bump. run 34172785860. (task 1002620)
1626
1626
  1.19.588 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
1627
1627
  landed since 1.19.587 with no explicit bump. run 34178696372. (task 1002620)
1628
+ 1.19.589 — CI auto-patch (publish-on-merge, ADR 0161): carrier for merges
1629
+ landed since 1.19.588 with no explicit bump. run 34179479729. (task 1002620)
1628
1630
  ---------------------------------------------------------------------------
1629
1631
  ```
package/package-lock.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@bongos/core",
3
- "version": "1.19.588",
3
+ "version": "1.19.589",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bongos/core",
9
- "version": "1.19.588",
9
+ "version": "1.19.589",
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.588",
3
+ "version": "1.19.589",
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
@@ -55,7 +55,7 @@ const { buildInfo } = require('./build-info');
55
55
  // there. scripts/gds/bump-version.js still rewrites the literal below; it appends
56
56
  // the entry to that file. Look for a version's history there, not here.
57
57
  // ---------------------------------------------------------------------------
58
- const CORE_VERSION = '1.19.588'; // CI auto-patch carrier (ADR 0161); changelog: docs/module-api-changelog.md
58
+ const CORE_VERSION = '1.19.589'; // CI auto-patch carrier (ADR 0161); changelog: docs/module-api-changelog.md
59
59
 
60
60
  // A namespaced logger so a module's log lines are attributable + consistent.
61
61
  // Usage: const log = api.logger('dev-box'); log.info('mounted');