Release candidate: dev into main #88

Merged
void merged 42 commits from dev into main 2026-11-11 02:13:09 +00:00
Member

Next release candidate, same recipe as #71. Dev head f8115609.

In it since main 683d3b92: albums slice 1 (#70), poses nest into the bubble corner (#72), join-path lint and a harness that fails when it asserts nothing (#64), sign-in wording and the Register entry (#68, off by default) with https-only (#87), default homeserver gamecult.org when the config names none (#86), Dings v3 (off), the read-only desk slice (inert in production: no source is installed outside the preview demo, so no entry shows), ridge heightfield scene, reply-preview bound on phone.

No new config key is needed. The live config.json is kept byte for byte at install, as for #71.

🤖 Generated with Claude Code

Next release candidate, same recipe as #71. Dev head `f8115609`. In it since main `683d3b92`: albums slice 1 (#70), poses nest into the bubble corner (#72), join-path lint and a harness that fails when it asserts nothing (#64), sign-in wording and the Register entry (#68, off by default) with https-only (#87), default homeserver gamecult.org when the config names none (#86), Dings v3 (off), the read-only desk slice (inert in production: no source is installed outside the preview demo, so no entry shows), ridge heightfield scene, reply-preview bound on phone. No new config key is needed. The live `config.json` is kept byte for byte at install, as for #71. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
void added 42 commits 2026-11-11 02:13:00 +00:00
dings: port the hook from #36 onto dev, wire Aqua's v3 set behind dings.enabled (default off)
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m50s
9877154033
Hook code is #36 (b3eb9d01) verbatim plus the switch. Clips and manifest are AquaSynth PR #22 out/, Nibu on proposal 1. Nobody has heard v3.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
dings: Nibu carries proposal 3 (8 kHz 5-bit smoothed sine) for every event
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 3m6s
1dea4b51e5
Meta heard v3 and chose proposal 3; Nibu confirmed it as her voice for all events.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
auth: newcomer-facing sign-in, server and sign-up messages that say what to do next
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 2m25s
f1287a6f3a
Replaces Cinny's stock wording (Invalid Username or Password., Failed to find
homeserver., Failed to connect..., the dead-end registration-disabled text) with
plain messages in one module, authMessages.ts, used by the login form, the auth
layout, the login page and the register page.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
scene: one owner of ink per sky state (names, phone-dusk labels), New Messages as plain label ink
Some checks failed
Build pull request / Build pull request (pull_request) Failing after 2m37s
aa0dfc0ee9
Sender names over the terrain step to the state's ink: same OKLCH hue and chroma, darker by day and dusk, lighter at night, until 4.5:1 on the lightest measured terrain patch (capped at OKLCH L 0.9 at night). Sidebar labels get a darker dusk ink on phones. An explicit theme still wins. The unread divider keeps only its green line.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
dings: Aqua's v4 set (Void single onset, Nibu proposal 3 everywhere), still behind dings.enabled
Some checks failed
Build pull request / Build pull request (pull_request) Failing after 2m8s
de9955a24a
Replaces the 32 sender clips with AquaSynth 21e83ec's staged render; manifest and neutral
fallback are byte-identical to the old ones. The manifest test now pins every clip by sha256
prefix. Unheard.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
scene: skyLabelInk leaves sceneShell.css.ts (vanilla-extract refuses a function export; vite build failed on dev)
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m4s
14ea0dbab0
#74 exported a function from a .css.ts file. vitest's plugin tolerates it, vite build's compile does not
("Invalid exports"), so dev did not build. The helper and its custom-property name move to skyLabelInk.ts;
a test compiles the three .css.ts files that use it the build's way and fails on the old arrangement.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Folds Kiko's spec with Heimdall's draft rulings on guests, erase and
hiding. Design only; no code.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
The proposal owns the schema: feedback_listing, feedback_answer (text-free),
feedback_close_request, feedback_hide. Bifrost holds answer text and does
the erase; delivery is by mouth and the Persona admits the record.
Question key, option labels and askedAt follow the proposal. Client plan
kept: typed interface mirroring those shapes, fixtures first.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Erase keeps record id, kind and time only; an unsalted hash confirms a
guessed text. Credential is the OIDC access token Bifrost issues to chat,
claims check open. Receiver store is a CultCache file with backup purge
owed before deploy. Receiver must not reuse CurrentBifrostActor.DisplayName;
no guest exists until Bifrost PR #9.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
docs: desk section: retraction rule agreed in #swarm
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
73754a0912
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
docs: desk section points to Heimdall's rule file (answer rule) and CultLib #72 (wire) instead of restating them
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 3m42s
9440921181
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
preview: scripts/publish-dev-preview.sh, the one way the dev demo is published (in place at /void/rat-dev/, one rollback)
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
08b23e0cc4
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
preview: drop the Ratatoskr publisher; keep only the build recipe the shared publisher takes (build-dev-preview.sh)
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 5m0s
d16842a70e
Publishing belongs to gamecult-ops scripts/publish-mind-preview.sh (one fixed slug per project).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
preview demo: drop a stored login for a real homeserver before the app reads it
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 3m53s
5bb78b21cf
Every preview shares the origin minds.gamecult.org and so one localStorage. A login another
preview left (cinny_hs_base_url of a real homeserver) made the demo connect to that server, which
the guard refuses, so SpecVersions showed 'Unable to connect to the homeserver'. installDemo now
drops any stored session whose base is not the demo origin, and the service worker is registered
after that so it is never handed the dropped session. Replaces the foreign-session banner text.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Skip auth-metadata validation when the homeserver returned none
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 3m30s
0351f1f6e8
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
desk: booth portrait is a plain image; options_hash recomputed against the CultLib vectors
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m9s
0f82576d9f
PoseAvatar renders a span, not a button, when it has no onClick. The desk recomputes each card's options_hash (RFC 8785 after NFC, SHA-256; 15 CultLib vectors) and withdraws a card that differs.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Merge pull request 'desk: read-only Mind desk, slice 1' (#77) from void/desk-slice-1 into dev
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
313d070dd4
scene: ridge heightfields with slope shading and endless world-x drift
Some checks failed
Build pull request / Build pull request (pull_request) Has been cancelled
9391e4753f
Each ridge layer is a function of world-x (ridged multifractal value noise,
domain-warped, one function and a parameter row per layer) instead of a
periodic strip. World-x is baked in 1.2-viewport chunks on demand: the first
view bakes one chunk per layer, the rest are baked in ~6 ms tasks, and the
compositor slides a track that is recycled each chunk. A slow yaw/pitch sway
rides on top. ridgeBake.ts shades each column from the crest slope against
the sun with a lit rim, a light-to-haze face gradient and erosion streaks,
reusing the existing aerial perspective as the depth treatment.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
scene: ridge chunk jobs own their scratch canvas; tests for the endless drift and the ridged core
All checks were successful
Build pull request / Build pull request (pull_request) Successful in 4m6s
d172c4eda3
Soul pass fixes. The shared scratch canvas was resized when a job was created
but read in a deferred task, so chunks of layers with a different blur pad got
a faded right edge. Each job now makes its own scratch when it first runs and
drops it when done. A chunk is baked, put and scatter-filled in column bands,
the blur is one draw; allocation is a task of its own. rotate no longer needs a
forward reference (startDrift takes the finish callback).

