@bongos/core 1.19.411 → 1.19.413
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 +31 -21
- package/clients/bongos-client/index.d.ts +4 -4
- package/docs/api/openapi.json +25 -10
- package/docs/api-reference.md +2 -2
- package/docs/copy-inventory.md +96 -92
- package/docs/copy-registry.json +147 -111
- package/docs/module-api-changelog.md +4 -0
- package/modules/hall-ui/public/settings.html +18 -0
- package/modules/hall-ui/public/settings.js +93 -10
- package/modules/platform-identity/migrations/platform_identity_012_account_privacy.sql +59 -0
- package/modules/platform-identity/platform-identity.js +91 -1
- package/modules/platform-identity/routes/profile.js +68 -17
- package/package-lock.json +2 -2
- package/package.json +1 -1
- package/src/module-api.js +1 -1
- package/tests/account_privacy_flags.mjs +299 -0
- package/tests/profile_route.mjs +290 -10
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.
|
|
6
|
-
"core_contract": "1.19.
|
|
7
|
-
"source_commit": "
|
|
5
|
+
"core_version": "1.19.413",
|
|
6
|
+
"core_contract": "1.19.413",
|
|
7
|
+
"source_commit": "d76d3df7df9710c0f465ea480821e07f3618ba8a",
|
|
8
8
|
"source_ref": "HEAD",
|
|
9
|
-
"built_at": "2026-08-
|
|
9
|
+
"built_at": "2026-08-29T15:10:10.945Z",
|
|
10
10
|
"redaction": {
|
|
11
11
|
"model": "docs-redacted+functional-verbatim",
|
|
12
12
|
"docs_redacted": 354,
|
|
13
13
|
"agent_docs_stubbed": 23,
|
|
14
|
-
"functional_verbatim":
|
|
14
|
+
"functional_verbatim": 1669,
|
|
15
15
|
"rules": 3,
|
|
16
16
|
"gate_literals": 3,
|
|
17
17
|
"gate": "passed"
|
|
18
18
|
},
|
|
19
|
-
"file_count":
|
|
20
|
-
"tree_sha256": "
|
|
19
|
+
"file_count": 2046,
|
|
20
|
+
"tree_sha256": "4e0995ef98f294d4511dc8574ae57a362cecd105b934a2a4f5831c3c1527fb0b",
|
|
21
21
|
"files": [
|
|
22
22
|
{
|
|
23
23
|
"path": ".claude/skills/blocker-review/SKILL.md",
|
|
@@ -372,7 +372,7 @@
|
|
|
372
372
|
{
|
|
373
373
|
"path": "clients/bongos-client/index.d.ts",
|
|
374
374
|
"mode": "0000644",
|
|
375
|
-
"sha256": "
|
|
375
|
+
"sha256": "84fce1d4d0fba5b586f1a965a7b4b6818ad7d27e7bbce68818e9def0db85724b"
|
|
376
376
|
},
|
|
377
377
|
{
|
|
378
378
|
"path": "clients/bongos-client/index.mjs",
|
|
@@ -1527,12 +1527,12 @@
|
|
|
1527
1527
|
{
|
|
1528
1528
|
"path": "docs/api-reference.md",
|
|
1529
1529
|
"mode": "0000644",
|
|
1530
|
-
"sha256": "
|
|
1530
|
+
"sha256": "dc283ca75e6aa5b2dcede50879f7c7f7beb151ae953282c917621b4dd6d6b2e1"
|
|
1531
1531
|
},
|
|
1532
1532
|
{
|
|
1533
1533
|
"path": "docs/api/openapi.json",
|
|
1534
1534
|
"mode": "0000644",
|
|
1535
|
-
"sha256": "
|
|
1535
|
+
"sha256": "4ae66f6126c2148d61f4bdbdcc7d06ca8966f2747f34e4b243f348545ce4e3aa"
|
|
1536
1536
|
},
|
|
1537
1537
|
{
|
|
1538
1538
|
"path": "docs/architecture.md",
|
|
@@ -1557,12 +1557,12 @@
|
|
|
1557
1557
|
{
|
|
1558
1558
|
"path": "docs/copy-inventory.md",
|
|
1559
1559
|
"mode": "0000644",
|
|
1560
|
-
"sha256": "
|
|
1560
|
+
"sha256": "0935ecff01e0e750f9120947b227663f61510661c411cf96c99415c96fb99275"
|
|
1561
1561
|
},
|
|
1562
1562
|
{
|
|
1563
1563
|
"path": "docs/copy-registry.json",
|
|
1564
1564
|
"mode": "0000644",
|
|
1565
|
-
"sha256": "
|
|
1565
|
+
"sha256": "13447cec279cbe55c95346a67eeaacf9a349e472988cd40023015b042f9047cf"
|
|
1566
1566
|
},
|
|
1567
1567
|
{
|
|
1568
1568
|
"path": "docs/design/apex-pass-2-direction.md",
|
|
@@ -1867,7 +1867,7 @@
|
|
|
1867
1867
|
{
|
|
1868
1868
|
"path": "docs/module-api-changelog.md",
|
|
1869
1869
|
"mode": "0000644",
|
|
1870
|
-
"sha256": "
|
|
1870
|
+
"sha256": "ad1eb5201b24398e4609ff25d687069da2ba6f312dac48e1b287712cde0c8fe6"
|
|
1871
1871
|
},
|
|
1872
1872
|
{
|
|
1873
1873
|
"path": "docs/modules-contract.md",
|
|
@@ -4102,12 +4102,12 @@
|
|
|
4102
4102
|
{
|
|
4103
4103
|
"path": "modules/hall-ui/public/settings.html",
|
|
4104
4104
|
"mode": "0000644",
|
|
4105
|
-
"sha256": "
|
|
4105
|
+
"sha256": "852ce177610c5bc49145333b157700d8c3566565d106dcf26c476d32b7105609"
|
|
4106
4106
|
},
|
|
4107
4107
|
{
|
|
4108
4108
|
"path": "modules/hall-ui/public/settings.js",
|
|
4109
4109
|
"mode": "0000644",
|
|
4110
|
-
"sha256": "
|
|
4110
|
+
"sha256": "5e4e3a6ab492d6b6fae46ad5dbd896213825bfc79f8f3928836af609953a5fb0"
|
|
4111
4111
|
},
|
|
4112
4112
|
{
|
|
4113
4113
|
"path": "modules/hall-ui/public/shell.js",
|
|
@@ -4769,6 +4769,11 @@
|
|
|
4769
4769
|
"mode": "0000644",
|
|
4770
4770
|
"sha256": "18e3641beba26d8a515616ba9bdb1bcc83151e620d6e038243d7d67850da3be8"
|
|
4771
4771
|
},
|
|
4772
|
+
{
|
|
4773
|
+
"path": "modules/platform-identity/migrations/platform_identity_012_account_privacy.sql",
|
|
4774
|
+
"mode": "0000644",
|
|
4775
|
+
"sha256": "cb1d96a64d952e2f4e043e805264ab813505571e1cb93d1afde337987f00b482"
|
|
4776
|
+
},
|
|
4772
4777
|
{
|
|
4773
4778
|
"path": "modules/platform-identity/migrations/platform_identity_012_project_template.sql",
|
|
4774
4779
|
"mode": "0000644",
|
|
@@ -4787,7 +4792,7 @@
|
|
|
4787
4792
|
{
|
|
4788
4793
|
"path": "modules/platform-identity/platform-identity.js",
|
|
4789
4794
|
"mode": "0000644",
|
|
4790
|
-
"sha256": "
|
|
4795
|
+
"sha256": "b3a8ecce278904a12caa0fbebbcabd3cd122aab6753e026b1b5719547497302d"
|
|
4791
4796
|
},
|
|
4792
4797
|
{
|
|
4793
4798
|
"path": "modules/platform-identity/pollers/code-sweep.js",
|
|
@@ -4807,7 +4812,7 @@
|
|
|
4807
4812
|
{
|
|
4808
4813
|
"path": "modules/platform-identity/routes/profile.js",
|
|
4809
4814
|
"mode": "0000644",
|
|
4810
|
-
"sha256": "
|
|
4815
|
+
"sha256": "209763cf313bb58f7237cda9c84f3cb5ed35db8f95d66b55dfa3f15e5da1ecdf"
|
|
4811
4816
|
},
|
|
4812
4817
|
{
|
|
4813
4818
|
"path": "modules/platform-identity/routes/projects.js",
|
|
@@ -5367,12 +5372,12 @@
|
|
|
5367
5372
|
{
|
|
5368
5373
|
"path": "package-lock.json",
|
|
5369
5374
|
"mode": "0000644",
|
|
5370
|
-
"sha256": "
|
|
5375
|
+
"sha256": "b4a7232c717443506a820d17ca00363221141d7494259f9f6b1a676a474c32ee"
|
|
5371
5376
|
},
|
|
5372
5377
|
{
|
|
5373
5378
|
"path": "package.json",
|
|
5374
5379
|
"mode": "0000644",
|
|
5375
|
-
"sha256": "
|
|
5380
|
+
"sha256": "7c01dfae62c1038f19d70b09c7007f41abf4c18e17db201f2cd20011d65f938c"
|
|
5376
5381
|
},
|
|
5377
5382
|
{
|
|
5378
5383
|
"path": "public-docs/index.html",
|
|
@@ -7387,7 +7392,7 @@
|
|
|
7387
7392
|
{
|
|
7388
7393
|
"path": "src/module-api.js",
|
|
7389
7394
|
"mode": "0000644",
|
|
7390
|
-
"sha256": "
|
|
7395
|
+
"sha256": "bf76bacb85922bac8e5c23a51a50535143cd7c6e2fbebad35cabd21913f43881"
|
|
7391
7396
|
},
|
|
7392
7397
|
{
|
|
7393
7398
|
"path": "src/module-loader/catalog.js",
|
|
@@ -7439,6 +7444,11 @@
|
|
|
7439
7444
|
"mode": "0000644",
|
|
7440
7445
|
"sha256": "4d8435e7f8b949715ee40843beddc1868105edd9c67b269cfa8f510a192e9212"
|
|
7441
7446
|
},
|
|
7447
|
+
{
|
|
7448
|
+
"path": "tests/account_privacy_flags.mjs",
|
|
7449
|
+
"mode": "0000644",
|
|
7450
|
+
"sha256": "274e07580eb23b111fb26e097a85f618cf33b0467a9a2a325cfbdd910a33fab1"
|
|
7451
|
+
},
|
|
7442
7452
|
{
|
|
7443
7453
|
"path": "tests/achievements_reconcile.mjs",
|
|
7444
7454
|
"mode": "0000644",
|
|
@@ -9382,7 +9392,7 @@
|
|
|
9382
9392
|
{
|
|
9383
9393
|
"path": "tests/profile_route.mjs",
|
|
9384
9394
|
"mode": "0000644",
|
|
9385
|
-
"sha256": "
|
|
9395
|
+
"sha256": "5af720ee7c18d4b47630fbbed7cb08901acfbf773960699e312496b8196c9fdc"
|
|
9386
9396
|
},
|
|
9387
9397
|
{
|
|
9388
9398
|
"path": "tests/profile_ui_cross_project.mjs",
|
|
@@ -64,7 +64,7 @@ export interface GetInboxTemplateResponse { template: unknown }
|
|
|
64
64
|
export interface GetLeaderboardResponse { leaderboard: unknown; page: unknown }
|
|
65
65
|
export interface GetLearningsResponse { learnings: unknown }
|
|
66
66
|
export interface GetMeAchievementsResponse { unlocked: unknown }
|
|
67
|
-
export interface GetMeCrossProjectResponse { hide_stats: boolean; profile_state: unknown; handle: unknown; display_name: unknown; bio: unknown; links: unknown; cross_project: unknown }
|
|
67
|
+
export interface GetMeCrossProjectResponse { hide_stats: boolean; profile_state: unknown; handle: unknown; display_name: unknown; bio: unknown; links: unknown; cross_project: unknown; account_visibility: unknown; recruiter_discoverable: unknown; recruiter_discoverable_effective: unknown }
|
|
68
68
|
export interface GetMeDisplayNameResponse { display_name: unknown; max_length: unknown }
|
|
69
69
|
export interface GetMeEventSoundPrefsResponse { prefs: unknown; effective: unknown; effective_wav: unknown; events: unknown }
|
|
70
70
|
export interface GetMeRecentShipsResponse { ships: unknown }
|
|
@@ -147,8 +147,8 @@ export interface PatchInboxIdBodyRequest { body_md: string }
|
|
|
147
147
|
export interface PatchInboxIdBodyResponse { ok: boolean; idea: unknown; delta: unknown; unchanged: unknown }
|
|
148
148
|
export interface PatchInboxIdRequest { status?: "open" | "promoted" | "discarded" | "merged"; kind?: string; promoted_to_task_id?: number; reviewed_at?: unknown; merged_into_idea_id?: number; triage_note?: string }
|
|
149
149
|
export interface PatchInboxIdResponse { idea: unknown }
|
|
150
|
-
export interface PatchMeCrossProjectRequest { hide_stats
|
|
151
|
-
export interface PatchMeCrossProjectResponse { hide_stats: boolean }
|
|
150
|
+
export interface PatchMeCrossProjectRequest { hide_stats?: boolean; account_visibility?: string; recruiter_discoverable?: boolean }
|
|
151
|
+
export interface PatchMeCrossProjectResponse { hide_stats: boolean; account_visibility: unknown; recruiter_discoverable: unknown; recruiter_discoverable_effective: unknown }
|
|
152
152
|
export interface PatchMeDisciplinesRequest { preferred_disciplines: string[] }
|
|
153
153
|
export interface PatchMeDisciplinesResponse { builder: unknown; onboarding: unknown }
|
|
154
154
|
export interface PatchMeDisplayNameResponse { display_name: unknown; max_length: unknown }
|
|
@@ -784,7 +784,7 @@ export interface BongosClient {
|
|
|
784
784
|
/** GET /me/cross-project — rank: any-builder */
|
|
785
785
|
getMeCrossProject(args?: RequestArgs): Promise<GetMeCrossProjectResponse>;
|
|
786
786
|
/** PATCH /me/cross-project — rank: any-builder */
|
|
787
|
-
patchMeCrossProject(args
|
|
787
|
+
patchMeCrossProject(args?: RequestArgs & { body?: PatchMeCrossProjectRequest }): Promise<PatchMeCrossProjectResponse>;
|
|
788
788
|
/** PATCH /me/disciplines — rank: any-builder */
|
|
789
789
|
patchMeDisciplines(args: RequestArgs & { body: PatchMeDisciplinesRequest }): Promise<PatchMeDisciplinesResponse>;
|
|
790
790
|
/** GET /me/display-name — rank: any-builder */
|
package/docs/api/openapi.json
CHANGED
|
@@ -7959,7 +7959,7 @@
|
|
|
7959
7959
|
"me"
|
|
7960
7960
|
],
|
|
7961
7961
|
"summary": "GET /me/cross-project",
|
|
7962
|
-
"description": "the caller's OWN cross-project record +
|
|
7962
|
+
"description": "the caller's OWN cross-project record + privacy flags (own data).\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
7963
7963
|
"x-rank": "any-builder",
|
|
7964
7964
|
"x-source": "modules/platform-identity/routes/profile.js",
|
|
7965
7965
|
"responses": {
|
|
@@ -7995,11 +7995,11 @@
|
|
|
7995
7995
|
"me"
|
|
7996
7996
|
],
|
|
7997
7997
|
"summary": "PATCH /me/cross-project",
|
|
7998
|
-
"description": "flip the caller's OWN
|
|
7998
|
+
"description": "flip the caller's OWN privacy flags (C2's self-serve opt-out plus the task-1002966 pair; own data, keyed on the authenticated github_id — a builder can never name another account here). Every field is optional and at least one is required, so a client sends only what changed; recruiter_discoverable accepts an explicit null (reset to \"follow visibility\"), which is why it is checked with `in` rather than truthiness.\n\n**Rank:** `any-builder` — Any authenticated builder (row-level ownership enforced in-handler).",
|
|
7999
7999
|
"x-rank": "any-builder",
|
|
8000
8000
|
"x-source": "modules/platform-identity/routes/profile.js",
|
|
8001
8001
|
"requestBody": {
|
|
8002
|
-
"required":
|
|
8002
|
+
"required": false,
|
|
8003
8003
|
"content": {
|
|
8004
8004
|
"application/json": {
|
|
8005
8005
|
"schema": {
|
|
@@ -15648,7 +15648,10 @@
|
|
|
15648
15648
|
"display_name": {},
|
|
15649
15649
|
"bio": {},
|
|
15650
15650
|
"links": {},
|
|
15651
|
-
"cross_project": {}
|
|
15651
|
+
"cross_project": {},
|
|
15652
|
+
"account_visibility": {},
|
|
15653
|
+
"recruiter_discoverable": {},
|
|
15654
|
+
"recruiter_discoverable_effective": {}
|
|
15652
15655
|
},
|
|
15653
15656
|
"required": [
|
|
15654
15657
|
"hide_stats",
|
|
@@ -15657,7 +15660,10 @@
|
|
|
15657
15660
|
"display_name",
|
|
15658
15661
|
"bio",
|
|
15659
15662
|
"links",
|
|
15660
|
-
"cross_project"
|
|
15663
|
+
"cross_project",
|
|
15664
|
+
"account_visibility",
|
|
15665
|
+
"recruiter_discoverable",
|
|
15666
|
+
"recruiter_discoverable_effective"
|
|
15661
15667
|
]
|
|
15662
15668
|
},
|
|
15663
15669
|
"GetMeDisplayNameResponse": {
|
|
@@ -16754,11 +16760,14 @@
|
|
|
16754
16760
|
"properties": {
|
|
16755
16761
|
"hide_stats": {
|
|
16756
16762
|
"type": "boolean"
|
|
16763
|
+
},
|
|
16764
|
+
"account_visibility": {
|
|
16765
|
+
"type": "string"
|
|
16766
|
+
},
|
|
16767
|
+
"recruiter_discoverable": {
|
|
16768
|
+
"type": "boolean"
|
|
16757
16769
|
}
|
|
16758
16770
|
},
|
|
16759
|
-
"required": [
|
|
16760
|
-
"hide_stats"
|
|
16761
|
-
],
|
|
16762
16771
|
"additionalProperties": false
|
|
16763
16772
|
},
|
|
16764
16773
|
"PatchMeCrossProjectResponse": {
|
|
@@ -16766,10 +16775,16 @@
|
|
|
16766
16775
|
"properties": {
|
|
16767
16776
|
"hide_stats": {
|
|
16768
16777
|
"type": "boolean"
|
|
16769
|
-
}
|
|
16778
|
+
},
|
|
16779
|
+
"account_visibility": {},
|
|
16780
|
+
"recruiter_discoverable": {},
|
|
16781
|
+
"recruiter_discoverable_effective": {}
|
|
16770
16782
|
},
|
|
16771
16783
|
"required": [
|
|
16772
|
-
"hide_stats"
|
|
16784
|
+
"hide_stats",
|
|
16785
|
+
"account_visibility",
|
|
16786
|
+
"recruiter_discoverable",
|
|
16787
|
+
"recruiter_discoverable_effective"
|
|
16773
16788
|
]
|
|
16774
16789
|
},
|
|
16775
16790
|
"PatchMeDisciplinesRequest": {
|
package/docs/api-reference.md
CHANGED
|
@@ -340,8 +340,8 @@ Base path: `/api/bongos`. Ranks (enforced server-side, [ADR 0016](adr/<redacted>
|
|
|
340
340
|
| GET | `/api/bongos/me` | `any-builder` | — | PMS-V2 task 188: response now also carries `unlocked` (server-joined achievement metadata) + `locked_with_progress` (server-computed huma… |
|
|
341
341
|
| GET | `/api/bongos/me/achievements` | `any-builder` | — | The builder's unlocked achievements (joined to achievement metadata). |
|
|
342
342
|
| POST | `/api/bongos/me/anthropic-link` | `any-builder` | `anthropic_email`, `anthropic_user_id` | V3.R10 (task 235), criterion C3 — link the authed builder's Anthropic account. |
|
|
343
|
-
| GET | `/api/bongos/me/cross-project` | `any-builder` | — | the caller's OWN cross-project record +
|
|
344
|
-
| PATCH | `/api/bongos/me/cross-project` | `any-builder` | `hide_stats` | flip the caller's OWN
|
|
343
|
+
| GET | `/api/bongos/me/cross-project` | `any-builder` | — | the caller's OWN cross-project record + privacy flags (own data). |
|
|
344
|
+
| PATCH | `/api/bongos/me/cross-project` | `any-builder` | `hide_stats`, `account_visibility`, `recruiter_discoverable` | flip the caller's OWN privacy flags (C2's self-serve opt-out plus the task-1002966 pair; own data, keyed on the authenticated github_id —… |
|
|
345
345
|
| PATCH | `/api/bongos/me/disciplines` | `any-builder` | `preferred_disciplines` | Self-service edit of the authenticated builder's preferred disciplines (migrations 027 + 086 / V3.R80). |
|
|
346
346
|
| GET | `/api/bongos/me/display-name` | `any-builder` | — | Per-builder DISPLAY NAME (task 1669). |
|
|
347
347
|
| PATCH | `/api/bongos/me/display-name` | `any-builder` | _undocumented_ | PATCH the display name. |
|