Skip to content

feat(presets): four presets that provision what they name - #1701

Merged
pyramation merged 1 commit into
mainfrom
feat/preset-cleanup-trust-ladder
Aug 10, 2026
Merged

feat(presets): four presets that provision what they name#1701
pyramation merged 1 commit into
mainfrom
feat/preset-cleanup-trust-ladder

Conversation

@pyramation

Copy link
Copy Markdown
Contributor

Summary

The published side of constructive-io/constructive-db#2998 — this package is a second copy of the same registry, so the two must move together or provisioning ships a module list the backend does not accept.

levels_module is not a module. provision_database_modules has no branch for it, so every preset naming it installed nothing — no levels, requirements, grants or rewards tables — and no member of such a database could earn a level. Levels come from events_module, and a ladder exists only if one is named:

-['levels_module',  { scope: 'app' }],
-['levels_module',  { scope: 'org' }],
+['events_module',  { scope: 'app', trust_ladder: 'humanity' }],
+['events_module',  { scope: 'org', trust_ladder: 'humanity' }],

full already installed events_module but named no ladder, so it seeded zero kind='level' rows too; both its entries now carry humanity.

Five presets nothing provisions with are gone: auth:email, auth:email+magic, auth:sso, auth:passkey, b2b. The four kept each have real callers — minimal (the integration-test baseline, deliberately left with no events module and no ladder), and auth:hardened / b2b:storage / full (the warm-pool tiers and the dashboard's provisioning call).

b2b:storage now extends auth:hardened since its parent is gone. The provision-modules test used b2b only as a preset that gets overridden, so it names auth:hardened instead — the assertion (last layer that sets a preset wins) is unchanged.

Three guard tests so a preset can't name something that doesn't exist again: every module must be in the registry, every extends must name a preset that still ships, and an events_module entry must ask for a trust ladder.

Needs a publish of node-type-registry after merge — the dashboard and desktop read the preset list from the package, not from this repo.

Link to Devin session: https://app.devin.ai/sessions/fb489e25a5e34d5aaef46955c199e407
Requested by: @pyramation

Mirrors constructive-db: delete the five presets nothing provisions with
(auth:email, auth:email+magic, auth:sso, auth:passkey, b2b), and give the
survivors that carry auth an events_module with trust_ladder: 'humanity'.

levels_module is not a module the provisioning procedure accepts, so
every preset naming it installed nothing — those databases had no levels
tables and no member could earn a level. A guard test now rejects a
preset naming a module outside the registry, an extends pointing at a
deleted preset, and an events_module with no ladder.
@pyramation pyramation self-assigned this Aug 10, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@pyramation
pyramation merged commit 91a61fa into main Aug 10, 2026
20 checks passed
@pyramation
pyramation deleted the feat/preset-cleanup-trust-ladder branch August 10, 2026 19:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant