@bongos/core 1.21.97 → 1.21.99
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 +56 -31
- package/docs/adr/0152-metic-task-abandonment.md +2 -0
- package/docs/adr/0371-auto-pickup-applies-a-submitted-tweak-on-the-runner.md +64 -0
- package/docs/adr/README.md +1 -0
- package/docs/api/openapi.json +2 -2
- package/docs/architecture.md +3 -0
- package/docs/copy-inventory.md +32 -30
- package/docs/copy-registry.json +51 -33
- package/docs/module-api-changelog.md +4 -0
- package/docs/page-readings.json +10 -10
- package/migrations/core_274_parked_backlog_stays_parked.sql +140 -0
- package/modules/hall-ui/public/studio-lib.js +22 -0
- package/modules/hall-ui/public/studio.css +138 -7
- package/modules/hall-ui/public/studio.html +10 -4
- package/modules/hall-ui/public/studio.js +39 -1
- package/modules/hall-ui/records/studio.md +16 -0
- package/modules/lifecycle/db-ship.js +7 -2
- package/modules/lifecycle/db-tasks.js +25 -0
- package/modules/lifecycle/routes/tasks.js +5 -5
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/release-notes.json +20 -0
- package/scripts/gds/government-walk.js +842 -0
- package/src/module-api.js +1 -1
- package/tests/abandon_task.mjs +1 -1
- package/tests/government_walk.mjs +56 -0
- package/tests/hall_studio_home.mjs +140 -5
- package/tests/parked_backlog_stays_parked.mjs +182 -0
- package/tests/promotion_triggers_skip_cascade.mjs +5 -3
|
@@ -523,8 +523,8 @@ module.exports = function buildTasksRouter() {
|
|
|
523
523
|
// down to Metic+ it needed an undo at the same rank, or a Metic's mis-retire would
|
|
524
524
|
// be unrecoverable without Archon SQL (no other route restores an abandoned task —
|
|
525
525
|
// PATCH refuses `status` outright). A restore lands in **backlog**, never straight
|
|
526
|
-
// to ready: the task was retired for a reason, so it re-enters
|
|
527
|
-
//
|
|
526
|
+
// to ready: the task was retired for a reason, so it re-enters PARKED (core_274,
|
|
527
|
+
// task 1004592 — the promotion sweep skips it) and only a second promote frees it.
|
|
528
528
|
router.post('/tasks/:id/promote', auth.requireBuilder, auth.requirePermission('task.promote'), async (req, res) => {
|
|
529
529
|
const id = Number(req.params.id);
|
|
530
530
|
const task = await db.getTask(id);
|
|
@@ -535,7 +535,7 @@ module.exports = function buildTasksRouter() {
|
|
|
535
535
|
// The restore branch returns early: no reward gate (that is a promote-to-WORKABLE
|
|
536
536
|
// concern and backlog is the pre-workable state — same reasoning as /demote).
|
|
537
537
|
if (task.status === 'abandoned') {
|
|
538
|
-
const restored = await db.restoreTask({ taskId: id });
|
|
538
|
+
const restored = await db.restoreTask({ taskId: id, parkedBy: req.builder.id });
|
|
539
539
|
return res.json({ ok: true, restored: true, status: restored.taskStatus });
|
|
540
540
|
}
|
|
541
541
|
// task 1670 / ADR 0096 + task 1673 amendment (2026-06-28): a task must never
|
|
@@ -585,7 +585,7 @@ module.exports = function buildTasksRouter() {
|
|
|
585
585
|
// any later lifecycle state). A claimed task is `active`, so this gate also
|
|
586
586
|
// refuses demoting work that's already in flight — demote is not a way to yank a
|
|
587
587
|
// task out from under its claim holder. No reward side-effects (the reward gate
|
|
588
|
-
// is a promote-only concern
|
|
588
|
+
// is a promote-only concern). The task lands PARKED so the sweep leaves it (1004592).
|
|
589
589
|
// rank: metic+archon — ready→backlog demotion; scope mutation; mirrors /promote (ADR 0090).
|
|
590
590
|
router.post('/tasks/:id/demote', auth.requireBuilder, auth.requirePermission('task.demote'), async (req, res) => {
|
|
591
591
|
const id = Number(req.params.id);
|
|
@@ -594,7 +594,7 @@ module.exports = function buildTasksRouter() {
|
|
|
594
594
|
if (task.status !== 'ready') {
|
|
595
595
|
return res.fail('cannot_demote', 409, { current_status: task.status });
|
|
596
596
|
}
|
|
597
|
-
await db.
|
|
597
|
+
if (!(await db.parkTask(id, req.builder.id))) return res.fail('cannot_demote', 409);
|
|
598
598
|
res.json({ ok: true });
|
|
599
599
|
});
|
|
600
600
|
|
package/package-lock.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bongos/core",
|
|
3
|
-
"version": "1.21.
|
|
3
|
+
"version": "1.21.99",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@bongos/core",
|
|
9
|
-
"version": "1.21.
|
|
9
|
+
"version": "1.21.99",
|
|
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.21.
|
|
3
|
+
"version": "1.21.99",
|
|
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/release-notes.json
CHANGED
|
@@ -9412,5 +9412,25 @@
|
|
|
9412
9412
|
"id": "1004652",
|
|
9413
9413
|
"text": "Connecting GitHub no longer makes a second app when something goes wrong. If a step stops, the checklist shows which one, says in one plain sentence that nothing is lost, and gives a \"Pick up where it stopped\" button that carr"
|
|
9414
9414
|
}
|
|
9415
|
+
],
|
|
9416
|
+
"1.21.98": [
|
|
9417
|
+
{
|
|
9418
|
+
"id": "1004654",
|
|
9419
|
+
"text": "The artist studio now has a day room. From 7 in the morning until 7 in the evening, by the clock on the artist's own computer, the studio shows a sunny sky with drifting clouds, a sun instead of the moon, lighter buildings wit"
|
|
9420
|
+
},
|
|
9421
|
+
{
|
|
9422
|
+
"id": "1004592",
|
|
9423
|
+
"text": "When someone restores a cut task or takes a task back off the board, it now stays put until a person promotes it. Before, the automatic promoter put it straight back on the claimable list within about five minutes."
|
|
9424
|
+
}
|
|
9425
|
+
],
|
|
9426
|
+
"1.21.99": [
|
|
9427
|
+
{
|
|
9428
|
+
"id": "1004330",
|
|
9429
|
+
"text": "The plan for applying an artist's submitted page automatically, with nobody at a terminal, is written and broken into five build tasks. It is off until a project turns it on, it has a monthly limit, and the artist still approv"
|
|
9430
|
+
},
|
|
9431
|
+
{
|
|
9432
|
+
"id": "1004658",
|
|
9433
|
+
"text": "There is now one walk anyone can re-run that tests a project's whole government from start to finish, and a table showing the result. It founds a test project with a chosen government and checks that this government, not the f"
|
|
9434
|
+
}
|
|
9415
9435
|
]
|
|
9416
9436
|
}
|