Skip to content

Default new realms to a Workspace index card#5587

Draft
lukemelia wants to merge 1 commit into
cs-12279-recognize-workspace-adoptionfrom
cs-12294-workspace-default-index
Draft

Default new realms to a Workspace index card#5587
lukemelia wants to merge 1 commit into
cs-12279-recognize-workspace-adoptionfrom
cs-12294-workspace-default-index

Conversation

@lukemelia

Copy link
Copy Markdown
Contributor

What

create-realm.ts seeds every new realm's index.json. Point it at Workspace instead of CardsGrid, so a newly created realm opens to the Workspace experience. This is the "replace CardsGrid" keystone — the card, the recognition, and the migration are only meaningful once the default flips.

CardsGrid stays available for existing/bespoke realms; only the default for freshly created realms changes.

Depends on

  • The Workspace card must exist (so a new realm's index resolves).
  • The publish handler + prerender fast-path must recognize Workspace (so a new realm still gets the prerendered default-index treatment on publish, and the realm-server tests that assumed a CardsGrid default stay correct). This PR is stacked on that recognition branch.

Blast radius (audited)

The realm-server test helper createRealm seeds its own fileSystem, so it does not go through this handler — most realm-server tests are unaffected. Of the tests that hit the real /_create-realm endpoint:

  • index-responses and realm-lifecycle seed their own index.json → unaffected.
  • realm-routing's deadlock guard uses a mock fixture, not a real create+prerender → unaffected (comment now slightly historical).
  • publish-unpublish creates its source realm via the endpoint and did rely on the default being CardsGrid → updated here: the default-index case now exercises Workspace, and the explicit case is repurposed to cover the legacy CardsGrid path, so both recognized defaults stay tested; the bespoke-index negative case is unchanged.

Also fixed software-factory comments that described the old CardsGrid default (the factory overwrites the index regardless, so it's behavior-neutral).

Test plan

realm-server ember-tsc, eslint, prettier clean. Not run locally — the realm-server publish/create suites need test-pg + their own prerender, which isn't wired up in this session; they run in CI. Given the default flip is behaviorally significant, CI's full realm-server + matrix suites (which create realms via /_create-realm) are the real confirmation. The publish test changes mirror the existing passing tests' structure.

🤖 Generated with Claude Code

@github-actions

github-actions Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Host Test Results

    1 files  ±0      1 suites  ±0   2h 37m 44s ⏱️ +20s
3 602 tests ±0  3 587 ✅ ±0  15 💤 ±0  0 ❌ ±0 
3 621 runs  ±0  3 606 ✅ ±0  15 💤 ±0  0 ❌ ±0 

Results for commit 4b29bc8. ± Comparison against earlier commit b07a65f.

Realm Server Test Results

    1 files  ±0      1 suites  ±0   12m 1s ⏱️ +9s
1 920 tests ±0  1 920 ✅ ±0  0 💤 ±0  0 ❌ ±0 
1 999 runs  ±0  1 999 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 4b29bc8. ± Comparison against earlier commit b07a65f.

create-realm seeds every new realm's index.json; point it at Workspace
instead of CardsGrid so newly created realms open to the Workspace
experience. The publish handler and prerender fast-path already recognize
both cards (so a new realm still gets the prerendered default-index
treatment on publish), and CardsGrid stays available for existing realms.

Update the publish/unpublish tests: the default-index case now exercises
Workspace, and the explicit case covers the legacy CardsGrid path so both
recognized defaults stay tested. Fix software-factory comments that
described the old CardsGrid default (the factory overwrites the index
regardless).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@lukemelia
lukemelia force-pushed the cs-12294-workspace-default-index branch from b07a65f to 4b29bc8 Compare July 23, 2026 03:05
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