Say a planet has no temperature because its star's luminosity or its orbit is unknown, not its star

The card and the body page said "Its host star is not in the catalogue" for every planet without
an equilibrium temperature. Over the shipped data that is 2 714 planets, and the host really is
missing for 27. 2 420 have no semi-major axis, and since 869635b gave a star no survey measured no
luminosity, 267 more have a host that is on the map: OGLE-2005-BLG-390L b's card said so inside its
own host's system. The text now names both things that can be missing without claiming which:
"No temperature could be derived: its star's luminosity or its orbit's size is not known." In the
app on :4302, /body/OGLE-2005-BLG-390L b and /body/PSR J1719-1438 b read it.

Test: the object card's missing-temperature case now expects the new sentence and checks the old
claim is gone. Control: putting the old sentence back fails it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-30 00:07:18 +02:00
co-authored by Claude Opus 5.5
parent 8f99335bae
commit 5ab4c5df89
3 changed files with 12 additions and 4 deletions
@@ -26,8 +26,8 @@ export interface BodyDetailViewModel {
/**
* What this world is inferred to look like, and the quantities that inference rests on. Always
* present — every body has measurements enough to place it somewhere — but its individual
* fields are nullable, since a body whose host star is not in the catalogue has no derived
* temperature.
* fields are nullable, since a body whose host star's luminosity or whose orbit's size is not
* known has no derived temperature.
*/
appearance: PlanetAppearance;
/** True when a real photograph is being shown rather than the derived surface. */
@@ -71,12 +71,18 @@ export function bodyReadouts(body: BodyDetailViewModel): BodyReadouts {
/**
* The derived surface is a reasoned illustration, and a panel of real measurements sitting next
* to it is exactly the context in which it could be mistaken for another one.
*
* With no temperature, it says what is missing without claiming which: the host's luminosity, or
* the orbit's size. It used to say the host was not in the catalogue, which is so for 27 of the
* 2 714 planets it was printed on. Of the rest, 2 420 have no semi-major axis, and since 869635b
* 267 have a host no survey measured the brightness of — OGLE-2005-BLG-390L b, read inside its
* own host's system.
*/
function provenanceFor(body: BodyDetailViewModel): string {
if (body.hasPhotography) {
return 'Surface: NASA/ESA/USGS photography.';
}
return body.appearance.equilibriumTemperatureK === null
? 'Surface illustrated from this body’s measured size and mass. Its host star is not in the catalogue, so no temperature could be derived. Not an observation — no image of this world exists.'
? 'Surface illustrated from this body’s measured size and mass. No temperature could be derived: its star’s luminosity or its orbit’s size is not known. Not an observation — no image of this world exists.'
: 'Surface illustrated from the measurements above — size, density and the temperature derived from its star’s output and its orbit. Not an observation — no image of this world exists.';
}
@@ -108,7 +108,9 @@ describe('SystemObjectCardComponent', () => {
appearance: appearance({ equilibriumTemperatureK: null }),
});
expect(block(host, 'Derived')).not.toContain('Equilibrium temp.');
expect(host.textContent).toContain('host star is not in the catalogue');
// Not that the host is missing, which it is for 27 of the 2 714 planets without a temperature.
expect(host.textContent).toContain('its star’s luminosity or its orbit’s size is not known');
expect(host.textContent).not.toContain('not in the catalogue');
});
it('emits rather than navigating, so the scene decides what selection means', () => {