Skip to content

feat(nexus): author @gbg/nexus as Cosmo home - #118

Merged
creatifcoding merged 2 commits into
feat/mantis-biomemetics-labfrom
cursor/nexus-cosmo-home-9d0f
Aug 30, 2026
Merged

creatifcoding merged 2 commits into
feat/mantis-biomemetics-labfrom
cursor/nexus-cosmo-home-9d0f

Conversation

@creatifcoding

@creatifcoding creatifcoding commented Aug 27, 2026 •

Copy link
Copy Markdown
Owner

Complete Cosmo home. tmnl consumes. Not a stub. Cluster is @gbg/cluster; Cosmo home is @gbg/nexus. Rebased onto feat/mantis-biomemetics-lab after PR 109. Same PR. Mergeable for the operator.

What this is

  • Cosmo filenames: graph.yaml (version: 1, subgraphs[]), config.yaml (execution_config.file + events.providers.nats), Federation v2 SDL at fixtures/fixture-demo.graphql, compose script wgc router compose -i graph.yaml -o router.json.
  • wgc@0.130.1 is a real, pinned dependency (tmnl already has wgc; current npm is 0.130.1).
  • Tests run composition. npm install, npm run typecheck, and npm test from packages/nexus. .github/workflows/nexus-ci.yml runs those three. No deploy job.
  • Sibling package shape: private, "type": "module", vitest, tsc --noEmit, project.json, own lock. Excluded from the root workspace (!packages/nexus) alongside !packages/cluster.
  • src/index.ts exports compose helpers and types.

Router image: ghcr.io/wundergraph/cosmo/router. Default listen: 3002. Execution file name is router.json everywhere.

What compose actually emits

Command:

wgc router compose -i graph.yaml -o router.json

CLI:

Router execution config successfully written to "router.json".

router.json keys from wgc@0.130.1 / @wundergraph/composition@0.63.3:

Key What it is
compatibilityVersion "1:0.63.3"
engineConfig.graphqlSchema Federated SDL: Query.fixtureHealth, FixtureDemo { id, label }
engineConfig.datasourceConfigurations One GRAPHQL datasource; federation enabled; serviceSdl is the fixture file
engineConfig.stringStorage Upstream schema blob keyed by hash
subgraphs [{ id, name: "fixture-demo", routingUrl: "http://localhost:4001/graphql" }]
featureFlagConfigs {}
version Placeholder UUID (00000000-0000-0000-0000-000000000000) — no control plane

The fixture subgraph is named fixture-demo on purpose. No catalog, specimen, procurement, GPS, or taxon types.

tmnl consumes. Leftover Pepr stays in tmnl.

  • @gbg/nexus is mapped in tsconfig.base.json and packages/tmnl/tsconfig.json.
  • Leftover Pepr cosmo-operator stays at packages/tmnl/src/infra/graph. Not copied. INFRA_DIR is not peeled this cut.
  • Cluster-create in packages/tmnl/nix/modules/k8s.nix remains a helper path, not Cosmo's home.

After PR 109

Root package.json workspaces exclude both !packages/cluster and !packages/nexus. tsconfig.base.json maps both @gbg/cluster and @gbg/nexus. Nexus is not a second home inside cluster files.

Ship

Ship when CI is green on the lab branch. User corrects after the fact.

Stop is only: paid cloud, deploy that leaves this machine, a second NATS, a second catalog source of truth, a second API group. Wallet still stops paid cloud and alchemy deploy that leaves this machine.

Catalog stays Postgres off-cluster. One NATS: packages/tmnl/nix/modules/nats/values.yaml.

Docs opened

Open in Web Open in Cursor 

@creatifcoding
creatifcoding marked this pull request as ready for review August 30, 2026 01:57
cursoragent and others added 2 commits August 30, 2026 01:59
Complete Cosmo/WunderGraph home at packages/nexus: official graph.yaml
compose input, Federation v2 fixture SDL, config.yaml with execution
config + helm NATS EDFS, wgc@0.130.1, and tests that run
`wgc router compose -i graph.yaml -o router.json`.

tmnl consumes via tsconfig path. Leftover Pepr operator stays in
packages/tmnl/src/infra/graph. Not on the cluster draft. No deploy.

Co-authored-by: digicoder <creatifcoding@users.noreply.github.com>
Rebased onto feat/mantis-biomemetics-lab after PR 109. Keep both
@gbg/cluster and @gbg/nexus. Replace hold-merge/hold-deploy README
guardrails with ship-on-green and a hard stop only for paid cloud,
off-machine deploy, a second NATS, a second catalog SoT, or a second
API group.

Co-authored-by: digicoder <creatifcoding@users.noreply.github.com>
@cursor
cursor Bot force-pushed the cursor/nexus-cosmo-home-9d0f branch from ea720fc to ac11373 Compare August 30, 2026 02:00
@creatifcoding
creatifcoding merged commit 53a37e6 into feat/mantis-biomemetics-lab Aug 30, 2026
3 checks passed
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.

2 participants