@bongos/core 1.19.349 → 1.19.350
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 +78 -38
- package/clients/bongos-client/README.md +1 -1
- package/clients/bongos-client/bongos-client.global.js +8 -0
- package/clients/bongos-client/index.cjs +8 -0
- package/clients/bongos-client/index.d.ts +11 -0
- package/clients/bongos-client/index.mjs +8 -0
- package/docs/adr/0184-a-task-visual-inherits-its-summary-audience.md +49 -0
- package/docs/adr/README.md +1 -0
- package/docs/api/openapi.json +208 -3
- package/docs/api-reference.md +10 -2
- package/docs/architecture.md +6 -1
- package/docs/copy-inventory.md +38 -38
- package/docs/copy-registry.json +40 -40
- package/docs/file-map.md +2 -1
- package/migrations/core_223_task_visual.sql +33 -0
- package/modules/dev-box/app/src/vendor/bongos-client.cjs +8 -0
- package/modules/hall-ui/public/hall-kit.js +33 -0
- package/modules/hall-ui/public/hall-render.js +1 -0
- package/modules/hall-ui/public/profile.html +4 -1
- package/modules/hall-ui/public/profile.js +7 -1
- package/modules/hall-ui/public/style.css +29 -0
- package/modules/hall-ui/public/task.js +30 -0
- package/modules/lifecycle/db-analytics.js +3 -1
- package/modules/lifecycle/module.json +2 -1
- package/modules/lifecycle/routes/visuals.js +216 -0
- package/modules/lifecycle/task-visual-db.js +46 -0
- package/modules/lifecycle/task-visuals.js +270 -0
- package/modules/status-ui/public/status.js +33 -0
- package/modules/status-ui/public/style.css +14 -0
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/scripts/gds/ship-flow.js +11 -1
- package/scripts/gds/ship-visual.js +68 -0
- package/scripts/gds/task.js +62 -0
- package/src/bongos/routes/public.js +8 -0
- package/src/bongos/routes.js +5 -1
- package/src/module-api.js +3 -1
- package/tests/task_visual_route_gate.mjs +151 -0
- package/tests/task_visuals.mjs +200 -0
package/docs/api/openapi.json
CHANGED
|
@@ -205,6 +205,10 @@
|
|
|
205
205
|
"name": "sso",
|
|
206
206
|
"description": "Endpoints under `/api/bongos/sso`."
|
|
207
207
|
},
|
|
208
|
+
{
|
|
209
|
+
"name": "task-visuals",
|
|
210
|
+
"description": "Endpoints under `/api/bongos/task-visuals`."
|
|
211
|
+
},
|
|
208
212
|
{
|
|
209
213
|
"name": "tasks",
|
|
210
214
|
"description": "Endpoints under `/api/bongos/tasks`."
|
|
@@ -12088,6 +12092,41 @@
|
|
|
12088
12092
|
"security": []
|
|
12089
12093
|
}
|
|
12090
12094
|
},
|
|
12095
|
+
"/task-visuals/{name}": {
|
|
12096
|
+
"get": {
|
|
12097
|
+
"operationId": "get_task_visuals_name",
|
|
12098
|
+
"tags": [
|
|
12099
|
+
"task-visuals"
|
|
12100
|
+
],
|
|
12101
|
+
"summary": "GET /task-visuals/:name",
|
|
12102
|
+
"description": "the WIDEST path this route can take, declared honestly. It is reached only for already-public work (see isPubliclyViewable); every other request falls through to auth.requireBuilder INSIDE the handler, because the decision needs the task the filename names. Read the file header before changing this — a mounted middleware cannot express a per-row audience. GET /api/bongos/task-visuals/:name — stream one stored visual.\n\n**Rank:** `public` — No authentication — any caller.",
|
|
12103
|
+
"x-rank": "public",
|
|
12104
|
+
"x-source": "modules/lifecycle/routes/visuals.js",
|
|
12105
|
+
"parameters": [
|
|
12106
|
+
{
|
|
12107
|
+
"name": "name",
|
|
12108
|
+
"in": "path",
|
|
12109
|
+
"required": true,
|
|
12110
|
+
"schema": {
|
|
12111
|
+
"type": "string"
|
|
12112
|
+
},
|
|
12113
|
+
"description": "Path parameter `name`."
|
|
12114
|
+
}
|
|
12115
|
+
],
|
|
12116
|
+
"responses": {
|
|
12117
|
+
"200": {
|
|
12118
|
+
"description": "Success."
|
|
12119
|
+
},
|
|
12120
|
+
"400": {
|
|
12121
|
+
"$ref": "#/components/responses/BadRequest"
|
|
12122
|
+
},
|
|
12123
|
+
"404": {
|
|
12124
|
+
"$ref": "#/components/responses/NotFound"
|
|
12125
|
+
}
|
|
12126
|
+
},
|
|
12127
|
+
"security": []
|
|
12128
|
+
}
|
|
12129
|
+
},
|
|
12091
12130
|
"/tasks": {
|
|
12092
12131
|
"get": {
|
|
12093
12132
|
"operationId": "get_tasks",
|
|
@@ -13456,6 +13495,119 @@
|
|
|
13456
13495
|
]
|
|
13457
13496
|
}
|
|
13458
13497
|
},
|
|
13498
|
+
"/tasks/{id}/visual": {
|
|
13499
|
+
"post": {
|
|
13500
|
+
"operationId": "post_tasks_id_visual",
|
|
13501
|
+
"tags": [
|
|
13502
|
+
"tasks"
|
|
13503
|
+
],
|
|
13504
|
+
"summary": "POST /tasks/:id/visual",
|
|
13505
|
+
"description": "POST /tasks/:id/visual — attach (or replace) this task's ship-time visual.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
13506
|
+
"x-rank": "any-builder",
|
|
13507
|
+
"x-source": "modules/lifecycle/routes/visuals.js",
|
|
13508
|
+
"parameters": [
|
|
13509
|
+
{
|
|
13510
|
+
"name": "id",
|
|
13511
|
+
"in": "path",
|
|
13512
|
+
"required": true,
|
|
13513
|
+
"schema": {
|
|
13514
|
+
"type": "string"
|
|
13515
|
+
},
|
|
13516
|
+
"description": "Path parameter `id`."
|
|
13517
|
+
}
|
|
13518
|
+
],
|
|
13519
|
+
"requestBody": {
|
|
13520
|
+
"required": true,
|
|
13521
|
+
"content": {
|
|
13522
|
+
"application/json": {
|
|
13523
|
+
"schema": {
|
|
13524
|
+
"$ref": "#/components/schemas/PostTasksIdVisualRequest"
|
|
13525
|
+
}
|
|
13526
|
+
}
|
|
13527
|
+
},
|
|
13528
|
+
"x-validated": true
|
|
13529
|
+
},
|
|
13530
|
+
"responses": {
|
|
13531
|
+
"200": {
|
|
13532
|
+
"description": "Success.",
|
|
13533
|
+
"content": {
|
|
13534
|
+
"application/json": {
|
|
13535
|
+
"schema": {
|
|
13536
|
+
"$ref": "#/components/schemas/PostTasksIdVisualResponse"
|
|
13537
|
+
}
|
|
13538
|
+
}
|
|
13539
|
+
}
|
|
13540
|
+
},
|
|
13541
|
+
"400": {
|
|
13542
|
+
"$ref": "#/components/responses/ValidationFailed"
|
|
13543
|
+
},
|
|
13544
|
+
"401": {
|
|
13545
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
13546
|
+
},
|
|
13547
|
+
"403": {
|
|
13548
|
+
"$ref": "#/components/responses/Forbidden"
|
|
13549
|
+
},
|
|
13550
|
+
"404": {
|
|
13551
|
+
"$ref": "#/components/responses/NotFound"
|
|
13552
|
+
}
|
|
13553
|
+
},
|
|
13554
|
+
"security": [
|
|
13555
|
+
{
|
|
13556
|
+
"builderSession": []
|
|
13557
|
+
}
|
|
13558
|
+
]
|
|
13559
|
+
},
|
|
13560
|
+
"delete": {
|
|
13561
|
+
"operationId": "delete_tasks_id_visual",
|
|
13562
|
+
"tags": [
|
|
13563
|
+
"tasks"
|
|
13564
|
+
],
|
|
13565
|
+
"summary": "DELETE /tasks/:id/visual",
|
|
13566
|
+
"description": "DELETE /tasks/:id/visual — remove it again. The counterpart to \"always optional\": a builder who attached the wrong screenshot must be able to take it back, and an image is not prose (the write-once rule of task 1003102 guards a written CLAIM, not the picture beside it). Same ownership gate as the POST. Idempotent — removing an absent visual is a success.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
13567
|
+
"x-rank": "any-builder",
|
|
13568
|
+
"x-source": "modules/lifecycle/routes/visuals.js",
|
|
13569
|
+
"parameters": [
|
|
13570
|
+
{
|
|
13571
|
+
"name": "id",
|
|
13572
|
+
"in": "path",
|
|
13573
|
+
"required": true,
|
|
13574
|
+
"schema": {
|
|
13575
|
+
"type": "string"
|
|
13576
|
+
},
|
|
13577
|
+
"description": "Path parameter `id`."
|
|
13578
|
+
}
|
|
13579
|
+
],
|
|
13580
|
+
"responses": {
|
|
13581
|
+
"200": {
|
|
13582
|
+
"description": "Success.",
|
|
13583
|
+
"content": {
|
|
13584
|
+
"application/json": {
|
|
13585
|
+
"schema": {
|
|
13586
|
+
"$ref": "#/components/schemas/DeleteTasksIdVisualResponse"
|
|
13587
|
+
}
|
|
13588
|
+
}
|
|
13589
|
+
}
|
|
13590
|
+
},
|
|
13591
|
+
"400": {
|
|
13592
|
+
"$ref": "#/components/responses/BadRequest"
|
|
13593
|
+
},
|
|
13594
|
+
"401": {
|
|
13595
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
13596
|
+
},
|
|
13597
|
+
"403": {
|
|
13598
|
+
"$ref": "#/components/responses/Forbidden"
|
|
13599
|
+
},
|
|
13600
|
+
"404": {
|
|
13601
|
+
"$ref": "#/components/responses/NotFound"
|
|
13602
|
+
}
|
|
13603
|
+
},
|
|
13604
|
+
"security": [
|
|
13605
|
+
{
|
|
13606
|
+
"builderSession": []
|
|
13607
|
+
}
|
|
13608
|
+
]
|
|
13609
|
+
}
|
|
13610
|
+
},
|
|
13459
13611
|
"/tasks/{id}/vote": {
|
|
13460
13612
|
"post": {
|
|
13461
13613
|
"operationId": "post_tasks_id_vote",
|
|
@@ -13945,6 +14097,19 @@
|
|
|
13945
14097
|
"removed"
|
|
13946
14098
|
]
|
|
13947
14099
|
},
|
|
14100
|
+
"DeleteTasksIdVisualResponse": {
|
|
14101
|
+
"type": "object",
|
|
14102
|
+
"properties": {
|
|
14103
|
+
"ok": {
|
|
14104
|
+
"type": "boolean"
|
|
14105
|
+
},
|
|
14106
|
+
"visual_url": {}
|
|
14107
|
+
},
|
|
14108
|
+
"required": [
|
|
14109
|
+
"ok",
|
|
14110
|
+
"visual_url"
|
|
14111
|
+
]
|
|
14112
|
+
},
|
|
13948
14113
|
"ErrorEnvelope": {
|
|
13949
14114
|
"type": "object",
|
|
13950
14115
|
"required": [
|
|
@@ -18828,6 +18993,46 @@
|
|
|
18828
18993
|
"task"
|
|
18829
18994
|
]
|
|
18830
18995
|
},
|
|
18996
|
+
"PostTasksIdVisualRequest": {
|
|
18997
|
+
"type": "object",
|
|
18998
|
+
"properties": {
|
|
18999
|
+
"image_b64": {
|
|
19000
|
+
"type": "string",
|
|
19001
|
+
"minLength": 1,
|
|
19002
|
+
"maxLength": 7340032
|
|
19003
|
+
},
|
|
19004
|
+
"content_type": {
|
|
19005
|
+
"type": "string",
|
|
19006
|
+
"minLength": 1,
|
|
19007
|
+
"maxLength": 100
|
|
19008
|
+
},
|
|
19009
|
+
"alt": {
|
|
19010
|
+
"type": "string"
|
|
19011
|
+
}
|
|
19012
|
+
},
|
|
19013
|
+
"required": [
|
|
19014
|
+
"image_b64",
|
|
19015
|
+
"content_type"
|
|
19016
|
+
],
|
|
19017
|
+
"additionalProperties": false
|
|
19018
|
+
},
|
|
19019
|
+
"PostTasksIdVisualResponse": {
|
|
19020
|
+
"type": "object",
|
|
19021
|
+
"properties": {
|
|
19022
|
+
"ok": {
|
|
19023
|
+
"type": "boolean"
|
|
19024
|
+
},
|
|
19025
|
+
"visual_url": {},
|
|
19026
|
+
"visual_alt": {},
|
|
19027
|
+
"bytes": {}
|
|
19028
|
+
},
|
|
19029
|
+
"required": [
|
|
19030
|
+
"ok",
|
|
19031
|
+
"visual_url",
|
|
19032
|
+
"visual_alt",
|
|
19033
|
+
"bytes"
|
|
19034
|
+
]
|
|
19035
|
+
},
|
|
18831
19036
|
"PostTasksIdVoteRequest": {
|
|
18832
19037
|
"type": "object",
|
|
18833
19038
|
"properties": {
|
|
@@ -19243,9 +19448,9 @@
|
|
|
19243
19448
|
"description": "A required dependency/feature is not configured or is temporarily down."
|
|
19244
19449
|
}
|
|
19245
19450
|
},
|
|
19246
|
-
"x-endpoint-count":
|
|
19247
|
-
"x-schema-count":
|
|
19451
|
+
"x-endpoint-count": 307,
|
|
19452
|
+
"x-schema-count": 343,
|
|
19248
19453
|
"x-undocumented-bodies": 8,
|
|
19249
|
-
"x-response-schemas":
|
|
19454
|
+
"x-response-schemas": 229,
|
|
19250
19455
|
"x-generated-by": "scripts/gds/gen-api-docs.js"
|
|
19251
19456
|
}
|
package/docs/api-reference.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
# Bongos API reference
|
|
4
4
|
|
|
5
|
-
> **Generated from the live route files** — the route file is authoritative.
|
|
5
|
+
> **Generated from the live route files** — the route file is authoritative. 307 endpoints across 50 route files.
|
|
6
6
|
> Machine-readable spec: [`docs/api/openapi.json`](api/openapi.json) (OpenAPI 3.1). Rendered docs site: **`/docs`** (e.g. `cloudbongos.com/docs`).
|
|
7
7
|
|
|
8
8
|
Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/<redacted>.md)): `public` < `any-builder` < `metic+archon` < `archon`.
|
|
@@ -507,7 +507,13 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/<redacted>
|
|
|
507
507
|
| GET | `/api/bongos/sso/pubkey` | `public` | — | GET /sso/pubkey — the hub's Ed25519 assertion-verification key (public). |
|
|
508
508
|
| POST | `/api/bongos/sso/token` | `public` | `client_id`, `client_secret`, `code`, `redirect_uri` | POST /sso/token — server-to-server code redemption. |
|
|
509
509
|
|
|
510
|
-
## `
|
|
510
|
+
## `task-visuals` (1)
|
|
511
|
+
|
|
512
|
+
| Method | Path | Rank | Body | Description |
|
|
513
|
+
|---|---|---|---|---|
|
|
514
|
+
| GET | `/api/bongos/task-visuals/:name` | `public` | — | the WIDEST path this route can take, declared honestly. |
|
|
515
|
+
|
|
516
|
+
## `tasks` (29)
|
|
511
517
|
|
|
512
518
|
| Method | Path | Rank | Body | Description |
|
|
513
519
|
|---|---|---|---|---|
|
|
@@ -532,6 +538,8 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/<redacted>
|
|
|
532
538
|
| POST | `/api/bongos/tasks/:id/publish-branch` | `any-builder` | `branch`, `head_sha`, `bundle_b64`, `value_summary` | |
|
|
533
539
|
| GET | `/api/bongos/tasks/:id/publish-status` | `any-builder` | — | GET /tasks/:id/publish-status?branch=<branch> — poll the PR + prod-deploy state for a server-mediated publish so ship.js can confirm the … |
|
|
534
540
|
| POST | `/api/bongos/tasks/:id/ship` | `any-builder` | validated | confirmed → shipped. |
|
|
541
|
+
| POST | `/api/bongos/tasks/:id/visual` | `any-builder` | `image_b64`, `content_type`, `alt` | POST /tasks/:id/visual — attach (or replace) this task's ship-time visual. |
|
|
542
|
+
| DELETE | `/api/bongos/tasks/:id/visual` | `any-builder` | — | DELETE /tasks/:id/visual — remove it again. |
|
|
535
543
|
| POST | `/api/bongos/tasks/:id/vote` | `metic+archon` | `vote` | POST /tasks/:id/vote { vote: 1 \| -1 \| 0 } — cast/change/clear a peer vote on a confirmed/shipped task. |
|
|
536
544
|
| GET | `/api/bongos/tasks/claimable` | `any-builder` | — | NOTE: /tasks/claimable must come BEFORE /tasks/:id or Express will route 'claimable' to the :id param. |
|
|
537
545
|
| GET | `/api/bongos/tasks/newcomer-floor` | `any-builder` | — | GET /tasks/newcomer-floor — supply gauge for the newcomer queue (task 614). |
|
package/docs/architecture.md
CHANGED
|
@@ -106,6 +106,11 @@ versions(id PK 'V1'|'PMS-V1'..., name, track, status, scope_doc_path, ...) -- t
|
|
|
106
106
|
tasks(id, version_id, title, description, status, touches text[], est_minutes, est_cost_usd,
|
|
107
107
|
manual_degree, priority, automation_tag, credits_reward, source, source_ref,
|
|
108
108
|
promoted_at, shipped_at, shipped_by, value_summary, created_at, updated_at)
|
|
109
|
+
+ visual_url, visual_alt (mig core_223, task 1003109) -- the OPTIONAL ship-time VISUAL: a
|
|
110
|
+
screenshot / before-after / diagram, stored on disk under var/task-visuals/ and served by
|
|
111
|
+
GET /api/bongos/task-visuals/:name. It is value_summary's claim in another medium, so it
|
|
112
|
+
inherits that summary's audience (public only for shipped|confirmed, and never for a
|
|
113
|
+
security_sensitive task); never required, and nothing on the ship path blocks on it.
|
|
109
114
|
status ∈ {backlog, ready, active, blocked, completed, confirmed, shipped, abandoned}
|
|
110
115
|
completed = builder declared done (Phase 5 / 2026-05-10)
|
|
111
116
|
confirmed = scanner+smoke passed AND quality grader >= threshold; verified, NOT yet paid
|
|
@@ -222,7 +227,7 @@ Bongos views: `claimable_tasks` (rebuilt in 006 to use SELECT t.*; rebuilt again
|
|
|
222
227
|
- Per-builder "needs" + own Gemini key ([ADR 0073](adr/<redacted>.md), [#1013](https://example.com/builders#/task/1013)): `GET /me` now also carries `needs` ({items, action_needed_count} — the consistent "the system needs an input from you" signal; `modules/builder-settings/builder-needs.js` is the SSOT — carved out in BV1.R80, resolved by `GET /me` via the `builder-settings` kernel port — rendered by the hall Standing card + the CLI `printNeedsNudge`). The own-key (pragmatic BYOK) endpoints, all own-scoped: `GET /me/art-key/own` (masked meta — last4 only), `PUT /me/art-key/own` (validate-on-save via a Google list-models call → encrypt with `src/bongos/secret-box.js` → store; `503 storage_not_configured` until `BUILDER_SECRET_KEY` is set, `422 invalid_key` on a bad key), `DELETE /me/art-key/own`. The existing `GET /me/art-key` (shared-key box-sync delivery) is extended to also deliver the decrypted own key, which `scripts/gds/fetch-art-key.js` syncs into the local `gemini_api_key` slot (own key wins in the `gen_api.py` cascade).
|
|
223
228
|
- Builder memory (ADR 0024 cloneable memory + ADR 0026 BFG). Self-scoped (owner is always `req.builder.id`, never input): `POST /memory/sync` (push own memory; own 64 MB parser, vs the global 64 KB), `GET /memory/files`, `GET /memory/file`, `DELETE /memory/file` (the BFG delete affordance, 6C.2). Cross-builder (input-owner) endpoints — all privileged + audit-logged fail-closed: `GET /memory/builders/:id/files`+`/file` (**archon forensic** read), `GET /memory/bfg/builders/:id/files`+`/file` (**BFG-principal only**, 6B.1 read), and the one cross-builder WRITE `POST /memory/builders/:id/bfg-write` (**BFG-principal only**, kill-switched `BFG_WRITE_ENABLED` default-OFF, namespaced `bfg/`, attributed `author: BFG`, write+audit in one tx — dreams + transparent corrections, 6C.1/6C.2).
|
|
224
229
|
- Session corpus (BFG evaluator — 6D, ADR 0027): `POST /sessions` (upload own session digest; own **4 MB** json parser — capped, vs the global 64 KB — and the digest is per-turn metadata + short scrubbed snippets, never raw transcript content), `GET /sessions/mine` (self-serve), `GET /sessions/search` (cross-builder, **archon-gated** — the BFG-principal stand-in; the principal now exists (6C.1) and the *memory* cross-reads moved to it (6B.1), but these *session* reads still use the archon stand-in pending a retrofit, + audit_log row per read), `GET /sessions/:id` (own self-serve; cross-builder needs archon + audit; non-owner → 404).
|
|
225
|
-
- Public (no auth, `Cache-Control: max-age=60`): `/public/versions`, `/public/progress`, `/public/cost-summary`, `/public/recent-shipped`, `/public/leaderboard`, `/public/grades[?days=N]`, `/public/tasks/:id` ([#604](https://example.com/builders#/task/604) — single-task resolver for `#NNN` doc deep-links; `title`/`value_summary` returned **only** for `shipped`|`confirmed` work and withheld for in-flight tasks so unshipped/security task names can't leak; the status dashboard renders it at `#/task/:id`), `/public/ref-ids` ([#653](https://example.com/builders#/task/653) — `{tasks:[ids]}`, ids only, token-free; the doc-ref linkifier + its CI gate consult it to decide which bare `#NNN` are real task refs). These power `status.example.com`.
|
|
230
|
+
- Public (no auth, `Cache-Control: max-age=60`): `/public/versions`, `/public/progress`, `/public/cost-summary`, `/public/recent-shipped`, `/public/leaderboard`, `/public/grades[?days=N]`, `/public/tasks/:id` ([#604](https://example.com/builders#/task/604) — single-task resolver for `#NNN` doc deep-links; `title`/`value_summary`/`visual_url` returned **only** for `shipped`|`confirmed` work and withheld for in-flight tasks so unshipped/security task names can't leak; the status dashboard renders it at `#/task/:id`), `/public/ref-ids` ([#653](https://example.com/builders#/task/653) — `{tasks:[ids]}`, ids only, token-free; the doc-ref linkifier + its CI gate consult it to decide which bare `#NNN` are real task refs). These power `status.example.com`.
|
|
226
231
|
- Live updates (Server-Sent Events — [#569](https://example.com/builders#/task/569), [ADR 0030](adr/<redacted>.md) signal layer, [ADR 0069](adr/<redacted>.md) transport): an SSE stream at `GET /api/gds/live` ([`src/bongos/routes/live.js`](../src/bongos/routes/live.js)), mounted in both entrypoints (`server.js` + `src/platform-server.js`) so the hall stays live on a game-less boot. This **superseded** the original broadcast-only Colyseus `builders_hall` room (R55 / task 1194 — the room and `src/rooms/BuildersHallRoom.js` were deleted because a Bongos-only instance has no Colyseus in the process). The change-signal layer is **unchanged**: a statement-level Postgres `NOTIFY` trigger (migration 066) on `tasks`/`claims`/`builders`/`builder_onboarding_state`/`credit_log`/`karma_log` fires a `gds_live` notification on every write (incl. direct `psql`); one persistent `LISTEN` connection ([`src/bongos/live-channel.js`](../src/bongos/live-channel.js)) relays each notification, and the SSE endpoint emits an **opaque empty nudge** to open hall tabs (the `{table, op}` is kept server-side so internal table names can't leak); the hall re-runs its `loadAll()` (debounced) on any nudge. No row data crosses the channel — access control stays on the per-panel re-fetches.
|
|
227
232
|
|
|
228
233
|
**Builder ranks & the trust boundary:** moved to its own canonical reference —
|
package/docs/copy-inventory.md
CHANGED
|
@@ -43,7 +43,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
43
43
|
| `b31fc908c962` | 4x | You claimed #{…}. Open a terminal to start work. | modules/hall-ui/public/goals-page.js:367, modules/hall-ui/public/goals-page.js:464, modules/hall-ui/public/work.js:751 |
|
|
44
44
|
| `5df2baabf82e` | 4x | ← Back | public-landing/projects.html:785, public-landing/projects.html:854, public-landing/projects.html:894 |
|
|
45
45
|
| `a78477a24a48` | 3x | Builders' Hall | modules/hall-ui/public/index.html:12, modules/hall-ui/public/index.html:12, modules/hall-ui/public/index.html:38 |
|
|
46
|
-
| `a873e7c29d80` | 3x | Copy prompt | modules/hall-ui/public/task.js:
|
|
46
|
+
| `a873e7c29d80` | 3x | Copy prompt | modules/hall-ui/public/task.js:288, modules/hall-ui/public/task.js:305, modules/hall-ui/public/work.js:446 |
|
|
47
47
|
| `df335a1224ae` | 3x | Member since {…} | modules/hall-ui/public/hall-render.js:449, modules/hall-ui/public/hall-render.js:503, modules/hall-ui/public/profile.js:58 |
|
|
48
48
|
| `c661548d5140` | 3x | Next → | public-landing/projects.html:786, public-landing/projects.html:855, public-landing/projects.html:895 |
|
|
49
49
|
| `f6f68ba322be` | 3x | Open {…} | modules/hall-ui/public/goal-inbox.js:53, modules/hall-ui/public/goal-inbox.js:69, modules/hall-ui/public/goals.js:67 |
|
|
@@ -106,12 +106,12 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
106
106
|
| `1eee272d5ff4` | certain | (the droplet) is both the authority and production; | `modules/hall-ui/public/diagrams.html:83` |
|
|
107
107
|
| `c7aecadc8133` | certain | (with {…}) | `modules/hall-ui/public/goals-render.js:479` |
|
|
108
108
|
| `27d9721f358f` | certain | + Invite | `modules/hall-ui/public/goals-render.js:853` |
|
|
109
|
-
| `646fab1157fe` | certain | + {…} more project{…} not publicly listed. | `modules/hall-ui/public/profile.js:
|
|
109
|
+
| `646fab1157fe` | certain | + {…} more project{…} not publicly listed. | `modules/hall-ui/public/profile.js:236` |
|
|
110
110
|
| `9a663ca57b14` | certain | , claiming, and shipping show — render as rich in-feed widgets or as plain text. Widgets are prettier but spen | `modules/hall-ui/public/settings.html:230` |
|
|
111
111
|
| `ac57fe1ccd6e` | certain | , follow its acceptance criteria, stay within touches[], /builder-ship | `modules/hall-ui/public/work.js:739` |
|
|
112
112
|
| `d36226548dc9` | certain | , membership | `modules/hall-ui/public/government.js:786` |
|
|
113
113
|
| `741e355954ac` | certain | , not at ship). | `modules/hall-ui/public/diagrams.html:61` |
|
|
114
|
-
| `b31a6bd7edc5` | certain | , or | `modules/hall-ui/public/profile.js:
|
|
114
|
+
| `b31a6bd7edc5` | certain | , or | `modules/hall-ui/public/profile.js:271` |
|
|
115
115
|
| `c7c9b0afc38e` | certain | , then mark it as read on the Home page. | `modules/hall-ui/public/work.html:40` |
|
|
116
116
|
| `24174ce79df3` | certain | 1 · Task lifecycle | `modules/hall-ui/public/diagrams.html:58` |
|
|
117
117
|
| `e4e929617054` | certain | 2 · Builder rank ladder | `modules/hall-ui/public/diagrams.html:66` |
|
|
@@ -137,7 +137,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
137
137
|
| `6ca31dd5eb91` | certain | Acknowledge the primer | `modules/hall-ui/public/primer.html:65` |
|
|
138
138
|
| `4461b13f95c2` | certain | Actions apply at once. Closing stops and deletes the box; you can start a fresh one anytime. | `modules/hall-ui/public/settings.html:162` |
|
|
139
139
|
| `7cf0163d4cde` | certain | Aggregate totals across every recorded work session. | `modules/hall-ui/public/sessions.html:35` |
|
|
140
|
-
| `8b736e365191` | certain | All builders | `modules/hall-ui/public/hall-render.js:
|
|
140
|
+
| `8b736e365191` | certain | All builders | `modules/hall-ui/public/hall-render.js:998` |
|
|
141
141
|
| `b5e03617b319` | certain | All goals | `modules/hall-ui/public/goals.html:41` |
|
|
142
142
|
| `bea7817e57a4` | certain | All surfaces | `modules/hall-ui/public/copy-desk.html:48` |
|
|
143
143
|
| `bea7817e57a4` | certain | All surfaces | `modules/hall-ui/public/copy-desk.js:191` |
|
|
@@ -146,7 +146,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
146
146
|
| `e99cc5d37404` | certain | Already a member? | `modules/hall-ui/public/hall-render.js:252` |
|
|
147
147
|
| `200a83529fa6` | certain | Already acknowledged — you're all set. | `modules/hall-ui/public/primer.html:68` |
|
|
148
148
|
| `d11477f287b7` | certain | An objection returns the idea to its author with your reason and the section it faults \u2014 the feedback the | `modules/hall-ui/public/government.js:741` |
|
|
149
|
-
| `69f0ca4a4d84` | certain | Analytics scope | `modules/hall-ui/public/hall-render.js:
|
|
149
|
+
| `69f0ca4a4d84` | certain | Analytics scope | `modules/hall-ui/public/hall-render.js:996` |
|
|
150
150
|
| `14bdceaac078` | certain | Answer the five questions and this spark becomes a Full Idea. | `modules/hall-ui/public/ideas.js:423` |
|
|
151
151
|
| `52ed0e2e3470` | certain | Any rank | `modules/hall-ui/public/task-lib.js:62` |
|
|
152
152
|
| `c89833aa985a` | certain | Approval failed — try again. | `modules/hall-ui/public/pair.js:92` |
|
|
@@ -171,7 +171,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
171
171
|
| `b2656d0b2402` | certain | Asked {…} | `modules/hall-ui/public/watch.js:205` |
|
|
172
172
|
| `8c8ec2597036` | certain | Assigned {…} to builder {…}. | `modules/hall-ui/public/government.js:401` |
|
|
173
173
|
| `46714066f2da` | certain | Audit log | `modules/hall-ui/public/watch.html:127` |
|
|
174
|
-
| `7fef0ae0ef9a` | certain | Awaiting the grader / a confirmation before it can ship. | `modules/hall-ui/public/task.js:
|
|
174
|
+
| `7fef0ae0ef9a` | certain | Awaiting the grader / a confirmation before it can ship. | `modules/hall-ui/public/task.js:283` |
|
|
175
175
|
| `ecfbb10d4ca9` | certain | Awaiting the owner/manager's approval | `modules/hall-ui/public/goals-render.js:752` |
|
|
176
176
|
| `08afb1257b71` | certain | Back to home | `modules/hall-ui/public/primer.html:68` |
|
|
177
177
|
| `08afb1257b71` | certain | Back to home | `modules/hall-ui/public/primer.js:516` |
|
|
@@ -238,7 +238,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
238
238
|
| `530d83153e17` | certain | Codebase detail | `modules/hall-ui/public/atlas.html:41` |
|
|
239
239
|
| `c72c97dc33fe` | certain | Collab — {{worldName}} | `modules/hall-ui/public/collab.html:6` |
|
|
240
240
|
| `c72c97dc33fe` | certain | Collab — {{worldName}} | `modules/hall-ui/public/collab.html:6` |
|
|
241
|
-
| `2867c85d196d` | certain | Confirm that verification for #{…} actually passed? | `modules/hall-ui/public/task.js:
|
|
241
|
+
| `2867c85d196d` | certain | Confirm that verification for #{…} actually passed? | `modules/hall-ui/public/task.js:320` |
|
|
242
242
|
| `9b16a22bf24c` | certain | Connect Discord & join the server | `modules/hall-ui/public/hall-render.js:814` |
|
|
243
243
|
| `9b16a22bf24c` | certain | Connect Discord & join the server | `modules/hall-ui/public/settings.js:826` |
|
|
244
244
|
| `9f8d8e07224f` | certain | Connect your Claude Desktop to your dev box with a one-time pairing code — the guided flow lives on its own pa | `modules/hall-ui/public/settings.html:196` |
|
|
@@ -253,8 +253,8 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
253
253
|
| `1214ea8e0d1b` | certain | Copy desk — {{worldName}} | `modules/hall-ui/public/copy-desk.html:6` |
|
|
254
254
|
| `7cabea700b57` | certain | Copy not supported here — select the value and copy by hand. | `modules/hall-ui/public/box-panel.js:415` |
|
|
255
255
|
| `ebc8a6c16a22` | certain | Copy parallel prompt | `modules/hall-ui/public/work.html:123` |
|
|
256
|
-
| `a873e7c29d80` | certain | Copy prompt | `modules/hall-ui/public/task.js:
|
|
257
|
-
| `a873e7c29d80` | certain | Copy prompt | `modules/hall-ui/public/task.js:
|
|
256
|
+
| `a873e7c29d80` | certain | Copy prompt | `modules/hall-ui/public/task.js:288` |
|
|
257
|
+
| `a873e7c29d80` | certain | Copy prompt | `modules/hall-ui/public/task.js:305` |
|
|
258
258
|
| `a873e7c29d80` | certain | Copy prompt | `modules/hall-ui/public/work.js:446` |
|
|
259
259
|
| `8e2046777710` | certain | Copy prompt for task {…} | `modules/hall-ui/public/goals-render.js:255` |
|
|
260
260
|
| `8e2046777710` | certain | Copy prompt for task {…} | `modules/hall-ui/public/work.js:356` |
|
|
@@ -276,7 +276,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
276
276
|
| `04824d351824` | certain | Could not copy — select the text and copy it manually. | `modules/hall-ui/public/copy-on-click.js:110` |
|
|
277
277
|
| `fa309d1d0104` | certain | Could not create rank: {…} | `modules/hall-ui/public/government.js:386` |
|
|
278
278
|
| `01f0308c66e0` | certain | Could not invite that builder just now. | `modules/hall-ui/public/goals-render.js:906` |
|
|
279
|
-
| `0adbf0652899` | certain | Could not load #{…} | `modules/hall-ui/public/task.js:
|
|
279
|
+
| `0adbf0652899` | certain | Could not load #{…} | `modules/hall-ui/public/task.js:339` |
|
|
280
280
|
| `dec4b11f316d` | certain | Could not load dev boxes just now. | `modules/hall-ui/public/harbor.js:288` |
|
|
281
281
|
| `0f7c244312b1` | certain | Could not load government data just now. | `modules/hall-ui/public/government.js:883` |
|
|
282
282
|
| `cd00bf198661` | certain | Could not load held pull requests just now. | `modules/hall-ui/public/gate.js:180` |
|
|
@@ -291,7 +291,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
291
291
|
| `8f597eabf4ac` | certain | Could not load the drachmae guide. | `modules/hall-ui/public/drachmae.js:162` |
|
|
292
292
|
| `b2147cc90e36` | certain | Could not load the idea template. Reload, or file from the terminal with capture.js. | `modules/hall-ui/public/ideas.js:438` |
|
|
293
293
|
| `6264ebc9ede0` | certain | Could not load the primer. | `modules/hall-ui/public/primer.js:620` |
|
|
294
|
-
| `7604af13c40e` | certain | Could not load the profile. | `modules/hall-ui/public/profile.js:
|
|
294
|
+
| `7604af13c40e` | certain | Could not load the profile. | `modules/hall-ui/public/profile.js:336` |
|
|
295
295
|
| `8b69e445592a` | certain | Could not load the question labels; showing the answers as stored. | `modules/hall-ui/public/idea.js:229` |
|
|
296
296
|
| `edd5bafbe075` | certain | Could not load the queue just now. | `modules/hall-ui/public/ideas.js:387` |
|
|
297
297
|
| `02bb0570996a` | certain | Could not load the ranks. | `modules/hall-ui/public/ranks.js:197` |
|
|
@@ -422,7 +422,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
422
422
|
| `79934b879a12` | certain | Give the nod | `modules/hall-ui/public/goal-inbox.js:231` |
|
|
423
423
|
| `51bd60197133` | certain | Go back | `modules/hall-ui/public/drachmae.js:162` |
|
|
424
424
|
| `51bd60197133` | certain | Go back | `modules/hall-ui/public/primer.js:620` |
|
|
425
|
-
| `13acaeb4b0bf` | certain | Goal #{…} | `modules/hall-ui/public/task.js:
|
|
425
|
+
| `13acaeb4b0bf` | certain | Goal #{…} | `modules/hall-ui/public/task.js:225` |
|
|
426
426
|
| `9e70797b7e97` | certain | Goal id | `modules/hall-ui/public/goals-render.js:687` |
|
|
427
427
|
| `529460e82058` | certain | Goal invitations to you | `modules/hall-ui/public/goal-inbox.js:113` |
|
|
428
428
|
| `e2a9e33abe60` | certain | Goal tasks | `modules/hall-ui/public/goals.html:112` |
|
|
@@ -487,13 +487,13 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
487
487
|
| `fbe40b5818a3` | certain | Key removed. | `modules/hall-ui/public/settings.js:1088` |
|
|
488
488
|
| `93c17262bacf` | certain | Key storage is being set up by an Archon — check back shortly. {…} | `modules/hall-ui/public/settings.js:967` |
|
|
489
489
|
| `2a3c9e501f8e` | certain | Key storage isn't set up yet. As an Archon you can turn it on now — the server generates and safely stores the | `modules/hall-ui/public/settings.js:963` |
|
|
490
|
-
| `7d6eaa8d4514` | certain | Kinds of work shipped | `modules/hall-ui/public/hall-render.js:
|
|
490
|
+
| `7d6eaa8d4514` | certain | Kinds of work shipped | `modules/hall-ui/public/hall-render.js:1048` |
|
|
491
491
|
| `d7b4392e0ea6` | certain | Largest files | `modules/hall-ui/public/watch.js:795` |
|
|
492
492
|
| `81f62e066dbf` | certain | Last 14 days: {…} / 10 average across {…} graded work{…} ({…} passed). | `modules/hall-ui/public/builders.js:579` |
|
|
493
493
|
| `35a15eb0a117` | certain | Last 30 days | `modules/hall-ui/public/hall-widgets.js:129` |
|
|
494
494
|
| `9be8b839eff8` | certain | Last 7 days | `modules/hall-ui/public/hall-widgets.js:129` |
|
|
495
495
|
| `59f0bc78a28f` | certain | Last 90 days | `modules/hall-ui/public/hall-widgets.js:130` |
|
|
496
|
-
| `13bae4dfb28e` | certain | Last claimed by | `modules/hall-ui/public/task.js:
|
|
496
|
+
| `13bae4dfb28e` | certain | Last claimed by | `modules/hall-ui/public/task.js:236` |
|
|
497
497
|
| `1526a7ae8c85` | certain | Latest version: v{…}. | `modules/hall-ui/public/settings.js:1356` |
|
|
498
498
|
| `7c9b7a89353b` | certain | Leave goal | `modules/hall-ui/public/goals-render.js:749` |
|
|
499
499
|
| `f192ff6563f9` | certain | Leave your GitHub username and an Archon will let you in. No coding needed to start — once you're approved, si | `modules/hall-ui/public/hall-render.js:252` |
|
|
@@ -561,8 +561,8 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
561
561
|
| `c255749ec989` | certain | No achievements earned yet. | `modules/hall-ui/public/builders.js:473` |
|
|
562
562
|
| `c255749ec989` | certain | No achievements earned yet. | `modules/hall-ui/public/profile.js:108` |
|
|
563
563
|
| `83f62fc94271` | certain | No builder account found for this sign-in. | `modules/hall-ui/public/settings.js:1278` |
|
|
564
|
-
| `2e9c154c09cd` | certain | No builder selected. Open a builder from the | `modules/hall-ui/public/profile.js:
|
|
565
|
-
| `6d6fd2314248` | certain | No cross-project activity reported yet. | `modules/hall-ui/public/profile.js:
|
|
564
|
+
| `2e9c154c09cd` | certain | No builder selected. Open a builder from the | `modules/hall-ui/public/profile.js:271` |
|
|
565
|
+
| `6d6fd2314248` | certain | No cross-project activity reported yet. | `modules/hall-ui/public/profile.js:239` |
|
|
566
566
|
| `6d6fd2314248` | certain | No cross-project activity reported yet. | `modules/hall-ui/public/scouting.js:29` |
|
|
567
567
|
| `b1ada579483c` | certain | No custom ranks yet | `modules/hall-ui/public/government.js:303` |
|
|
568
568
|
| `6e2d2e11f84a` | certain | No description. | `modules/hall-ui/public/idea.js:114` |
|
|
@@ -590,7 +590,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
590
590
|
| `3fd79013ae4a` | certain | None on disk. | `modules/hall-ui/public/modules.html:49` |
|
|
591
591
|
| `c72e0bdb834a` | certain | Not declared in module.json — this is who ships the module. | `modules/hall-ui/public/modules.js:49` |
|
|
592
592
|
| `361b353ded5e` | certain | Not enough shipped work yet to chart. | `modules/hall-ui/public/hall-widgets.js:184` |
|
|
593
|
-
| `90230572d017` | certain | Not found | `modules/hall-ui/public/task.js:
|
|
593
|
+
| `90230572d017` | certain | Not found | `modules/hall-ui/public/task.js:334` |
|
|
594
594
|
| `61250b49a90b` | certain | Not scored. | `modules/hall-ui/public/idea.js:78` |
|
|
595
595
|
| `8d6afe6def47` | certain | Not signed in | `modules/hall-ui/public/settings.html:33` |
|
|
596
596
|
| `19adac0efed1` | certain | Not yet available | `modules/hall-ui/public/not-ready.html:24` |
|
|
@@ -626,7 +626,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
626
626
|
| `e0810149de64` | certain | Open task details | `modules/hall-ui/public/work.js:341` |
|
|
627
627
|
| `99c630009152` | certain | Open tasks whose declared files overlap — sequence these before two builders collide. | `modules/hall-ui/public/goals.html:98` |
|
|
628
628
|
| `99c630009152` | certain | Open tasks whose declared files overlap — sequence these before two builders collide. | `modules/hall-ui/public/goals.html:163` |
|
|
629
|
-
| `29ff278e96a8` | certain | Open the Work Board | `modules/hall-ui/public/task.js:
|
|
629
|
+
| `29ff278e96a8` | certain | Open the Work Board | `modules/hall-ui/public/task.js:288` |
|
|
630
630
|
| `e706a4836ce8` | certain | Open the pairing page | `modules/hall-ui/public/settings.html:201` |
|
|
631
631
|
| `2cad724171e6` | certain | Open your online environment. | `modules/hall-ui/public/hall-render.js:609` |
|
|
632
632
|
| `f6f68ba322be` | certain | Open {…} | `modules/hall-ui/public/goal-inbox.js:53` |
|
|
@@ -765,8 +765,8 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
765
765
|
| `62c3ea026095` | certain | Settings sections | `modules/hall-ui/public/settings.html:43` |
|
|
766
766
|
| `2566a43904cb` | certain | Settings — {{worldName}} | `modules/hall-ui/public/settings.html:6` |
|
|
767
767
|
| `2566a43904cb` | certain | Settings — {{worldName}} | `modules/hall-ui/public/settings.html:6` |
|
|
768
|
-
| `ac44b08aec92` | certain | Ship it | `modules/hall-ui/public/task.js:
|
|
769
|
-
| `6374d6172678` | certain | Shipped {…}{…}. | `modules/hall-ui/public/task.js:
|
|
768
|
+
| `ac44b08aec92` | certain | Ship it | `modules/hall-ui/public/task.js:279` |
|
|
769
|
+
| `6374d6172678` | certain | Shipped {…}{…}. | `modules/hall-ui/public/task.js:264` |
|
|
770
770
|
| `14d32a35c15f` | certain | Show my cross-project record | `modules/hall-ui/public/settings.js:579` |
|
|
771
771
|
| `dc0f9fe50a65` | certain | Show the setup guide again | `modules/hall-ui/public/index.html:55` |
|
|
772
772
|
| `2af4c0f2b4b9` | certain | Showing {…} of {…}. | `modules/hall-ui/public/ideas.js:369` |
|
|
@@ -791,7 +791,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
791
791
|
| `f2a4d855d82d` | certain | Stale claims | `modules/hall-ui/public/watch.html:40` |
|
|
792
792
|
| `98d037e427b8` | certain | Stale — describes something that changed | `modules/hall-ui/public/copy-desk.html:94` |
|
|
793
793
|
| `9d4372b173cf` | certain | Standing sections | `modules/hall-ui/public/index.html:70` |
|
|
794
|
-
| `ec1c2dae4a90` | certain | Standing there | `modules/hall-ui/public/profile.js:
|
|
794
|
+
| `ec1c2dae4a90` | certain | Standing there | `modules/hall-ui/public/profile.js:230` |
|
|
795
795
|
| `4e09b7f4288b` | certain | Stops and deletes your box. Provision a fresh one anytime. | `modules/hall-ui/public/box-panel.js:150` |
|
|
796
796
|
| `6c6544f5c011` | certain | Stored encrypted; never shown again after saving — only its last four digits. | `modules/hall-ui/public/settings.html:146` |
|
|
797
797
|
| `1dd8f7dd6139` | certain | Submit "{…}" for review | `modules/hall-ui/public/modules.js:159` |
|
|
@@ -799,21 +799,21 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
799
799
|
| `1e40f33483eb` | certain | Switch theme | `modules/hall-ui/public/shell.js:322` |
|
|
800
800
|
| `93fa2e97dd35` | certain | System default for this skill | `modules/hall-ui/public/settings.js:74` |
|
|
801
801
|
| `1cc5e12dde31` | certain | System oversight. Every panel below is Archon-only. | `modules/hall-ui/public/watch.js:897` |
|
|
802
|
-
| `5f45e431346f` | certain | Task #{…} | `modules/hall-ui/public/task.js:
|
|
802
|
+
| `5f45e431346f` | certain | Task #{…} | `modules/hall-ui/public/task.js:199` |
|
|
803
803
|
| `dfc967a63d57` | certain | Task lifecycle from backlog to shipped, showing states and transitions and the edge where credits are awarded. | `modules/hall-ui/public/diagrams.html:60` |
|
|
804
804
|
| `10cc12f37636` | certain | Task sections | `modules/hall-ui/public/work.html:48` |
|
|
805
805
|
| `0e636ea41b29` | certain | Task status | `modules/hall-ui/public/goals-render.js:249` |
|
|
806
806
|
| `af527fbc48e1` | certain | Task that carried the fix | `modules/hall-ui/public/copy-desk.html:120` |
|
|
807
807
|
| `1d714be820d3` | certain | Task — {{worldName}} | `modules/hall-ui/public/task.html:6` |
|
|
808
808
|
| `1d714be820d3` | certain | Task — {{worldName}} | `modules/hall-ui/public/task.html:6` |
|
|
809
|
-
| `9da280e09b11` | certain | Tasks are numbered separately from GitHub pull requests, so this may be a PR rather than a GDS task. | `modules/hall-ui/public/task.js:
|
|
809
|
+
| `9da280e09b11` | certain | Tasks are numbered separately from GitHub pull requests, so this may be a PR rather than a GDS task. | `modules/hall-ui/public/task.js:329` |
|
|
810
810
|
| `860fa4af9917` | certain | Tasks could not be loaded. | `modules/hall-ui/public/goals-render.js:826` |
|
|
811
811
|
| `2fc66e722e33` | certain | Tasks open once you have read the builder primer. | `modules/hall-ui/public/work.html:38` |
|
|
812
812
|
| `44579eef0c8d` | certain | Tasks — {{worldName}} | `modules/hall-ui/public/work.html:6` |
|
|
813
813
|
| `44579eef0c8d` | certain | Tasks — {{worldName}} | `modules/hall-ui/public/work.html:6` |
|
|
814
814
|
| `2f4f047dc1b4` | certain | Text size | `modules/hall-ui/public/shell.js:321` |
|
|
815
815
|
| `4a8d1beb6f98` | certain | That project isn’t on the platform. | `modules/hall-ui/public/my-projects.js:134` |
|
|
816
|
-
| `c0e28f30524d` | certain | That project's own standing, as reported by that project. | `modules/hall-ui/public/profile.js:
|
|
816
|
+
| `c0e28f30524d` | certain | That project's own standing, as reported by that project. | `modules/hall-ui/public/profile.js:230` |
|
|
817
817
|
| `50198c465225` | certain | The 16-value rank enum in three bands, which ranks are live, and the permissions each rank holds. | `modules/hall-ui/public/diagrams.html:68` |
|
|
818
818
|
| `1569b8838862` | certain | The Dev Box app now acts as | `modules/hall-ui/public/pair.js:40` |
|
|
819
819
|
| `47c47af5dd7f` | certain | The Repo Atlas regenerates itself on the server every time code ships. It looks like it hasn’t been generated | `modules/hall-ui/public/atlas.html:48` |
|
|
@@ -853,7 +853,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
853
853
|
| `25794c439321` | certain | Then copy the project onto your machine and run the one-shot bootstrap (it checks your setup, installs depende | `modules/hall-ui/public/hall-render.js:676` |
|
|
854
854
|
| `df316c3484de` | certain | Then drive it however you like: | `modules/hall-ui/public/hall-render.js:609` |
|
|
855
855
|
| `6e46811189db` | certain | This PR is held by the gate-review check. | `modules/hall-ui/public/gate.js:113` |
|
|
856
|
-
| `ed313d96b419` | certain | This builder keeps their track record private. | `modules/hall-ui/public/profile.js:
|
|
856
|
+
| `ed313d96b419` | certain | This builder keeps their track record private. | `modules/hall-ui/public/profile.js:210` |
|
|
857
857
|
| `3f9e476e22db` | certain | This clears {…}. The gate check re-runs and the PR merges once it goes green. Your approval applies only to co | `modules/hall-ui/public/gate.js:87` |
|
|
858
858
|
| `c2a0e726bd97` | certain | This goal is Archon-mediated — request to join instead. | `modules/hall-ui/public/goals-render.js:918` |
|
|
859
859
|
| `0dd14cf15c8b` | certain | This goal is blocked until each prerequisite goal is achieved | `modules/hall-ui/public/goals-render.js:699` |
|
|
@@ -864,7 +864,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
864
864
|
| `ac621aa8ce06` | certain | This goal is scoped to a protected module — only an Archon may add members. | `modules/hall-ui/public/goals-render.js:902` |
|
|
865
865
|
| `448beb98e1c3` | certain | This is the builders' hub for {…} — where builders claim work, earn {…}, and track their standing. Access is i | `modules/hall-ui/public/hall-render.js:252` |
|
|
866
866
|
| `7cf191cb9a4a` | certain | This is the environment you will build in — no SSH, nothing to install. | `modules/hall-ui/public/hall-render.js:609` |
|
|
867
|
-
| `23f531302e9e` | certain | This is you — | `modules/hall-ui/public/profile.js:
|
|
867
|
+
| `23f531302e9e` | certain | This is you — | `modules/hall-ui/public/profile.js:206` |
|
|
868
868
|
| `e901434bebd7` | certain | This is your idea \u2014 its author does not vote on it. The board decides; a return comes back to you with it | `modules/hall-ui/public/government.js:737` |
|
|
869
869
|
| `c4a7e427e82c` | certain | This one | `modules/hall-ui/public/settings.html:179` |
|
|
870
870
|
| `c4a7e427e82c` | certain | This one | `modules/hall-ui/public/settings.html:180` |
|
|
@@ -878,7 +878,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
878
878
|
| `c19344f5ce38` | certain | Tool errs | `modules/hall-ui/public/sessions.html:48` |
|
|
879
879
|
| `2059342a3490` | certain | Totals by builder | `modules/hall-ui/public/watch.js:576` |
|
|
880
880
|
| `77db3684aba9` | certain | Tracked for transparency — not charged in the early stage. | `modules/hall-ui/public/box-panel.js:237` |
|
|
881
|
-
| `b6e04e9bc86f` | certain | Try reloading in a moment. | `modules/hall-ui/public/task.js:
|
|
881
|
+
| `b6e04e9bc86f` | certain | Try reloading in a moment. | `modules/hall-ui/public/task.js:339` |
|
|
882
882
|
| `1a64679fbb42` | certain | Typo or grammar | `modules/hall-ui/public/copy-desk.html:96` |
|
|
883
883
|
| `2c1c20785a6e` | certain | Unclear — a person would not know what to do | `modules/hall-ui/public/copy-desk.html:93` |
|
|
884
884
|
| `aa445f06cc5e` | certain | Unlink failed: {…} | `modules/hall-ui/public/settings.js:843` |
|
|
@@ -1038,7 +1038,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1038
1038
|
| `2ce7738b1eb0` | certain | loading goals… | `modules/hall-ui/public/task-detail.js:384` |
|
|
1039
1039
|
| `8c22f0ee5edb` | certain | looked at | `modules/hall-ui/public/copy-desk.js:114` |
|
|
1040
1040
|
| `754bdec368ed` | certain | lowest credits | `modules/hall-ui/public/hall-widgets.js:136` |
|
|
1041
|
-
| `cffba8409070` | certain | manage its visibility in Settings → Cross-project record | `modules/hall-ui/public/profile.js:
|
|
1041
|
+
| `cffba8409070` | certain | manage its visibility in Settings → Cross-project record | `modules/hall-ui/public/profile.js:206` |
|
|
1042
1042
|
| `5c3fdd34cd02` | certain | means expressible through the real configuration — a rank-based membership plus a pass rule — with no new code | `modules/hall-ui/public/government.js:610` |
|
|
1043
1043
|
| `0eefd625d954` | certain | merged into | `modules/hall-ui/public/idea.js:198` |
|
|
1044
1044
|
| `70c234985d42` | certain | most recent first | `modules/hall-ui/public/hall-widgets.js:134` |
|
|
@@ -1048,7 +1048,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1048
1048
|
| `fdfb8b2ce948` | certain | new identity | `modules/hall-ui/public/box-panel.js:339` |
|
|
1049
1049
|
| `86f235ddfe01` | certain | new thread | `modules/hall-ui/public/settings.html:213` |
|
|
1050
1050
|
| `b9f2e0d43c94` | certain | no clock | `modules/hall-ui/public/government.js:510` |
|
|
1051
|
-
| `e02979266baf` | certain | no data | `modules/hall-ui/public/hall-render.js:
|
|
1051
|
+
| `e02979266baf` | certain | no data | `modules/hall-ui/public/hall-render.js:949` |
|
|
1052
1052
|
| `739a4bd6bd83` | certain | node scripts/setup-builder.js | `modules/hall-ui/public/hall-render.js:676` |
|
|
1053
1053
|
| `01a3d68d80c1` | certain | not graded (grader outage) | `modules/hall-ui/public/builders.js:553` |
|
|
1054
1054
|
| `3916a3dc8e98` | certain | not started | `modules/hall-ui/public/roadmap.js:108` |
|
|
@@ -1079,7 +1079,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1079
1079
|
| `fac041ec6dd7` | certain | selectable today | `modules/hall-ui/public/government.js:601` |
|
|
1080
1080
|
| `a6f55d7aa6f7` | certain | shipped (live) | `modules/hall-ui/public/roadmap.js:273` |
|
|
1081
1081
|
| `026ba1289d4d` | certain | shipped · | `modules/hall-ui/public/goals-render.js:615` |
|
|
1082
|
-
| `ec6d8c900bc8` | certain | sign in | `modules/hall-ui/public/profile.js:
|
|
1082
|
+
| `ec6d8c900bc8` | certain | sign in | `modules/hall-ui/public/profile.js:271` |
|
|
1083
1083
|
| `da30b952a60b` | certain | system / unattributed | `modules/hall-ui/public/goals-page.js:226` |
|
|
1084
1084
|
| `cfc61d8cabe6` | certain | tally: {…} yes · {…} no — sitting under | `modules/hall-ui/public/government.js:786` |
|
|
1085
1085
|
| `129ed842096b` | certain | target gone | `modules/hall-ui/public/copy-desk.js:63` |
|
|
@@ -1092,9 +1092,9 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1092
1092
|
| `65702f92a8c8` | certain | to claim your first task. | `modules/hall-ui/public/hall-render.js:650` |
|
|
1093
1093
|
| `5520469f2834` | certain | to copy the task prompt and paste it into a fresh Claude Code session to begin. | `modules/hall-ui/public/work.html:54` |
|
|
1094
1094
|
| `b8e12f871044` | certain | to graduate and open the rest of {{worldName}}'s builder hub. | `modules/hall-ui/public/not-ready.html:28` |
|
|
1095
|
-
| `47204e5f11de` | certain | to see your own profile. | `modules/hall-ui/public/profile.js:
|
|
1095
|
+
| `47204e5f11de` | certain | to see your own profile. | `modules/hall-ui/public/profile.js:271` |
|
|
1096
1096
|
| `23488ca48320` | certain | to take a task right here — no terminal needed. Then click | `modules/hall-ui/public/work.html:54` |
|
|
1097
|
-
| `c0449d0ec0b8` | certain | trend, latest {…} | `modules/hall-ui/public/hall-render.js:
|
|
1097
|
+
| `c0449d0ec0b8` | certain | trend, latest {…} | `modules/hall-ui/public/hall-render.js:961` |
|
|
1098
1098
|
| `679c0150f586` | certain | upkeep: undeclared | `modules/hall-ui/public/modules.js:73` |
|
|
1099
1099
|
| `c07944e0cf29` | certain | upkeep: {…} | `modules/hall-ui/public/modules.js:80` |
|
|
1100
1100
|
| `969577b937d6` | certain | versions in flight | `modules/hall-ui/public/roadmap.js:273` |
|
|
@@ -1207,7 +1207,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1207
1207
|
| `a072071b893c` | certain | All time | `modules/status-ui/public/index.html:313` |
|
|
1208
1208
|
| `1fb3f6a598cd` | certain | Architects of {{worldName}} | `modules/status-ui/public/index.html:200` |
|
|
1209
1209
|
| `4b16eed738cf` | certain | Attributed to builders: {…} · Shared keep (unattributed): {…} ({…}%). | `modules/status-ui/public/status.js:718` |
|
|
1210
|
-
| `20a83501bba6` | certain | Avg time per work (min) | `modules/status-ui/public/status.js:
|
|
1210
|
+
| `20a83501bba6` | certain | Avg time per work (min) | `modules/status-ui/public/status.js:1223` |
|
|
1211
1211
|
| `c8959bdc0e59` | certain | Breakdown filtered to {…}: {…} of {…} ({…}% of all spend). | `modules/status-ui/public/status.js:659` |
|
|
1212
1212
|
| `1fe8937399f5` | certain | By order of the Senate | `modules/status-ui/public/index.html:354` |
|
|
1213
1213
|
| `21f644463d57` | certain | Citizens who have set the most stone. | `modules/status-ui/public/index.html:201` |
|
|
@@ -1234,10 +1234,10 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1234
1234
|
| `dc9eab0a02e2` | certain | Newest entries set down upon the ledger. | `modules/status-ui/public/index.html:305` |
|
|
1235
1235
|
| `9ef3aaa7b441` | certain | Next page | `modules/status-ui/public/index.html:323` |
|
|
1236
1236
|
| `37b171a6195a` | certain | No architects yet — be the first to lay a stone. | `modules/status-ui/public/index.html:205` |
|
|
1237
|
-
| `7816fbe0add8` | certain | No builders yet — be the first. | `modules/status-ui/public/status.js:
|
|
1237
|
+
| `7816fbe0add8` | certain | No builders yet — be the first. | `modules/status-ui/public/status.js:1117` |
|
|
1238
1238
|
| `0b097f051d6f` | certain | No endeavors underway just now. | `modules/status-ui/public/status.js:516` |
|
|
1239
1239
|
| `837af36041de` | certain | No featured projects yet — check back soon. | `modules/status-ui/public/explore.html:49` |
|
|
1240
|
-
| `4b1a11bfdf10` | certain | No works yet inscribed in this window. | `modules/status-ui/public/status.js:
|
|
1240
|
+
| `4b1a11bfdf10` | certain | No works yet inscribed in this window. | `modules/status-ui/public/status.js:947` |
|
|
1241
1241
|
| `7a8afe641683` | certain | No works yet inscribed. | `modules/status-ui/public/index.html:318` |
|
|
1242
1242
|
| `3e8205a358d9` | certain | No {…} yet attributed to a hand. | `modules/status-ui/public/status.js:746` |
|
|
1243
1243
|
| `c9efa62c36e7` | certain | No {…} yet spent. | `modules/status-ui/public/status.js:684` |
|
|
@@ -1264,7 +1264,7 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1264
1264
|
| `d1add9aa4db0` | certain | The standing of each pillar — whether it holds or has fallen. | `modules/status-ui/public/index.html:188` |
|
|
1265
1265
|
| `c1ab82f376ec` | certain | The work, in brief | `modules/status-ui/public/status.js:594` |
|
|
1266
1266
|
| `6cc811f31b3a` | certain | Works in Progress | `modules/status-ui/public/index.html:231` |
|
|
1267
|
-
| `4abea0f631eb` | certain | Works shipped / day | `modules/status-ui/public/status.js:
|
|
1267
|
+
| `4abea0f631eb` | certain | Works shipped / day | `modules/status-ui/public/status.js:1222` |
|
|
1268
1268
|
| `b2f58817e34e` | certain | World snapshots over time | `modules/status-ui/public/index.html:343` |
|
|
1269
1269
|
| `ebdc5ecf315c` | certain | avg time / work | `modules/status-ui/public/index.html:220` |
|
|
1270
1270
|
| `774e102fc137` | certain | city's standing | `modules/status-ui/public/index.html:163` |
|
|
@@ -1275,9 +1275,9 @@ Identical copy within one surface. Sometimes right (a repeated button), sometime
|
|
|
1275
1275
|
| `5b653a87c53c` | certain | of the purse | `modules/status-ui/public/index.html:263` |
|
|
1276
1276
|
| `c10ffea69d1c` | certain | of the year's purse spent | `modules/status-ui/public/index.html:171` |
|
|
1277
1277
|
| `89ef611c7d37` | certain | page 1 of 1 | `modules/status-ui/public/index.html:322` |
|
|
1278
|
-
| `4a00bdbfd9be` | certain | page {…} of {…} | `modules/status-ui/public/status.js:
|
|
1278
|
+
| `4a00bdbfd9be` | certain | page {…} of {…} | `modules/status-ui/public/status.js:1010` |
|
|
1279
1279
|
| `1d0fbe3e5927` | certain | passed the inspector, last 7 days | `modules/status-ui/public/index.html:178` |
|
|
1280
|
-
| `c1e3c2212207` | certain | tablet last consulted at {…} | `modules/status-ui/public/status.js:
|
|
1280
|
+
| `c1e3c2212207` | certain | tablet last consulted at {…} | `modules/status-ui/public/status.js:1167` |
|
|
1281
1281
|
| `fefb0130c7ae` | certain | value wrought | `modules/status-ui/public/index.html:255` |
|
|
1282
1282
|
| `b97f429c33fe` | certain | works shipped (90d) | `modules/status-ui/public/index.html:218` |
|
|
1283
1283
|
| `71a303e1ba09` | certain | works wrought, last 7 days | `modules/status-ui/public/index.html:167` |
|