Skip to content

feat(cli): auto-wire marketplace from @objectstack/cloud-connection when a cloud URL resolves#2009

Merged
os-zhuang merged 1 commit into
mainfrom
feat/cli-marketplace-autowire
Jun 17, 2026
Merged

feat(cli): auto-wire marketplace from @objectstack/cloud-connection when a cloud URL resolves#2009
os-zhuang merged 1 commit into
mainfrom
feat/cli-marketplace-autowire

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

What

The framework CLI (objectstack serve/dev/start) auto-wires the marketplace again — MarketplaceProxyPlugin + MarketplaceInstallLocalPlugin + the same-origin cloud-connection surface + RuntimeConfigPlugin (single-env, installLocal: true) — gated on resolveCloudUrl() being truthy. Imported from the open @objectstack/cloud-connection package.

Why

  • ADR-0006 Phase 4 removed the CLI's marketplace plugins because they were duplicate copies living in @objectstack/runtime.
  • ADR-0008 then open-sourced the canonical client into the Apache-2.0 @objectstack/cloud-connection package (framework-side).
  • After 0008 there is no longer a cloud-only copy to duplicate, so the CLI can wire the single canonical open implementation without crossing the open-core boundary. The serve.ts comment claiming the canonical impl is cloud-only (@objectstack/objectos-runtime) was stale.

The concrete bug this fixes

objectstack start empty-boot (OS_BOOT_EMPTY=1) advertises "boot an empty kernel against your marketplace" — but with no config and no artifact, there is no host to carry the marketplace wiring, so the only place it can come from is the CLI itself. Post-ADR-0006 the CLI mounted nothing, so empty-boot was silently marketless. This restores it.

Behavior

Scenario Result
OS_CLOUD_URL resolves proxy + install-local + cloud-connection + runtime-config mounted; Browse Marketplace + Installed Apps nav reappear (plugins self-register their Setup nav bundles)
OS_CLOUD_URL=off / unset nothing mounts — vanilla marketplace-less objectstack dev preserved
Runtime/host-kernel mode skipped (the cloud objectos-stack wires its own proxy on the host kernel; detected via ObjectOSEnvironmentPlugin, mirroring the existing AuthPlugin guard — avoids double-mount)

Changes

  • packages/cli/package.json — add @objectstack/cloud-connection: workspace:*
  • packages/cli/src/commands/serve.ts — conditional wiring block (replaces the ADR-0006 "REMOVED" comment)
  • .changeset/cli-marketplace-autowire.md — minor

Verification

  • tsc -p tsconfig.build.json (real typecheck with declarations) — 53/53 pass, no errors in the changed block.
  • Lint not runnable locally (no eslint binary in repo node_modules); code mirrors the existing 5c/5d auto-inject blocks.

🤖 Generated with Claude Code

…hen a cloud URL resolves

ADR-0006 Phase 4 removed the framework CLI's duplicate marketplace plugins
(they lived in @objectstack/runtime, duplicating the cloud distribution's
copies). ADR-0008 then open-sourced the canonical client into the Apache-2.0
@objectstack/cloud-connection package, so the CLI can wire it again without
crossing the open-core boundary — there is no longer a cloud-only copy to
duplicate.

objectstack serve/dev/start now mount MarketplaceProxyPlugin +
MarketplaceInstallLocalPlugin + the same-origin cloud-connection surface +
RuntimeConfigPlugin (single-env, installLocal: true) whenever resolveCloudUrl()
is truthy. OS_CLOUD_URL=off (or unset) mounts nothing, preserving the vanilla
marketplace-less objectstack dev. Skipped in runtime/host-kernel mode (the
cloud objectos-stack wires its own proxy on the host kernel — detected via
ObjectOSEnvironmentPlugin, mirroring the existing AuthPlugin guard).

Fixes objectstack start empty-boot, which advertised "boot an empty kernel
against your marketplace" but — having no config or artifact to carry the
wiring — actually mounted no marketplace at all. The plugins self-register
their Setup nav bundles, so Browse Marketplace + Installed Apps reappear
automatically.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 17, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Building Building Preview, Comment Jun 17, 2026 5:51am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation dependencies Pull requests that update a dependency file tooling labels Jun 17, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): @objectstack/cli.

15 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/concepts/cloud-artifact-api.mdx (via packages/cli)
  • content/docs/concepts/implementation-status.mdx (via @objectstack/cli)
  • content/docs/concepts/packages.mdx (via @objectstack/cli)
  • content/docs/getting-started/cli.mdx (via @objectstack/cli)
  • content/docs/getting-started/quick-start.mdx (via @objectstack/cli)
  • content/docs/guides/authentication.mdx (via @objectstack/cli)
  • content/docs/guides/client-sdk.mdx (via @objectstack/cli)
  • content/docs/guides/hook-bodies.mdx (via packages/cli)
  • content/docs/guides/packages.mdx (via @objectstack/cli)
  • content/docs/guides/project-scoping.mdx (via @objectstack/cli)
  • content/docs/guides/runtime-services/data-service.mdx (via packages/cli)
  • content/docs/guides/runtime-services/index.mdx (via packages/cli)
  • content/docs/guides/skills.mdx (via packages/cli)
  • content/docs/protocol/objectos/plugin-spec.mdx (via @objectstack/cli)
  • content/docs/protocol/objectos/realtime-protocol.mdx (via @objectstack/cli)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

@os-zhuang
os-zhuang merged commit c102de2 into main Jun 17, 2026
13 of 14 checks passed
@os-zhuang
os-zhuang deleted the feat/cli-marketplace-autowire branch June 17, 2026 05:52
os-zhuang added a commit that referenced this pull request Jun 26, 2026
fix(tree): render with object-shaped columns + offer Tree in Create View dialog (#2009)

objectui@4ae978082c5e568cd0eaaf3bb2465ff57f311677
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file documentation Improvements or additions to documentation size/s tooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant