feat(all): install-everything aggregator workspace#9
Merged
Conversation
`packages/all` composes every template into one runtime, as if installed together from the marketplace. It reads the runtime's real local-install folder (`.objectstack/installed-packages/`, the same format MarketplaceInstallLocalPlugin writes + rehydrates) and compiles all installed Apps into a single environment artifact served by `objectstack dev all`. Composition happens at the environment layer — not via defineStack — so the one-app-per-package rule (ADR-0019 / validateSingleApp) correctly does not apply. Object/app names don't collide (distinct namespace prefixes); only the generic lead/contributor role+permission shared by todo & content are de-duped, and `requires` is unioned. - scripts/compile-marketplace.mjs: install (workspace→installed-packages) + compile - root `pnpm dev:all`: build all templates, compose, boot on :4000 - README entries (root + packages/all) explaining the environment-layer model Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.
What
Adds
packages/all— a throwaway workspace that runs every template in one runtime, behind one app launcher, as if you installed them all together from the marketplace.pnpm dev:all # build all templates → compose → boot on :4000How
Piggy-backs on the runtime's real local-install mechanism:
.objectstack/installed-packages/<manifestId>.jsonfrom the workspace templates, in the exact wrapper formatMarketplaceInstallLocalPluginwrites (and rehydrates at boot). Real marketplace installs in that folder are picked up untouched.dist/objectstack.json,apps[N]).objectstack dev all --artifact …(a built-in CLI mode) boots a single runtime hosting every app.Why it's protocol-correct (ADR-0019)
The one-app-per-package rule is enforced by
defineStack'svalidateSingleAppand governs authoring a package. Composition here happens at the environment layer — the CLI serve/compile path validates withObjectStackDefinitionSchema(schema only), not thedefineStackwrapper — so the single-app / namespace-prefix gates correctly do not apply. Same layer as the runtime rehydrating multiple installed packages into one environment.Verified
app.objectstack.environment.allwith flows=30.todo_task,helpdesk_ticket,content_channel,pm_project) all return seeded records 200.Notes
todo&contentboth ship a genericlead/contributorrole+permission → de-duped keep-first (logged). No object/app name collisions.dist/and.objectstack/are gitignored (build outputs).🤖 Generated with Claude Code