feat(plugin-approvals,platform-objects): ADR-0029 K2.b approvals domain ownership + D7 nav#1440
Merged
Merged
Conversation
…in ownership + D7 nav Move sys_approval_request / sys_approval_action out of the platform-objects monolith into @objectstack/plugin-approvals, which already registers and operates them — the plugin now owns its data model, behavior, and admin menu as one unit. - Object definitions moved (git mv) to plugin-approvals; platform-objects no longer exports them from /audit. Runtime unchanged. - D7: group_approvals Setup nav entries move from platform-objects' SETUP_NAV_CONTRIBUTIONS into plugin-approvals' navigationContributions — the owner ships the menu for its slot; absent plugin → empty slot. - D8: removed from the platform-objects i18n extract config; existing generated bundles keep working (object-name keyed). Plugin-side i18n extraction remains the tracked follow-up. Tests: plugin-approvals 30 (incl. new nav-contribution test), platform-objects 78 — green; turbo build (incl. DTS type-check) green. https://claude.ai/code/session_01Tv6F1Ub6bhCedrx3r8sZM4
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Previous Test Core failed only in @objectstack/driver-mongodb, where mongodb-memory-server could not download the MongoDB binary from fastdl.mongodb.org (network/infra flake) — unrelated to this PR (approvals domain move). Verified: no file outside plugin-approvals imports the moved objects, and local full `turbo run test` is green except that same download error. https://claude.ai/code/session_01Tv6F1Ub6bhCedrx3r8sZM4
…pprovals-ownership
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements ADR-0029 K2.b — moves the approvals domain out of the
platform-objectsmonolith into its capability plugin, and is the first domain move done with the D7 nav-contribution mechanism in place (so the menu moves with the objects).What moves
sys_approval_request/sys_approval_action→@objectstack/plugin-approvals, which already registers and operates them (the durable approval state behind ADR-0019 approval-as-flow-node). The plugin now owns its data model + behavior + admin menu as one unit.git mv, preserving history) intoplugin-approvals;platform-objectsno longer exports them from/audit. Runtime is unchanged — the plugin already registered these objects at runtime; only the definition's home moved. (No re-export facade: the dependency direction would cycle, and there are no external importers — same as K2.a webhooks.)group_approvalsentries (Requests,Action History) move fromplatform-objects'SETUP_NAV_CONTRIBUTIONSintoplugin-approvals'navigationContributions. The owner ships the menu for the slot it owns; an absent plugin leaves the slot empty (plus the existingrequiresObjectgating).platform-objectsi18n extract config; the existing generated translation bundles keep working at runtime (object-name keyed). Migrating the i18n extraction/bundles into the plugin remains the tracked cross-cutting follow-up — best done with theos i18n extracttooling rather than hand-editing the ~13k-line generated files.Verification
turbo build(platform-objects + plugin-approvals + dep graph, incl. DTS type-check): greengroup_approvalsslot), platform-objects 78 — greenNotes
plugin-approvalsno longer imports fromplatform-objectsin code; thepackage.jsondependency is left in place to avoid lockfile churn (consistent with K2.a) and can be dropped in a cleanup pass.https://claude.ai/code/session_01Tv6F1Ub6bhCedrx3r8sZM4
Generated by Claude Code