Skip to content

Add target-realm index page for the software factory#5342

Open
burieberry wants to merge 1 commit into
mainfrom
cs-11623-v3
Open

Add target-realm index page for the software factory#5342
burieberry wants to merge 1 commit into
mainfrom
cs-11623-v3

Conversation

@burieberry

@burieberry burieberry commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Summary

A freshly-created target realm now gets a RealmDashboard index page instead of a bare CardsGrid. The dashboard has three tabs:

  • Overview — project status, setup roadmap, issue KPIs, and validation runs
  • Board — the kanban IssueTracker
  • Artifacts — the CardsGrid of everything the factory created

Pre-existing realms are untouched; only realms the factory just created get the
dashboard.

What's included

New index page

  • realm/realm-dashboard.gts — the index card for the freshly created realm. Composed of the tabbed header, the embedded IssueTracker board, and the overview dashboard.
  • realm/overview.gts — the dashboard component: KPIs, status/priority/type funnels,
    roadmap, validation runs, and a knowledge-base section.
  • realm/empty-state.gts — shared empty-state component for the dashboard
    sections.

Factory wiring (links the page on bootstrap)

  • src/factory-realm-index.tslinkBoardToRealmIndex: links the realm's
    IssueTracker board into the index card.
  • src/factory-seed.tslinkProjectToSeedIssue: links the seed issue to its
    Project.
  • src/factory-entrypoint.tswireBootstrapArtifacts runs both links (and a
    one-shot workspace sync) via a new onBootstrapComplete hook that fires the
    moment the bootstrap issue finishes.
    Both paths are gated on createdRealm and are best-effort: a wiring failure
    is logged, never fatal to the run.
  • src/issue-loop.ts, src/factory-issue-loop-wiring.ts — thread the optional
    onBootstrapComplete hook through the loop.

boxel-ui — tabbed-header

  • headerTitle is now optional; the title group renders only when a title is
    passed.
  • Internal CSS vars renamed to the --boxel-header-* namespace, with new
    --boxel-header-title-* override custom properties for consumers.

Tests

  • factory-entrypoint.test.ts, factory-realm-index.test.ts,
    factory-seed.test.ts, issue-loop.test.ts, realm-dashboard.test.gts
    cover the new wiring and the index card.

Screenshots:

1- Running the factory:go without a pre-existing realm, this is what you first see.
1-run-start
2-board-empty-state

2- Tickets in progress:
3-tickets-in-progress
4-ticket-in-progress-board

3- Run complete:
5-run-complete

6-run-complete-board 7-run-complete-cards-grid

@burieberry burieberry changed the title Add new index page for freshly created target realm feat: Add new index page for freshly created target realm Jun 26, 2026
@github-actions

github-actions Bot commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Preview deployments

Host Test Results

    1 files  ±0      1 suites  ±0   2h 29m 6s ⏱️ + 1m 48s
3 272 tests ±0  3 257 ✅ ±0  15 💤 ±0  0 ❌ ±0 
3 291 runs  ±0  3 276 ✅ ±0  15 💤 ±0  0 ❌ ±0 

Results for commit 80c9bda. ± Comparison against earlier commit 8528ecb.

Realm Server Test Results

    1 files  ±0      1 suites  ±0   8m 22s ⏱️ -49s
1 663 tests ±0  1 663 ✅ ±0  0 💤 ±0  0 ❌ ±0 
1 742 runs  ±0  1 742 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 80c9bda. ± Comparison against earlier commit 8528ecb.

@burieberry burieberry marked this pull request as ready for review June 26, 2026 13:47

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: dcaa6b601a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread packages/software-factory/src/factory-realm-index.ts Outdated
@burieberry burieberry changed the title feat: Add new index page for freshly created target realm feat: add target-realm index page for the software factory Jun 26, 2026
@burieberry burieberry changed the title feat: add target-realm index page for the software factory feat: Add target-realm index page for the software factory Jun 26, 2026
With integrated issue-tracker and dashboard

add try/catch for test artifact setup failure

add a bounded retry-on-empty search, enabled only on the last-chance backstop

