Release candidate: dev 64edacac to main #71
Loading…
Reference in a new issue
No description provided.
Delete branch "release/dev-64edacac"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Release candidate: dev at
64edacac4d(branchrelease/dev-64edacac, fixed so the PR does not move when dev does). Main isaa2eef08.Largely the whole product since main: 198 commits (estate navigator is already on main via #15; this carries the dev line: scene/sky states, terrain, plates, footer band, room list, nemesis/demo look, Browse collapse, Dusk floor #56).
Checks (see the PR comments for the broken-first falsification and build record).
64edacac: 613 tests, 44 files, passing (one footerBand timeout under load passed on rerun; with node_modules symlinked from another tree six footerBand tests fail on an empty package.json lookup, an environment fault, not the code).Not in this release: open dev PRs #52, #64, #68, #69, #70 and the pose-in-bubble PR.
🤖 Generated with Claude Code
Dependency-free ES module: light({time,lat,lon,cloud_cover,precipitation}) -> {elevation, direct, diffuse, wetness}, linear RGB. Constants that were tuned by eye are labelled EYEBALLED. Fixed-moment tests in sun.node-test.js (plain node, not collected by vitest). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>Login no longer shows the notice. Registration shows the ruled sentence with a plain tick, and records {noticeVersion, acceptedAt} on submit (newcomers only; a changed TRAINING_NOTICE_VERSION is a fresh acceptance). Each room carries one line above the composer. The Discord sentence and "on this server" are gone. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>Heimdall's ruling: type org.gamecult.notice, state_key '', content {version, scope}. version is a positive integer, scope exactly show, study or train; absent or malformed means no train line. ROOM_NOTICE_CONTENT_KEY becomes ROOM_NOTICE_EVENT_TYPE; RoomTrainingLine reads the state event through useStateEvent. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>3f6d27a1' into void/preview-all 2759725a33scatter.js ray-marches a single-scattering Rayleigh+Mie atmosphere whose vertical optical depth is sun.js's TAU, and bakes two tables into baked.scatter: transmittance to space by view elevation (32x1) and sky radiance by azimuth from the sun x view elevation x sun elevation (7x32x12), RGB half floats, little-endian base64, value x 64. Layout, exact decode and a GLSL sampler are in src/sky/README.md. Tests pin layout, encoding, checksums and physical anchors (zenith transmittance equals exp(-TAU); blue noon, red low sun toward the sun, black below the planet-shadow limit). The per-sky sun {elevation_deg, azimuth_deg, color_linear}, ambient_linear and horizon_hex were already baked in7216456a; sun.js now exports TAU. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>0386065f) into scene-terrain-scatter f1d8db0c61Drops the vendored terrain/skyData.ts and the computed azimuth. terrainSky.ts reads src/sky/baked.ts: sun {elevation_deg, azimuth_deg, color_linear}, ambient_linear, horizon_hex. terrainScatter.ts decodes baked.scatter and uploads sky_view as an RGB16F 3D texture; SKY_FRAG and GRID_FRAG sample it (README sampler), the sky for the view ray, the haze for the horizon in the fragment's azimuth. - Sky: 1 - exp(-exposure * radiance) + night glow (midnight horizon colour, off as the sun nears the horizon) + sun disc; +-0.5/255 dither on the 8-bit output. - Stars fade by sun elevation (starGain: 1 below -12, 0 above -6) instead of a dark-sky gate; the field is placed against the midnight gradient. - ?sun=<deg>&az=<deg> (or the sun option) lights between the two bakes for dusk (skyAtSun). - Changed numbers, noted in scene/README.md: haze colour is the scattered sky (was the gradient's horizon stop), ambient is ambient_linear as baked (was gradient zenith x 0.25 x night lift up to 4), HAZE_K unchanged at 0.0004. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>Username carries its own nowrap + ellipsis, which still clipped long names ("Heimdall o...") inside the widened pill. On phones the name now wraps. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>9794714f) into nibu/scene-terrain-scatter-devDay and dusk: floor 0.30 (dark ink needs 0.2983). Night: ceiling 0.0931 for the light ink; the baked night sky is kept. One shaping function (skyBand.shapeToBand) with a GLSL twin lifts the terrain sky toward a tint (hue kept) or scales it down. The ridge dusk becomes lavender, rose and orange. 'auto' resolves from the clock (sun.js elevation) to day, dusk or night; subscribers hear the resolved sky; skyBackdrop('auto') is the resolved state's band. Link ink is not in the band (Void's wiring). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>- skyThemeId('auto') is undefined again (auto must not override a signed-in theme); the resolved state stays readable by getResolvedSkyState and subscribe. - In auto, ?sun= ?az= ?sky= reach the terrain again, shaped into the band of the clock-resolved state; an explicit state beats the URL. - The sky-change notice is no longer swallowed by a listener arriving or leaving between the clock crossing and the tick. - BACKDROPS bound what the 8-bit screen shows with the dither at its worst; shaping floor 0.317, night ceiling 0.085. - The clock uses standard time, so daylight saving does not move the sun. - A Terrain GL fake test pins uBand and uLift for each state. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>Dusk's floor moves from 0.317 to 0.4744 (the dark link's bound 0.4554 plus the 0.019 margin Day keeps over its text bound), and its lift from rose #eba0b9 (luma 0.463, below the new floor) to Day's #e2f4ff. The ridge dusk stops are shaped into the same band, since the unshaped twilight dipped to 0.336. skyBackdrop('dusk').darkest becomes 0.460352; Dusk text 4.60 -> 6.59, link 3.17 -> 4.54. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>skyThemeId('auto') is undefined again as on dev. sceneThemeId follows the resolved sky for auto only while a scene is on and the person chose no theme (signed-out pages pass none); useResolvedSkyState changes as the clock crosses so theme classes re-render. Scene buttons and chips keep a focus-visible outline. The white mark takes the dark filter through a LogoMark class on every themed <img> under any prism-light theme (favicon and notification icons are files and keep the white mark). Background picker is hidden without a backgroundScene config. Ridge comment states what hasNoArea covers. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>0fe41efbinto PR #65 556254f46b9b9b495d(live) into dev