Skip to content

Complete the cluster* → structure* naming migration#280

Merged
rulkens merged 2 commits into
mainfrom
rename-structure-marker-renderer
Jun 7, 2026
Merged

Complete the cluster* → structure* naming migration#280
rulkens merged 2 commits into
mainfrom
rename-structure-marker-renderer

Conversation

@rulkens

@rulkens rulkens commented Jun 7, 2026

Copy link
Copy Markdown
Owner

Finishes the cluster*structure* naming migration flagged in docs/BACKLOG.md. The whole structure stack now speaks one vocabulary. Two commits:

1. Name the marker renderer for what it draws (4477ad3)

/entanglement-radar found a name × role braid: clusterMarkerRenderer named itself after one category but draws all four type:'structure' markers (cluster / supercluster / void / group). Renamed renderer + descriptor + pass + handle field + the clusterMarker/ WESL shader module (incl. package::clusterMarker::io imports). Docstrings corrected to the four real categories. No behaviour change.

2. Finish the seam rename (e8fe2a1)

The "featured-structure" data seam was named cluster* but holds all four categories. Renamed (~250 refs):

  • ClusterCatalog family → StructureCatalog — the decoded .ccat is all four categories: format, fetcher, slot, payload/req types, the clusterCatalogToStructures phase, the 'clusterCatalog' asset key.
  • clusterFocusSubsystemstructureFocusSubsystem (+ the clusterFocus state-handle key → structureFocus) — it isolates members for any focused structure.
  • parseClusterSeed / ClusterSeedEntry / validateClusterSeedEntrystructure*; data/cluster_anchors.seed.jsondata/structure_anchors.seed.json (+ .gitignore exception + rawDataRegistry key clusters.seedstructures.seed).
  • clusterMembershipstructureMembership (utils/clusterutils/structure) — pure cone-search used by any focused structure.
  • tools/clusters/buildClusters.tstools/structures/buildStructures.ts; fetchClusterCatalogsfetchStructureCatalogs.

Follow-up #2 (folded in)

StructureMarkerDescriptor.category narrowed PoiCategoryStructureCategory (it can never hold famousGalaxy), which surfaced + removed now-dead famousGalaxy skip branches in the renderer.

⚠️ Deploy requirement (served artifacts renamed)

Per your call, this is the full rename including the R2-served artifacts:
clusters.ccatstructures.ccat, clusters_meta.jsonstructures_meta.json, npm scripts build-clustersbuild-structures / fetch-clustersfetch-structures, the syncR2.ts ALLOW filter, and CLAUDE.md. The .ccat extension + CCAT magic stay (wire format).

Before/with the next deploy you must run, from the MAIN worktree:

npm run build-structures   # emits public/data/structures.ccat + structures_meta.json
npm run sync-r2-secure     # republishes to R2 + purges the CDN

Otherwise the structure coverage layer 404s (the runtime will fetch structures.ccat, which won't exist on R2 until re-synced). This worktree's data/ is throwaway, so the rebuild must come from main.

Untouched (genuine cluster category)

Source.Cluster, the 'cluster' category id, the ClusterRecord union arm, MCXC / MSCC, R500 / virial radius — all stay. Also Poi-named tokens (PoiCategory, #poi=) per #279.

Tests

npm run typecheck clean. npm test2437 passed.

clusterMarkerRenderer drew every type:'structure' marker bucket —
cluster, supercluster, void, AND group (added with nearby-galaxy-groups)
— but its name asserted one category. The docstrings had already drifted:
they claimed "three categories" and omitted group entirely. The rest of
the stack moved to structure vocabulary (produceStructureMarkers,
StructureRecord, StructureStore, StructureSelection, STRUCTURE_CATEGORIES);
the renderer/descriptor/pass/shader-module were the holdouts.

Rename to structureMarker* across the renderer, its descriptor + handle
field, the frame pass, and the clusterMarker/ WESL shader module (incl.
package::clusterMarker::io imports). Pure rename + docstring accuracy —
no behaviour change. Poi-named tokens (PoiCategory, #poi=, resolvePoiFromPick)
stay, same as #279, and the genuinely cluster-specific names
(clusterFocusSubsystem, clusterCatalog*, cluster anchors) are untouched.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 7, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
skymap e8fe2a1 Commit Preview URL

Branch Preview URL
Jun 07 2026, 08:31 PM

The "featured-structure" data seam was named cluster* but holds all four
structure categories (cluster, supercluster, void, group). This finishes
the migration the marker-renderer rename started, so the whole structure
stack speaks one vocabulary.

Renamed (code, ~250 refs):
- ClusterCatalog family → StructureCatalog (the decoded .ccat is all four
  categories): format, fetcher, slot, payload/req types, the
  clusterCatalogToStructures phase, the 'clusterCatalog' asset key.
- clusterFocusSubsystem → structureFocusSubsystem (+ the clusterFocus
  state-handle key → structureFocus); it isolates members for any focused
  structure, not just clusters.
- parseClusterSeed/ClusterSeedEntry/validateClusterSeedEntry → structure*;
  data/cluster_anchors.seed.json → structure_anchors.seed.json (+ gitignore
  exception + rawDataRegistry key clusters.seed → structures.seed).
- clusterMembership → structureMembership (utils/cluster → utils/structure);
  pure cone-search used by any focused structure.
- tools/clusters/buildClusters.ts → tools/structures/buildStructures.ts;
  fetchClusterCatalogs → fetchStructureCatalogs.

Served artifacts (deploy-coupled): clusters.ccat → structures.ccat,
clusters_meta.json → structures_meta.json, npm scripts build-clusters →
build-structures / fetch-clusters → fetch-structures, the syncR2 ALLOW
filter, and CLAUDE.md. The .ccat extension + CCAT magic stay (wire format).
REQUIRES a build-structures + sync-r2-secure from the main worktree to
republish to R2 before/with the next deploy, or the structure coverage
layer 404s.

Also: StructureMarkerDescriptor.category narrowed PoiCategory →
StructureCategory (it can never hold famousGalaxy), removing now-dead
famousGalaxy skip branches in the renderer.

The genuine cluster CATEGORY is untouched: Source.Cluster, the 'cluster'
category id, the ClusterRecord union arm, MCXC/MSCC, R500/virial.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@rulkens rulkens changed the title Name the marker renderer for what it draws (clusterMarker → structureMarker) Complete the cluster* → structure* naming migration Jun 7, 2026
@rulkens rulkens merged commit 21f5179 into main Jun 7, 2026
2 checks passed
@rulkens rulkens deleted the rename-structure-marker-renderer branch June 7, 2026 20:38
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