refactor
@burieberry burieberry changed the title feat: Add target-realm index page for the software factory Add target-realm index page for the software factory Jun 26, 2026
@burieberry burieberry requested a review from a team June 26, 2026 16:59
@habdelra habdelra requested a review from Copilot June 27, 2026 01:04

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR upgrades the “freshly created target realm” experience in software-factory by writing a RealmDashboard-backed index.json (with Overview/Board/Artifacts tabs) and wiring the bootstrap-created IssueTracker board + Project back into the realm index/seed issue as soon as bootstrap completes (with a post-loop backstop).

Changes:

  • Add new realm dashboard cards/components (realm-dashboard.gts, overview.gts, empty-state.gts) plus an acceptance test for the dashboard.
  • Add post-bootstrap “linking” helpers + shared retry/search/link utilities (factory-realm-index.ts, factory-seed.ts, realm-operations.ts) and thread a new onBootstrapComplete hook through the issue loop and factory entrypoint.
  • Update TabbedHeader so headerTitle is optional and refresh its CSS variable surface + usage docs.

Reviewed changes

Copilot reviewed 20 out of 20 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/software-factory/tests/issue-loop.test.ts Adds tests validating onBootstrapComplete behavior (fires once, no-op for non-bootstrap, swallowed errors).
packages/software-factory/tests/index.ts Registers new software-factory unit tests in the test bundle.
packages/software-factory/tests/factory-seed.test.ts Adds coverage for linkProjectToSeedIssue patching/idempotency/no-op behavior.
packages/software-factory/tests/factory-realm-index.test.ts Adds coverage for realm index writing + board-linking (including retry polling).
packages/software-factory/tests/factory-entrypoint.test.ts Adds entrypoint tests for writing the dashboard index, linking board/project, hook timing, and createdRealm gating.
packages/software-factory/src/realm-operations.ts Introduces shared searchUntilNonEmpty, inferIssueTrackerModuleUrl, and linkRelationshipToCard utilities.
packages/software-factory/src/issue-scheduler.ts Refactors issue-tracker module URL inference to use the shared helper.
packages/software-factory/src/issue-loop.ts Adds onBootstrapComplete hook invoked after the bootstrap issue cycle.
packages/software-factory/src/factory-seed.ts Adds linkProjectToSeedIssue to patch the bootstrap seed issue’s project relationship after bootstrap.
packages/software-factory/src/factory-realm-index.ts New module to write index.json as RealmDashboard and later link its board relationship.
packages/software-factory/src/factory-issue-loop-wiring.ts Threads onBootstrapComplete through the factory loop wiring.
packages/software-factory/src/factory-entrypoint.ts Writes the dashboard index for created realms and wires bootstrap artifacts via hook + post-loop backstop.
packages/software-factory/realm/realm-dashboard.test.gts Acceptance test suite covering the dashboard’s Overview/Board/Artifacts behavior and empty states.
packages/software-factory/realm/realm-dashboard.gts Defines the RealmDashboard card (tabs + computed link projections for Overview widgets).
packages/software-factory/realm/overview.gts Implements the Overview tab UI: KPIs, funnels, setup roadmap, knowledge + validation search panels.
packages/software-factory/realm/empty-state.gts Shared empty-state “hero” component used by dashboard panels.
packages/software-factory/README.md Updates docs to describe the new index dashboard and artifact layout.
packages/software-factory/docs/architecture.md Updates the architecture sequence diagram to include dashboard writing and post-bootstrap linking.
packages/boxel-ui/addon/src/components/tabbed-header/usage.gts Updates usage docs and adds CSS-variable controls for new title overrides + optional title behavior.
packages/boxel-ui/addon/src/components/tabbed-header/index.gts Makes headerTitle optional; renames CSS vars and adjusts header/tab styling.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

// drains, which a stalled or interrupted implementation issue may never
// reach. There is only ever one bootstrap issue, so this fires at most
// once. The link is best-effort and must not abort the loop.
if (onBootstrapComplete && issue.issueType === 'bootstrap') {
Args: {
model: PartialBaseInstanceType<typeof RealmDashboard>;
fields: FieldsTypeFor<RealmDashboard>;
context?: CardContext;
Comment on lines 126 to 130
border-bottom: 4px solid transparent;
transition:
border-bottom-color 0.3s ease-in-out,
font-weight 0.3s ease-in-out;
}
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