Complete the cluster* → structure* naming migration#280
Merged
Conversation
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>
Deploying with
|
| 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Finishes the
cluster*→structure*naming migration flagged indocs/BACKLOG.md. The whole structure stack now speaks one vocabulary. Two commits:1. Name the marker renderer for what it draws (
4477ad3)/entanglement-radarfound a name × role braid:clusterMarkerRenderernamed itself after one category but draws all fourtype:'structure'markers (cluster / supercluster / void / group). Renamed renderer + descriptor + pass + handle field + theclusterMarker/WESL shader module (incl.package::clusterMarker::ioimports). 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):ClusterCatalogfamily →StructureCatalog— the decoded.ccatis all four categories: format, fetcher, slot, payload/req types, theclusterCatalogToStructuresphase, the'clusterCatalog'asset key.clusterFocusSubsystem→structureFocusSubsystem(+ theclusterFocusstate-handle key →structureFocus) — it isolates members for any focused structure.parseClusterSeed/ClusterSeedEntry/validateClusterSeedEntry→structure*;data/cluster_anchors.seed.json→data/structure_anchors.seed.json(+.gitignoreexception +rawDataRegistrykeyclusters.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.Follow-up #2 (folded in)
StructureMarkerDescriptor.categorynarrowedPoiCategory→StructureCategory(it can never holdfamousGalaxy), which surfaced + removed now-deadfamousGalaxyskip branches in the renderer.Per your call, this is the full rename including the R2-served artifacts:
clusters.ccat→structures.ccat,clusters_meta.json→structures_meta.json, npm scriptsbuild-clusters→build-structures/fetch-clusters→fetch-structures, thesyncR2.tsALLOW filter, andCLAUDE.md. The.ccatextension +CCATmagic stay (wire format).Before/with the next deploy you must run, from the MAIN worktree:
Otherwise the structure coverage layer 404s (the runtime will fetch
structures.ccat, which won't exist on R2 until re-synced). This worktree'sdata/is throwaway, so the rebuild must come from main.Untouched (genuine cluster category)
Source.Cluster, the'cluster'category id, theClusterRecordunion arm, MCXC / MSCC, R500 / virial radius — all stay. AlsoPoi-named tokens (PoiCategory,#poi=) per #279.Tests
npm run typecheckclean.npm test→ 2437 passed.