@bongos/core 1.19.510 → 1.19.512

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.
Files changed (33) hide show
  1. package/.bongos-core.json +48 -38
  2. package/config/branding.neutral.json +3 -2
  3. package/docs/adr/0233-a-copy-proposal-is-a-task-carrying-a-patch.md +16 -2
  4. package/docs/adr/0238-the-join-door-is-a-provisioning-settings-policy-key.md +57 -0
  5. package/docs/adr/README.md +1 -0
  6. package/docs/copy-inventory.md +124 -118
  7. package/docs/copy-registry.json +223 -158
  8. package/docs/module-api-changelog.md +4 -0
  9. package/modules/copy-desk/proposals.js +13 -0
  10. package/modules/copy-desk/routes/copy-desk.js +9 -2
  11. package/modules/copy-desk/tests/copy_proposals.mjs +41 -0
  12. package/modules/lifecycle/conflict-resolve.js +59 -3
  13. package/modules/provisioning/provisioning.js +27 -1
  14. package/modules/provisioning/tests/provisioning.mjs +17 -14
  15. package/modules/public-landing/public/assets/cosmos.css +3 -1
  16. package/modules/public-landing/public/projects.html +125 -0
  17. package/modules/ui-design/kit/serve.js +4 -3
  18. package/package-lock.json +2 -2
  19. package/package.json +1 -1
  20. package/scripts/gds/copy-apply.js +54 -4
  21. package/scripts/gds/git-merge-regen.js +18 -0
  22. package/src/branding.js +9 -0
  23. package/src/module-api.js +1 -1
  24. package/tests/conflict_resolve.mjs +118 -4
  25. package/tests/currency_label.mjs +5 -4
  26. package/tests/git_merge_regen.mjs +128 -2
  27. package/tests/project_door_ui.mjs +267 -0
  28. package/tests/projects_hub.mjs +86 -1
  29. package/tests/projects_hub_pre_uat.mjs +4 -1
  30. package/tests/provision_settings_apply.mjs +8 -7
  31. package/tests/provisioning_settings.mjs +65 -6
  32. package/tests/provisioning_settings_apply.mjs +3 -3
  33. package/tests/provisioning_settings_env.mjs +10 -8
@@ -55,7 +55,9 @@ t('a row with NO stored settings emits today\'s behavior EXPLICITLY, never nothi
55
55
  // an instance must never have to infer a policy from an absent variable
56
56
  assert.equal(v.CLOUDBONGOS_PLATFORM_VISIBILITY, 'public');
57
57
  assert.equal(v.CLOUDBONGOS_JOINABILITY, 'apply');
58
- assert.equal(linesOf(provisioning.settingsEnvLines({}, 'X')).length, 2, 'both keys always present');
58
+ // the join door rides the same transport (task 1002324, ADR 0182 D1)
59
+ assert.equal(v.CLOUDBONGOS_VISIBILITY, 'public');
60
+ assert.equal(linesOf(provisioning.settingsEnvLines({}, 'X')).length, 3, 'every policy key always present');
59
61
  });
60
62
 
61
63
  t('an off-vocabulary stored value falls back to the default, never reaches the instance', () => {
@@ -94,11 +96,11 @@ t('it names the live push by the intent the runner actually dispatches (task 100
94
96
  });
95
97
 
96
98
  t('settingsEnvVars is the single source both legs derive from — same keys, same values as the lines', () => {
97
- const row = { settings: { platform_visibility: 'gated', joinability: 'open' } };
99
+ const row = { settings: { platform_visibility: 'gated', joinability: 'open', visibility: 'stealth' } };
98
100
  const vars = provisioning.settingsEnvVars(row, 'CLOUDBONGOS');
99
- assert.deepEqual(vars, { CLOUDBONGOS_PLATFORM_VISIBILITY: 'gated', CLOUDBONGOS_JOINABILITY: 'open' });
101
+ assert.deepEqual(vars, { CLOUDBONGOS_PLATFORM_VISIBILITY: 'gated', CLOUDBONGOS_JOINABILITY: 'open', CLOUDBONGOS_VISIBILITY: 'stealth' });
100
102
  assert.deepEqual(varsOf(provisioning.settingsEnvLines(row, 'CLOUDBONGOS')), vars, 'the standup lines ARE the vars');
101
- assert.deepEqual(provisioning.settingsEnvVars({}, 'X'), { X_PLATFORM_VISIBILITY: 'public', X_JOINABILITY: 'apply' }, 'defaults, explicitly');
103
+ assert.deepEqual(provisioning.settingsEnvVars({}, 'X'), { X_PLATFORM_VISIBILITY: 'public', X_JOINABILITY: 'apply', X_VISIBILITY: 'public' }, 'defaults, explicitly');
102
104
  });
103
105
 
104
106
  console.log('\nwebEnvBody — the settings ride the real per-instance env file:');
@@ -131,12 +133,12 @@ t('clientBranding\'s project fallbacks are DEFAULT_SETTINGS, key for key — the
131
133
 
132
134
  t('the env override resolves onto project.* in a real process', () => {
133
135
  const read = (env) => JSON.parse(execFileSync(process.execPath, ['-e',
134
- "const b=require('./src/branding.js');const r=(b.branding||b)();console.log(JSON.stringify({v:r.project.platformVisibility,j:r.project.joinability}))"],
136
+ "const b=require('./src/branding.js');const r=(b.branding||b)();console.log(JSON.stringify({v:r.project.platformVisibility,j:r.project.joinability,d:r.project.visibility}))"],
135
137
  { cwd: ROOT, encoding: 'utf8', env: { ...process.env, ...env } }));
136
- assert.deepEqual(read({}), { v: 'public', j: 'apply' }, 'no env → the pack default');
138
+ assert.deepEqual(read({}), { v: 'public', j: 'apply', d: 'public' }, 'no env → the pack default');
137
139
  assert.deepEqual(
138
- read({ CLOUDBONGOS_PLATFORM_VISIBILITY: 'gated', CLOUDBONGOS_JOINABILITY: 'invite_only' }),
139
- { v: 'gated', j: 'invite_only' },
140
+ read({ CLOUDBONGOS_PLATFORM_VISIBILITY: 'gated', CLOUDBONGOS_JOINABILITY: 'invite_only', CLOUDBONGOS_VISIBILITY: 'stealth' }),
141
+ { v: 'gated', j: 'invite_only', d: 'stealth' },
140
142
  'the web.env the runner writes is what the instance reads');
141
143
  });
142
144