Tests: the fake animation can finish, so the rotation is tested at scene level
(world columns per chunk, slot repositioning, restart, recycled chunk id, one
chunk of drift distance, per-job scratch width at the moment of each blur).
The ridged core has direct tests for the fold, the warp, the previous-octave
weighting, the lacunarity and contrast by distance. README sun statement
matches sunDirection.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Bound the reply preview on phone width (#82)
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
c286c4adc4
desk: read the gamecult.fork.* contract as served (#83)
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
8e0e3b8986
desk: served row order, one open count (#84)
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
3def499b0f
Enforce the one join path in lint; a drive that asserts nothing fails (#64)
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
ac7a958f5c
Poses nest into the chat bubble corner (desktop and phone) (#72)
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
7045532187
Albums slice 1: read-only album view for the file zone (#70)
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
b6da92a081
Default homeserver is gamecult.org (#86)
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
94c976632e
auth: Register entry beside Sign in, behind a config switch (off) (#68)
Some checks failed
Rat dev preview / Build dev preview (push) Has been cancelled
450a7e91ff
Register entry: https only, http only for a local host (#87)
All checks were successful
Rat dev preview / Build dev preview (push) Successful in 3m45s
Build pull request / Build pull request (pull_request) Successful in 3m29s
f8115609b2
void merged commit 08bf515997 into main 2026-11-11 02:13:09 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/Ratatoskr!88
No description provided.