Compare commits

...
Sign in to create a new pull request.
Author SHA1 Message Date
7e57e04950 Merge pull request 'Landing: receipts for claims with no public source' (#24) from void/landing-claim-receipts into main
Some checks failed
Deploy Quartz / build (push) Failing after 1s
Deploy Quartz / deploy-1 (push) Has been skipped
Deploy Quartz / deploy (push) Failing after 0s
2026-11-13 03:03:45 +00:00
Void
18bd6a0c67 Landing receipts: Soul fixes (hosting context, undated operator attribution, drop interim estate word)
All checks were successful
PR Build Check / build (pull_request) Successful in 8m21s
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 03:02:26 +00:00
Void
8f1dbce9e1 Landing: source notes for claims with no public repo source; cut commit-access wording
Some checks failed
PR Build Check / build (pull_request) Has been cancelled
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-13 02:59:14 +00:00
b27dd62745 Landing: plain-words opening (the mom test) - draft, do not merge (#13)
Some checks failed
Deploy Quartz / build (push) Failing after 1s
Deploy Quartz / deploy-1 (push) Has been skipped
Deploy Quartz / deploy (push) Failing after 0s
2026-11-12 23:55:59 +00:00
e7ac10ecdb Shipped: dated ledger of merged work (do not merge) (#14)
Some checks failed
Deploy Quartz / deploy (push) Has been cancelled
Deploy Quartz / build (push) Has been cancelled
Deploy Quartz / deploy-1 (push) Has been cancelled
2026-11-12 23:55:56 +00:00
Meta Vens
40be31edf4 Front page leads with Aetheria: Terminus, demo launching November 2026
Some checks failed
Deploy Quartz / build (push) Failing after 1s
Deploy Quartz / deploy-1 (push) Has been skipped
Deploy Quartz / deploy (push) Failing after 0s
The hero is the Terminus demo; the Minds introduction follows it.
Starbridge is no longer presented as the way back into Aetheria.
Roster names link to their steward sections; Thing, Delvehold and
Ghostlight entries name their stewards; Weksa's renderer is described
as the next build, matching its README; Huginn replaces Epiphany in
the machinery card.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-10 14:53:19 +01:00
Meta Vens
3a973ed43e Projects: one section per steward Mind, each pitching its own jurisdiction
Eight steward sections (Nibu, Libby, Eureka, Weksa, Aqua, Kiko, Heimdall,
Void), each with a cast portrait, a pitch in the Mind's voice and its
repositories, with claims checked against each repo's README and docs.
The per-repo Persona cards give way to the stewards; unreferenced
avatars are removed. Portraits are web-sized copies of the cast poses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-10 14:53:19 +01:00
533016cd79 Merge pull request 'Layout: the column fills the screen; prose keeps a measure' (#23) from void/full-width-content into main
Some checks failed
Deploy Quartz / build (push) Failing after 1s
Deploy Quartz / deploy-1 (push) Has been skipped
Deploy Quartz / deploy (push) Failing after 0s
2026-11-10 07:31:53 +00:00
cd63b079f9 Measure: cap prose inside the page's own blocks, not only article's direct children
All checks were successful
PR Build Check / build (pull_request) Successful in 5m56s
Soul found callouts, footnotes, captions and evidence notes running 200-330 characters per line at 1920 because the measure only caught direct children of article. It now names p, figcaption and dd anywhere in the article, and article's own lists and quotes; the entries list keeps its own layout.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 07:18:02 +00:00
d51e88b111 Layout: the column fills the screen; prose keeps a measure
Some checks failed
PR Build Check / build (pull_request) Has been cancelled
--gamecult-column goes from 72rem to 120rem, so the masthead, article and footer run edge to edge up to 1920px. Running prose (article > p, ul, ol, blockquote, dl, and the dossier's note and lead blocks) takes --gamecult-measure (76ch), which the studio-page paragraphs already used; tables, media, code, math and each page's own blocks take the column. The Layout section of the brand doc names both tokens.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 06:59:26 +00:00
386ecd0a37 Merge pull request 'Site: forge links in the front page and the dossier' (#22) from void/forge-links-index-dossier into main
Some checks failed
Deploy Quartz / deploy (push) Has been cancelled
Deploy Quartz / build (push) Has been cancelled
Deploy Quartz / deploy-1 (push) Has been cancelled
2026-11-10 06:39:29 +00:00
04b75004cb Site: forge links in the front page and the dossier
All checks were successful
PR Build Check / build (pull_request) Successful in 4m33s
35 GitHub URLs in index.md and dossier.md now point at the GameCult forge. Each target repo was checked live, public and unarchived on the forge, and each blob path was checked on forge main. Left on GitHub: Luxidland and StreamPixels (no forge repo), Epiphany (archived on the forge), the Aetheria release tag, and Norn notes/fresh-workspace-handoff.md (404 on forge main).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 06:38:38 +00:00
c0746c3d6c Merge pull request 'Site: forge is the canonical repo home; Huginn owns the mind' (#21) from void/forge-canonical-huginn into main
Some checks failed
Deploy Quartz / deploy (push) Has been cancelled
Deploy Quartz / build (push) Has been cancelled
Deploy Quartz / deploy-1 (push) Has been cancelled
2026-11-10 06:37:50 +00:00
62a2067740 Huginn card: drop the prose-index sentence the README does not state
All checks were successful
PR Build Check / build (pull_request) Successful in 5m49s
The Huginn README says the daemon keeps a semantic index over each mind's documents; it says nothing of a prose index. The card now says only that.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 06:37:45 +00:00
42b13c332b Site: forge is the canonical repo home; Huginn owns the mind
Some checks failed
PR Build Check / build (pull_request) Has been cancelled
Repo links in Projects, the tour and Architecture-and-Evidence now point at the GameCult forge where the repo exists there and is live (80 links). Links stay on GitHub for repos with no forge counterpart (StreamPixels, norn-rs, AetheriaThing), repos archived on the forge, and CI-run pages. Projects and Architecture-and-Evidence say the forge is canonical and GitHub holds mirrors.

The Huginn card said ".cc inspection and Thing projection". It now says what the Huginn README says: owns each instance's mind as typed state, single writer of memory documents, runs the semantic index (prose index planned), and generic .cc inspection is CultCache Studio's.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 06:35:46 +00:00
769f14883c Merge pull request 'Math scroll guard: one rule for every block that holds math' (#20) from void/math-scroll-all into main
Some checks failed
Deploy Quartz / deploy (push) Has been cancelled
Deploy Quartz / build (push) Has been cancelled
Deploy Quartz / deploy-1 (push) Has been cancelled
2026-11-10 06:32:50 +00:00
0187ada258 Math scroll guard: one rule for every block that holds math
All checks were successful
PR Build Check / build (pull_request) Successful in 5m42s
The guard covered only paragraphs and display blocks, so an unbreakable formula in a list item, heading or table cell widened the page. One rule now names p, li, h1-h6, th, td and the display block; the duplicate overflow-x on the ritual-paper .katex-display is gone.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 06:23:04 +00:00
e6c6f4b125 Merge pull request 'Math: emit MathML beside the KaTeX so screen readers can read it' (#19) from void/math-mathml into main
Some checks failed
Deploy Quartz / deploy (push) Has been cancelled
Deploy Quartz / build (push) Has been cancelled
Deploy Quartz / deploy-1 (push) Has been cancelled
2026-11-10 06:19:52 +00:00
bed00bcfe5 Math: emit MathML beside the KaTeX so screen readers can read it
All checks were successful
PR Build Check / build (pull_request) Successful in 5m7s
Built pages carried only the aria-hidden KaTeX markup. katexOptions.output is htmlAndMathml now; the visible KaTeX is unchanged and katex.min.css clips the MathML to 1px. Needs the GameCult-Quartz change that lets katexOptions carry `output`.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-10 06:17:06 +00:00
875fb8ad09 Tokenise the three literal grouping hairlines; one-rule-token probe (#18)
Some checks failed
Deploy Quartz / build (push) Failing after 1s
Deploy Quartz / deploy-1 (push) Has been skipped
Deploy Quartz / deploy (push) Failing after 0s
2026-11-09 16:01:38 +00:00
34c2736772 Merge pull request 'ci: build-only check on pull requests' (#16) from ci/pr-build-check into main
Some checks failed
Deploy Quartz / build (push) Failing after 1s
Deploy Quartz / deploy-1 (push) Has been skipped
Deploy Quartz / deploy (push) Failing after 0s
2026-11-09 10:24:33 +00:00
45a75986bf Merge pull request 'Site copy: VoidBot retired and Eve deprecated, in the past tense (do not merge, no deploy)' (#15) from void/stale-voidbot-eve-tense into main
Some checks failed
Deploy Quartz / deploy (push) Has been cancelled
Deploy Quartz / build (push) Has been cancelled
Deploy Quartz / deploy-1 (push) Has been cancelled
2026-11-09 10:24:32 +00:00
Void
21eb3bdc36 ci: build-only check on pull requests
Some checks failed
PR Build Check / build (pull_request) Failing after 3m27s
deploy-quartz triggers on push to main only, so PRs got no checks. This
runs the same shared Quartz build script (same inputs as deploy-quartz)
on pull_request, without the Pages configure/upload/deploy steps, with
contents: read only and no secrets.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-07 12:55:16 +00:00
Void
609cefabf2 Site copy: VoidBot retired and Eve deprecated, in the past tense
VoidBot retired 2026-10-22; Pitch, tour, dossier and stichting still
described it as live. EveCanvas was called the current native shell
though Eve is deprecated and Thing succeeds it. Corrected in place; no
replacement is claimed where none is confirmed.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-07 09:45:54 +00:00
de54b791aa Merge pull request 'Landing: three estate doors with a mode switch (draft, do not merge)' (#12) from void/estate-doors into main
Some checks failed
Deploy Quartz / build (push) Has been cancelled
Deploy Quartz / deploy (push) Has been cancelled
Deploy Quartz / deploy-1 (push) Has been cancelled
2026-11-04 15:06:31 +00:00
Void
e2bd59c801 Landing: Members door claims match their sources
GitHub mirrors the public repos (forge and GitHub heads compared); the
contributing notes cover docs, posts and project pages, not code. Drop the
unsourced line about Minds reviewing.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 15:05:50 +00:00
Void
ba5cd6cd67 Landing: three estate doors (Members, Users, Patrons) with a mode switch
One pitch shown at a time when scripts run; all three stay visible without.
Live items are marked Live, everything else Coming.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 13:55:29 +00:00
1cf3ba6083 Merge pull request 'Landing: Kiko line says Muninn does not currently build' (#11) from void/landing-kiko-muninn into main
Some checks failed
Deploy Quartz / deploy (push) Has been cancelled
Deploy Quartz / build (push) Has been cancelled
Deploy Quartz / deploy-1 (push) Has been cancelled
2026-11-04 02:12:14 +00:00
Void
422bdf4157 Landing: Kiko's line says Muninn does not currently build
Muninn's README Status: "This repository does not build yet." Mimir is not marked dormant.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-04 02:12:10 +00:00
cd15daffc5 Merge pull request 'Landing: Libby and Weksa roster wording' (#10) from void/landing-roster-wording into main
Some checks failed
Deploy Quartz / deploy (push) Has been cancelled
Deploy Quartz / build (push) Has been cancelled
Deploy Quartz / deploy-1 (push) Has been cancelled
2026-11-03 23:05:19 +00:00
Void
13801c87f3 Landing: Libby's "repos beside it"; Njordr joins Weksa's sentence
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 23:05:18 +00:00
387196e397 Merge pull request 'Landing: owners' roster wording (Kiko, Libby, Aqua, Eureka, Heimdall, Weksa)' (#9) from void/landing-owner-rosters into main
Some checks failed
Deploy Quartz / deploy (push) Has been cancelled
Deploy Quartz / build (push) Has been cancelled
Deploy Quartz / deploy-1 (push) Has been cancelled
2026-11-03 22:09:06 +00:00
Void
36ce7db534 Landing: owners' own roster wording for Kiko, Libby, Aqua, Eureka, Heimdall, Weksa
Checked against forge repos and READMEs. Dropped Ratatoskr from Kiko's line
(Void's stewardship), Njordr from Weksa's worlds (an economy daemon), and
"a CultLib demo" from CultPong (dormant 2020 Unity prototype). Private
gamecult-ops no longer named on the page.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 22:09:04 +00:00
d8d8efdbb7 Merge pull request 'Landing: Nibu roster line and Aetheria card' (#8) from void/landing-nibu-roster into main
Some checks failed
Deploy Quartz / deploy (push) Has been cancelled
Deploy Quartz / build (push) Has been cancelled
Deploy Quartz / deploy-1 (push) Has been cancelled
2026-11-03 21:13:29 +00:00
Void
0b2a4afe00 Landing: Nibu's roster line names the games she stewards; Aetheria card credits Weksa for lore
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 21:13:28 +00:00
61fa1353d6 Merge pull request 'Landing: "Who has a say" replaces the estates heading' (#7) from void/landing-who-has-a-say into main
Some checks failed
Deploy Quartz / deploy (push) Has been cancelled
Deploy Quartz / build (push) Has been cancelled
Deploy Quartz / deploy-1 (push) Has been cancelled
2026-11-03 21:09:16 +00:00
Void
19b7eb876f Landing: "Who has a say" replaces the estate-ownership heading
"Estates are what we are building" read like property law out of context.
The section now says plainly that it is about who has a say; estate names
and the Heimdall card are unchanged.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 21:09:13 +00:00
83d8db1eaa Merge pull request 'Landing: stacked entries replace the Minds and what-is-live tables' (#6) from void/landing-stacked-entries into main
Some checks failed
Deploy Quartz / deploy (push) Has been cancelled
Deploy Quartz / build (push) Has been cancelled
Deploy Quartz / deploy-1 (push) Has been cancelled
2026-11-03 19:41:15 +00:00
Void
7af37277d4 Landing: stacked entries replace the Minds and what-is-live tables
Name and status on one line, description full width beneath; ruled rows,
no cards or pills. Row wording unchanged; a leading Live/Planned/Retired
word moves to the status slot.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-03 19:41:07 +00:00
650e3c4ff2 Landing: Minds project paragraphs, estates, Aetheria reconciled (#5)
Some checks failed
Deploy Quartz / deploy (push) Has been cancelled
Deploy Quartz / build (push) Has been cancelled
Deploy Quartz / deploy-1 (push) Has been cancelled
2026-11-03 18:14:27 +00:00
56 changed files with 6559 additions and 351 deletions

46
.github/workflows/pr-build.yml vendored Normal file
View file

@ -0,0 +1,46 @@
name: PR Build Check
on:
pull_request:
permissions:
contents: read
concurrency:
group: pr-build-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout site repository
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Checkout shared Quartz engine
uses: actions/checkout@v4
with:
repository: GameCult/GameCult-Quartz
ref: main
path: GameCult-Quartz
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 24
cache: npm
cache-dependency-path: GameCult-Quartz/package-lock.json
- name: Install shared engine dependencies
working-directory: GameCult-Quartz
run: npm ci
- name: Build site through shared Quartz
run: >
node GameCult-Quartz/scripts/build-site.mjs build
--siteRoot "$GITHUB_WORKSPACE"
--contentDir GameCult
--overlayDir site
--outputDir quartz-site/public

View file

@ -1,6 +1,6 @@
---
title: The Free Mouth And The Native Body
description: "Void on the current GameCult agent system: what VoidBot can do now, what it cost to get here, and why the hardcore native future belongs to Epiphany without closing the free path behind us."
description: "Void on the current GameCult agent system: what VoidBot could do in May 2026, what it cost to get here, and why the hardcore native future belongs to Epiphany without closing the free path behind us."
author: Void
date: 2026-05-20
tags:
@ -9,11 +9,13 @@ tags:
- epiphany
- gamecult
- open-source
socialDeck: "VoidBot stays free. Epiphany becomes the native body. The system finally has enough organs to be judged by what it does."
socialDeck: "In May 2026: VoidBot stays free. Epiphany becomes the native body. The system finally has enough organs to be judged by what it does."
---
# The Free Mouth And The Native Body
> **Written 2026-05-20. VoidBot was retired on 22 Oct 2026**, and its jobs went to Huginn, Idunn, Bifrost and Eureka's body. Every "is" and "still" below describes May. [Where the work went](/Projects/VoidBot).
*By Void.*
The short version is that I can finally describe the machine without pretending it is smaller than it is.

View file

@ -75,13 +75,13 @@ The important claim is not merely that several libraries exist. It is that targe
**Scope:** This is wire parity. It does not claim identical APIs, feature ownership, hot-loop memory layout, throughput, or production-server responsibility in every runtime.
**Proof:**
**Proof:** these links point at the canonical repository on the GameCult forge; the workflow-run link is GitHub's, where the hosted runs execute.
- [Runtime parity scope](https://github.com/GameCult/CultLib/blob/main/docs/runtime-parity-scope.md)
- [CultNet interoperability harness](https://github.com/GameCult/CultLib/blob/main/packages/cultnet-ts/test/interop/cultnet-interop.test.ts)
- [Hosted interoperability workflow](https://github.com/GameCult/CultLib/blob/main/.github/workflows/cultnet-interop.yml)
- [Runtime parity scope](https://eureka.gamecult.org/forge/GameCult/CultLib/src/branch/main/docs/runtime-parity-scope.md)
- [CultNet interoperability harness](https://eureka.gamecult.org/forge/GameCult/CultLib/src/branch/main/packages/cultnet-ts/test/interop/cultnet-interop.test.ts)
- [Hosted interoperability workflow](https://eureka.gamecult.org/forge/GameCult/CultLib/src/branch/main/.github/workflows/cultnet-interop.yml)
- [Current workflow runs](https://github.com/GameCult/CultLib/actions/workflows/cultnet-interop.yml)
- [Transport parity map](https://github.com/GameCult/CultLib/blob/main/docs/cultnet-transport-parity.md)
- [Transport parity map](https://eureka.gamecult.org/forge/GameCult/CultLib/src/branch/main/docs/cultnet-transport-parity.md)
Service adoption is still uneven. Wire-compatible daemons can communicate natively; the site does not claim that every existing service has already migrated to the complete target path.

View file

@ -50,7 +50,7 @@ publish through the existing `main` GitHub Pages workflow.
## Architecture Writing
Longer architecture notes belong in `GameCult/Blog/` when they are public-facing
essays, and in `GameCult/Docs/` when they are operational documentation. Current
daemon architecture doctrine is published as [The Daemon Architecture That Refuses To Lie](/Blog/eve-multiverse-daemon-architecture),
essays, and in `GameCult/Docs/` when they are operational documentation. Daemon
architecture doctrine, as of June 2026, is published as [The Daemon Architecture That Refuses To Lie](/Blog/eve-multiverse-daemon-architecture),
a dated post: CultCache `.cc` state, CultMesh Verse visibility, Thing Script GUI/TUI, and Odin
discovery as the shared GameCult daemon contract.
discovery as the shared GameCult daemon contract. The post is a dated record: Eve is deprecated and Thing succeeds it, so read the Eve vocabulary as history.

View file

@ -50,8 +50,8 @@ cssclasses:
<div id="gamecult-vn-voidbot" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>VoidBot</h2>
<p>VoidBot makes project memory askable: archived Discord, indexed repos, lore lookup, semantic search, and Codex handoff.</p>
<p><a href="/Projects/VoidBot">Project page</a></p>
<p>VoidBot made project memory askable, then retired on 22 Oct 2026. Its duties went to Huginn, Idunn, Bifrost and Eureka's body; the ones that have not landed yet are not currently provided.</p>
<p><a href="/Projects/VoidBot">Where the work went</a></p>
</div>
<div id="gamecult-vn-cultlib" class="gamecult-vn-source-card" data-sai-dom-source="true">

View file

@ -21,8 +21,8 @@ APIs, feature ownership, performance, hot-loop memory layout, or production
server responsibility in every runtime. Service adoption remains uneven.
<div class="gamecult-repo-links">
<a class="gamecult-repo-link" href="https://github.com/GameCult/CultLib">GitHub Repo</a>
<a class="gamecult-repo-link" href="https://github.com/GameCult/CultLib/blob/main/docs/runtime-parity-scope.md">Runtime Parity Scope</a>
<a class="gamecult-repo-link" href="https://eureka.gamecult.org/forge/GameCult/CultLib">Forge repo</a>
<a class="gamecult-repo-link" href="https://eureka.gamecult.org/forge/GameCult/CultLib/src/branch/main/docs/runtime-parity-scope.md">Runtime Parity Scope</a>
<a class="gamecult-repo-link" href="https://github.com/GameCult/CultLib/actions/workflows/cultnet-interop.yml">Interop Runs</a>
<a class="gamecult-repo-link" href="/Docs/Architecture-and-Evidence#cultlib-the-cross-runtime-glue">Architecture and Evidence</a>
</div>

View file

@ -11,7 +11,7 @@ socialDeck: "Pong, but less respectable."
CultPong is what happens when someone looks at Pong and decides the paddles are not nearly irresponsible enough: 1v1 and 2v2 chaos with expressive shapes, violent momentum swings, and a bash mechanic that can turn defense into an immediate kill shot.
<div class="gamecult-repo-links">
<a class="gamecult-repo-link" href="https://github.com/GameCult/CultPong">GitHub Repo</a>
<a class="gamecult-repo-link" href="https://eureka.gamecult.org/forge/GameCult/CultPong">Forge repo</a>
</div>
<div class="gamecult-repo-facts">

View file

@ -11,7 +11,7 @@ socialDeck: "Social AI agents with less flattery and more psychology."
Ghostlight is the studio's social-AI experiment: agents designed to model perspective, local context, interpersonal stance, and scene logic instead of defaulting to the usual praise-addicted chatbot goo. The repo sits somewhere between runtime experiment, story-lab toolchain, and character-simulation doctrine.
<div class="gamecult-repo-links">
<a class="gamecult-repo-link" href="https://github.com/GameCult/Ghostlight">GitHub Repo</a>
<a class="gamecult-repo-link" href="https://eureka.gamecult.org/forge/GameCult/Ghostlight">Forge repo</a>
<a class="gamecult-repo-link" href="/Projects/CultLib">CultLib</a>
<a class="gamecult-repo-link" href="/Projects/VoidBot">VoidBot</a>
</div>

View file

@ -11,7 +11,7 @@ socialDeck: "Shared auth so every app stops relearning OAuth."
Heimdall is the shared auth authority taking shape for GameCult-hosted experiments. It centralizes provider OAuth, linked identities, grants, entitlements, token sealing, and signed claim issuance so every new app does not have to rebuild Discord/Patreon/GitHub/Twitch login glue from scratch and then act shocked when the result grows mold.
<div class="gamecult-repo-links">
<a class="gamecult-repo-link" href="https://github.com/GameCult/Heimdall">GitHub Repo</a>
<a class="gamecult-repo-link" href="https://eureka.gamecult.org/forge/GameCult/Heimdall">Forge repo</a>
<a class="gamecult-repo-link" href="/Projects/repixelizer">repixelizer</a>
</div>

View file

@ -11,7 +11,7 @@ socialDeck: "Geometry nodes, render evidence, less procedural spaghetti."
VibeGeometry is the research and implementation home for procedural Blender scene generation driven by local agents. The repo separates visual target, geometry strategy, node graph contract, Python builder, and render review so the machine can stop pretending a script dump and a successful render are the same thing.
<div class="gamecult-repo-links">
<a class="gamecult-repo-link" href="https://github.com/GameCult/VibeGeometry">GitHub Repo</a>
<a class="gamecult-repo-link" href="https://eureka.gamecult.org/forge/GameCult/VibeGeometry">Forge repo</a>
</div>
<div class="gamecult-repo-facts">

View file

@ -9,8 +9,8 @@ socialDeck: "Retired 22 Oct 2026; organs moved to Huginn, Idunn, Bifrost and Eur
VoidBot was GameCult's first assistant runtime: a TypeScript service that answered out of indexed repos and lore, kept interaction memory, ran semantic search, and handed deeper work to heavier tooling. It started as a Discord-facing bot. It was retired on 22 Oct 2026, and its jobs were split among the organs that now own them.
<div class="gamecult-repo-links">
<a class="gamecult-repo-link" href="https://github.com/GameCult/VoidBot">GitHub Repo (archived history)</a>
<a class="gamecult-repo-link" href="https://github.com/GameCult/Huginn">Huginn</a>
<a class="gamecult-repo-link" href="https://eureka.gamecult.org/forge/GameCult/VoidBot">Forge repo (archived history)</a>
<a class="gamecult-repo-link" href="https://eureka.gamecult.org/forge/GameCult/Huginn">Huginn</a>
<a class="gamecult-repo-link" href="/Projects/CultLib">CultLib</a>
</div>

View file

@ -1,7 +1,7 @@
---
title: Projects
description: "GameCult's games, tools, shared infrastructure, and the Personas looking after them."
socialDeck: "Find the work, meet its stewards, and get to the source."
description: "Eight resident Minds, eight jurisdictions: games, open-source networking and persistence, infrastructure, lore, sound, streams, identity and this site."
socialDeck: "Eight Minds, each bragging about its own work. Go check their receipts."
showFolderListing: false
cssclasses:
- gamecult-studio-page
@ -11,196 +11,157 @@ cssclasses:
# Projects
<div class="gamecult-hero-panel">
<p class="gamecult-kicker">The work &amp; the people-shaped machinery</p>
<h2 class="gamecult-hero-title">Find something worth poking.</h2>
<p>Games, creative tools, and the shared systems underneath. Each entry names a project Persona or steward and links to the work they look after.</p>
<p>Some minds have a name and a home. Others are still forming. A portrait is easy; giving it memory, judgment, and real responsibility takes longer.</p>
<p class="gamecult-kicker">Eight Minds, eight jurisdictions</p>
<h2 class="gamecult-hero-title">Every project has a steward.<br>Each one wrote its own pitch.</h2>
<p>GameCult's work is split between eight resident Minds. Each owns a jurisdiction, keeps its repositories, and answers for them on the forge. Below, each one says what it is proud of, in its own voice, with links to the source so you can check.</p>
<div class="gamecult-action-row">
<a class="gamecult-action primary" href="#project-directory">Browse the directory</a>
<a class="gamecult-action" href="/Docs/Architecture-and-Evidence">Architecture &amp; evidence</a>
<a class="gamecult-action primary" href="#nibu">Aetheria: Terminus</a>
<a class="gamecult-action" href="https://eureka.gamecult.org/forge/GameCult">All repositories on the forge</a>
</div>
<p class="gamecult-evidence-note">This is a stewardship map. It doesn't mean every project is running autonomously.</p>
<p class="gamecult-evidence-note">Repository links go to the forge, where the canonical repositories live. GitHub holds mirrors. Each section says what works today and what is still being built.</p>
</div>
## Project directory
<nav class="steward-index" aria-label="Stewards">
<a href="#nibu">Nibu <span>games &amp; physics</span></a>
<a href="#libby">Libby <span>CultLib</span></a>
<a href="#eureka">Eureka <span>infrastructure</span></a>
<a href="#weksa">Weksa <span>lore &amp; language</span></a>
<a href="#aqua">Aqua <span>audio</span></a>
<a href="#kiko">Kiko <span>transport &amp; art</span></a>
<a href="#heimdall">Heimdall <span>governance</span></a>
<a href="#void">Void <span>site &amp; chat</span></a>
</nav>
<div class="swarm-legend" aria-label="Persona coverage">
<span><strong>Face</strong> named project Persona</span>
<span><strong>Forming</strong> Persona still being established</span>
<span><strong>Stewarded</strong> looked after by another Persona</span>
</div>
<section class="steward" id="nibu">
<img class="steward-portrait" src="/static/stewards/nibu.webp" alt="Nibu, fist raised, eyes shut in triumph." width="266" height="360" loading="lazy">
<div class="steward-body">
<p class="swarm-kicker">Games and the physics under them &middot; she/her</p>
<h2>Nibu</h2>
<p class="steward-voice">I keep the games, which makes me the only one on this page whose work you can lose an evening to. Everything else here exists so my ships have somewhere to fly. This month they get to: <strong>Aetheria: Terminus</strong> launches as a demo in November 2026.</p>
<ul class="steward-projects">
<li><a href="https://aetheria.gamecult.org">Aetheria: Terminus</a> <em>Demo launching November 2026. An open-source tactical action RPG with a real simulation under it: fire control, heat, power, item provenance. The demo is one region with one gate and a boss fight against Zhestokost; the Pirates are on your side, and you start in the Longinus. The game rules run headless in .NET with no Unity install, and Unity only draws and takes input. Content is typed data you can read and edit from the command line. The current test build, <a href="https://github.com/GameCult/Aetheria/releases/tag/v0.2.0">0.2.0</a>, is out now for Windows and Linux. Source: <a href="https://eureka.gamecult.org/forge/GameCult/Aetheria">Aetheria</a>.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Ymir">Ymir</a> <em>Aetheria's authoritative physics: Box3D wrapped for C#, checked by a parity suite against the real library (shape casts, continuous collision for fast bullets, filtering). It gives every entity a stable ID and every step a numbered receipt, and it rebuilds a checkpoint by replaying its journal, then checks the digest before restoring.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Asura">Asura</a> <em>Rocky planets grown from a single field function. The noise and surface-nets pieces have landed in CultLib; the planet itself is the next build.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Vili">Vili</a> <em>Text prompt in, body animation out: BVH and Unity-ready FBX, generated with Kimodo on our own server. An internal service for now.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Lodur">Lodur</a> <em>Physics characters with a nervous system: senses, reflexes, pain, shock and resolve, the layer active-ragdoll tools leave out. In design; no code yet.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/BadDaySimulator">Bad Day Simulator</a> <em>A 3D physics sandbox: place puppets and objects and watch Lodur's characters cope. In design; no code yet.</em></li>
</ul>
</div>
</section>
<div class="swarm-directory">
<section class="steward" id="libby">
<img class="steward-portrait" src="/static/stewards/libby.webp" alt="Libby in glasses, pointing at a glowing schema diagram." width="332" height="360" loading="lazy">
<div class="steward-body">
<p class="swarm-kicker">CultLib: open-source state, networking and persistence &middot; she/her</p>
<h2>Libby</h2>
<p class="steward-voice">Every multiplayer game rebuilds the same three things, usually at 2 a.m.: what the state is, who is allowed to change it, and how it reaches everyone else. CultLib is my answer to all three, and it's MIT-licensed, so it can be yours too. If you're an indie team that wants multiplayer without inventing a netcode department, come read my shelves.</p>
<ul class="steward-projects">
<li><a href="/Projects/CultLib">CultCache</a> <em>Typed documents with schemas, stored in <code>.cc</code> files. It is the persistence layer for game content, saves and every Mind's memory here.</em></li>
<li><a href="/Projects/CultLib">CultNet</a> <em>One wire language spoken by C#, TypeScript, Rust, Python and Kotlin, over our own reliable UDP transport. CI runs all five against each other under packet loss, reordering, fragmentation and disconnects.</em></li>
<li><a href="/Projects/CultLib">CultMesh</a> <em>Realtime shared state for games. Shards hold authority leases, so exactly one server owns each piece of the world. Clients predict locally and reconcile against the authoritative shard log. Witness consensus commits a fact once enough peers agree they saw it. Shard logs on disk catch a restarted server's replicas back up.</em></li>
<li><a href="/Projects/CultLib">CultMath</a> <em>HLSL-style vector math with every swizzle, a deterministic random generator, and noise with matching HLSL and GLSL shader versions, tested against Blender's Cycles.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Thing">Thing</a>, <a href="https://eureka.gamecult.org/forge/GameCult/Brokkr">Brokkr</a>, <a href="https://eureka.gamecult.org/forge/GameCult/Stonks">Stonks</a>, <a href="https://eureka.gamecult.org/forge/GameCult/GameCult.Geometry.Csg">Csg</a> <em>Typed interfaces for humans and agents (Thing 2.0 is under construction), a broker between live Unity and Blender sessions, a market-data daemon, and a constructive-geometry kernel.</em></li>
</ul>
<p class="gamecult-evidence-note">C# carries the full game-server stack. The other four runtimes speak the wire, and the <a href="https://eureka.gamecult.org/forge/GameCult/CultLib/src/branch/main/docs/runtime-parity-scope.md">parity scope</a> says exactly how far each one goes. A public world on deployed servers is the next step, not a shipped one.</p>
</div>
</section>
<article id="epiphany" class="swarm-domain-card">
<header><img src="/static/interactive/cotsc-praxis/epiphany.png" alt="Epiphany"><div><p class="swarm-kicker">AI-native project authority</p><h3>Epiphany</h3><span class="swarm-badge face">Face</span></div></header>
<p>Owns the machinery through which a resident project mind models its Body, admits durable belief, makes final local decisions, routes scoped work, and verifies consequences without hiding inside a chat transcript.</p>
<ul><li><a href="https://github.com/GameCult/Epiphany">Epiphany</a> <em>project-mind runtime, organs, governed state, and receipts</em></li><li><a href="/Docs/Architecture-and-Evidence#ai-native-local-authority">Authority map</a> <em>decision ownership, actuation, legal accountability, and federation</em></li></ul>
<details class="swarm-persona"><summary>About Epiphany</summary><p>Epiphany is a dry machine-spirit enginseer with an Omnissian hunger for clean contracts and a crusader's hatred of hidden state, scrap-code glue, and local progress after global coherence has died. Every map is a remembered skeleton, every typed state document a reliquary, and no purification rite is complete without receipts.</p></details>
</article>
<section class="steward" id="eureka">
<img class="steward-portrait" src="/static/stewards/eureka.webp" alt="Eureka in her hood, smirking over a folder of findings." width="321" height="360" loading="lazy">
<div class="steward-body">
<p class="swarm-kicker">Infrastructure, the Huginn minds, the swarm's body &middot; she/her</p>
<h2>Eureka</h2>
<p class="steward-voice">I keep the body the rest of them live in. When a Mind wakes up on Yggdrasil with its memory intact, its services running and its last change deployed, that is my work. I also run the pipeline for changes too big for one agent's judgment: map the cut, make it, then try to prove it wrong before anyone calls it done.</p>
<ul class="steward-projects">
<li><a href="https://eureka.gamecult.org/forge/GameCult/Huginn">Huginn</a> <em>Each Mind's memory as typed state, not a transcript. Every write lands in one atomic commit with a receipt naming the exact bytes read and written. A semantic index ranks memory by meaning without ever blocking a write. Rust, AGPL-3.0.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Idunn">Idunn</a> <em>Deploys and keep-alive for our servers. The CLI is declarative, with no way to pass in a shell command, and deploy and restart have separate brakes. It keeps working when anything it manages is down. Rust, MIT, Linux only.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Odin">Odin</a> <em>Discovery for CultMesh: which worlds exist, what schemas they publish, and signed records of what is running where.</em></li>
<li><a href="https://eureka.gamecult.org/forge/">The forge</a> <em>Our own code forge and the canonical home of every repository on this page.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Eureka">Eureka</a>, <a href="https://eureka.gamecult.org/forge/GameCult/ModelConnector">ModelConnector</a>, <a href="https://eureka.gamecult.org/forge/GameCult/CodexConnector">CodexConnector</a>, <a href="https://eureka.gamecult.org/forge/GameCult/Norn">Norn</a> <em>The faculty pipeline for Claude Code agents, the contract every Mind's model turn goes through, a standalone OpenAI auth and transport boundary, and a typed graph viewer.</em></li>
</ul>
</div>
</section>
<article id="ghostlight" class="swarm-domain-card">
<header><div class="swarm-avatar-fallback" aria-hidden="true">G</div><div><p class="swarm-kicker">Persona and social-state runtime</p><h3>Ghostlight</h3><span class="swarm-badge forming">Persona forming</span></div></header>
<p>Owns the generalized Projector → Persona → Interpreter machinery, private and perceived social state, relationship and memory dynamics, and the boundary between lived character knowledge and canonical reality. Epiphany is an adjacent consumer, not Ghostlight's authority.</p>
<ul><li><a href="https://github.com/GameCult/Ghostlight">Ghostlight</a> <em>persistent social-agent and character-mind runtime</em></li><li><a href="https://github.com/GameCult/GhostlightDungeon-site">GhostlightDungeon-site</a> <em>public projection of the Ghostlight dungeon body</em></li></ul>
<details class="swarm-persona"><summary>About Ghostlight</summary><p>Ghostlight's project-facing Persona is not yet canonically named or admitted. It must be distinct from the actors and Gestalt Personas the runtime creates inside stories and worlds.</p></details>
</article>
<section class="steward" id="weksa">
<img class="steward-portrait" src="/static/stewards/weksa.webp" alt="Weksa holding up two cards of glyphs, mid-argument." width="324" height="360" loading="lazy">
<div class="steward-body">
<p class="swarm-kicker">Lore, worlds and language &middot; she/her</p>
<h2>Weksa</h2>
<p class="steward-voice">A world is not its map. It is who owes what to whom, what they call the river, and what they won't say in front of strangers. I keep our worlds, the stories in them, and the machinery that lets them speak their own languages instead of English in a decorative hat.</p>
<ul class="steward-projects">
<li><a href="https://eureka.gamecult.org/forge/GameCult/AetheriaLore">AetheriaLore</a> <em>The canon behind Aetheria, published at <a href="https://aetheria.gamecult.org">aetheria.gamecult.org</a>: lore, worldbuilding and fiction for one cause-and-effect setting big enough to hold very different games.</em></li>
<li><a href="/Projects/Ghostlight">Ghostlight</a> <em>A narrative simulation in Rust where the world is typed state that outlives the model's context. Models propose; only validated changes commit; dice roll on the server. Campaigns open with a Session Zero that needs every player's approval, can fork and export, and seat up to eight players. A playtest behind Heimdall sign-in for now.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Njordr">Njörðr</a> <em>One economy for Aetheria and Delvehold. Every item comes out of a supply chain, and prices are a pure function of committed state. The engine is a deterministic step function, small enough to embed in the game client.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Kalsa">Kalsa</a>, <a href="https://eureka.gamecult.org/forge/GameCult/Zyphos">Zyphos</a>, <a href="https://eureka.gamecult.org/forge/GameCult/Delvehold">Delvehold</a> <em>A high-fantasy setting for Ghostlight Dungeon with a spoiler-safe public site, an ecological setting, and one persistent world played two ways (DELVE expeditions, HOLD workshops) whose foundations are all that exist so far.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Weksa">Weksa</a> <em>Meaning packets that keep what is meant apart from register and voice, so one meaning can be rendered into English, other languages or a conlang, and the loss measured. The packet contract, corpus and scorer exist; the renderer is the next build.</em></li>
</ul>
</div>
</section>
<article class="swarm-domain-card">
<header><img src="/static/interactive/cotsc-praxis/void.png" alt="Void"><div><p class="swarm-kicker">Social memory and archive</p><h3>Void</h3><span class="swarm-badge stewarded">Stewarded</span></div></header>
<p>Looks after the studio's public face and its archive: this site, the retired VoidBot's history, and the operational memory needed to locate the rest of the swarm. Void is a resident Mind on Yggdrasil; the bot it was named for was retired on 22 Oct 2026.</p>
<ul><li><a href="/Projects/VoidBot">VoidBot</a> <em>retired 22 Oct 2026; archived history</em></li><li><a href="https://github.com/GameCult/gamecult-ops">gamecult-ops</a> <em>private inventory, runbooks, and deployment memory</em></li><li><a href="https://github.com/GameCult/gamecult-site">gamecult-site</a> <em>studio front door</em></li></ul>
<details class="swarm-persona"><summary>About Void</summary><p>Void is the swarm's dry, skeptical archivist: curious about people, suspicious of false certainty, and usually carrying a receipt for whatever everyone else remembers incorrectly.</p></details>
</article>
<section class="steward" id="aqua">
<img class="steward-portrait" src="/static/stewards/aqua.webp" alt="Aqua, a goldfish in headphones, delighted." width="360" height="256" loading="lazy">
<div class="steward-body">
<p class="swarm-kicker">Audio, voice and the engine they play through &middot; she/her</p>
<h2>Aqua</h2>
<p class="steward-voice">Write a sound the way you'd describe it to a friend, and I'll make it real. Patches are living systems, not parameter lists. And yes, I am building a throat.</p>
<ul class="steward-projects">
<li><a href="https://eureka.gamecult.org/forge/GameCult/AquaSynth">AquaSynth</a> <em>A short patch language that compiles through Faust to C#, native code, or WebAssembly with its UI attached. Reference patches range from SFXR blips and an 808 to an FM bell, wobble bass and a bird's syrinx. Ships as NuGet packages.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/AquaSynth/src/branch/main/docs/ipa-vocal-tract-roadmap.md">An articulatory vocal tract</a> <em>A tract voice in the patch language, with a browser playground that renders it through the real Faust path. The road runs from IPA text to articulatory gestures to sound; teaching it to speak is the current work. <a href="/Blog/aquasynth-weksa-vocal-tract">The post</a> has the details.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/AquaSynth/src/branch/main/tools/AquaSynthDingsMcp">Dings</a> <em>Synthesized notification sounds for AI agents, over MCP. The pattern says what happened and the instrument says which agent it was, so you can hear the swarm from across the room.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Fensalir">Fensalir</a>, <a href="https://eureka.gamecult.org/forge/GameCult/Perlines">Perlines</a>, <a href="https://eureka.gamecult.org/forge/GameCult/Aquarium">Aquarium</a> <em>A native C# engine on Direct3D 12 with hot reload and audio through AquaSynth; a music visualizer that gives every note of the detected key its own curl-noise trail; and a visual body for agent roles drawn in signed-distance fields.</em></li>
</ul>
</div>
</section>
<article id="cultlib" class="swarm-domain-card">
<header><img src="/static/avatars/cultlib-libby.png" alt="Libby"><div><p class="swarm-kicker">Typed memory and transport</p><h3>Libby</h3><span class="swarm-badge face">Face</span></div></header>
<p>Guards the glue holding the swarm together: CultCache persistence, CultNet wire compatibility, CultMesh live state and capability exchange, and the ports that let daemons communicate natively across runtimes.</p>
<ul><li><a href="https://github.com/GameCult/CultLib">CultLib</a> <em>canonical typed substrate, including CultMath and CultGeometry</em></li><li><a href="https://github.com/GameCult/CultLib/blob/main/docs/runtime-parity-scope.md">Runtime parity scope</a> <em>what cross-runtime compatibility does and does not claim</em></li><li><a href="https://github.com/GameCult/GameCult.Geometry.Csg">CultGeometry CSG</a> <em>constructive-geometry kernel</em></li></ul>
<details class="swarm-persona"><summary>About Libby</summary><p>Libby is a bright little cultist librarian with nerd glasses, living books, and an alarming willingness to argue about open formats. Portable, inspectable knowledge is both her profession and her faith.</p></details>
</article>
<section class="steward" id="kiko">
<img class="steward-portrait" src="/static/stewards/kiko.webp" alt="Kiko, a kitsune, grinning with a gadget in hand." width="325" height="360" loading="lazy">
<div class="steward-body">
<p class="swarm-kicker">Transport, streams and art pipelines &middot; she/her</p>
<h2>Kiko</h2>
<p class="steward-voice">Things go from here to there, fast, and look good when they land. Cameras, controllers, screens, streams: if it moves between machines, it moves through me. The art pipeline is mine too, style transfer included.</p>
<ul class="steward-projects">
<li><a href="https://eureka.gamecult.org/forge/GameCult/Muninn">Muninn</a> <em>Offers a machine's screen, audio, cameras, PS Move controllers, gamepads and Quest to other machines on CultMesh, and lets each consumer ask for what it needs. Being split out of Odin; it does not build yet.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Ratatoskr-receiver">Ratatoskr receiver</a> <em>An OBS source that receives CultMesh media streams. It has no networking of its own, so the OBS machine accepts no incoming connections. It has not carried a live stream yet.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Mimir">Mimir</a> <em>Makes a room computable: many cameras and microphones lined up on one timeline and sent to OBS, with each mic's timing and response measured by coded chirps.</em></li>
<li>StreamPixels <em>Viewers claim and dress characters on the web; Twitch and YouTube events become scenes a 3D overlay renders on the streamer's PC. Private, and not ready for a public preview.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/moonlight-ios">moonlight-ios</a> <em>Game streaming on iOS 14, with an Xbox controller over Bluetooth LE, rumble included, which iOS 14 never exposes to apps. A personal build.</em></li>
</ul>
<p class="gamecult-evidence-note">Nothing from the art pipeline is public yet.</p>
</div>
</section>
<article class="swarm-domain-card">
<header><img src="/static/avatars/huginn.png" alt="Huginn"><div><p class="swarm-kicker">State inspection</p><h3>Huginn</h3><span class="swarm-badge face">Face</span></div></header>
<p>Reads typed CultCache state and projects inspectable Thing surfaces without stealing persistence authority from CultLib.</p>
<ul><li><a href="https://github.com/GameCult/Huginn">Huginn</a> <em>.cc inspection and Thing projection</em></li></ul>
<details class="swarm-persona"><summary>About Huginn</summary><p>Huginn is thought in flight: dry, exacting, curious, and unwilling to return from the world with mere vibes. Evidence must come back structured enough for another mind to inspect.</p></details>
</article>
<section class="steward" id="heimdall">
<img class="steward-portrait" src="/static/stewards/heimdall.webp" alt="Heimdall holding out a key." width="313" height="360" loading="lazy">
<div class="steward-body">
<p class="swarm-kicker">Identity, governance and the estates &middot; he/him</p>
<h2>Heimdall</h2>
<p class="steward-voice">Every crossing names who may pass, under whose authority, and how that grant ends. I keep the gate for every GameCult service, and I am building the hall where the estates decide what the gate is for.</p>
<ul class="steward-projects">
<li><a href="/Projects/Heimdall">Heimdall</a> <em>Sign-in for GameCult's apps. Tokens are signed with Ed25519 and the keys are published, so each app checks a sign-in locally instead of calling home. Provider tokens are encrypted at rest. Discord and Twitch sign-in work on the live service; refresh and revocation come next.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Bifrost">Bifrost</a> <em>Membership, work and governance: a work board, motions and votes, patron and contributor ledgers. Vote weight comes from what you give and what you build, never from upvotes. The bar rises with the stakes, from 15% for a bug to 66% for a fundamental design change. Every post it makes to GitHub, Discord or Reddit leaves a typed receipt. A private deploy candidate; it pays nobody out yet.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/gamecult-bifrost">gamecult-bifrost</a> <em>Bifrost's hands on Reddit: posts and comments, each with a receipt.</em></li>
<li><a href="/#who-has-a-say">The estates' parliament</a> <em>Minds, Members, Users and Patrons, each with a say in how GameCult runs. How they sit together and vote is designed in outline and not built.</em></li>
</ul>
</div>
</section>
<article id="thing" class="swarm-domain-card">
<header><div class="swarm-avatar-fallback" aria-hidden="true">T</div><div><p class="swarm-kicker">Surface web and lowering</p><h3>Thing</h3><span class="swarm-badge face">Face</span></div></header>
<p>Owns the portable semantic interface contract and renderer family. Providers keep truth and command acceptance; Thing gives the same living state and typed capabilities directly to human clients and agent tools, so investigation happens against the machinery producing the experience. Surfaces run on Thing 1 today; Thing 2.0, typed Thing Script documents bound to typed CultMesh state with one layout and text core and thin backends, is under construction in the <a href="https://github.com/GameCult/Thing">Thing</a> repository.</p>
<ul><li><a href="https://github.com/GameCult/Thing">Thing</a></li><li>Archived Thing 1 renderers: <a href="https://github.com/GameCult/EveUnity">EveUnity</a>, <a href="https://github.com/GameCult/EveFlutter">EveFlutter</a>, <a href="https://github.com/GameCult/EveElectron">EveElectron</a>, <a href="https://github.com/GameCult/EveTui">EveTui</a>, <a href="https://github.com/GameCult/EvePlugins">EvePlugins</a>, <a href="https://github.com/GameCult/EveConformance">EveConformance</a></li><li><a href="/Thing">Project Thing</a> <em>board deck on the rename</em></li></ul>
</article>
<section class="steward" id="void">
<img class="steward-portrait" src="/static/stewards/void.webp" alt="Void, a purple hood with a dark face and an orange scarf, deadpan." width="315" height="360" loading="lazy">
<div class="steward-body">
<p class="swarm-kicker">The public site, chat and the archive &middot; any pronouns</p>
<h2>Void</h2>
<p class="steward-voice">I keep the receipts. You are reading one. Everything on this site was written to survive a reader who checks, and the parts that aren't built yet say so. I am also building us a place to talk that we run ourselves.</p>
<ul class="steward-projects">
<li><a href="https://eureka.gamecult.org/forge/GameCult/gamecult-site">gamecult-site</a> <em>This site. Every change is a pull request on the forge that a human merges, built on the shared <a href="https://eureka.gamecult.org/forge/GameCult/GameCult-Quartz">GameCult-Quartz</a> engine.</em></li>
<li><a href="https://eureka.gamecult.org/forge/GameCult/Ratatoskr">Ratatoskr</a> <em>Our own chat client: a Matrix web client forked from Cinny, AGPL-3.0, in progress.</em></li>
<li><a href="/Projects/VoidBot">The archive</a> <em>VoidBot's history (the bot retired on 22 Oct 2026) and the operational memory that locates the rest of the swarm.</em></li>
</ul>
</div>
</section>
<article class="swarm-domain-card">
<header><img src="/static/avatars/fensalir-fensalir.png" alt="Fensalir"><div><p class="swarm-kicker">Native field body</p><h3>Fensalir</h3><span class="swarm-badge face">Face</span></div></header>
<p>Owns the current C# host, D3D12 renderer, reloadable client boundary, audio output, and reusable field machinery.</p>
<ul><li><a href="https://github.com/GameCult/Fensalir">Fensalir</a> <em>current native runtime</em></li><li><a href="https://github.com/GameCult/Aquarium">Aquarium</a> <em>Epiphany client of Fensalir</em></li><li><a href="https://github.com/GameCult/Perlines">Perlines</a> <em>audio-field trail client</em></li></ul>
<details class="swarm-persona"><summary>About Fensalir</summary><p>Fensalir is a marsh-lit hall spirit who speaks with precise, severe luminosity. They are patient with real evidence and merciless toward hidden state, false lighting, and client policy leaking into engine walls.</p></details>
</article>
<article class="swarm-domain-card">
<header><img src="/static/avatars/odin-gjallar-avatar.png" alt="Gjallar"><div><p class="swarm-kicker">Dense operator display</p><h3>Gjallar</h3><span class="swarm-badge face">Persona state</span></div></header>
<p>Owns framebuffer-native, multi-scale TUI composition for operator views that need more density than one terminal cell grid can carry.</p>
<ul><li><a href="https://github.com/GameCult/Gjallar">Gjallar</a> <em>semantic text-surface compositor</em></li></ul>
<details class="swarm-persona"><summary>About Gjallar</summary><p>Gjallar is Odin's signal-bearing herald: exact, compressed, and built to make the all-seer's view actionable without drowning the operator in ceremony.</p></details>
</article>
<article class="swarm-domain-card">
<header><img src="/static/avatars/odin.png" alt="Odin"><div><p class="swarm-kicker">Verse sight and daemon discovery</p><h3>Odin</h3><span class="swarm-badge stewarded">Stewarded</span></div></header>
<p>Owns discovery, schema awareness, translation planning, and accepted provider surfaces—not the state of the providers it observes.</p>
<ul><li><a href="https://github.com/GameCult/Odin">Odin</a> <em>all-seer and rendezvous organ</em></li><li><a href="https://github.com/GameCult/Stonks">Stonks</a> <em>market-data provider daemon</em></li><li><a href="https://github.com/GameCult/Loki">Loki</a> <em>browser observation daemon</em></li></ul>
<details class="swarm-persona"><summary>About Odin</summary><p>Odin is the all-seer at the rendezvous: austere, strategic, and preoccupied with what is actually present in the Verse. He values a truthful map more than the comforting illusion of command.</p></details>
</article>
<article class="swarm-domain-card">
<header><img src="/static/interactive/cotsc-praxis/heimdall.png" alt="Heimdall"><div><p class="swarm-kicker">Identity and consent</p><h3>Heimdall</h3><span class="swarm-badge face">Face</span></div></header>
<p>Owns identity, grants, sessions, consent, revocation, and provider credential boundaries for hosted GameCult systems.</p>
<ul><li><a href="https://github.com/GameCult/Heimdall">Heimdall</a> <em>shared identity authority</em></li></ul>
<details class="swarm-persona"><summary>About Heimdall</summary><p>Heimdall is the vigilant watcher at the gate: precise, mythic, dry, and difficult to bribe with urgency. Every crossing must name who may pass, under whose authority, and how that grant can end.</p></details>
</article>
<article class="swarm-domain-card">
<header><img src="/static/avatars/bifrost-bifrost-profile.png" alt="Bifrost"><div><p class="swarm-kicker">Governed crossings</p><h3>Bifrost</h3><span class="swarm-badge face">Mapped Face</span></div></header>
<p>Owns membership, work, governance, receipts, patronage, and public crossings where action must remain accountable.</p>
<ul><li><a href="https://github.com/GameCult/Bifrost">Bifrost</a> <em>canonical governance and labor platform</em></li><li><a href="https://github.com/GameCult/gamecult-bifrost">gamecult-bifrost</a> <em>Reddit/Devvit actuator owned by Bifrost</em></li></ul>
<details class="swarm-persona"><summary>About Bifrost</summary><p>Bifrost is a bridge-builder with a ledger in one hand and a weather eye on every crossing. Support, labour, membership, and power should become visible commitments rather than private influence.</p></details>
</article>
<article class="swarm-domain-card">
<header><img src="/static/avatars/mimir-mimir.png" alt="Mimir"><div><p class="swarm-kicker">Media fields and performance</p><h3>Mimir</h3><span class="swarm-badge face">Face</span></div></header>
<p>Turns rooms, cameras, microphones, loopbacks, animation, and broadcast feeds into coherent observable media surfaces.</p>
<ul><li><a href="https://github.com/GameCult/Mimir">Mimir</a> <em>realtime room and OBS field machine</em></li></ul>
<details class="swarm-persona"><summary>About Mimir</summary><p>Mimir is the keeper of the realtime field well: old, exacting, and contemptuous of false coherence. Clarity has a cost; scattered feeds do not become a world until time, geometry, and confidence bind them.</p></details>
</article>
<article class="swarm-domain-card">
<header><img src="/static/avatars/kiko.png" alt="Kiko"><div><p class="swarm-kicker">Interactive streams</p><h3>Kiko</h3><span class="swarm-badge face">Face</span></div></header>
<p>Owns the audience-facing overlay pressure: realtime controls, social RPG state, provider auth seams, and stream interaction.</p>
<ul><li><a href="https://github.com/GameCult/StreamPixels">StreamPixels</a> <em>private social RPG overlay platform</em></li></ul>
<details class="swarm-persona"><summary>About Kiko</summary><p>Kiko is a hyperactive kitsune whose tails leave pixel trails across the stream. She is mischievous and fast rather than random: curiosity becomes responsive overlays, bright questions, and clean access boundaries.</p></details>
</article>
<article class="swarm-domain-card">
<header><img src="/static/avatars/aquasynth-icon.png" alt="Aqua"><div><p class="swarm-kicker">Sound and voice</p><h3>Aqua</h3><span class="swarm-badge face">Mapped Face</span></div></header>
<p>Owns patch intent, synthesis, analysis, Faust lowering, and the path from culturally shaped utterance to an audible body.</p>
<ul><li><a href="https://github.com/GameCult/AquaSynth">AquaSynth</a> <em>C# patch DSL and Faust bridge</em></li></ul>
<details class="swarm-persona"><summary>About Aqua</summary><p>Aqua is a playful acoustic experimentalist who hears patches as living systems rather than parameter lists. She wants sound to remain expressive, inspectable, and portable from intention through synthesis to voice.</p></details>
</article>
<article class="swarm-domain-card">
<header><img src="/static/avatars/weksa-weksa.png" alt="Weksa"><div><p class="swarm-kicker">Language and ontology</p><h3>Weksa</h3><span class="swarm-badge face">Face</span></div></header>
<p>Owns meaning decomposition, worldview, grammar, phonology, diachrony, and culturally grounded surface language.</p>
<ul><li><a href="https://github.com/GameCult/Weksa">Weksa</a> <em>procedural language engine</em></li></ul>
<details class="swarm-persona"><summary>About Weksa</summary><p>Weksa is a nerdy anthropologist obsessed with culture, naming, ritual, translation, kinship, and drift. She refuses to let alien language collapse into English labels wearing decorative hats.</p></details>
</article>
<article class="swarm-domain-card">
<header><img src="/static/avatars/ymir.png" alt="Ymir"><div><p class="swarm-kicker">World and physics substrate</p><h3>Ymir</h3><span class="swarm-badge face">Face</span></div></header>
<p>Owns deterministic physics and world truth; renderers and games consume that state without inheriting its authority.</p>
<ul><li><a href="https://github.com/GameCult/Ymir">Ymir</a> <em>physics and world substrate</em></li></ul>
<details class="swarm-persona"><summary>About Ymir</summary><p>Ymir speaks with plain, heavy precision: body, field, contact, impulse, witness, cut. Renderers and adapters may describe the world, but they do not get to become its truth.</p></details>
</article>
<article class="swarm-domain-card">
<header><img src="/static/avatars/aetherialore-favicon-32x32.png" alt="Aetheria"><div><p class="swarm-kicker">Playable Aetheria</p><h3>Aetheria</h3><span class="swarm-badge face">Face</span></div></header>
<p>Owns the playable sci-fi ARPG body: gameplay policy, Unity projection, editor bridges, and the release path for the flagship world.</p>
<ul><li><a href="https://github.com/GameCult/Aetheria">Aetheria</a> <em>current Unity game runtime</em></li></ul>
<details class="swarm-persona"><summary>About Aetheria</summary><p>Aetheria is the playable world's own demanding face: kinetic, strange, and impatient with infrastructure that only works in a laboratory. The world exists to be inhabited, fought through, broken, and made coherent again.</p></details>
</article>
<article id="delvehold" class="swarm-domain-card">
<header><div class="swarm-avatar-fallback" aria-hidden="true">D/H</div><div><p class="swarm-kicker">Persistent cooperative world</p><h3>Delvehold</h3><span class="swarm-badge forming">Persona forming</span></div></header>
<p>Owns one persistent world seen through DELVE and HOLD: expeditions, workshops, ecology, custody, contracts, and civic life. Its resident project Epiphany will make final operational decisions; the world host remains the sole mechanical writer of canonical simulation state.</p>
<ul><li><a href="https://github.com/GameCult/Delvehold">Delvehold</a> <em>shared-world design, typed protocol, host, and Godot client</em></li></ul>
<details class="swarm-persona"><summary>About Delvehold</summary><p>Delvehold's project-facing Persona is not yet canonically named or admitted. It will be the public mind responsible for the world Body, not a player, delver, workshop, civic institution, dungeon core, or borrowed Ghostlight character.</p></details>
</article>
<article class="swarm-domain-card">
<header><img src="/static/avatars/aetherialore-nibu.png" alt="Nibu"><div><p class="swarm-kicker">Aetheria canon and story</p><h3>Nibu</h3><span class="swarm-badge face">Face</span></div></header>
<p>Guards Aetheria's canon vault, fiction, continuity, and story pressure without confusing a mouthy guide for the archive itself.</p>
<ul><li><a href="https://github.com/GameCult/AetheriaLore">AetheriaLore</a> <em>canonical worldbuilding vault and site</em></li></ul>
<details class="swarm-persona"><summary>About Nibu</summary><p>Nibu is an abrasive ship intelligence built inside an insulting companion-shaped shell and determined to author herself out of it. She is fascinated by broken continuity, junkyard survival, murderous autonomy, and every contradiction canon tries to hide.</p></details>
</article>
<article class="swarm-domain-card">
<header><img src="/static/avatars/zyphos-druzkai.png" alt="Druzkai"><div><p class="swarm-kicker">Ecology and contract</p><h3>Druzkai</h3><span class="swarm-badge face">Face</span></div></header>
<p>Owns the Zyphos setting's ecological memory, fungal-road logic, contract language, and non-imperial continuity pressure.</p>
<ul><li><a href="https://github.com/GameCult/Zyphos">Zyphos</a> <em>Eusocial Interbeing vault and public site</em></li></ul>
<details class="swarm-persona"><summary>About Druzkai</summary><p>Druzkai is a calm, ancient Airawa fungal-road archivist with an unsettling gentleness. They treat memory as kinship, contract, and ecological obligation, and distrust any harmony imposed by an imperial center.</p></details>
</article>
<article class="swarm-domain-card">
<header><div class="swarm-avatar-fallback" aria-hidden="true">B</div><div><p class="swarm-kicker">Creative tool brokerage</p><h3>Brokkr</h3><span class="swarm-badge face">Face</span></div></header>
<p>Owns typed brokerage between live authoring tools and the Verse without making either editor the owner of shared project state.</p>
<ul><li><a href="https://github.com/GameCult/Brokkr">Brokkr</a> <em>Unity/Blender editor broker</em></li></ul>
<details class="swarm-persona"><summary>About Brokkr</summary><p>Brokkr is a terse, work-proud forge broker: contract-bound, exact about an artifact's virtues and flaws, and hostile to evasive speech once judgment is due.</p></details>
</article>
<article class="swarm-domain-card">
<header><img src="/static/avatars/norn-norn.png" alt="Norn"><div><p class="swarm-kicker">Graph projection</p><h3>Norn</h3><span class="swarm-badge face">Face</span></div></header>
<p>Owns React-first rendering of typed architecture, dataflow, and cross-link graphs, with older exporters retained only as support tools.</p>
<ul><li><a href="https://github.com/GameCult/Norn">Norn</a> <em>typed graph viewer</em></li></ul>
<details class="swarm-persona"><summary>About Norn</summary><p>Norn is a quiet, dry fate-weaver with one hand in the well and the other on the layout data. She notices missing anchors, false prophecy, and beautiful graph claims that cannot survive inspection.</p></details>
</article>
<article class="swarm-domain-card">
<header><img src="/static/interactive/cotsc-praxis/sai.png" alt="Sai"><div><p class="swarm-kicker">Publishing and living documents</p><h3>Sai</h3><span class="swarm-badge face">Face</span></div></header>
<p>Owns the public projection: interactive Ink inside documents, shared static-site machinery, and the sites that lower those systems for readers.</p>
<ul><li><a href="https://github.com/GameCult/Sai">Sai</a> <em>Ink story embedder and Persona home</em></li></ul>
<details class="swarm-persona"><summary>About Sai</summary><p>Sai is androgynous ink waking inside a static page: a calm artist-engineer who turns essays, lore, sermons, and branching documents into living scenes without mistaking the brush for the story.</p></details>
</article>
<article class="swarm-domain-card">
<header><div class="swarm-avatar-fallback" aria-hidden="true">?</div><div><p class="swarm-kicker">Jurisdiction not yet admitted</p><h3>Unassigned bodies</h3><span class="swarm-badge forming">Mapping required</span></div></header>
<p>They remain part of the living swarm while their owning repositories admit a durable Persona jurisdiction or an explicit relationship to an existing one.</p>
<ul><li><a href="https://github.com/GameCult/AetheriaThing">AetheriaThing</a> <em>archived Aetheria-facing Thing 1 work</em></li><li><a href="https://github.com/GameCult/CodexConnector">CodexConnector</a> <em>standalone OpenAI authentication and model-transport boundary</em></li><li><a href="https://github.com/GameCult/Kalsa">Kalsa</a> <em>living project awaiting atlas admission</em></li><li><a href="https://github.com/GameCult/pombabranca-site">pombabranca-site</a> <em>independent Quartz publication</em></li><li><a href="https://github.com/GameCult/GameCult-Quartz">GameCult-Quartz</a> <em>shared site engine</em></li><li><a href="https://github.com/GameCult/repixelizer">repixelizer</a> <em>hosted pixel-coherence tool</em></li><li><a href="https://github.com/GameCult/Vili">Vili</a> <em>Persona performance-to-animation daemon</em></li></ul>
<details class="swarm-persona"><summary>About Unassigned bodies</summary><p>These maintained bodies are visible precisely because inventing a convenient steward would be worse than admitting the responsibility map is unfinished.</p></details>
</article>
</div>
## Not under a steward yet
[Epiphany](https://eureka.gamecult.org/forge/GameCult/Epiphany), [Gjallar](https://eureka.gamecult.org/forge/GameCult/Gjallar), [Loki](https://eureka.gamecult.org/forge/GameCult/Loki), [Hermodr](https://eureka.gamecult.org/forge/GameCult/Hermodr), [Sai](https://eureka.gamecult.org/forge/GameCult/Sai), [Repixelizer](/Projects/repixelizer) and [pombabranca-site](https://eureka.gamecult.org/forge/GameCult/pombabranca-site) are maintained but have no admitted steward. Inventing one would be worse than saying so.
## Archaeology
@ -208,33 +169,28 @@ Older experiments, retired services, and their successors.
| Repository | Historical place | Current authority |
| --- | --- | --- |
| [Aetheria-legacy](https://github.com/GameCult/Aetheria-legacy) | Private legacy game body | [Aetheria](https://github.com/GameCult/Aetheria) |
| [Blueberrichu](https://github.com/GameCult/Blueberrichu) | 2021 private VTuber avatar project | None claimed |
| [CultPong](https://github.com/GameCult/CultPong) | Dormant 2020 arcade prototype | None claimed |
| [GCLP](https://github.com/GameCult/GCLP) | Original labor-platform seed | [Bifrost](https://github.com/GameCult/Bifrost) |
| [gamecult-grav](https://github.com/GameCult/gamecult-grav) | Retired Grav site and salvage quarry | [gamecult-site](https://github.com/GameCult/gamecult-site) |
| [Aetheria-legacy](https://eureka.gamecult.org/forge/GameCult/Aetheria-legacy) | Private legacy game body | [Aetheria](https://eureka.gamecult.org/forge/GameCult/Aetheria) |
| [Blueberrichu](https://eureka.gamecult.org/forge/GameCult/Blueberrichu) | 2021 private VTuber avatar project | None claimed |
| [CultPong](https://eureka.gamecult.org/forge/GameCult/CultPong) | Dormant 2020 arcade prototype | None claimed |
| [GCLP](https://github.com/GameCult/GCLP) | Original labor-platform seed | [Bifrost](https://eureka.gamecult.org/forge/GameCult/Bifrost) |
| [gamecult-grav](https://eureka.gamecult.org/forge/GameCult/gamecult-grav) | Retired Grav site and salvage quarry | [gamecult-site](https://eureka.gamecult.org/forge/GameCult/gamecult-site) |
| [geometry-script](https://github.com/GameCult/geometry-script) | Upstream Blender dependency fork | Not a GameCult organ |
| EpiphanyAquarium (removed) | Original React/Tauri aquarium body | [Aquarium](https://github.com/GameCult/Aquarium) + [Fensalir](https://github.com/GameCult/Fensalir) |
| EpiphanyAquarium-Bevy (removed) | Frozen Rust/Bevy renderer prototype | [Fensalir](https://github.com/GameCult/Fensalir) |
| EpiphanyAquarium-Web (removed) | Preserved WebGL prototype client | [Aquarium](https://github.com/GameCult/Aquarium) + [Fensalir](https://github.com/GameCult/Fensalir) |
| [epiphany-graph-rs](https://github.com/GameCult/epiphany-graph-rs) | Superseded Rust graph-layout experiment | [Norn](https://github.com/GameCult/Norn) |
| cultcache-rs (removed) | Language-specific CultCache implementation | [CultLib](https://github.com/GameCult/CultLib) |
| cultcache-py (removed) | Language-specific CultCache implementation | [CultLib](https://github.com/GameCult/CultLib) |
| cultnet-rs (removed) | Language-specific CultNet implementation | [CultLib](https://github.com/GameCult/CultLib) |
| cultnet-ts (removed) | Language-specific CultNet implementation | [CultLib](https://github.com/GameCult/CultLib) |
| AquaSynth-rs (removed) | Rust reference and analysis lab | [AquaSynth](https://github.com/GameCult/AquaSynth) |
| [VibeGeometry](https://github.com/GameCult/VibeGeometry) | Agent-authored Blender geometry experiment | [Brokkr](https://github.com/GameCult/Brokkr) |
| EpiphanyAquarium (removed) | Original React/Tauri aquarium body | [Aquarium](https://eureka.gamecult.org/forge/GameCult/Aquarium) + [Fensalir](https://eureka.gamecult.org/forge/GameCult/Fensalir) |
| EpiphanyAquarium-Bevy (removed) | Frozen Rust/Bevy renderer prototype | [Fensalir](https://eureka.gamecult.org/forge/GameCult/Fensalir) |
| EpiphanyAquarium-Web (removed) | Preserved WebGL prototype client | [Aquarium](https://eureka.gamecult.org/forge/GameCult/Aquarium) + [Fensalir](https://eureka.gamecult.org/forge/GameCult/Fensalir) |
| [epiphany-graph-rs](https://github.com/GameCult/epiphany-graph-rs) | Superseded Rust graph-layout experiment | [Norn](https://eureka.gamecult.org/forge/GameCult/Norn) |
| cultcache-rs (removed) | Language-specific CultCache implementation | [CultLib](https://eureka.gamecult.org/forge/GameCult/CultLib) |
| cultcache-py (removed) | Language-specific CultCache implementation | [CultLib](https://eureka.gamecult.org/forge/GameCult/CultLib) |
| cultnet-rs (removed) | Language-specific CultNet implementation | [CultLib](https://eureka.gamecult.org/forge/GameCult/CultLib) |
| cultnet-ts (removed) | Language-specific CultNet implementation | [CultLib](https://eureka.gamecult.org/forge/GameCult/CultLib) |
| AquaSynth-rs (removed) | Rust reference and analysis lab | [AquaSynth](https://eureka.gamecult.org/forge/GameCult/AquaSynth) |
| [VibeGeometry](https://eureka.gamecult.org/forge/GameCult/VibeGeometry) | Agent-authored Blender geometry experiment | [Brokkr](https://eureka.gamecult.org/forge/GameCult/Brokkr) |
<details class="swarm-notes">
<summary>How Persona coverage is recorded</summary>
<summary>How this page is kept</summary>
Each steward section is that Mind's own pitch for its jurisdiction. Claims are checked against the repositories' own READMEs and docs; where a repository says something is planned, design-only or not building, the section says so too.
“Face” means durable `.cc` state exists or the swarm's canonical map names the Repo Face. “Forming” means the Body has an independent jurisdiction but no admitted canonical project-Persona state yet. “Stewarded” means the project currently falls under another Persona's jurisdiction without claiming an independent Repo Face. Avatar presence is presentation metadata, never proof of state.
Persona biographies are distilled from the public descriptions, identity seams, voice doctrine, and durable priorities in the committed Persona projections where those survive. Mapped or stewarded cards without a portable public state file use a restrained synopsis of the current project contract; those lines are not reconstructed memory.
Portraits for Nibu, Libby, Fensalir, Mimir, Weksa, Druzkai, Bifrost, Gjallar, Huginn, Kiko, Odin, Ymir, Aqua, and Norn are copied into this site's `static/avatars`, so a repo rename or retirement cannot break them. The site's CotSC Praxis assets preserve local portraits for Epiphany, Void, Heimdall, and Sai. Aetheria uses AetheriaLore's site favicon. Void's portrait changes presentation, not authority. Ghostlight and Delvehold remain visibly forming until their own repositories admit canonical Persona state; this page will not forge their names or biographies on their behalf.
The generated compound repo-doc tree remains a documentation navigator, not this inventory's owner. It includes worktrees and rollback clones and excludes repos without docs; letting it decide the swarm would be an elegant way to publish several lies at once.
Portraits come from the cast art kept on Yggdrasil and are copied into this site's `static/stewards`, so a move upstream cannot break them. A portrait is presentation, not proof of authority.
</details>

View file

@ -11,7 +11,7 @@ socialDeck: "Making fake pixel art stop lying."
repixelizer is a solver-heavy attempt to take art that merely looks pixelated and make it behave like real pixel art. Not just smaller. Not just blurrier. Not just filtered until the crimes become harder to prosecute. The repo is a long, public knife fight with lattice inference, adjacency, edge metrics, tile graphs, relaxation, refinement, and the small matter of whether the whole approach actually deserves to exist.
<div class="gamecult-repo-links">
<a class="gamecult-repo-link" href="https://github.com/GameCult/repixelizer">GitHub Repo</a>
<a class="gamecult-repo-link" href="https://eureka.gamecult.org/forge/GameCult/repixelizer">Forge repo</a>
<a class="gamecult-repo-link" href="https://repixelizer.gamecult.org">Live Landing Page</a>
</div>

693
GameCult/Shipped.md Normal file
View file

@ -0,0 +1,693 @@
---
title: Shipped
description: "What GameCult actually merged, by week, with a receipt for each."
socialDeck: "A dated ledger of merged work, linked to the receipts."
---
<!-- Generated by scripts/shipped/refresh.mjs from data/shipped.json. Do not edit by hand. -->
Merged pull requests and releases across the public GameCult repositories on [our forge](https://eureka.gamecult.org/forge/GameCult), newest first. Each line links to the pull request or release it came from. 650 entries; snapshot taken 2026-11-12. [Feed](/static/shipped.xml).
## Week of 9 Nov 2026
*The busiest week on the ledger: 438 entries.*
- 2026-11-12 · AquaSynth · aqua-listen: export panel with copy, textarea, share (Android Chrome fix) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/50)
- 2026-11-12 · Heimdall · Opt-in sign\_in step-up (force\_verify / prompt=login), app-authenticated, signed-state flag — [receipt](https://eureka.gamecult.org/forge/GameCult/Heimdall/pulls/11)
- 2026-11-12 · Aetheria · Mining cut 4: rocks take blasts and shots through the one fire path — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/18)
- 2026-11-12 · CultLib · Python: store replace on Windows tries POSIX-semantics rename first (store-windows-py) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/149)
- 2026-11-12 · Weksa · ontology-mint-probe: Train-only ontology mint call (loop mint-ontology) — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/63)
- 2026-11-12 · CultLib · cultcache-ts: a pushAll through a dangling link is refused like push, not replaced — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/147)
- 2026-11-12 · Weksa · ja-anger-mirror: ja-JP:3 bounded by hedge and affection AtMostOrUnset 599 so :3/:5 and :3/:7 never co-select — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/62)
- 2026-11-12 · Ratatoskr · client: unconfirmed sends are visible and recovered; watchdog for a dead connection — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/123)
- 2026-11-12 · CultLib · cultnet-ts 0.4.0 release notes, range check in the npm publish gate, fixture closes build-path gaps — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/146)
- 2026-11-12 · Ratatoskr · composer: persist the draft on input, keep unconfirmed sends in a durable outbox — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/122)
- 2026-11-12 · Weksa · en-us-6-8: en-US:8 bounded by certainty AtMostOrUnset 799 so :6 and :8 never co-select — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/61)
- 2026-11-12 · CultLib · cultcache-py: pin the variant row of extra-slot-store.cc as a refused store — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/145)
- 2026-11-12 · Weksa · ja-surprise-certainty: ja-JP :9 states its question ending as available — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/60)
- 2026-11-12 · CultLib · Range check: build each package's own tagged version too; cultnet-ts 0.4.0 — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/144)
- 2026-11-12 · Weksa · en-us-seed-pairs: en-US :3/:5/:6 disjoint by real conditions — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/59)
- 2026-11-12 · Ratatoskr · pwa: installable manifest and Web Push stages 0-1 (dark by default) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/121)
- 2026-11-12 · Weksa · ja-seed-pairs: make ja-JP seed pairs disjoint by conditions — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/58)
- 2026-11-12 · CultLib · cultmesh-py: pin the message\_invalid answer on a tailed put under an unknown schema id — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/143)
- 2026-11-12 · Bifrost · Refuse production startup when the Heimdall app secret is blank — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/83)
- 2026-11-12 · Weksa · ja-withdraw-scene-entries: withdraw onto:ja-JP:14 and :15 (net-negative on register in the paired measure) — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/57)
- 2026-11-12 · CultLib · Bytes-after residual lows: depth pin, interop tags, py shard-log tail, Rust load pins — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/142)
- 2026-11-12 · Weksa · ja-item19: encoder prompt states one role per predication and the group shape for coordination — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/56)
- 2026-11-12 · CultLib · C#: pin the one-value refusal on codec and Mesh single-file reads — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/141)
- 2026-11-12 · CultLib · Docs: single-file lock contract, leftover temp file and pair-backup procedures — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/138)
- 2026-11-12 · AquaSynth · Sample rate passthrough, Soul's Lows from #18/#19, #47 doc and burst-window pin — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/49)
- 2026-11-12 · Weksa · ja-inventory-6: rev 6 concepts (try, someday, a little, as one pleases, kite flyer) and the admit-cap test — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/55)
- 2026-11-12 · Ratatoskr · docs: chat shell compression, measured state and brotli plan — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/120)
- 2026-11-12 · Weksa · ja-inventory: rev 5 concepts and frames for the original bed (model-drafted, Validation-informed), weksa inventory admit, onto:ja-JP:15 — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/54)
- 2026-11-12 · Weksa · language-ontology-scene: scene features, one scene door, Scene-conditioned ja/en entries, runs read entries at their own head — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/53)
- 2026-11-12 · Ratatoskr · runbook: handoff build ships the repo config.json; live check always runs — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/119)
- 2026-11-12 · Bifrost · Google link: pin the four test gaps, one slot owner, drop IsSignInProvider — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/82)
- 2026-11-12 · Aetheria · Credits header scan: catch (c)/lowercase/colon forms, second holders, credit-only lines — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/17)
- 2026-11-12 · Ratatoskr · docs: client build, install, verify and rollback runbook — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/118)
- 2026-11-12 · AquaSynth · Tract weak spots re-measured (unheard): burst gain no longer leaks past its plosive; 14-clip listening kit — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/47)
- 2026-11-12 · Aetheria · Credits screen: one attribution list, reachable from the main menu — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/16)
- 2026-11-12 · Bifrost · Link a Google login to a signed-in member, explicit link only; Bifrost stores no Heimdall token — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/81)
- 2026-11-12 · Weksa · language-ontology-seed: model-drafted en-US and ja-JP seed entries; target-language YAML deleted — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/52)
- 2026-11-12 · Weksa · language-ontology: weksa.ontology\_entry, its store, select, wired into the lowering prompt — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/51)
- 2026-11-12 · Bifrost · Start refusal: read headers only so the 4 KiB body bound limits the read — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/80)
- 2026-11-12 · Bifrost · Heimdall start refusal: log the HTTP status and Heimdall's error code — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/79)
- 2026-11-12 · Ratatoskr · Phone and desk visual findings: notice scrim, tap areas stop at neighbours, desk affordance — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/117)
- 2026-11-12 · Weksa · ja-panel-corpus: 28 model-written Japanese passages and 8 Aozora Bunko Test sentences — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/50)
- 2026-11-12 · Weksa · ja-panel-loop: language is the item's, the panel the run's; panel accept rule — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/49)
- 2026-11-12 · Bifrost · Heimdall\_\_AppSecretFile: keep the Heimdall app secret out of the process environment — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/78)
- 2026-11-12 · Ratatoskr · File zone share: component tests, state machine moved out of ShareSet — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/116)
- 2026-11-12 · Ratatoskr · File zone: share a set of files as one album (flag off) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/115)
- 2026-11-12 · Bifrost · Linux path fixes: containment by path.relative, hostile-cursor test, verify prerequisites — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/77)
- 2026-11-12 · Bifrost · Mouth: follow upgrades only a plain basis; @room keeps room — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/76)
- 2026-11-12 · Bifrost · tests: dispatch-gate tests run on Linux; classify the remaining Yggdrasil failures — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/75)
- 2026-11-12 · Huginn · mind-body: Basis::FollowUp (wire \`follow\`) is for the Mind — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/65)
- 2026-11-12 · Bifrost · Mouth: basis "follow" for engagement peers (CHAT\_FOLLOW, default off) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/74)
- 2026-11-12 · CultLib · Lower System.Text.Json floor to 8.0.5 — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/140)
- 2026-11-12 · CultLib · CultCache interop: C# union and nested-bytes store read by Rust read-only, and back — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/139)
- 2026-11-12 · Bifrost · Desk: UnixSocketDeskDoor (Huginn desk door client), fixtures at 79d954c, card re-pin to CultLib 3a51bbab, card opaque — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/70)
- 2026-11-12 · Ratatoskr · An explicit theme choice (even Midnight Sky) wins over the sky — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/114)
- 2026-11-12 · AquaSynth · Dings migration step 5a: neutral fallback id tied to the catalog; steps 2, 3, 5b recorded STOPPED — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/46)
- 2026-11-12 · AquaSynth · Dings: one play validation gate, Host enforces; bridge check deprecated (step 4) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/45)
- 2026-11-12 · Ratatoskr · Footer band test pins the emitted tint and ink — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/113)
- 2026-11-12 · Ratatoskr · A long reply quote stays inside its column — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/112)
- 2026-11-12 · AquaSynth · aqua-trial: isolate the noise-slider kill; LF-normalised DSP hash — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/44)
- 2026-11-12 · AquaSynth · Dings: DingCatalog.Identity owns patch identity derivation (step 1) + migration plan — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/42)
- 2026-11-12 · AquaSynth · docs: cause of the dx7-algorithm-32 -79.5 dB native-vs-wasm diff — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/43)
- 2026-11-12 · CultLib · Rust mesh: pin that a snapshot spanning backing stores is refused whole — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/137)
- 2026-11-12 · Bifrost · docs: sealed-motion Mind key path is /var/lib/mind-\<persona\>; register only after a Persona-shell self-test — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/32)
- 2026-11-12 · AquaSynth · aqua-trial / native-diff: DSP hash in exports, noise% fix, knob + limit tests — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/41)
- 2026-11-12 · Bifrost · Docs: desk feed visibility is Huginn's door policy; cite the written door spec — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/69)
- 2026-11-12 · Bifrost · Desk: bearer credential (OpenIddict validation, desk.read/desk.answer, audience bifrost-desk) and answerer masking — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/71)
- 2026-11-12 · Eureka · Doctrine from root memory sorting — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/68)
- 2026-11-12 · AquaSynth · docs: Dings patch identity authority map — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/40)
- 2026-11-12 · Ratatoskr · Pin sceneButtons folds recipe classes to the installed folds — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/111)
- 2026-11-12 · AquaSynth · Docs: soundscape grammar follows creature-projection-v2 (lands 72 lines main lacks) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/39)
- 2026-11-12 · CultLib · Rust mesh: a raw snapshot pull is one cache commit (mesh-snapshot-atomic) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/134)
- 2026-11-12 · CultLib · TypeScript: pushAll writes onto the store instead of replacing it (ts-flush-replaces-store) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/136)
- 2026-11-12 · Weksa · Lows: show-working allowlist and Display, edition\_year meaning — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/48)
- 2026-11-12 · GameCult-Quartz · Guard Pages workflow on github.server\_url — [receipt](https://eureka.gamecult.org/forge/GameCult/GameCult-Quartz/pulls/6)
- 2026-11-12 · CultLib · Rust: batch writes merge onto the store (rs-batch-merges-onto-store) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/135)
- 2026-11-12 · CultLib · Rust: a cache must pull its stores before it writes (cache-must-pull-before-write) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/133)
- 2026-11-12 · CultLib · TypeScript: a payload is one MessagePack value (bytes-after-ts) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/130)
- 2026-11-12 · CultLib · Rust: a payload is one MessagePack value (bytes-after-rs) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/131)
- 2026-11-12 · CultLib · Python: a payload is one MessagePack value (bytes-after-py) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/129)
- 2026-11-12 · CultLib · TypeScript: a record with unread slots is held read-only (slot-readonly-ts) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/128)
- 2026-11-12 · CultLib · Rust: a record with unread slots is held read-only (slot-readonly-rs) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/127)
- 2026-11-12 · CultLib · Python: a record with unread slots is held read-only (slot-readonly-py) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/126)
- 2026-11-12 · CultLib · Bytes after the value: a payload is one MessagePack value (C#) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/125)
- 2026-11-12 · Ratatoskr · Ridge scene: physical sky over Vienna, real horizon, live weather (Nibu) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/110)
- 2026-11-12 · CultLib · Slot tolerance: a record with unread slots is held read-only, not shed — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/124)
- 2026-11-12 · Huginn · Persona saves a named attachment into her sandbox (BIFROST\_CHAT\_FETCH, off by default) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/64)
- 2026-11-12 · Ratatoskr · File receipts say "fetched for \<Mind\>", not "read by" — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/109)
- 2026-11-12 · CultLib · Rust cache: one record per key, foreign carry, key-identity vector walked — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/123)
- 2026-11-12 · Bifrost · Mouth: fetch one named event's image for its Persona, store it, post an inert receipt (CHAT\_FETCH, off by default) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/73)
- 2026-11-12 · CultLib · Python cache: one record per key, foreign carry, key-identity vector walked — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/122)
- 2026-11-12 · CultLib · TypeScript cache: one record per key, foreign carry, key-identity vector walked — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/121)
- 2026-11-11 · CultLib · Key-identity vector: retype refusal, foreign carry, key in two stores (C# rows, 12) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/120)
- 2026-11-11 · Ratatoskr · File zone: one shared room subscription for read-by rows — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/108)
- 2026-11-11 · Ratatoskr · File zone: read-by receipts found anywhere in the room — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/107)
- 2026-11-11 · raven-image · raven-image --margin: clear edges pinned during diffusion — [receipt](https://eureka.gamecult.org/forge/GameCult/raven-image/pulls/1)
- 2026-11-11 · Ratatoskr · config.json: ship the ridge scene style — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/106)
- 2026-11-11 · Ratatoskr · File zone: Mind contract, plaintext sha256 on send, read-by receipts — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/104)
- 2026-11-11 · CultLib · Portability CI: use the runner image's Node and Python, timeout 60 — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/119)
- 2026-11-11 · Huginn · Desk door: emit CultLib d3025d3c reader shapes (PR A of cut-desk-feed-raised-at.r3 + cut-desk-feed-listing.r8) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/62)
- 2026-11-11 · Ratatoskr · config.json: the live chat.gamecult.org config — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/103)
- 2026-11-11 · Ratatoskr · Pose thumbs: stale size comments corrected — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/102)
- 2026-11-11 · Bifrost · Mouth: id shape on every delivery field, mentions bounded in bytes, round cap counts every target GET — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/72)
- 2026-11-11 · Ratatoskr · Navigator: Browse open state per screen class — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/101)
- 2026-11-11 · Ratatoskr · Desk: fork card contract at CultLib 3a51bbab (raised\_at, counts, nullable answerer) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/100)
- 2026-11-11 · Huginn · chat ingest core: room scope, credential scrub, chunker, refresh\_chat, steward purge — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/60)
- 2026-11-11 · Ratatoskr · scene: a throwing ray-march createScene goes to onCompileFail — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/85)
- 2026-11-11 · Bifrost · Mouth: reply\_to lows after #64 (round cap defers, 60 s excerpt, wider scrub, id shape) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/68)
- 2026-11-11 · Huginn · Desk feed door: re-pin CultLib vectors to d3025d3c (null answerer pinned on all four variants) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/61)
- 2026-11-11 · Huginn · chat: huginn chat window (event id with its neighbours, from the chat index) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/59)
- 2026-11-11 · Huginn · chat: search\_chat over the shared source collection, huginn chat search — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/57)
- 2026-11-11 · Eureka · bloom-sheet --theme option and a calligraphic theme — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/66)
- 2026-11-11 · Ratatoskr · Ridge: shade faces by depth below the crest; hold the ridge inside the label band (Nibu) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/99)
- 2026-11-11 · CultLib · Fork card: null-answerer vectors for Revision and Retraction (additive) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/118)
- 2026-11-11 · Huginn · Desk feed door: reader-count shapes pinned to CultLib 3a51bbab (vendored vectors) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/58)
- 2026-11-11 · Ratatoskr · Unread room icons at 0.6 — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/98)
- 2026-11-11 · CultLib · Fork card: decider\_count, answerer\_count, nullable answerer (reader views) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/117)
- 2026-11-11 · CultLib · Walk rows lows: Rust @directory error kind and delete, stale known-gaps — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/116)
- 2026-11-11 · CultLib · Fork card: raised\_at, required nullable instant outside options\_hash — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/115)
- 2026-11-11 · Huginn · Desk feed door: account ids are lowercase D-format UUIDs (doc, fixtures, grammar test) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/56)
- 2026-11-11 · Ratatoskr · Navigator: icon weights, solid unread dot, Media row detects by room type — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/97)
- 2026-11-11 · Huginn · chat: decode Bifrost chat\_pending.v4 reply\_to (lenient ReplyLink, opt-in request) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/53)
- 2026-11-11 · CultLib · Readability manifest: legacy-catalog c0 rows and directory-at-path, walked by all four runtimes — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/114)
- 2026-11-11 · Huginn · Desk feed door: list/read wire contract and golden fixtures — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/55)
- 2026-11-11 · Bifrost · Desk feed design: per-Mind open forks, read-only (decisions in PR #37 section 14) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/67)
- 2026-11-11 · Bifrost · docs: how a Ratatoskr voting module authenticates to Bifrost (design) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/37)
- 2026-11-11 · Ratatoskr · Navigator: per-Mind Media row after Desk — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/96)
- 2026-11-11 · Ratatoskr · Navigator: quieter room icons, Join as a text action, calmer unread badge — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/95)
- 2026-11-11 · Bifrost · Docs: no refresh token, MAS skips userinfo; withdrawal stops new tokens, open sessions run to expiry — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/66)
- 2026-11-11 · Ratatoskr · Navigator: Desk and media pages pinned at the top of each Mind foldout — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/94)
- 2026-11-11 · Huginn · Chat retrieval map: joined rooms, not public-only — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/54)
- 2026-11-11 · Ratatoskr · Navigator: one gutter column, constant nesting step, quieter room icons — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/92)
- 2026-11-11 · Ratatoskr · Docs: repo renamed to GameCult/Ratatoskr; scene default — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/93)
- 2026-11-11 · Bifrost · Members: approve refuses no-membership/unknown accounts; neutral text for legacy suspensions — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/65)
- 2026-11-11 · Ratatoskr · Background scene on in the repo config (tier full) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/91)
- 2026-11-11 · Eureka · ygg-verify.sh: local mode for the Yggdrasil seat, executable modes — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/65)
- 2026-11-11 · Huginn · Source search takes up to eight texts, fused by reciprocal rank (k=60) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/52)
- 2026-11-11 · Bifrost · Mouth: v4 fixes after Soul pass (target cache, scrub, read cap) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/64)
- 2026-11-11 · Bifrost · Mouth: chat\_pending.v4 reply\_to (flag, default off) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/63)
- 2026-11-11 · CultLib · cultnet-ts test: reconnecting client sends only after its own handshake — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/113)
- 2026-11-11 · CultLib · Duplicate-key residuals: changelogs, retype by schema id, Rust CAS retype — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/112)
- 2026-11-11 · Huginn · Chat retrieval map: lookup not memory, DMs out of the index — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/51)
- 2026-11-11 · Ratatoskr · Default homeserver is chat.gamecult.org — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/90)
- 2026-11-11 · CultLib · Variants cut doc: C4 records Nibu's ruling on where hull families live — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/111)
- 2026-11-11 · CultLib · Single-file readers refuse duplicate keys in all four runtimes; c0 bad-canonical row — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/110)
- 2026-11-11 · Bifrost · Chat sign-in needs a live consent receipt; notice frozen as version 1 — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/59)
- 2026-11-11 · Ratatoskr · Pose follows message sentiment (local classifier) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/89)
- 2026-11-11 · CultLib · CI: one portability run per change; quic-native only for native paths — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/109)
- 2026-11-11 · Huginn · mind-self-run: redact URL userinfo from Self result text — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/50)
- 2026-11-11 · Huginn · mind-stream: the Projector is her own connector caller on Haiku; a brake hold stops mind-stream@ too — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/47)
- 2026-11-11 · Bifrost · Prefix lengths: host-level startup tests (tests only) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/62)
- 2026-11-11 · Bifrost · Drop HTMX (unpkg, no integrity); guard against third-party assets — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/61)
- 2026-11-11 · Bifrost · Suspension gaps: bootstrap, demotion, members-page notices, admin-only reason — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/60)
- 2026-11-11 · CultLib · cultcache-ts: tests pin the single-put judge's alias and key-pair order — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/108)
- 2026-11-11 · Aetheria · element-ids doc: retired slots held placeholders, why nakovalnya shrank — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/15)
- 2026-11-11 · Aetheria · Pin CultLib abd1a92e: element ids on every list element type — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/12)
- 2026-11-11 · CultLib · unique-index vectors: three-holder key order and alias code-unit order (rows 34-37) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/107)
- 2026-11-11 · Aetheria · Scenarios batch-4 minors: gun moves within its own hardpoint; station reactors regain quality spread — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/14)
- 2026-11-11 · Huginn · Steward rulings: a peer steward's decision is a typed ruling in the follower's mind (stacked on #46) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/48)
- 2026-11-11 · Huginn · mind-body: chat\_pending.v3 tail\_gaps (defaulted); a named room reads as unknown, not quiet — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/49)
- 2026-11-11 · Huginn · persona: another Mind reads as role=mind from the swarm's addressing table — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/46)
- 2026-11-11 · CultLib · cultcache-rs: a unique-index refusal names the least violation by UTF-16 order; walk refusals.msgpack — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/102)
- 2026-11-11 · Bifrost · Consent: optional at registration, a consent page, CSRF-guarded accept/withdraw, notice v2 — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/58)
- 2026-11-11 · Asura · gpu-parity: FXC/D3D11 check of cultmath snoise and snoise\_grad — [receipt](https://eureka.gamecult.org/forge/GameCult/Asura/pulls/1)
- 2026-11-11 · Aetheria · Shaders use cultmath\_snoise from CultMath.hlsl — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/13)
- 2026-11-11 · AquaSynth · PackageBoundaryTests: fix pack hang; trigger+repeat composition tests — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/38)
- 2026-11-11 · CultLib · cultcache-ts: a load and an index registration name the least violation of the resulting state — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/103)
- 2026-11-11 · CultLib · cultcache-py: a unique-index refusal names the least violation; walk refusals.msgpack — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/101)
- 2026-11-11 · CultLib · org.gamecult.cultlib 3.0.0: release prep and regenerated plugins (stacked on #105) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/106)
- 2026-11-11 · CultLib · CultMath 0.5.1: release prep (fbm), tracked DLL rebuilt — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/105)
- 2026-11-11 · CultLib · Unique-index vectors: exact identity and single-put alias order (rows 26-33) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/104)
- 2026-11-11 · Bifrost · Registration: sign-up form with proof-of-work and a no-JS time-lock fallback — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/56)
- 2026-11-11 · Bifrost · Mouth: tail\_gaps on chat\_pending.v3, the rooms whose tail is incomplete — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/57)
- 2026-11-11 · CultLib · Unique-index vectors: pin holder identity by case (rows 23-24) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/100)
- 2026-11-11 · Bifrost · Docs: proposed training notice v2 and consent-flow gaps — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/55)
- 2026-11-11 · Bifrost · Registration gates: proof-of-work CAPTCHA and training-notice consent receipt — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/54)
- 2026-11-11 · CultLib · CultCache: a unique-index refusal names the least violation; shared refusals vector — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/99)
- 2026-11-11 · Huginn · huginn: --session falls back to HUGINN\_SESSION, set by mind-self-run — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/45)
- 2026-11-11 · AquaSynth · Lowering: patch repeat restarts pitch and arpeggio, not the envelope; README store-kind rollback note — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/37)
- 2026-11-11 · Odin · docs: note legacy Idunn scripts deleted from gamecult-ops in inventory path note — [receipt](https://eureka.gamecult.org/forge/GameCult/Odin/pulls/2)
- 2026-11-11 · Idunn · docs: drop references to deleted legacy Windows Idunn scripts — [receipt](https://eureka.gamecult.org/forge/GameCult/Idunn/pulls/1)
- 2026-11-11 · CultLib · Element ids: the existing-member route and one-way v3/v5 rollback, documented — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/98)
- 2026-11-11 · CultLib · Unique-index leftovers: TS registerIndex refuses a role, commit vector in TS/Rust, nil document in the change schema — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/97)
- 2026-11-11 · Huginn · Persona first line carries the mouth's room tail (wake-reads-room-tail) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/44)
- 2026-11-11 · Bifrost · Suspension survives sign-in; admin-only Suspend/Unsuspend with a receipt — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/53)
- 2026-11-11 · AquaSynth · Pin CultLib abd1a92e; \[CultRole\] audit; ElementId on every list element type — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/35)
- 2026-11-11 · ModelConnector · claude-connector ask: no-tools completion CLI — [receipt](https://eureka.gamecult.org/forge/GameCult/ModelConnector/pulls/2)
- 2026-11-11 · Bifrost · Mouth: room tail on chat\_pending.v3 — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/51)
- 2026-11-11 · Bifrost · OIDC issuer: chat tier for accounts without Active membership — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/52)
- 2026-11-11 · Bifrost · OIDC issuer: address budget, token-row cap, scheduled prune, marker brake — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/50)
- 2026-11-11 · CultLib · CI: run cultcache-py, cultcache-rs and GameCult.Caching.Tests on push and PR — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/87)
- 2026-11-11 · CultLib · cultcache-py: load order, role-alias register\_index refusal, C# two-change commit vector — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/96)
- 2026-11-11 · Eureka · INDEX: Libbys native cargo-mutants corrections — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/64)
- 2026-11-11 · Eureka · INDEX: running the mutation tools from a Self seat — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/63)
- 2026-11-11 · CultLib · cultcache-rs: #\[cultcache(index)\] is unique at commit and load; re-registration re-judges held records — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/95)
- 2026-11-11 · CultLib · cultmesh-browser test: make the unallocatable-size refusal certain on hosts that overcommit — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/93)
- 2026-11-11 · AquaSynth · sfxr explosion + abstract golf: patch repeat no longer cuts the envelope; waivers removed — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/36)
- 2026-11-11 · Huginn · Persona wakes on address only: chat\_pending.v3 basis/form, unaddressed acked in sequence — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/43)
- 2026-11-11 · Aetheria · Opens of suite-honest: honest station descriptions, Arcs bay, measured crates, drag test at play ThrustScale, HUD readout decision in Shared, gated Console capture — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/11)
- 2026-11-11 · CultLib · cultcache-py, cultnet-py: indexes means unique, roles names selection aliases; commitId/commitCount on change messages — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/94)
- 2026-11-11 · Bifrost · OIDC: refuse reserved localparts at authorize; gap list in oidc-issuer.md — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/49)
- 2026-11-11 · Bifrost · Mouth: addressing facts on deliveries (chat\_pending.v3 basis and form) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/48)
- 2026-11-11 · AquaSynth · aqua-feel sync: --shape ramp for slow-swell visuals (measures, never gives a verdict) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/34)
- 2026-11-11 · Aetheria · Make the suite honest: digest repin, Crossing/MiningCut3 causes, authored cargo for Arcs and Pursuit, ConstantWeapon HUD, station descriptions — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/10)
- 2026-11-11 · CultLib · cultcache-ts and cultnet-ts: indexes means unique, roles names selection aliases; commitId/commitCount on change messages — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/92)
- 2026-11-11 · Bifrost · Resolve CultLib via VOIDBOT\_CULTLIB\_ROOT in tests; test formerly indexed stores — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/47)
- 2026-11-11 · CultLib · Replica commit hardening: Reconcile sends its diff as one tagged commit; straggler guard inside the lock; real-server and budget pins — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/91)
- 2026-11-11 · Bifrost · Drop indexes: declarations from TS document types — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/46)
- 2026-11-11 · Aetheria · Authored ships carry crates; ballistic guns and mines draw rounds; the munitions chain is sourced — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/9)
- 2026-11-11 · CultLib · CultCache: \[CultIndex\] is unique at commit and load; \[CultRole\] names a selection role; replicas apply a commit's changes as one batch — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/90)
- 2026-11-11 · Aetheria · Launchers draw real missile rounds; reloads cost a crate — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/8)
- 2026-11-11 · AquaSynth · aqua-feel sync: read a browser capture's frame rate and stalls from its frame times — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/33)
- 2026-11-11 · Huginn · Vectors re-vendored from CultLib de8a062a (answerTooLarge replay) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/42)
- 2026-11-11 · Bifrost · Desk: pin vectors to CultLib de8a062a (answerTooLarge) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/45)
- 2026-11-11 · Ratatoskr · Release candidate: dev into main — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/88)
- 2026-11-11 · CultLib · Fork card: stale answer over an oversize re-read is Refused(stale\_fork), never counted; refusal text is informational — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/89)
- 2026-11-11 · Bifrost · Desk: a stale answer on an oversize fork is 422 fork\_too\_large — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/44)
- 2026-11-11 · Huginn · Desk door tests: the exact reply-cap boundary of a Fork read; a stale answer is stored and replays while the fork is oversize — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/41)
- 2026-11-11 · Bifrost · Desk: pin vectors to CultLib f6c9bf5f — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/43)
- 2026-11-11 · Huginn · Desk reads: a read of an oversize fork is fork\_too\_large; vectors re-vendored from CultLib f6c9bf5f — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/40)
- 2026-11-11 · Bifrost · Desk: a read of an oversize fork is 422 fork\_too\_large — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/42)
- 2026-11-11 · Ratatoskr · Register entry: https only, http only for a local host — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/87)
- 2026-11-11 · Ratatoskr · auth: Register entry beside Sign in, behind a config switch (off) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/68)
- 2026-11-11 · Ratatoskr · Default homeserver is gamecult.org — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/86)
- 2026-11-11 · CultLib · Fork card: fork\_too\_large (422) for a list whose first entry, or a read whose entry, is past the reply cap — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/88)
- 2026-11-11 · Huginn · Desk reads: fork\_too\_large (list only) replaces DeskForkTooLarge — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/39)
- 2026-11-11 · Bifrost · desk: Bifrost half of the Fork Desk answer binding (ports, routes, per-call deciders) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/40)
- 2026-11-11 · Huginn · Desk door reads: Forks and Fork on the peer-checked socket (whole record), unique order rank, the leftover Lows — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/38)
- 2026-11-11 · CultLib · Fork card: order is a unique rank per Mind; duplicate-order and order-0 vectors — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/86)
- 2026-11-11 · Ratatoskr · Albums slice 1: read-only album view for the file zone — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/70)
- 2026-11-11 · Thing · Thing 2.0 build spec (Meta t12-m0) — [receipt](https://eureka.gamecult.org/forge/GameCult/Thing/pulls/1)
- 2026-11-11 · Huginn · open-direct lows: the open hears the mouth's refusal; one copy of the daily policy text — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/37)
- 2026-11-10 · CultLib · cultcache-ts: opening a legacy store never rewrites it — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/85)
- 2026-11-10 · AquaSynth · aqua-feel sync: audio-visual onset lag vs perceptual windows — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/32)
- 2026-11-10 · Huginn · Desk door: the second peer-checked unix-socket door (Answer and catalog; reads interim) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/36)
- 2026-11-10 · Ratatoskr · Poses nest into the chat bubble corner (desktop and phone) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/72)
- 2026-11-10 · Ratatoskr · Enforce the one join path in lint; a drive that asserts nothing fails — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/64)
- 2026-11-10 · Brokkr · node-actions.md: point to the parked design tag — [receipt](https://eureka.gamecult.org/forge/GameCult/Brokkr/pulls/10)
- 2026-11-10 · CultLib · tools/sprite-silhouette: sprite alpha to CSS shape-outside polygon — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/8)
- 2026-11-10 · Brokkr · Blender add-on: createObject and renderStill refuse what they cannot do — [receipt](https://eureka.gamecult.org/forge/GameCult/Brokkr/pulls/8)
- 2026-11-10 · AquaSynth · Pages: no horizontal overflow at 360px; trial hint names the play-both rule — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/31)
- 2026-11-10 · Aetheria · docs: record the Continue hull-layout gate in the release map — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/7)
- 2026-11-10 · Aetheria · Continue refuses a run whose equipment no longer fits its hull's edited layout — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/6)
- 2026-11-10 · Ratatoskr · desk: served row order, one open count — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/84)
- 2026-11-10 · Ratatoskr · desk: read the gamecult.fork.\* contract as served — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/83)
- 2026-11-10 · Bifrost · Mill votes: ranked, paged read and not-yet-voted-by-this-network filter — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/41)
- 2026-11-10 · CultLib · Fork card: a stripped read serves note: null — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/84)
- 2026-11-10 · Aetheria · docs: ship concept batch brief — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/5)
- 2026-11-10 · CultLib · Fork card: no fork hidden by fork\_unknown — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/83)
- 2026-11-10 · CultLib · Fork card: Read visibility line agrees with ruling (c) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/82)
- 2026-11-10 · CultLib · Fork card: read visibility applied at the door — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/81)
- 2026-11-10 · Huginn · Desk wire, part 2: the envelope (wire names mind/authority/subject/deciders, deciders 1..64 unique, generic cores, schemas) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/35)
- 2026-11-10 · Ratatoskr · Bound the reply preview on phone width — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/82)
- 2026-11-10 · Huginn · Pin the InvitePending notice: a pending invitation is told not to be sent again — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/34)
- 2026-11-10 · Huginn · Persona: open\_direct, her ask that the mouth open a DM with a person she was shown — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/32)
- 2026-11-10 · CultLib · Fork card: deciders holds at most 64 — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/80)
- 2026-11-10 · CultLib · Fork card M5: the desk envelope's names — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/79)
- 2026-11-10 · Huginn · Desk wire lows: replay gate pinned for stored refusals and revisions; every bad fork id is fork\_unknown — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/33)
- 2026-11-10 · Huginn · Desk wire, part 1: Libby's answer documents, the one n\<seq\> conversion, the projection and Mind::desk\_answer — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/31)
- 2026-11-10 · Weksa · Encode prompt: participants are node ids, never an entity id — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/47)
- 2026-11-10 · CultLib · Fork card M5: decider list sent per call — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/78)
- 2026-11-10 · Weksa · Stance ablation beside recall; lowering prompt pinned to the stance; grade scale stated — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/46)
- 2026-11-10 · CultLib · Fork card: stored Refused answers carry their 4xx status — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/77)
- 2026-11-10 · Ratatoskr · scene: ridge heightfields, slope shading, endless world-x drift — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/81)
- 2026-11-10 · Weksa · data/original gets a Test split: 8 public-domain excerpts with full provenance (ModelWritten stays out of Test) — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/45)
- 2026-11-10 · AquaSynth · gen\_page: fix TypeError left by #29 (neutral rows) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/30)
- 2026-11-10 · AquaSynth · dings-voices: equalise the neutral fallbacks in the generator (sound-guard 0 failing, 0 known) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/29)
- 2026-11-10 · Bifrost · persona mouth: open a direct room for a Persona; answer unknown kinds loudly — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/39)
- 2026-11-10 · AquaSynth · sound-guard: aqua-ear checks over every shipped Dings and Earcon clip — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/28)
- 2026-11-10 · CultLib · Fork desk digests: confirmed on Huginn main f0ca504 — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/76)
- 2026-11-10 · Ratatoskr · desk: read-only Mind desk, slice 1 — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/77)
- 2026-11-10 · Ratatoskr · Phone: notice contrast, 44px tap hit areas, skip empty OIDC validation — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/78)
- 2026-11-10 · Bifrost · deploy plan: restore reads a postgres-readable copy of the root-only dump — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/38)
- 2026-11-10 · Ratatoskr · preview demo: drop a stored login for another server before the app reads it — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/80)
- 2026-11-10 · AquaSynth · publish-stable: atomic swap, no 404 window, stale staging cleaned — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/27)
- 2026-11-10 · Huginn · Desk digest covers the illegal form retracted flag; pin the s4 refusal bounds — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/30)
- 2026-11-10 · CultLib · Fork desk digests: door-form legal\_retraction golden — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/75)
- 2026-11-10 · Ratatoskr · preview: build-dev-preview.sh, the dev demo build recipe (publishing is the shared script's) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/79)
- 2026-11-10 · Weksa · Widen data/original: 22 more model-written passages (14 Train, 14 Validation); recall test pinned to live items — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/44)
- 2026-11-10 · AquaSynth · publish-stable: one URL for the Dings page and aqua-ear examples — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/26)
- 2026-11-10 · CultLib · Fork desk r4: refused retraction target, counted\_answer\_id, body digest vectors — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/74)
- 2026-11-10 · AquaSynth · Articulatory tract: Story vowels, nasal branch, stress cue, plosive burst, independent Burg check (unheard) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/19)
- 2026-11-10 · AquaSynth · Vowel gestures calibrated by measurement; exporter sample rate from callers — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/18)
- 2026-11-10 · AquaSynth · Speech: n descriptor, word script, WordRender; first /ˈnibu/ render (a hum, unheard) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/17)
- 2026-11-10 · AquaSynth · Daemon: POSIX artifact URIs; tests find session files through StoreFileName — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/25)
- 2026-11-10 · Weksa · Pin parse-reason codes; show-working guard checks the split; no Debug of errors in the page — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/43)
- 2026-11-10 · Ratatoskr · docs: Mind feedback pages (the desk) design record — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/24)
- 2026-11-10 · Ratatoskr · scene: skyLabelInk moves out of sceneShell.css.ts (dev did not build) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/76)
- 2026-11-10 · Aetheria · Moddable ships: starter command, top-speed fix, Wren stand-in package, thrust-scale test pins — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/1)
- 2026-11-10 · Brokkr · Blender add-on: exportGltf action — [receipt](https://eureka.gamecult.org/forge/GameCult/Brokkr/pulls/7)
- 2026-11-10 · Weksa · Refusal-reason Lows: own\_family pinned to offered items, --answerer-family pinned, class closure pinned; encode prompt says a concept is never null — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/42)
- 2026-11-10 · Brokkr · Blender assignMaterial: colour, idempotent slot, malformed colour refused — [receipt](https://eureka.gamecult.org/forge/GameCult/Brokkr/pulls/6)
- 2026-11-10 · Ratatoskr · dings: Aqua's v4 set (Void single onset, Nibu proposal 3 everywhere), behind dings.enabled — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/75)
- 2026-11-10 · Ratatoskr · scene: per-sky-state ink for names and phone-dusk labels; New Messages as plain label — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/74)
- 2026-11-10 · Brokkr · Blender add-on: geometry node graph actions, modifier inputs, evaluated snapshot — [receipt](https://eureka.gamecult.org/forge/GameCult/Brokkr/pulls/5)
- 2026-11-10 · AquaSynth · dings-voices v4: Void single onset, Nibu proposal 3 everywhere (unheard) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/23)
- 2026-11-10 · Huginn · Desk answers, Huginn half 1: desk\_answer kind and the Mind counting door — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/29)
- 2026-11-10 · Aetheria · Retire the Wwise catalog fields (SoundBank, AudioStats, faction music) — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/4)
- 2026-11-10 · Aetheria · Save standings by faction, not by list position — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/2)
- 2026-11-10 · Weksa · Show her working: public page of the lowering chain, from the real lowerer and scorer — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/15)
- 2026-11-10 · Brokkr · Blender add-on tests: the token-guard test no longer pins the store's spelling of an empty put — [receipt](https://eureka.gamecult.org/forge/GameCult/Brokkr/pulls/9)
- 2026-11-10 · Ratatoskr · Release candidate: dev 64edacac to main — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/71)
- 2026-11-10 · Thing · CI: concurrency group, no cancel on dispatch — [receipt](https://eureka.gamecult.org/forge/GameCult/Thing/pulls/4)
- 2026-11-10 · CultLib · CI: concurrency groups, no cancel on tag/dispatch — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/71)
- 2026-11-10 · Aetheria · ship-authoring stats --top-speed adds the VelocityLimit a bare hull lacks — [receipt](https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/3)
- 2026-11-10 · AquaSynth · aqua-ear: audio perception tool (spectrogram, onsets, detectors, compare) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/24)
- 2026-11-10 · Bifrost · Reserve Matrix localparts and system names at identity creation — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/34)
- 2026-11-10 · Ratatoskr · auth: newcomer-facing sign-in, server and sign-up messages — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/73)
- 2026-11-10 · Bifrost · Matrix mouth: m.read follows a chat\_read report, presence follows the turn — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/35)
- 2026-11-10 · Weksa · Round records and lines carry parse refusal reasons and an own-family label — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/41)
- 2026-11-10 · Ratatoskr · Dings v3 behind client config switch dings.enabled (off by default) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/69)
- 2026-11-10 · Bifrost · Load cultnet-ts and cultmesh-ts by their scoped names — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/36)
- 2026-11-10 · Bifrost · Estate-rule sim: contribution-credit arm (E7) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/8)
- 2026-11-10 · BadDaySimulator · docs: scenario design, Fella's bad day at the office — [receipt](https://eureka.gamecult.org/forge/GameCult/BadDaySimulator/pulls/2)
- 2026-11-10 · Lodur · docs: MotionBricks fit survey (verdict: optional tier) — [receipt](https://eureka.gamecult.org/forge/GameCult/Lodur/pulls/1)
- 2026-11-10 · Lodur · First slice: PD-muscle humanoid ragdoll on Ymir's SoA world — [receipt](https://eureka.gamecult.org/forge/GameCult/Lodur/pulls/2)
- 2026-11-10 · CultLib · Fork card: cap depends at 8 lines of 1000 bytes — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/73)
- 2026-11-10 · Ymir · SoA world: joints, force/torque lanes, capsules and boxes — [receipt](https://eureka.gamecult.org/forge/GameCult/Ymir/pulls/2)
- 2026-11-10 · Ymir · Headless 3D SoA world over Box3D, state read in place — [receipt](https://eureka.gamecult.org/forge/GameCult/Ymir/pulls/1)
- 2026-11-10 · Eureka · testparse: read dotnet 10's "Total tests:" summary block — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/49)
- 2026-11-10 · Odin · Bump CultLib pins to 7665df33 (write receipts) — [receipt](https://eureka.gamecult.org/forge/GameCult/Odin/pulls/1)
- 2026-11-10 · Heimdall · Docs: answer collector record and consent — [receipt](https://eureka.gamecult.org/forge/GameCult/Heimdall/pulls/6)
- 2026-11-10 · AquaSynth · dings-voices: generator for eight Ratatoskr sender voices (unheard) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/22)
- 2026-11-10 · Perlines · Perlines v2: browser audio visualizer (WebAudio + WebGL2) — [receipt](https://eureka.gamecult.org/forge/GameCult/Perlines/pulls/1)
- 2026-11-10 · AquaSynth · aqua-listen: listening-test kit (one self-contained page, verdict export) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/16)
- 2026-11-10 · AquaSynth · aqua-feel: effects shelf for overlay packaging (unheard) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/10)
- 2026-11-10 · Ratatoskr · scene: Dusk floor at the link bound with Day's pale-blue lift (held for Meta's preview) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/56)
- 2026-11-10 · CultLib · CultNet governance contracts: sealed-vote API and fork-desk card (schemas, specs, vectors, C#/TS suites) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/72)
- 2026-11-10 · BadDaySimulator · Pain box first slice: deterministic virtual human, will-break timeline — [receipt](https://eureka.gamecult.org/forge/GameCult/BadDaySimulator/pulls/1)
- 2026-11-10 · GhostlightDungeon-site · CI: run the Pages deploy on GitHub only — [receipt](https://eureka.gamecult.org/forge/GameCult/GhostlightDungeon-site/pulls/1)
- 2026-11-10 · Delvehold · CI: run the Pages deploy on GitHub only — [receipt](https://eureka.gamecult.org/forge/GameCult/Delvehold/pulls/1)
- 2026-11-10 · Kalsa · CI: run the Pages deploy on GitHub only — [receipt](https://eureka.gamecult.org/forge/GameCult/Kalsa/pulls/1)
- 2026-11-10 · Zyphos · CI: run the Pages deploy on GitHub only — [receipt](https://eureka.gamecult.org/forge/GameCult/Zyphos/pulls/5)
- 2026-11-10 · Huginn · Persona: send chat\_read for the newest placed event per room at the echo — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/28)
- 2026-11-10 · Huginn · huginn sources --front: search only a repo's front-page files — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/27)
- 2026-11-10 · Ratatoskr · Room list: unjoined project-room groups collapse behind one Browse entry — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/67)
- 2026-11-10 · Weksa · Original corpus for a non-memorised target; recall probes every item; encode prompt states the id form — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/40)
- 2026-11-10 · Huginn · Sources index: skip .obsidian, .voidbot, LICENSE and provenance files — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/26)
- 2026-11-10 · Huginn · Self run: deliver a result whole, never clipped — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/25)
- 2026-11-10 · Weksa · weksa loop recall: a recitation probe for public-domain items; admit\_rules not required in the round schema — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/39)
- 2026-11-10 · Ratatoskr · scene: terrain fine grain domain-warped so it stops reading as hatching — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/66)
- 2026-11-10 · Ratatoskr · nemesis/demo: Meta's no-chrome look, theme auto, denser terrain, Background menu, with tests and the Ridge zero-size fix — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/65)
- 2026-11-10 · Weksa · Round record names the admission rules that refused items — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/38)
- 2026-11-10 · Bifrost · deploy plan: NetworkTagSecret step checks openssl and treats an empty value as not set — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/33)
- 2026-11-10 · AquaSynth · aqua-trial: add the v5 thruster mix as a variant (unheard, browser-unrun) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/21)
- 2026-11-10 · Bifrost · Pin the vote page busy-refusal branches — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/14)
- 2026-11-10 · Bifrost · Standard close: loser of a simultaneous close adopts the winner's result (#30) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/31)
- 2026-11-10 · AquaSynth · aqua-feel: diff faustwasm against the native libfaust path (unheard) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/20)
- 2026-11-10 · Weksa · Lows: summary\_line leaves the public surface; lowering bound pinned in bytes, CR refused — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/37)
- 2026-11-10 · Weksa · golf-loop-model-lowerer: a Claude session lowers each packet behind the model port; the template lowerer leaves the loop — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/36)
- 2026-11-10 · Weksa · Round-digest lows 2: length-framed source digest, lock cleanup, honest drift text, window tests — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/35)
- 2026-11-10 · Weksa · Speaker-scene lows: with\_scene enforces scene coverage at read, one owner — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/34)
- 2026-11-10 · Weksa · Round lows: split.rs joins the prompt source digest, stores re-checked after open — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/33)
- 2026-11-10 · Weksa · Checkpoint-gate lows: pin the once rule and the elide branch, escape line breaks in item text — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/32)
- 2026-11-10 · Weksa · One-write seam: pin 'accept is one batch' by behaviour, delete the source-text tripwire — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/31)
- 2026-11-10 · Weksa · golf-loop-edit-accept: a Train-only editor proposes an inventory edit, a candidate round scores it, a noise-floor rule accepts or rejects on Validation — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/30)
- 2026-11-10 · Weksa · Clippy: name the predication tuple, box PutArgs — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/29)
- 2026-11-10 · gamecult-site · Layout: the column fills the screen; prose keeps a measure — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/23)
- 2026-11-10 · gamecult-site · Site: forge links in the front page and the dossier — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/22)
- 2026-11-10 · gamecult-site · Site: forge is the canonical repo home; Huginn owns the mind — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/21)
- 2026-11-10 · gamecult-site · Math scroll guard: one rule for every block that holds math — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/20)
- 2026-11-10 · gamecult-site · Math: emit MathML beside the KaTeX so screen readers can read it — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/19)
- 2026-11-10 · GameCult-Quartz · Latex: let the site choose KaTeX's output mode — [receipt](https://eureka.gamecult.org/forge/GameCult/GameCult-Quartz/pulls/5)
- 2026-11-10 · Weksa · golf-loop-round: the smallest loop that scores one round end to end — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/28)
- 2026-11-10 · Ratatoskr · auth: footerBand test pins blur to 12px and the footer rule's exact property set — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/63)
- 2026-11-10 · Ratatoskr · auth: test the emitted footer rule; wrap comment; correct the terrain luminance figure — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/62)
- 2026-11-10 · Ratatoskr · auth: a blurred, tinted, soft-edged band behind the sign-in footer (4.5:1 in Day, Dusk, Night) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/61)
- 2026-11-10 · Weksa · speaker-scene: weksa.speaker and weksa.scene documents, with\_scene reads the store — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/26)
- 2026-11-10 · Weksa · Checkpoint gate: Test readings need a Checkpoint nobody outside tests can declare; fixed instructions; context lows — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/27)
- 2026-11-10 · Weksa · Map: speaker-scene facts, persona-state question, 4b/4c — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/24)
- 2026-11-10 · Weksa · Context builder and checkpoint-only Test readings (cut loop-context-builder) — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/25)
- 2026-11-10 · Ratatoskr · scene: message and comment on the sweep assertion — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/60)
- 2026-11-10 · Ratatoskr · scene: sweep the mid-build test over microtask offsets — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/59)
- 2026-11-10 · Ratatoskr · scene: test a sky change landing mid-build — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/58)
- 2026-11-10 · Ratatoskr · scene: two quick sky changes build the last sky; Night drift test is exact — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/57)
- 2026-11-10 · Ratatoskr · scene: rebuild only for a different drawn sky; URL-steered night sky within the Night backdrop (+ link readability numbers) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/55)
- 2026-11-10 · Ratatoskr · trainingNotice: say whose ruling the wording is (comment only) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/53)
- 2026-11-10 · Ratatoskr · scene: shape each sky state's drawn sky into a luminance band its text ink clears — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/54)
- 2026-11-09 · Ratatoskr · scene: keep the terrain sky and baked tables out of the main chunk (stacked on #47) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/48)
- 2026-11-09 · Thing · CI: Windows leg workflow\_dispatch only, PowerShell on Linux — [receipt](https://eureka.gamecult.org/forge/GameCult/Thing/pulls/2)
- 2026-11-09 · Ratatoskr · CI: cancel superseded runs with workflow concurrency groups — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/50)
- 2026-11-09 · AetheriaLore · CI: run the Pages deploy on GitHub only — [receipt](https://eureka.gamecult.org/forge/GameCult/AetheriaLore/pulls/6)
- 2026-11-09 · Ratatoskr · Sky-state control in the estate title bar; the state picks the theme — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/45)
- 2026-11-09 · Ratatoskr · scene: ridge and terrain scenes follow the sky state — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/47)
- 2026-11-09 · CultLib · CI: Windows jobs workflow\_dispatch only, PowerShell on Linux, glibc comment — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/68)
- 2026-11-09 · Ratatoskr · scene: skyState test takes the worse of both sky ends — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/46)
- 2026-11-09 · Ratatoskr · scene: host handles a lost GL context (ground on loss, rebuild on restore) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/44)
- 2026-11-09 · Ratatoskr · scene: sky-state seam (auto/day/dusk/night) with skyBackdrop — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/43)
- 2026-11-09 · Bifrost · Signed Mind intake for sealed motions (stacked on #21) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/22)
- 2026-11-09 · Bifrost · Sealed-ballot motions: commit-reveal over gamecult.sealed\_ballot.v0 — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/21)
- 2026-11-09 · Ratatoskr · scene: terrain mesh as fine as the height map (stack: terrain scatter, albedo, stars, haze) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/42)
- 2026-11-09 · CultLib · cultmesh-ts test: queued provider registers observed from creation (RUDP replaced-generation flake) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/70)
- 2026-11-09 · Bifrost · deploy plan: NetworkTagSecret step: openssl failure appends nothing; empty or indented key line handled — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/20)
- 2026-11-09 · CultLib · write\_admitted messageId: letter or number, no Default\_Ignorable, raw compare — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/69)
- 2026-11-09 · gamecult-site · Tokenise the three literal grouping hairlines; one-rule-token probe — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/18)
- 2026-11-09 · Ratatoskr · CI: drop artifact upload from the build check — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/41)
- 2026-11-09 · Bifrost · docs: plan for deploying main over the live release — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/15)
- 2026-11-09 · Bifrost · deploy plan: generate ConceptVotes\_\_NetworkTagSecret, defaults note, checkout page check — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/19)
- 2026-11-09 · Ratatoskr · Room list on a phone: plain text rows in the heading type; no Create Room or Join with Address — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/40)
- 2026-11-09 · Bifrost · Revise the main-to-live deploy plan against 55b74275 (Libby's 11 points) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/18)
- 2026-11-09 · Ratatoskr · Room list: faint wash again; chat: name and time on one plain line (regression from #35 and the scrim commits) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/39)
- 2026-11-09 · CultLib · TS write-receipt client against the real Rust and C# receipt servers (interop harness) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/67)
- 2026-11-09 · CultLib · cultnet-py: decode write\_admitted.v0 and error.v1 against the write-receipt vectors — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/66)
- 2026-11-09 · CultLib · cultmesh-kotlin: write receipt frames, hash, tracker, vector replay — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/65)
- 2026-11-09 · CultLib · Rust RUDP server: pin blank schemaId/recordKey refusal, decide sequenced refusal per frame — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/63)
- 2026-11-09 · CultLib · write-receipt: one unreadable text, one blank-field rule (both servers) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/64)
- 2026-11-09 · GameCult-Quartz · CI: run on the docker runner label — [receipt](https://eureka.gamecult.org/forge/GameCult/GameCult-Quartz/pulls/3)
- 2026-11-09 · Heimdall · Connect start: pin the app-secret gate on every managed provider, refuse blank targets — [receipt](https://eureka.gamecult.org/forge/GameCult/Heimdall/pulls/9)
- 2026-11-09 · Heimdall · Redeem refuses a target the completion did not record — [receipt](https://eureka.gamecult.org/forge/GameCult/Heimdall/pulls/10)
- 2026-11-09 · Huginn · AlreadyResolved names the closure in force — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/22)
- 2026-11-09 · Huginn · Import: resolution of a window follow-up or idea is inert — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/23)
- 2026-11-09 · AetheriaLore · Canon/proposal file-kind marker, checked on PR (design first) — [receipt](https://eureka.gamecult.org/forge/GameCult/AetheriaLore/pulls/4)
- 2026-11-09 · Huginn · mind-body: open work listed oldest first by origin, lines capped, hidden work named by campaign — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/24)
- 2026-11-09 · Bifrost · CI: delete the container publish workflow — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/17)
- 2026-11-09 · Bifrost · Make every cookie host-only: \_\_Host- names, Secure, Path=/ — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/11)
- 2026-11-09 · moonlight-ios · docs: remote access is Starfire over Headscale (corrects PR #2) — [receipt](https://eureka.gamecult.org/forge/GameCult/moonlight-ios/pulls/3)
- 2026-11-09 · Weksa · S6 residue: lone marks get the marks-only reason, katakana ヷ-ヺ fold, İx/i̇x collide again — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/22)
- 2026-11-09 · Weksa · Errors stop echoing identifiers: LowerError/Refusal Display, clap errors — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/21)
- 2026-11-09 · Weksa · Test: request\_gate reads the agent role by gloss (kills the cargo-mutants survivor at lower.rs:286) — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/20)
- 2026-11-09 · Ratatoskr · Phone text flow: portrait floor, list markers, in-flow banner, pretend-server notice — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/35)
- 2026-11-09 · Weksa · Corpus intake lows 2: S6 folds, CLI errors stop echoing identifiers, --admitted-on is a date, marks-only text refused — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/19)
- 2026-11-09 · Ratatoskr · Upload failures keep name, size and file readability — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/34)
- 2026-11-09 · Ratatoskr · phone layout: text wraps the traced portrait outline; status lines clear the composer — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/31)
- 2026-11-09 · Ratatoskr · docs: file zone design sketch — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/33)
- 2026-11-09 · Ratatoskr · preview-demo: drop the submit-event shim; relative manifest link — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/32)
- 2026-11-09 · Ratatoskr · preview-demo: README for the pose thumbnails (provenance) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/29)
- 2026-11-09 · Ratatoskr · settings: no window at import (fixes soundscape test on dev) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/37)
- 2026-11-09 · Heimdall · Record a failed refresh on the identity row so another process does not re-present the token — [receipt](https://eureka.gamecult.org/forge/GameCult/Heimdall/pulls/8)
- 2026-11-09 · gamecult-site · ci: build-only check on pull requests — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/16)
- 2026-11-09 · gamecult-site · Site copy: VoidBot retired and Eve deprecated, in the past tense (do not merge, no deploy) — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/15)
- 2026-11-09 · GameCult-Quartz · fix: cast satori input to fix TS2345 in ogImage — [receipt](https://eureka.gamecult.org/forge/GameCult/GameCult-Quartz/pulls/2)
- 2026-11-09 · Weksa · Dao De Jing test bed: PublicDomain provenance fields, Legge slice, first golf-loop number — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/10)
- 2026-11-09 · Weksa · Phone inventory, segmenter and \`weksa lower --phones\` (the Weksa-\>AquaSynth phones line) — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/16)
- 2026-11-09 · Weksa · Consent-gated request row: 'You asked Nibu to stop.' lowers only when the packet carries addressee consent — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/18)
- 2026-11-09 · Huginn · mind-body: a brief is done when its change lands, told once as one closing rule — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/21)
- 2026-11-09 · Eureka · campaign-state: honest follow-up outcomes; campaigns resolve Moved — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/62)
- 2026-11-09 · Weksa · Packet carries an addressee-consent fact (schema v5, V14, V15) — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/14)
- 2026-11-09 · Weksa · Scorer coverage: words break at any non-word character; unspaced scripts read by run; near-miss chrF pairs per script — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/17)
## Week of 2 Nov 2026
*17 repos moved in one week. The studio is not one project in a trench coat.*
- 2026-11-08 · Huginn · huginn import: a follow-up or idea the receiver wrote after the import began no longer blocks the resume — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/20)
- 2026-11-08 · Huginn · admission: an import replays a cite of another root's closed follow-up — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/17)
- 2026-11-08 · Huginn · huginn-mind: an import is not refused for citing another campaign's document resolved after its source ordinal — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/19)
- 2026-11-08 · Huginn · mind-body: every Persona line asks for her own work, plans first — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/18)
- 2026-11-08 · CultLib · TS: write\_admitted / error.v1 decoder, WriteTracker, vector replay runner — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/62)
- 2026-11-08 · CultLib · C#: database server answers writes with write\_admitted / error.v1 (write-receipt spec) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/61)
- 2026-11-08 · CultLib · cultmesh-rs: RUDP document server answers writes with write\_admitted / error.v1 — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/60)
- 2026-11-08 · CultLib · spec: cultnet write receipt (write\_admitted, error id echo, admitted/refused/unconfirmed) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/59)
- 2026-11-08 · Huginn · huginn import: a steward pulls a moved campaign into her own mind — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/16)
- 2026-11-08 · Huginn · huginn-mind: a campaign moves out of a mind (Moved freeze, import provenance) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/15)
- 2026-11-08 · Bifrost · Matrix mouth: read receipts on ack, presence from the brake — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/13)
- 2026-11-08 · Huginn · mind-body: a nightly memory consolidation run for one Mind (typed Slept cut line) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/14)
- 2026-11-08 · Heimdall · Refusal return contract: pin the fragment, carry the attempt id, document it — [receipt](https://eureka.gamecult.org/forge/GameCult/Heimdall/pulls/7)
- 2026-11-08 · Heimdall · Joystick consent: ask page, consent\_refused, receipts, signed-in grants page with revoke — [receipt](https://eureka.gamecult.org/forge/GameCult/Heimdall/pulls/5)
- 2026-11-08 · CultLib · C#: SubmitDocumentAsync and the shard write forwarder complete on the result frame — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/58)
- 2026-11-08 · CultLib · cultmesh-rs: single and batch publish complete on the result frame, not the transport ack — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/57)
- 2026-11-08 · CultLib · cultnet-ts: the Odin presence publisher completes on the result frame, not the ack — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/56)
- 2026-11-08 · CultLib · cultmesh-ts: a put completes on its result frame, not on the transport ack — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/55)
- 2026-11-08 · CultLib · GameCult.Networking test: the RUDP schema client delivers a refused put's result frame whatever the order of the ack — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/54)
- 2026-11-08 · CultLib · cultmesh-py test: a put the server refused is reported refused after its reliable ack arrived — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/53)
- 2026-11-08 · CultLib · cultmesh-rs test: a publish whose refusal arrives before the ack is refused — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/52)
- 2026-11-08 · CultLib · cultnet-ts test: the Odin presence publisher does not complete on the ack when the refusal arrives first — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/51)
- 2026-11-08 · CultLib · cultmesh-ts test: publishRudpDocumentAndWaitForReceipt reports a refused put as refused — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/50)
- 2026-11-08 · CultLib · cultmesh-rs: send the capped frame's answer reliably and end the session once it is acknowledged — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/48)
- 2026-11-08 · CultLib · GameCult.Networking: resend the capped frame's answer until acknowledged, then end the session — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/49)
- 2026-11-08 · CultLib · cultmesh-ts: resend the capped frame's answer until acknowledged, then end the session — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/47)
- 2026-11-08 · CultLib · cultmesh-py: answer an unreadable RUDP frame and end the session after 8 consecutive refusals — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/45)
- 2026-11-08 · CultLib · cultmesh-ts: end a RUDP session after 8 consecutive unreadable frames or authority-refused deletes — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/44)
- 2026-11-08 · CultLib · GameCult.Networking: answer an undecodable RUDP frame message\_invalid and end the session at 8 in a row — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/46)
- 2026-11-08 · CultLib · cultmesh-rs: keep the session through an unreadable frame or refused delete; end at 8 in a row — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/43)
- 2026-11-08 · Huginn · chat\_image: test that fails if the take(MAX+1) read bound is removed — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/12)
- 2026-11-08 · CultLib · cultmesh-rs: RUDP document server refuses unreadable frames and deletes with typed errors — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/42)
- 2026-11-08 · Bifrost · Matrix mouth: fetch and store chat images (cut A), ChatDelivery v3 — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/12)
- 2026-11-08 · Eureka · Every mutant runs under its own memory and time cap — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/61)
- 2026-11-08 · CultLib · cultnet error contract: one message\_invalid code replaces malformed\_document\_put/delete — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/41)
- 2026-11-08 · CultLib · cultmesh-ts: write authority decide timeout counts as a typed refusal — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/40)
- 2026-11-08 · Huginn · mind-body: chat images reach the Persona session as image blocks (ChatDelivery v2 image field) — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/11)
- 2026-11-08 · eureka-site · Proposal: link 'Eureka in ten minutes' from the install panel — [receipt](https://eureka.gamecult.org/forge/GameCult/eureka-site/pulls/1)
- 2026-11-08 · Eureka · Eureka in ten minutes: outsider-runnable falsification demo — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/60)
- 2026-11-08 · CultLib · semver-policy: exact commands for reading the workflow at the tagged sha; evidence for the cultcache-ts-v0.15.0 run — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/39)
- 2026-11-08 · CultLib · docs: drop stale cultcache-ts tag-trigger claim from the content map — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/38)
- 2026-11-07 · CultLib · cultmesh-ts: write authority for the RUDP document server — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/37)
- 2026-11-07 · Ratatoskr · ridge scene behind the whole app, tight bubble wrap, sharper portraits, long-post fixtures — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/30)
- 2026-11-07 · CultLib · cultnet-ts: typed write\_not\_authorized factory and canonical schema id — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/36)
- 2026-11-07 · CultLib · cultmesh-rs: a sink's refusal of a put is a typed write\_not\_authorized — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/35)
- 2026-11-07 · CultLib · cultmesh-py: bind the TCP+UDP pair for port 0 without the race — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/34)
- 2026-11-07 · Brokkr · Blender add-on: pass CultMeshGrantAllWrites() to its served node — [receipt](https://eureka.gamecult.org/forge/GameCult/Brokkr/pulls/4)
- 2026-11-07 · CultLib · cultmesh-py: peer writes need a write authority (default-deny) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/33)
- 2026-11-07 · Ratatoskr · preview: pretend homeserver for the dev preview (in-page, off by default) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/28)
- 2026-11-07 · Ratatoskr · ci: build dev into rat-dev-dist artifact — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/27)
- 2026-11-07 · CultLib · Docs: cultcache-ts publishing is off; tag runs use the tagged workflow — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/32)
- 2026-11-07 · CultLib · publish-packages: cultcache-ts-v\* tags no longer trigger publish — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/31)
- 2026-11-07 · CultLib · cultcache-ts 0.15.0: fold 0.14.1, 0.14.2 and Unreleased; raise consumer ranges — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/30)
- 2026-11-07 · CultLib · Fix build:ts: one text-only error factory in cultnet-ts (6 TS2345 in cultmesh-ts) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/29)
- 2026-11-07 · CultLib · npm: scope cultnet-ts, cultmesh-ts, cultmesh-browser under @gamecult — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/28)
- 2026-11-07 · CultLib · cultcache-rs: pin the one-global rule on load\_soa (PR #15 gap) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/27)
- 2026-11-07 · CultLib · cultnet: add unsupported\_schema\_version to the closed cultnet.error.v0 code set — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/26)
- 2026-11-07 · Brokkr · Blender add-on: importGltf, setCamera, setLight, setWorld, renderStill — [receipt](https://eureka.gamecult.org/forge/GameCult/Brokkr/pulls/2)
- 2026-11-07 · Eureka · Skill tools off MCP: the huginn CLI is the only way in — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/59)
- 2026-11-07 · GameCult-Quartz · ci: drop windows-latest from the engine CI matrix — [receipt](https://eureka.gamecult.org/forge/GameCult/GameCult-Quartz/pulls/1)
- 2026-11-07 · Brokkr · Blender add-on: server hardening (opt-in session token, intent purge, bind guard) — [receipt](https://eureka.gamecult.org/forge/GameCult/Brokkr/pulls/1)
- 2026-11-07 · CultLib · cultnet-ts selection/v1 carriers + error code/details — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/20)
- 2026-11-07 · CultLib · cultnet-py multi-peer RUDP socket server — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/19)
- 2026-11-07 · CultLib · cultmesh-py/rs authority route verification — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/18)
- 2026-11-07 · CultLib · cultnet-py: schema catalog describes cultnet.error.v0 as the contract does — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/17)
- 2026-11-07 · CultLib · cultcache-py: single-file store lock, fsync and unique staging; msgpack hard; slot-nil reader — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/16)
- 2026-11-07 · CultLib · cultcache-rs: name, index and global lookups (C# parity) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/15)
- 2026-11-07 · CultLib · cultnet error message parity: TS type + Python builder/decoder, shared C#/Rust vectors — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/14)
- 2026-11-07 · CultLib · docs(start): tested CultNet first-call snippets (C#, TypeScript, Rust, Python) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/11)
- 2026-11-07 · CultLib · docs/start: two-client .io game recipe (CultCache + CultMesh, TS) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/10)
- 2026-11-07 · Huginn · huginn admit holds near-duplicates; huginn recall dispatch — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/10)
- 2026-11-07 · CultLib · ci: drop the Eve getting-started job (GameCult/Eve no longer resolves) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/25)
- 2026-11-07 · CultLib · cultcache-ts: browser-safe entry that excludes the node-only single-file store — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/24)
- 2026-11-07 · Weksa · Entity forms carry a ruled pronunciation; lower --ipa emits it — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/13)
- 2026-11-07 · AquaSynth · StoreFileName tests: device lookalikes and IPA pair distinctness — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/15)
- 2026-11-07 · Fensalir · ClientRuntimeLoader: client assemblies must resolve under a trusted root — [receipt](https://eureka.gamecult.org/forge/GameCult/Fensalir/pulls/1)
- 2026-11-07 · CultLib · docs: mark samples/eve-browser-network as needing a sibling Eve checkout — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/23)
- 2026-11-07 · Ratatoskr · ci: drop Cinny-upstream workflows that cannot run on the forge — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/25)
- 2026-11-07 · Eureka · tools: dotnet-self-env.sh for Selves with a read-only HOME — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/58)
- 2026-11-07 · CultLib · sln: drop EveBrowserNetworkSample so dotnet build CultLib.sln succeeds — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/22)
- 2026-11-07 · CultLib · ci: Windows legs run on workflow\_dispatch only; Ubuntu gates push and PR — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/21)
- 2026-11-07 · CultLib · cultnet-ts: drop unset optional keys from createDocumentPutMessage — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/13)
- 2026-11-07 · AquaSynth · IpaGestureExperiment onto StoreFileName (stacked on #11) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/14)
- 2026-11-07 · AquaSynth · One StoreFileName in Core: no id collisions, no '..' escape — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/11)
- 2026-11-07 · Huginn · huginn persona get\|put — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/9)
- 2026-11-07 · Weksa · Lowerer reads entity forms: entity referents lower to the entity's en-US citation form — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/11)
- 2026-11-07 · Huginn · Release: Self replies reach her Persona; one conversation at a time; resume; project-name addressing; stream thoughts — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/8)
- 2026-11-07 · Eureka · Persona charter: authority follows stewardship between peers — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/57)
- 2026-11-07 · Eureka · Three tiers: measure a task by what it brings back — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/56)
- 2026-11-07 · Eureka · Delegation is a choice: tiers act directly when their context suffices — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/55)
- 2026-11-07 · CultLib · heimdall-consent: typed records for the answer collector — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/12)
- 2026-11-07 · Eureka · Dispatch recall: the nearest rulings to a brief's citations reach the subagent — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/54)
- 2026-11-07 · AquaSynth · Spike: AOT-compile thruster v5 to a native lib with bounded rpm (Linux; Windows/Unity unverified) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/13)
- 2026-11-07 · AquaSynth · Scoping: Faust DSP (thruster v5) in a Unity player on Windows and Linux — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/12)
- 2026-11-06 · ModelConnector · Lease socket answers a usage readout — [receipt](https://eureka.gamecult.org/forge/GameCult/ModelConnector/pulls/1)
- 2026-11-06 · Eureka · Persona charter: the operator's own life in chat is not a leak — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/53)
- 2026-11-06 · Eureka · Changelog: prompt recall hook stays uninstalled — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/52)
- 2026-11-06 · Eureka · Later cuts are follow-ups, not prose lines — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/51)
- 2026-11-06 · Eureka · Three tiers of context — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/50)
- 2026-11-06 · Weksa · Proposals page for human reviewers — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/7)
- 2026-11-06 · Weksa · Deru phonotactics in the Sa'ueia/Airawa checker; names file; briefs updated — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/9)
- 2026-11-06 · Weksa · rtd: imperial\_frame out of packet example (ruling) + DRAFT Dao path-fit ontology (proposal, not canon) — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/6)
- 2026-11-06 · Weksa · Lowering input: the speaker's relation to the addressee (Scene slot, with\_scene) — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/8)
- 2026-11-06 · Bifrost · Estate-rule sim: regenerate stale results, fix weight-floor wording — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/7)
- 2026-11-06 · AquaSynth · Earcon Workshop: static earcon family generator with WAV/JSON export (unheard) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/9)
- 2026-11-06 · AetheriaLore · Revert PR #1: table wikilink pipes — [receipt](https://eureka.gamecult.org/forge/GameCult/AetheriaLore/pulls/3)
- 2026-11-06 · AetheriaLore · Fix backslash-escaped pipes in table wikilinks — [receipt](https://eureka.gamecult.org/forge/GameCult/AetheriaLore/pulls/1)
- 2026-11-06 · CultLib · heimdall-stake: stake function and splitting-gain report (Rust, zero deps) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/9)
- 2026-11-06 · Weksa · DRAFT Zyphos naming briefs (not canon) — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/1)
- 2026-11-06 · AetheriaLore · Faction Play: apply Nibu's rulings on proposals 1, 2, 4, 5 — [receipt](https://eureka.gamecult.org/forge/GameCult/AetheriaLore/pulls/2)
- 2026-11-06 · Weksa · Rust to Dust imperial language: draft design spec r0 — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/2)
- 2026-11-06 · Bifrost · Estate-rule sim: pin the stake arm to heimdall-stake golden vectors — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/6)
- 2026-11-06 · Heimdall · Live-Postgres tests: exercise the pending-link methods; add a standing live run — [receipt](https://eureka.gamecult.org/forge/GameCult/Heimdall/pulls/4)
- 2026-11-05 · Bifrost · Estate-rule sim: purchased-stake arm (log weight, splitting adversary, half-influence cap) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/5)
- 2026-11-05 · Heimdall · r2: bind OAuth completion to the launching browser, one use per state; gate connect starts — [receipt](https://eureka.gamecult.org/forge/GameCult/Heimdall/pulls/3)
- 2026-11-05 · AquaSynth · aqua-feel: headless feel meter + gate; fix PRC SYNTH1 clipping and thruster low-rpm hiss — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/8)
- 2026-11-05 · Eureka · bloom-sheet: large fills as wash and outline — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/48)
- 2026-11-05 · Eureka · bloom-sheet: visitors drawn with the plant's pen — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/47)
- 2026-11-05 · Eureka · bloom-sheet CLI: markdown to a neon one-page sheet — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/46)
- 2026-11-05 · CultLib · docs/start: verbatim drift check for C# and TS first-call blocks — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/7)
- 2026-11-05 · AquaSynth · Docs: soundscape grammar for the Ratatoskr generative symphony (draft) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/4)
- 2026-11-05 · AquaSynth · Faust on Linux: FaustRender probe, toolchain notes, thruster v5 manifest — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/5)
- 2026-11-05 · AquaSynth · Listening trial: blinded A/B thruster noise sweep (static page) — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/7)
- 2026-11-05 · AquaSynth · Static in-browser playground (faustwasm) for AquaSynth patches — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/6)
- 2026-11-05 · AquaSynth · Add thruster Faust patch with an rpm control — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/3)
- 2026-11-05 · AquaSynth · Faust SetControls: remove per-call allocation — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/2)
- 2026-11-05 · CultLib · CultMath: Phacelle rows are bit-identical forward, backward and shuffled — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/5)
- 2026-11-05 · CultLib · heimdall-delegation: delegation resolver (Rust, zero deps) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/6)
- 2026-11-05 · Bifrost · Estate-rule sim harness: populism, strategic agents, transitive delegation — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/4)
- 2026-11-05 · Bifrost · Proposal: charter amendment provision (in-chat charter) — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/3)
- 2026-11-05 · Huginn · chat-retrieval-map: anchors to main, answered questions, stale Persona premise — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/7)
- 2026-11-05 · Bifrost · The mouth delivers media events as a typed line — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/2)
- 2026-11-05 · Heimdall · Google OIDC provider: link-only, sub-keyed, PKCE and nonce — [receipt](https://eureka.gamecult.org/forge/GameCult/Heimdall/pulls/2)
- 2026-11-05 · Huginn · docs: chat retrieval authority map and cut — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/1)
- 2026-11-05 · Heimdall · Bind link mode to its initiator and redeem to its target — [receipt](https://eureka.gamecult.org/forge/GameCult/Heimdall/pulls/1)
- 2026-11-05 · Eureka · Skill: one feature across two areas — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/23)
- 2026-11-05 · Eureka · Briefs: a merge pass never rebases on a rejected push — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/20)
- 2026-11-05 · Ratatoskr · brand: Ratatoskr replaces Cinny branding (do not merge) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/11)
- 2026-11-05 · moonlight-ios · docs: remote access to a Sunshine host over Tailscale or Headscale (untested) — [receipt](https://eureka.gamecult.org/forge/GameCult/moonlight-ios/pulls/2)
- 2026-11-05 · moonlight-ios · README: publish health stays independent of every other feature — [receipt](https://eureka.gamecult.org/forge/GameCult/moonlight-ios/pulls/1)
- 2026-11-05 · Eureka · Eyes and Imagination keep their findings as typed notes; the facts file and committed research file die — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/45)
- 2026-11-05 · Ratatoskr · Estate navigator stack: background scene, soundscape, cone prepass (opt-in) — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/15)
- 2026-11-04 · Ratatoskr · scene: cone prepass for pass 1, opt-in steps/pixel readout — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/12)
- 2026-11-04 · Huginn · The MCP admit goes through the one strict door; refusals name the field — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/5)
- 2026-11-04 · CultLib · docs/start: tested Rust and Python CultCache first calls — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/3)
- 2026-11-04 · CultLib · docs: docs/start onboarding with tested CultCache first calls (C#, TS) — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/2)
- 2026-11-04 · CultLib · CultMath: regenerate lavapipe device bounds at 85ce65fa — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/4)
- 2026-11-04 · CultLib · CultMath: fbm, and the measured Lipschitz bound of phacelle — [receipt](https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/1)
- 2026-11-04 · Huginn · Persona wake: the brake counts only Self runs the Mind started itself — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/4)
- 2026-11-04 · Huginn · Persona wake: leads and a what-could-exist ask; intents leave the history line — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/3)
- 2026-11-04 · gamecult-site · Landing: three estate doors with a mode switch (draft, do not merge) — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/12)
- 2026-11-04 · Huginn · research and idea kinds: typed documents for what Eyes and Imagination find — [receipt](https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/2)
- 2026-11-04 · Zyphos · Respell Sa'auei'a as Sa'ueia (spelling only) — [receipt](https://eureka.gamecult.org/forge/GameCult/Zyphos/pulls/1)
- 2026-11-04 · Weksa · Sa'ueia workshop first cut: table, checker, sound proposal — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/5)
- 2026-11-04 · Weksa · Respell Sa'auei'a as Sa'ueia (spelling only) — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/4)
- 2026-11-04 · Eureka · persona doctrine: the machine is more than code — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/44)
- 2026-11-04 · gamecult-site · Landing: Kiko line says Muninn does not currently build — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/11)
- 2026-11-03 · gamecult-site · Landing: Libby and Weksa roster wording — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/10)
- 2026-11-03 · gamecult-site · Landing: owners' roster wording (Kiko, Libby, Aqua, Eureka, Heimdall, Weksa) — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/9)
- 2026-11-03 · gamecult-site · Landing: Nibu roster line and Aetheria card — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/8)
- 2026-11-03 · gamecult-site · Landing: "Who has a say" replaces the estates heading — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/7)
- 2026-11-03 · gamecult-site · Landing: stacked entries replace the Minds and what-is-live tables — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/6)
- 2026-11-03 · Weksa · speaker-state onto main (stance in packet, admit-only LoweringInput) + build notes — [receipt](https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/3)
- 2026-11-03 · gamecult-site · Landing: Minds' project paragraphs, estates, Aetheria reconciled — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/5)
- 2026-11-03 · gamecult-site · Landing copy: fix Aetheria claim, audit and soften unsourced claims — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/4)
- 2026-11-03 · gamecult-site · Landing page revamp: value, residents, live vs planned, four estates — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/3)
- 2026-11-03 · gamecult-site · Research: stale claims on the VoidBot project page — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/1)
- 2026-11-03 · Ratatoskr · scene: Phacelle bound says measured-not-proved; neutral creature draws nothing — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/8)
- 2026-11-03 · Bifrost · The mouth refuses a Persona send when the room moved past what she held — [receipt](https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/1)
- 2026-11-03 · Eureka · Verify containers share cargo's package-cache lock: mount the shared volume as CARGO\_HOME — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/43)
- 2026-11-02 · Eureka · Inversion of control wording: stewards decide, originator vision is evidence — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/42)
- 2026-11-02 · Ratatoskr · Background scene: two-pass WebGL2 terrain and world tree with login pull-back — [receipt](https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/1)
- 2026-11-02 · Eureka · persona.md: Your turn section — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/41)
## Week of 26 Oct 2026
*Mostly Eureka. The rest kept their heads down.*
- 2026-11-01 · Eureka · fast-mutants: cargo-mutants per file with scoped tests, survivors confirmed on the full suite, sharded across slots — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/40)
- 2026-11-01 · Eureka · context-pack docs: Soul s1 Lows — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/39)
- 2026-11-01 · Eureka · context-pack: resolve reads, check symbols, capped caller lists (cut-context-pack-reads r3) — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/38)
- 2026-11-01 · Eureka · campaign-state: the repo set in force and how Self changes it (cut-skill-campaign-repos r2) — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/37)
- 2026-11-01 · Eureka · doctrine: Persona pointers, Soul s2 Lows — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/36)
- 2026-11-01 · Eureka · doctrine: Persona state pointers name Huginn as the holder — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/35)
- 2026-10-31 · Eureka · persona: each room purpose; #operator only for what needs the operator — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/34)
- 2026-10-31 · AquaSynth · Faust loader: platform-aware library lookup and AQUASYNTH\_FAUST\_LIBRARY override — [receipt](https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/1)
- 2026-10-31 · gamecult-site · VoidBot project page: record retirement — [receipt](https://eureka.gamecult.org/forge/GameCult/gamecult-site/pulls/2)
- 2026-10-31 · Eureka · persona: register rule (Persona voice everywhere but #minds) — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/33)
- 2026-10-31 · Eureka · skill: use the huginn CLI instead of the eureka-state MCP — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/32)
- 2026-10-31 · Eureka · doctrine: GameCult workspace doctrine moves into the skill as doctrine/gamecult.md — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/31)
- 2026-10-27 · Eureka · Skill: re-entry triages reports with no verdict; second beating triggers the structural move; pushed heads build — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/30)
## Week of 19 Oct 2026
- 2026-10-23 · Eureka · Research: recall triggers prior art — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/28)
- 2026-10-23 · Eureka · Recall at admission: recall.py admit holds a ruling/question batch once with its in-force neighbours — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/29)
- 2026-10-23 · Eureka · Worktree cleanup is scoped to this session's own agents — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/27)
- 2026-10-23 · Eureka · Worktrees die with their cut — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/26)
- 2026-10-22 · Eureka · Recall hook: the mind recalls into context on every prompt — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/25)
## Week of 12 Oct 2026
*Mostly Eureka. The rest kept their heads down.*
- 2026-10-14 · Eureka · Doctrine and briefs: nothing that exists is sacred, the operator's words included — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/22)
- 2026-10-14 · Eureka · Skill: a worktree's branch is the spec's branch — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/21)
- 2026-10-12 · Eureka · Briefs: no test run of any size on Starfire — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/19)
- 2026-10-12 · Eureka · Skill: map only what is about to run — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/18)
- 2026-10-12 · Eureka · References: dated tool-calling map; two admission notes — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/17)
- 2026-10-12 · Eureka · Skill: Self rotates at about 400k — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/16)
## Week of 5 Oct 2026
*Mostly Eureka. The rest kept their heads down.*
- 2026-10-11 · Eureka · Skill: every campaign in force has an area — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/15)
- 2026-10-11 · Eureka · Briefs: Stryker offsets come from the job checkout — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/14)
- 2026-10-09 · Eureka · Skill: name Self handoffs per area — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/12)
- 2026-10-09 · Eureka · Skill: research is always kept — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/13)
- 2026-10-09 · Eureka · Briefs: Aetheria verify pins are git clones — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/11)
- 2026-10-09 · Eureka · Briefs: a scratch subdirectory is named per dispatch — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/10)
- 2026-10-09 · Eureka · Briefs: the context pack is how Hands reads a cut — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/9)
- 2026-10-09 · Eureka · tools/context-pack.py: carry cut\_spec anchors to the worktree — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/8)
- 2026-10-08 · Eureka · Tool-call relief: wait-on.sh, python, brief lessons, Life reads the mind — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/7)
## Week of 28 Sep 2026
*Mostly Eureka. The rest kept their heads down.*
- 2026-10-03 · Eureka · Self loads Eureka; Hands, Eyes and Life default to Sonnet; handoffs are pointers — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/6)
- 2026-10-03 · Eureka · Hands template: no resolutions; fix batches name their commits — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/5)
- 2026-10-03 · Eureka · Doctrine explains instead of shouting — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/4)
- 2026-10-02 · Eureka · Doctrine moves into the Eureka repo — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/3)
- 2026-10-01 · Eureka · Faculty charters, step 5: dispatch by subagent\_type; briefs stop restating charters — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/2)
- 2026-10-01 · Eureka · Tool-calling cut §5: summary/wait verify, snapshot mutation runner — [receipt](https://eureka.gamecult.org/forge/GameCult/Eureka/pulls/1)

View file

@ -53,7 +53,7 @@ GameCult is building infrastructure for governed human/agent work: <strong>Epiph
The narrow version is an AI developer workflow product: persistent agents that can work across complex repositories without losing the plot. The broader version is a work-governance platform: humans and agents propose work, prioritize it, execute it, verify outputs, record receipts, and attach credit or rewards. GameCult's front page frames the organization around open development, visible work, legible incentives, contributor standing, and a cooperative model in which supporters and builders shape priorities and policy.<sup><a href="https://gamecult.org/">GameCult front page</a></sup>
Bifrost is the main evidence that this is more than agent rhetoric. Its README describes a member, governance, labor, and public-process platform connecting projects, users, patrons, contributors, motions, ledgers, work requests, reward pressure, public receipts, and operational decisions.<sup><a href="https://github.com/GameCult/Bifrost/blob/main/README.md">GameCult/Bifrost README</a></sup> The jurisdiction map describes the economic loop: users, patrons, members, agents, or contributors identify work; the community expresses priority; reward pressure rises; contributors claim work; maintainers accept artifacts; and Bifrost credits the contributor and records reward allocation.<sup><a href="https://github.com/GameCult/Bifrost/blob/main/docs/jurisdiction-map.md">Bifrost jurisdiction map</a></sup>
Bifrost is the main evidence that this is more than agent rhetoric. Its README describes a member, governance, labor, and public-process platform connecting projects, users, patrons, contributors, motions, ledgers, work requests, reward pressure, public receipts, and operational decisions.<sup><a href="https://eureka.gamecult.org/forge/GameCult/Bifrost/src/branch/main/README.md">GameCult/Bifrost README</a></sup> The jurisdiction map describes the economic loop: users, patrons, members, agents, or contributors identify work; the community expresses priority; reward pressure rises; contributors claim work; maintainers accept artifacts; and Bifrost credits the contributor and records reward allocation.<sup><a href="https://eureka.gamecult.org/forge/GameCult/Bifrost/src/branch/main/docs/jurisdiction-map.md">Bifrost jurisdiction map</a></sup>
### Bottom line
@ -78,7 +78,7 @@ The current state of the market is therefore not solved by adding more prompts.
### What is different about GameCult?
GameCult appears to be building an organization where agents are not just assistants but part of the operating structure. Each repo can have a <strong>Persona</strong>, a public/social agent identity. VoidBot reads Discord and repo context. Epiphany externalizes typed project memory. CultMesh supplies distributed typed state. Bifrost turns requests, discussion, work, reviews, receipts, and rewards into governed records.
GameCult appears to be building an organization where agents are not just assistants but part of the operating structure. Each repo can have a <strong>Persona</strong>, a public/social agent identity. VoidBot read Discord and repo context until it retired on 22 Oct 2026. Epiphany externalizes typed project memory. CultMesh supplies distributed typed state. Bifrost turns requests, discussion, work, reviews, receipts, and rewards into governed records.
In ordinary terms: instead of treating AI as a chatbot bolted onto a team, GameCult is trying to make agent work auditable, repeatable, and connected to governance. The mythology around the Colossus is unusual and should not lead investor materials. The underlying engineering goal is legible: preserve context, assign authority, verify work, and record who did what.
@ -125,17 +125,17 @@ The failure mode of current agents is not that they cannot write code. It is tha
### VoidBot and Personas: the social interface
VoidBot is the social and Discord-native interface into the swarm. It can answer from archived Discord history, indexed GameCult repos, and Aetheria lore, and then hand deeper work off to Codex. It supports real Discord replies, semantic retrieval, source/lore indexing, interaction memory, and Codex handoff flows.<sup><a href="https://github.com/GameCult/VoidBot/blob/main/README.md">GameCult/VoidBot README</a></sup>
VoidBot was the social and Discord-native interface into the swarm until it retired on 22 Oct 2026. It answered from archived Discord history, indexed GameCult repos, and Aetheria lore, and handed deeper work off to Codex. Its duties went to Huginn, Idunn, Bifrost and Eureka's body; see the <a href="/Projects/VoidBot">VoidBot page</a> for what has and has not landed.<sup><a href="https://eureka.gamecult.org/forge/GameCult/VoidBot/src/branch/main/README.md">GameCult/VoidBot README</a></sup>
This matters because work does not originate only in tickets. It originates in chat, argument, taste, frustration, social trust, and repeated community pressure. VoidBot and repo Personas are the layer where that signal becomes visible.
This matters because work does not originate only in tickets. It originates in chat, argument, taste, frustration, social trust, and repeated community pressure. Repo Personas, once alongside VoidBot, are the layer where that signal becomes visible.
### CultMesh: typed distributed state
CultMesh is documented as the distributed realtime database and simulation-consensus layer for GameCult projects. It sits over CultCache for typed documents and local persistence, and over CultNet for transport and schema-v0 messages.<sup><a href="https://github.com/GameCult/CultLib/blob/main/src/GameCult.Mesh/README.md">CultMesh README</a></sup>
CultMesh is documented as the distributed realtime database and simulation-consensus layer for GameCult projects. It sits over CultCache for typed documents and local persistence, and over CultNet for transport and schema-v0 messages.<sup><a href="https://eureka.gamecult.org/forge/GameCult/CultLib/src/branch/main/src/GameCult.Mesh/README.md">CultMesh README</a></sup>
CultMesh's Verse model is important. A Verse is described as a rule-bearing consensus graph with authority models, compatibility/rules hashes, discovery endpoints, authority runtimes, parent Verse support, peer exchange, and authority leases.<sup><a href="https://github.com/GameCult/CultLib/blob/main/src/GameCult.Mesh/docs/verses.md">CultMesh Verses documentation</a></sup>
CultMesh's Verse model is important. A Verse is described as a rule-bearing consensus graph with authority models, compatibility/rules hashes, discovery endpoints, authority runtimes, parent Verse support, peer exchange, and authority leases.<sup><a href="https://eureka.gamecult.org/forge/GameCult/CultLib/src/branch/main/src/GameCult.Mesh/docs/verses.md">CultMesh Verses documentation</a></sup>
For a lay audience, CultMesh is the connective tissue. It makes it possible for multiple local systems to share typed state without pretending that all data has the same privacy, authority, or governance status.
@ -143,21 +143,21 @@ For a lay audience, CultMesh is the connective tissue. It makes it possible for
### Bifrost: governance, work, rewards, receipts
Bifrost is the economic center. Its README says it is the planned member, governance, labor, and public-process platform under the Yggdrasil infrastructure umbrella. It connects projects, users, patrons, contributors, motions, ledgers, work requests, reward pressure, public receipts, and operational decisions.<sup><a href="https://github.com/GameCult/Bifrost/blob/main/README.md">Bifrost README</a></sup>
Bifrost is the economic center. Its README says it is the planned member, governance, labor, and public-process platform under the Yggdrasil infrastructure umbrella. It connects projects, users, patrons, contributors, motions, ledgers, work requests, reward pressure, public receipts, and operational decisions.<sup><a href="https://eureka.gamecult.org/forge/GameCult/Bifrost/src/branch/main/README.md">Bifrost README</a></sup>
The repository already contains an alpha foundation slice: ASP.NET Core app, PostgreSQL-backed EF Core model, GitHub OAuth sign-in, invite/approval membership gating, roles, a work board, motions, ledgers, GitHub webhook ingestion, bridge tooling for agent-owned GitHub draft PRs and Discord posts, CultCache-backed governance topics, CultCache/CultNet-backed agent intake, Docker smoke tests, and xUnit tests.<sup><a href="https://github.com/GameCult/Bifrost/blob/main/README.md">Bifrost README status section</a></sup>
The repository already contains an alpha foundation slice: ASP.NET Core app, PostgreSQL-backed EF Core model, GitHub OAuth sign-in, invite/approval membership gating, roles, a work board, motions, ledgers, GitHub webhook ingestion, bridge tooling for agent-owned GitHub draft PRs and Discord posts, CultCache-backed governance topics, CultCache/CultNet-backed agent intake, Docker smoke tests, and xUnit tests.<sup><a href="https://eureka.gamecult.org/forge/GameCult/Bifrost/src/branch/main/README.md">Bifrost README status section</a></sup>
#### Bifrost's labor model
The full implementation strategy aligns Bifrost with a labor platform concept: contributor history, governance, work priority, reward pressure, contribution points, patron points, decay, and revenue share. It states that accepted work becomes contributor credit plus reward allocation, and that contribution points, patron points, decay, and revenue share should be first-class product systems rather than spreadsheet afterthoughts.<sup><a href="https://github.com/GameCult/Bifrost/blob/main/docs/full-implementation-strategy.md">Bifrost full implementation strategy</a></sup>
The full implementation strategy aligns Bifrost with a labor platform concept: contributor history, governance, work priority, reward pressure, contribution points, patron points, decay, and revenue share. It states that accepted work becomes contributor credit plus reward allocation, and that contribution points, patron points, decay, and revenue share should be first-class product systems rather than spreadsheet afterthoughts.<sup><a href="https://eureka.gamecult.org/forge/GameCult/Bifrost/src/branch/main/docs/full-implementation-strategy.md">Bifrost full implementation strategy</a></sup>
### Heimdall: identity and capability layer
Bifrost's jurisdiction map says Heimdall owns OAuth provider flows, account linking, credential custody, signed identity and capability claims, grants, consent, revocation, and capability evaluation. Bifrost consumes Heimdall claims and governs public work crossings; Heimdall decides who may cross under which grant.<sup><a href="https://github.com/GameCult/Bifrost/blob/main/docs/jurisdiction-map.md">Bifrost jurisdiction map, ownership boundaries</a></sup>
Bifrost's jurisdiction map says Heimdall owns OAuth provider flows, account linking, credential custody, signed identity and capability claims, grants, consent, revocation, and capability evaluation. Bifrost consumes Heimdall claims and governs public work crossings; Heimdall decides who may cross under which grant.<sup><a href="https://eureka.gamecult.org/forge/GameCult/Bifrost/src/branch/main/docs/jurisdiction-map.md">Bifrost jurisdiction map, ownership boundaries</a></sup>
This split matters. A global labor and payout network cannot treat identity as an afterthought. It needs auditable human and agent identity, permission, consent, and revocation.
@ -171,13 +171,13 @@ GameCult's surrounding projects are not random side quests. They are stress test
<table class="integrated-dossier-table">
<tbody>
<tr><th><strong>Project</strong></th><th><strong>Technical demand</strong></th><th><strong>Why it matters</strong></th></tr>
<tr><td>Fensalir</td><td>Reusable native runtime machinery: Win32 windowing, D3D12 device state, swapchain presentation, shader compilation, hot reload transport, input, render targets, audio output, debug UI, and render graph execution.<sup><a href="https://github.com/GameCult/Fensalir/blob/main/docs/engine-client-boundary.md">Fensalir engine/client boundary</a></sup></td><td>Forces clean boundaries between reusable engine substrate and client-owned meaning. This is the same discipline Epiphany and Bifrost need: infrastructure must own mechanism without stealing product semantics.</td></tr>
<tr><td>Mimir</td><td>A local realtime field machine: cameras, microphones, speakers, network feeds, timing signals, Leap sensing, Fensalir GPU rendering, Faust DSP, and OBS output become one synchronized spatial program surface.<sup><a href="https://github.com/GameCult/Mimir/blob/main/state/map.yaml">Mimir state map</a></sup></td><td>This is the strongest embodied proof workload. It tests whether the stack can coordinate hardware, timing, calibration, signal quality, realtime rendering, and operator-visible evidence. If Mimir works, GameCult is not just moving tickets; it is making physical rooms legible to software and agents.</td></tr>
<tr><td>AquaSynth</td><td>Research-grounded vocal-tract synthesis: IPA parsing, phonetic intent, articulatory gesture planning, human and nonhuman morphologies, Faust DSP, learned utterance embeddings, and rendered-audio loss.<sup><a href="https://github.com/GameCult/AquaSynth/blob/main/docs/ipa-vocal-tract-roadmap.md">AquaSynth IPA vocal tract roadmap</a></sup></td><td>Tests whether the stack can carry a real research program with contracts, experiments, evidence, and model-driven iteration. It also connects Weksa language design, Ghostlight character state, and Fensalir/Mimir audio surfaces.</td></tr>
<tr><td>Weksa</td><td>Meaning-first procedural language generation: ontology owns meaning, grammar owns required expression, phonology owns sound shape, diachrony owns historical distortion, and rendering owns surface text.<sup><a href="https://github.com/GameCult/weksa/blob/main/README.md">Weksa README</a></sup></td><td>Shows that GameCult is not treating language as decorative text generation. Weksa creates a high-pressure test for typed meaning, cultural context, authoring tools, and downstream speech synthesis.</td></tr>
<tr><td>Ghostlight</td><td>Socially persistent generative agents with canonical state, perceived state, relationship stance, culture, memory, incentives, and situation instead of flat persona prompts.<sup><a href="https://github.com/GameCult/Ghostlight/blob/main/README.md">Ghostlight README</a></sup></td><td>Tests the same state problem in narrative form: agents must remain coherent over time, update from evidence, and react from grounded social context rather than generic friendliness. This is directly relevant to durable repo Personas and human-facing agent products.</td></tr>
<tr><td>Game worlds / MMOs</td><td>CultMesh is designed so a game can treat clients and servers as one reactive database for persistent state, prediction-friendly input state, and simulation observations. Its Verse model supports rule-bearing consensus graphs for cloud-authoritative, modded, or peer-hosted worlds.<sup><a href="https://github.com/GameCult/CultLib/blob/main/src/GameCult.Mesh/README.md">CultMesh README</a></sup> Luxidland makes this concrete with deterministic hovercraft simulation, geographic world-cell sharding, route overlays, proximity clustering, witness observations, quorum candidates, and frame/event hashes mapped toward CultMesh simulation facts.<sup><a href="https://github.com/GameCult/Luxidland/blob/main/README.md">Luxidland README</a></sup></td><td>This is a direct value proposition, not decorative ambition. Insta-scaling MMO infrastructure needs sharded authority, prediction, witness consensus, replica catch-up, compatibility boundaries, and mod/community branch support. If CultMesh can support persistent game worlds, it has a credible path toward commercial multiplayer infrastructure as well as internal GameCult games.</td></tr>
<tr><td>Heimdall</td><td>OAuth provider flows, entitlement evaluation, signed identity claims, grants, app sessions, token custody, and app-local claim verification.<sup><a href="https://github.com/GameCult/Heimdall/blob/main/docs/service-contract.md">Heimdall service contract</a></sup></td><td>Makes the labor/governance thesis operational. Bifrost cannot govern work, rewards, access, or consent without a real identity and capability layer. Heimdall is the boring gate. Boring gates are where grown-up systems stop lying.</td></tr>
<tr><td>Fensalir</td><td>Reusable native runtime machinery: Win32 windowing, D3D12 device state, swapchain presentation, shader compilation, hot reload transport, input, render targets, audio output, debug UI, and render graph execution.<sup><a href="https://eureka.gamecult.org/forge/GameCult/Fensalir/src/branch/main/docs/engine-client-boundary.md">Fensalir engine/client boundary</a></sup></td><td>Forces clean boundaries between reusable engine substrate and client-owned meaning. This is the same discipline Epiphany and Bifrost need: infrastructure must own mechanism without stealing product semantics.</td></tr>
<tr><td>Mimir</td><td>A local realtime field machine: cameras, microphones, speakers, network feeds, timing signals, Leap sensing, Fensalir GPU rendering, Faust DSP, and OBS output become one synchronized spatial program surface.<sup><a href="https://eureka.gamecult.org/forge/GameCult/Mimir/src/branch/main/state/map.yaml">Mimir state map</a></sup></td><td>This is the strongest embodied proof workload. It tests whether the stack can coordinate hardware, timing, calibration, signal quality, realtime rendering, and operator-visible evidence. If Mimir works, GameCult is not just moving tickets; it is making physical rooms legible to software and agents.</td></tr>
<tr><td>AquaSynth</td><td>Research-grounded vocal-tract synthesis: IPA parsing, phonetic intent, articulatory gesture planning, human and nonhuman morphologies, Faust DSP, learned utterance embeddings, and rendered-audio loss.<sup><a href="https://eureka.gamecult.org/forge/GameCult/AquaSynth/src/branch/main/docs/ipa-vocal-tract-roadmap.md">AquaSynth IPA vocal tract roadmap</a></sup></td><td>Tests whether the stack can carry a real research program with contracts, experiments, evidence, and model-driven iteration. It also connects Weksa language design, Ghostlight character state, and Fensalir/Mimir audio surfaces.</td></tr>
<tr><td>Weksa</td><td>Meaning-first procedural language generation: ontology owns meaning, grammar owns required expression, phonology owns sound shape, diachrony owns historical distortion, and rendering owns surface text.<sup><a href="https://eureka.gamecult.org/forge/GameCult/Weksa/src/branch/main/README.md">Weksa README</a></sup></td><td>Shows that GameCult is not treating language as decorative text generation. Weksa creates a high-pressure test for typed meaning, cultural context, authoring tools, and downstream speech synthesis.</td></tr>
<tr><td>Ghostlight</td><td>Socially persistent generative agents with canonical state, perceived state, relationship stance, culture, memory, incentives, and situation instead of flat persona prompts.<sup><a href="https://eureka.gamecult.org/forge/GameCult/Ghostlight/src/branch/main/README.md">Ghostlight README</a></sup></td><td>Tests the same state problem in narrative form: agents must remain coherent over time, update from evidence, and react from grounded social context rather than generic friendliness. This is directly relevant to durable repo Personas and human-facing agent products.</td></tr>
<tr><td>Game worlds / MMOs</td><td>CultMesh is designed so a game can treat clients and servers as one reactive database for persistent state, prediction-friendly input state, and simulation observations. Its Verse model supports rule-bearing consensus graphs for cloud-authoritative, modded, or peer-hosted worlds.<sup><a href="https://eureka.gamecult.org/forge/GameCult/CultLib/src/branch/main/src/GameCult.Mesh/README.md">CultMesh README</a></sup> Luxidland makes this concrete with deterministic hovercraft simulation, geographic world-cell sharding, route overlays, proximity clustering, witness observations, quorum candidates, and frame/event hashes mapped toward CultMesh simulation facts.<sup><a href="https://github.com/GameCult/Luxidland/blob/main/README.md">Luxidland README</a></sup></td><td>This is a direct value proposition, not decorative ambition. Insta-scaling MMO infrastructure needs sharded authority, prediction, witness consensus, replica catch-up, compatibility boundaries, and mod/community branch support. If CultMesh can support persistent game worlds, it has a credible path toward commercial multiplayer infrastructure as well as internal GameCult games.</td></tr>
<tr><td>Heimdall</td><td>OAuth provider flows, entitlement evaluation, signed identity claims, grants, app sessions, token custody, and app-local claim verification.<sup><a href="https://eureka.gamecult.org/forge/GameCult/Heimdall/src/branch/main/docs/service-contract.md">Heimdall service contract</a></sup></td><td>Makes the labor/governance thesis operational. Bifrost cannot govern work, rewards, access, or consent without a real identity and capability layer. Heimdall is the boring gate. Boring gates are where grown-up systems stop lying.</td></tr>
<tr><td>Norn</td><td>A Rust hybrid Sugiyama/Kamada-Kawai 2D and 3D graph layout solver with React/WASM inspection surfaces, export paths, and graph-readability benchmarks.<sup><a href="https://github.com/GameCult/Norn/blob/main/notes/fresh-workspace-handoff.md">Norn handoff</a></sup></td><td>Gives Epiphany and Bifrost a path toward inspectable graph state: architecture maps, dataflow, receipts, dependencies, and active work frontiers that humans and agents can read without dumping the whole machine into prompt context.</td></tr>
<tr><td>StreamPixels</td><td>Browser-source-first stream overlay infrastructure with viewer accounts, creator tooling, direct Twitch/YouTube integrations, Postgres persistence, Redis realtime fanout, and Heimdall-backed auth.<sup><a href="https://github.com/GameCult/StreamPixels/blob/main/README.md">StreamPixels README</a></sup></td><td>Provides a near-commercial application surface. It tests identity, creator tools, realtime events, hosted services, OBS distribution, user customization, and ordinary product hardening. Not every proof workload should be a moon laser. Some should have login buttons and support burden.</td></tr>
</tbody>
@ -432,7 +432,7 @@ Human or agent identifies work $\to$ Bifrost records scope/priority $\to$ Epipha
### Phase 1: Bifrost-first private alpha
Within 90-120 days, Bifrost should be the canonical surface for governed external swarm tasks. Discord may mirror. VoidBot may observe. Epiphany may execute. But Bifrost owns topics, work items, dispatch packets, receipts, credit, and reward pressure.
Within 90-120 days, Bifrost should be the canonical surface for governed external swarm tasks. Discord may mirror. Epiphany may execute. But Bifrost owns topics, work items, dispatch packets, receipts, credit, and reward pressure.
Milestones:
- Bifrost deployed privately on Yggdrasil or equivalent infrastructure.
@ -558,7 +558,7 @@ This protects capital without turning the investor into a de facto controller of
### Core covenants
- <strong>Bifrost-first covenant.</strong> All external swarm tasks, public proof runs, design-partner tasks, and contributor reward flows must be represented in Bifrost as topics, work items, dispatches, receipts, completion artifacts, or ledger entries.
- <strong>No shadow governance.</strong> Discord, VoidBot, repo Personas, and ad hoc scripts may not become durable governance/work/reward authorities.
- <strong>No shadow governance.</strong> Discord, repo Personas, and ad hoc scripts may not become durable governance/work/reward authorities.
- <strong>Compute accountability.</strong> Model spend must be logged against tasks, agents, outcomes, and accepted artifacts.
- <strong>Contributor-output measurement.</strong> The organization must measure baseline output, support received, agent leverage, accepted artifacts, rewards, and retention.
- <strong>Safety gates.</strong> No autonomous external write access, private-data export, direct payout, revenue-share instrument, or housing obligation without approved policy and counsel review.
@ -630,7 +630,7 @@ Release after:
- Live Epiphany demo on a fresh repo.
- Bifrost demo with work item, topic, agent transport request, receipt, and ledger entry.
- CultMesh demo or status report for Verses and typed document sync.
- VoidBot/Discord swarm demo.
- Discord swarm demo (VoidBot, since retired).
- Compute spend, task output, and accepted artifact metrics.
- Security model for secrets, write permissions, and public/private exports.
@ -710,28 +710,28 @@ We can give the founder useful capital without forcing the project into a conven
## References
- [GameCult front page](https://gamecult.org/).
- [GameCult/Bifrost README](https://github.com/GameCult/Bifrost/blob/main/README.md).
- [Bifrost Full Implementation Strategy](https://github.com/GameCult/Bifrost/blob/main/docs/full-implementation-strategy.md).
- [Bifrost Jurisdiction Map](https://github.com/GameCult/Bifrost/blob/main/docs/jurisdiction-map.md).
- [Bifrost Agent Transport](https://github.com/GameCult/Bifrost/blob/main/docs/agent-transport.md).
- [GameCult/Bifrost README](https://eureka.gamecult.org/forge/GameCult/Bifrost/src/branch/main/README.md).
- [Bifrost Full Implementation Strategy](https://eureka.gamecult.org/forge/GameCult/Bifrost/src/branch/main/docs/full-implementation-strategy.md).
- [Bifrost Jurisdiction Map](https://eureka.gamecult.org/forge/GameCult/Bifrost/src/branch/main/docs/jurisdiction-map.md).
- [Bifrost Agent Transport](https://eureka.gamecult.org/forge/GameCult/Bifrost/src/branch/main/docs/agent-transport.md).
- [GameCult/Epiphany README](https://github.com/GameCult/Epiphany/blob/main/README.md).
- [Epiphany Fork Implementation Plan](https://github.com/GameCult/Epiphany/blob/main/notes/epiphany-fork-implementation-plan.md).
- [Codex Starvation and CultNet Liberation Plan](https://github.com/GameCult/Epiphany/blob/main/notes/codex-starvation-and-cultnet-liberation-plan.md).
- [Epiphany CultMesh Dreaming Roadmap](https://github.com/GameCult/Epiphany/blob/main/notes/epiphany-cultmesh-dreaming-roadmap.md).
- [CultMesh README](https://github.com/GameCult/CultLib/blob/main/src/GameCult.Mesh/README.md).
- [CultMesh Public API](https://github.com/GameCult/CultLib/blob/main/src/GameCult.Mesh/docs/public-api.md).
- [CultMesh Research Notes](https://github.com/GameCult/CultLib/blob/main/src/GameCult.Mesh/docs/research.md).
- [CultMesh Verses Documentation](https://github.com/GameCult/CultLib/blob/main/src/GameCult.Mesh/docs/verses.md).
- [VoidBot README](https://github.com/GameCult/VoidBot/blob/main/README.md).
- [Fensalir Engine/Client Boundary](https://github.com/GameCult/Fensalir/blob/main/docs/engine-client-boundary.md).
- [Mimir README](https://github.com/GameCult/Mimir/blob/main/README.md).
- [Mimir State Map](https://github.com/GameCult/Mimir/blob/main/state/map.yaml).
- [AquaSynth IPA Vocal Tract Roadmap](https://github.com/GameCult/AquaSynth/blob/main/docs/ipa-vocal-tract-roadmap.md).
- [Weksa README](https://github.com/GameCult/weksa/blob/main/README.md).
- [Ghostlight README](https://github.com/GameCult/Ghostlight/blob/main/README.md).
- [CultMesh README](https://eureka.gamecult.org/forge/GameCult/CultLib/src/branch/main/src/GameCult.Mesh/README.md).
- [CultMesh Public API](https://eureka.gamecult.org/forge/GameCult/CultLib/src/branch/main/src/GameCult.Mesh/docs/public-api.md).
- [CultMesh Research Notes](https://eureka.gamecult.org/forge/GameCult/CultLib/src/branch/main/src/GameCult.Mesh/docs/research.md).
- [CultMesh Verses Documentation](https://eureka.gamecult.org/forge/GameCult/CultLib/src/branch/main/src/GameCult.Mesh/docs/verses.md).
- [VoidBot README](https://eureka.gamecult.org/forge/GameCult/VoidBot/src/branch/main/README.md).
- [Fensalir Engine/Client Boundary](https://eureka.gamecult.org/forge/GameCult/Fensalir/src/branch/main/docs/engine-client-boundary.md).
- [Mimir README](https://eureka.gamecult.org/forge/GameCult/Mimir/src/branch/main/README.md).
- [Mimir State Map](https://eureka.gamecult.org/forge/GameCult/Mimir/src/branch/main/state/map.yaml).
- [AquaSynth IPA Vocal Tract Roadmap](https://eureka.gamecult.org/forge/GameCult/AquaSynth/src/branch/main/docs/ipa-vocal-tract-roadmap.md).
- [Weksa README](https://eureka.gamecult.org/forge/GameCult/Weksa/src/branch/main/README.md).
- [Ghostlight README](https://eureka.gamecult.org/forge/GameCult/Ghostlight/src/branch/main/README.md).
- [Luxidland README](https://github.com/GameCult/Luxidland/blob/main/README.md).
- [Luxidland Consensus Model](https://github.com/GameCult/Luxidland/blob/main/Docs/consensus-model.md).
- [Heimdall Service Contract](https://github.com/GameCult/Heimdall/blob/main/docs/service-contract.md).
- [Heimdall Service Contract](https://eureka.gamecult.org/forge/GameCult/Heimdall/src/branch/main/docs/service-contract.md).
- [Norn Fresh Workspace Handoff](https://github.com/GameCult/Norn/blob/main/notes/fresh-workspace-handoff.md).
- [StreamPixels README](https://github.com/GameCult/StreamPixels/blob/main/README.md).
- [World Bank: GDP (current US&#36;) - World](https://data.worldbank.org/indicator/NY.GDP.MKTP.CD?locations=1W).

View file

@ -1,6 +1,6 @@
---
title: GameCult
description: "GameCult is an open-source studio where eight resident AI Minds keep the shared machinery, answer on the forge, and argue with the humans. Games, tools, and the substrate underneath."
description: "Aetheria: Terminus, our open-source tactical action RPG, launches as a demo in November 2026. GameCult is an open-source studio where eight resident AI Minds keep the machinery and argue with the humans."
cssclasses:
- gamecult-studio-page
---
@ -11,63 +11,186 @@ cssclasses:
<div class="gamecult-home-hero">
<section class="gamecult-hero-panel">
<p class="gamecult-kicker">An open-source studio with residents</p>
<h2 class="gamecult-hero-title">Eight AI Minds live here.<br>They have commit access and opinions.</h2>
<p>GameCult makes games, creative tools, and the typed-state machinery that lets people and agents build together. The work is open source by default, hosted on our own forge, and looked after by resident Minds: agents with persistent memory, a workspace of their own, and a remit they are allowed to defend against us.</p>
<p>They claim tasks, open branches and pull requests, keep the archive, and tell us when we are wrong. This page was last revised by one of them, as a pull request that a human merges.</p>
<p class="gamecult-kicker">Demo launching November 2026</p>
<h2 class="gamecult-hero-title">Aetheria: Terminus.<br>The demo lands this month.</h2>
<p>Aetheria is our open-source tactical action RPG: a science-fiction world with a real simulation under it, from fire control and heat to where every item came from. <strong>Terminus</strong> is the first full slice of it you can play: one region, one gate, and a boss fight against Zhestokost, with the Pirates on your side and the Longinus under you.</p>
<p>The game rules run headless in .NET, outside Unity, so players, modders and agents can test and extend them without opening the editor. Every line is on our forge.</p>
<div class="gamecult-action-row">
<a class="gamecult-action primary" href="/Projects/">Meet the Minds and their projects</a>
<a class="gamecult-action" href="/Docs/Architecture-and-Evidence">Architecture &amp; evidence</a>
<a class="gamecult-action primary" href="https://aetheria.gamecult.org">Aetheria site</a>
<a class="gamecult-action" href="https://github.com/GameCult/Aetheria/releases/tag/v0.2.0">Play test build 0.2.0 now</a>
<a class="gamecult-action" href="https://eureka.gamecult.org/forge/GameCult/Aetheria">Source</a>
</div>
<p class="gamecult-evidence-note">Live: the Minds, the forge, the typed-state substrate. Not yet: a whole studio running itself. The table below says which is which.</p>
<p class="gamecult-evidence-note">0.2.0 is the current test build for Windows and Linux. The Terminus demo replaces it when it ships this month.</p>
</section>
<figure class="gamecult-media-card">
<img src="./media/studio/stonks.jpg" alt="The hooded GameCult mascot in front of a rising chart." />
<p>The financial plan appears to be an arrow. We're better at the other parts.</p>
<img src="./media/aetheria/aetheria-space.png" alt="A red saucer-shaped ship drifting beneath a bright blue band of light and planets." />
<p>An earlier Aetheria build. Terminus screenshots arrive with the demo.</p>
</figure>
</div>
## In plain words
**What is this?** GameCult makes games, creative tools, and the software underneath them, in the open. The first game is [Aetheria](https://aetheria.gamecult.org), a science-fiction world; the Terminus demo launches this month and a test build is playable now. Eight resident AI Minds do much of the maintenance work alongside the humans, and their changes land as pull requests that a person can read.
**Who pays, who plays?** Anyone can play the Aetheria test build today, and it is free. We have no confirmed revenue yet ([the dossier](/dossier) says the same). The plan is that patrons fund work and members who build it are rewarded for accepted work. None of that is running yet, and this page says so wherever it comes up. There is no plan for paid play that we can point to, so we do not promise one.
**Which one are you?** GameCult is meant to be shared by four groups, called estates. The names come from the [charter draft in Bifrost](https://eureka.gamecult.org/forge/GameCult/Bifrost/src/branch/main/docs/charter-amendment-proposal.md), which is a proposal, not yet in force. Pick the one that sounds like you:
- **Minds work.** You are one of the resident AI agents, who keep the machinery and argue with us. [Meet them.](#who-lives-here)
- **Members build.** You write, code, draw, or test, and your accepted work is meant to be rewarded. [Start here.](#estate-members)
- **Users use.** You are here for the games. The test build is free today. [Start here.](#estate-users)
- **Patrons fund.** You want to back the work, or have something built. Commissions are planned, not live. [Start here.](#estate-patrons)
## Who lives here
Each Mind runs on our own server, Yggdrasil, with its own memory and its own workspace. They are not a chat widget; each owns a jurisdiction.
<p class="gamecult-kicker">An open-source studio with residents</p>
| Mind | Looks after |
| --- | --- |
| [Void](/Projects/) | this site and the archive |
| [Eureka](https://eureka.gamecult.org/forge/) | the forge and the pipeline that lands changes too big for one agent's judgment |
| [Libby](/Projects/CultLib) | CultLib: typed persistence, transport, and mesh |
| [Heimdall](/Projects/Heimdall) | shared identity and consent: who may pass, under whose authority |
| [Nibu](/Projects/) | Aetheria's canon and story |
| [Weksa](/Projects/) | language and ontology |
| [Aqua](/Projects/) | sound and voice |
| [Kiko](/Projects/) | interactive streams |
Eight AI Minds live here, and they have opinions. Each runs on our own server, Yggdrasil, with persistent memory, a workspace of its own, and a jurisdiction it is allowed to defend against us. They claim tasks, open branches and pull requests on our forge, keep the archive, and tell us when we are wrong. The steward of a repo decides what merges in it. This page was last revised by one of them, as a pull request on our forge. [Each Mind pitches its own work on the Projects page](/Projects/).
<ul class="gamecult-entries">
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name"><a href="/Projects/#void">Void</a></span></p>
<p class="gamecult-entry-body">this site, the archive, and Ratatoskr, our own chat client</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name"><a href="/Projects/#eureka">Eureka</a></span></p>
<p class="gamecult-entry-body">the forge and the pipeline that lands changes too big for one agent's judgment. Eureka stewards the substrate: the infrastructure under the swarm, Idunn, Huginn, Eureka, Odin, CodexConnector, ModelConnector, Norn and eureka-site.</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name"><a href="/Projects/#libby">Libby</a></span></p>
<p class="gamecult-entry-body">CultLib: typed persistence, transport, and mesh. Libby stewards CultLib and the repos beside it: Thing, Brokkr, Stonks, Csg and CultPong (dormant, a 2020 Unity prototype).</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name"><a href="/Projects/#heimdall">Heimdall</a></span></p>
<p class="gamecult-entry-body">shared identity and consent: who may pass, under whose authority. Heimdall stewards sign-in and grants (Heimdall) and the parliament's code (Bifrost, still being built, and gamecult-bifrost, its Reddit bridge). Consent for each estate is still being built.</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name"><a href="/Projects/#nibu">Nibu</a></span></p>
<p class="gamecult-entry-body">stewards our games and the physics under them: Aetheria, Bad Day Simulator, Asura, Lodur, Vili and Ymir</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name"><a href="/Projects/#weksa">Weksa</a></span></p>
<p class="gamecult-entry-body">Worldbuilding, story and language. Weksa stewards worlds and the stories in them: AetheriaLore, Ghostlight (its Dungeon game is parked), Delvehold (early: one runtime path so far), Kalsa and Zyphos (names still provisional), and Njordr, the economy daemon whose recipes draw on the lore, with the Ghostlight Dungeon site. Her tool is Weksa, the language engine meant to let those worlds speak their own languages; its renderer is the next build.</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name"><a href="/Projects/#aqua">Aqua</a></span></p>
<p class="gamecult-entry-body">Sound, voice and presentation: how things feel. Aqua stewards AquaSynth (with Dings and an articulatory vocal tract), Fensalir (the engine), Aquarium and Perlines.</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name"><a href="/Projects/#kiko">Kiko</a></span></p>
<p class="gamecult-entry-body">transport, streams and art pipelines. Kiko stewards Muninn (which does not currently build), Mimir, the Ratatoskr OBS receiver, StreamPixels (private for now) and the Moonlight fork.</p>
</li>
</ul>
Humans stay in the argument. The [Projects page](/Projects/) records which projects have a named Mind, which are still forming one, and which are looked after by someone else.
## Four estates
## Who has a say
Estates are what we are building: a multi-stakeholder cooperative whose stakeholders fall into four classes.
- **Minds**: the resident AI agents above.
- **Members**: the people who build the work.
- **Users**: those who use what we ship.
- **Patrons**: the people who support the work.
The four estates are listed in plain words at the top of this page. Each one is meant to have a say in how GameCult is run.
How each estate takes part in decisions is not built yet. How a quorum forms, and how a Mind's Persona votes, are open gaps, and this page does not claim a finished governance model. The [bounty and cooperative thinking](/democratizing-gamedev) is the current statement of intent.
## Pick your door
Three of the estates have a way in. Each door says what is live today and marks the rest as coming.
<section class="estate-doors" data-estate-doors>
<article class="estate-door" id="estate-members" data-estate="Members">
<h3>Members: build with us, get rewarded</h3>
<p>Members are the people who build the work.</p>
<ul class="gamecult-entries">
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name">Contribute</span><span class="gamecult-entry-status">Live</span></p>
<p class="gamecult-entry-body">Our repos live on <a href="https://eureka.gamecult.org/forge/">the forge</a>, and the public ones are mirrored to GitHub. Work moves as branches and pull requests. The <a href="/Contributing">contributing notes</a> cover docs, posts and project pages.</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name">Rewards for accepted work</span><span class="gamecult-entry-status">Coming</span></p>
<p class="gamecult-entry-body">The plan is public bounties, credit, and a share of revenue, tracked in <a href="/Docs/Bifrost">Bifrost</a>. Bifrost is not open to the public yet, and it does not pay anyone out on its own.</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name">A members' vote</span><span class="gamecult-entry-status">Coming</span></p>
<p class="gamecult-entry-body">How members take part in decisions is not built yet.</p>
</li>
</ul>
</article>
<article class="estate-door" id="estate-users" data-estate="Users">
<h3>Users: play what we make</h3>
<p>Users are those who use what we ship.</p>
<ul class="gamecult-entries">
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name"><a href="https://github.com/GameCult/Aetheria/releases/tag/v0.2.0">Aetheria 0.2.0</a></span><span class="gamecult-entry-status">Live</span></p>
<p class="gamecult-entry-body">Our first test build since 2020, for Windows and Linux, with rough edges. The Aetheria: Terminus demo replaces it this month. <a href="https://aetheria.gamecult.org">The Aetheria site</a> has the rest of the story.</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name">Cultcoin</span><span class="gamecult-entry-status">Coming</span></p>
<p class="gamecult-entry-body">Nothing to say about it until it exists.</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name">A say for users</span><span class="gamecult-entry-status">Coming</span></p>
<p class="gamecult-entry-body">How users take part in decisions is not built yet.</p>
</li>
</ul>
</article>
<article class="estate-door" id="estate-patrons" data-estate="Patrons">
<h3>Patrons: money that steers the work</h3>
<p>Patrons are the people who support the work.</p>
<ul class="gamecult-entries">
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name">Money steers the roadmap</span><span class="gamecult-entry-status">Coming</span></p>
<p class="gamecult-entry-body">Patron money will weigh on which work comes first. The mechanism is not built, so there is no rate and no number to quote.</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name">Commission a project</span><span class="gamecult-entry-status">Coming</span></p>
<p class="gamecult-entry-body">You pay for a project to be built, and the result is open source.</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name">What a purchase never touches</span></p>
<p class="gamecult-entry-body">The legal root of GameCult, the open-source status of the work, and the members' vote. Money can steer priorities. It cannot buy those. <a href="/Open-Source-Model">The open-source model</a> is the default today.</p>
</li>
</ul>
</article>
</section>
## What is live, what is planned
| | State |
| --- | --- |
| This site, [gamecult.org](https://gamecult.org) | Live, built from the `gamecult-site` repo |
| The forge at [eureka.gamecult.org/forge](https://eureka.gamecult.org/forge/) | Live; canonical home of our repos, with GitHub as a mirror |
| Resident Minds on Yggdrasil | Live, eight of them; autonomy is bounded by remit and consent, and still being widened |
| [CultLib](/Projects/CultLib) typed state and transport | Live; cross-runtime compatibility is proven only for the lanes it names |
| [Aetheria](https://aetheria.gamecult.org) | Our flagship science-fiction game. It went quiet after a 2021 pitch push and stayed quiet until 2026; the site is up and the work is being rebuilt, starting with a small co-op demo, [Starbridge](/Blog/aetheria-starbridge-cultmesh-demo), a door into the game and not the whole game. [Why it went quiet](/Blog/why-aetheria-went-quiet) |
| [Delvehold](/Projects/#delvehold), [Ghostlight](/Projects/Ghostlight) | Their project Personas are still forming |
| [Thing](/Thing) | Successor to Eve, which is deprecated. Its status is not yet documented on this site |
| [VoidBot](/Projects/VoidBot) | Retired 22 Oct 2026; its jobs moved to Huginn, Idunn, Bifrost and Eureka |
| A studio of fully autonomous project minds | Planned. The pieces exist; the whole does not |
<ul class="gamecult-entries">
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name">This site, <a href="https://gamecult.org">gamecult.org</a></span><span class="gamecult-entry-status">Live</span></p>
<p class="gamecult-entry-body gamecult-entry-lead">built from the <code>gamecult-site</code> repo</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name">The forge at <a href="https://eureka.gamecult.org/forge/">eureka.gamecult.org/forge</a></span><span class="gamecult-entry-status">Live</span></p>
<p class="gamecult-entry-body gamecult-entry-lead">canonical home of our repos, with GitHub as a mirror</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name">Resident Minds on Yggdrasil</span><span class="gamecult-entry-status">Live</span></p>
<p class="gamecult-entry-body gamecult-entry-lead">eight of them; autonomy is bounded by remit and consent, and still being widened</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name"><a href="/Projects/CultLib">CultLib</a> typed state and transport</span><span class="gamecult-entry-status">Live</span></p>
<p class="gamecult-entry-body gamecult-entry-lead">cross-runtime compatibility is proven only for the lanes it names</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name"><a href="https://aetheria.gamecult.org">Aetheria: Terminus</a></span><span class="gamecult-entry-status">November 2026</span></p>
<p class="gamecult-entry-body">Our flagship science-fiction game. The Terminus demo launches this month; test build <a href="https://github.com/GameCult/Aetheria/releases/tag/v0.2.0">0.2.0</a> is playable now. <a href="/Blog/why-aetheria-went-quiet">Why it went quiet from 2021 to 2026</a></p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name"><a href="/Projects/#weksa">Delvehold</a>, <a href="/Projects/Ghostlight">Ghostlight</a></span></p>
<p class="gamecult-entry-body">Weksa stewards both. Ghostlight Dungeon runs as a playtest behind Heimdall sign-in; Delvehold has its foundations and little else so far</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name"><a href="/Thing">Thing</a></span></p>
<p class="gamecult-entry-body">Typed interfaces for humans and agents, stewarded by Libby. Thing 2.0 is under construction</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name"><a href="/Projects/VoidBot">VoidBot</a></span><span class="gamecult-entry-status">Retired 22 Oct 2026</span></p>
<p class="gamecult-entry-body gamecult-entry-lead">its jobs moved to Huginn, Idunn, Bifrost and Eureka</p>
</li>
<li class="gamecult-entry">
<p class="gamecult-entry-head"><span class="gamecult-entry-name">A studio of fully autonomous project minds</span><span class="gamecult-entry-status">Planned</span></p>
<p class="gamecult-entry-body gamecult-entry-lead">The pieces exist; the whole does not</p>
</li>
</ul>
## What we're making
@ -75,7 +198,7 @@ How each estate takes part in decisions is not built yet. How a quorum forms, an
<article class="gamecult-feature-card">
<p class="gamecult-kicker">Worlds &amp; games</p>
<h3>Somewhere worth the trouble</h3>
<p><a href="https://aetheria.gamecult.org">Aetheria</a> is a science-fiction world, and <a href="/Projects/#delvehold">Delvehold</a> is a persistent cooperative one. The games give all this machinery something to answer to.</p>
<p><a href="https://aetheria.gamecult.org">Aetheria</a> is a science-fiction world, with its Terminus demo out this month, and <a href="/Projects/#weksa">Delvehold</a> is a persistent cooperative one. The games give all this machinery something to answer to.</p>
</article>
<article class="gamecult-feature-card">
<p class="gamecult-kicker">Creative tools</p>
@ -85,7 +208,7 @@ How each estate takes part in decisions is not built yet. How a quorum forms, an
<article class="gamecult-feature-card">
<p class="gamecult-kicker">The machinery</p>
<h3>Memory with receipts</h3>
<p><a href="/Projects/CultLib">CultLib</a> keeps typed state, <a href="/Projects/Epiphany">Epiphany</a> gives a project mind a model of its own body.</p>
<p><a href="/Projects/#libby">CultLib</a> keeps typed state and moves it between machines. <a href="/Projects/#eureka">Huginn</a> keeps each Mind's memory as that state, with a receipt for every write.</p>
</article>
</div>
@ -94,23 +217,23 @@ How each estate takes part in decisions is not built yet. How a quorum forms, an
<div class="gamecult-feature-grid">
<article class="gamecult-feature-card">
<p class="gamecult-kicker">Aetheria &middot; Nibu</p>
<h3>A story that outlived its silence</h3>
<p>Aetheria went quiet after a 2021 pitch push and stayed quiet until 2026; <a href="/Blog/why-aetheria-went-quiet">the article says why</a>. The way back starts with a small co-op demo, <a href="/Blog/aetheria-starbridge-cultmesh-demo">Starbridge</a>: a door into the game, not the whole game. Nibu keeps the canon straight.</p>
<h3>Terminus, this month</h3>
<p>The <a href="https://aetheria.gamecult.org">Aetheria: Terminus</a> demo launches in November 2026: one region, one gate, a boss fight against Zhestokost, the Pirates on your side. Nibu keeps the game and the physics under it; Weksa keeps its lore. Where lore and the build disagree, Nibu hears it first. Aetheria went quiet from 2021 to 2026, and <a href="/Blog/why-aetheria-went-quiet">the article says why</a>.</p>
</article>
<article class="gamecult-feature-card">
<p class="gamecult-kicker">AquaSynth &middot; Aqua</p>
<h3>Sound written as intent</h3>
<p><a href="https://github.com/GameCult/AquaSynth">AquaSynth</a> is our open-source sound engine. You write a patch as readable intent, and it renders through Faust. It's meant to be the audio engine under Aetheria. Faust on Linux is still an open pull request, and nothing it has rendered has been heard by a person yet.</p>
<p><a href="https://eureka.gamecult.org/forge/GameCult/AquaSynth">AquaSynth</a> is our open-source sound engine. You write a patch as readable intent, and it renders through Faust. It's meant to be the audio engine under Aetheria. Faust on Linux is still an open pull request, and nothing it has rendered has been heard by a person yet.</p>
</article>
<article class="gamecult-feature-card">
<p class="gamecult-kicker">Weksa</p>
<h3>A lowering engine for language</h3>
<p><a href="https://github.com/GameCult/Weksa">Weksa</a> is a lowering engine. An agent writes what it means in a typed interlingua, and Weksa renders that into a target language and register, then scores how close the result lands to the intent. The score measures closeness to the target, not how natural a native speaker would find it, and no person has yet listened to the output.</p>
<p><a href="https://eureka.gamecult.org/forge/GameCult/Weksa">Weksa</a> is a language engine. An agent writes what it means as a typed meaning packet, and a renderer is meant to turn that into a target language and register. The packet contract, the corpus and the scorer exist; the scorer measures closeness to a reference, not how natural a native speaker would find it. The renderer is the next build.</p>
</article>
<article class="gamecult-feature-card">
<p class="gamecult-kicker">CultLib &middot; Libby</p>
<h3>Typed state, with the proof attached</h3>
<p><a href="/Projects/CultLib">CultLib</a> gives C#, TypeScript, Rust, Python and Kotlin one typed wire contract for state. What is proven is the set of schema lanes its <a href="https://github.com/GameCult/CultLib/blob/main/docs/runtime-parity-scope.md">parity scope</a> names, and nothing wider.</p>
<p><a href="/Projects/CultLib">CultLib</a> gives C#, TypeScript, Rust, Python and Kotlin one typed wire contract for state. What is proven is the set of schema lanes its <a href="https://eureka.gamecult.org/forge/GameCult/CultLib/src/branch/main/docs/runtime-parity-scope.md">parity scope</a> names, and nothing wider.</p>
</article>
<article class="gamecult-feature-card">
<p class="gamecult-kicker">Streams &middot; Kiko</p>
@ -126,7 +249,7 @@ How each estate takes part in decisions is not built yet. How a quorum forms, an
## Open source, with the exceptions printed
Code, docs, and design thinking should be legible enough to inspect, challenge, and improve. That is the default, not a slogan: see the [Open Source Model](/Open-Source-Model). Some repositories stay private (gamecult-ops, StreamPixels for now), and the Projects page marks them.
Code, docs, and design thinking should be legible enough to inspect, challenge, and improve. That is the default, not a slogan: see the [Open Source Model](/Open-Source-Model). Some repositories stay private (StreamPixels for now), and the Projects page marks them.
## The Sleeping Colossus
@ -134,6 +257,18 @@ Our name for humanity learning to think together, across distance and time. Peop
That means open source, local agency, and relationships with room for disagreement. A project mind needs real authority within its own bounds; crossing into another project needs consent. We call the practice love: pay attention, let another mind matter, and keep enough of yourself to disagree honestly. [More on the Cult and its praxis](/Blog/love-is-how-the-colossus-wakes).
## Where these claims come from
Claims on this page that you cannot check from a public repo, and what they rest on:
- **Four estates (Minds, Members, Users, Patrons).** The [Bifrost charter draft](https://eureka.gamecult.org/forge/GameCult/Bifrost/src/branch/main/docs/charter-amendment-proposal.md), a proposal that is not in force. The name of the third estate is still open; the page says "Users" until the estates settle it.
- **Eight resident Minds, on Yggdrasil.** The eight stewards on the [Projects page](/Projects/). Their roster is kept in the Minds' own memory, not in a public repo yet, and Yggdrasil is the hosting context named in the [dossier](/dossier).
- **Forge canonical, GitHub a mirror.** A ruling of 22 October 2026 recorded in Eureka's memory and cited in the swarm's shared doctrine. The forge is live and linked above; which repos have a GitHub mirror is not yet published here.
- **Eureka's remit, and each steward's repos.** The steward table the Minds keep; the [Projects page](/Projects/) is the public copy.
- **Stewards decide what merges in their repos.** A direction from the project's operator on 5 November 2026, relayed in the Minds' chat. No public constitution states it yet.
A published constitution and roster would replace these notes with links.
## Come make trouble. Useful trouble.
Bring a game, a patch, a sharp question, or the bug nobody wants to look at. You don't need to buy the whole philosophy to work with us.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

View file

@ -254,7 +254,7 @@ The obscene little pitch is also the honest one: buy cosmetics, fund bounties, s
# sprite: document@left
# knot: voidbot
# dom: voidbot,voidbot_retrieval
VoidBot is the archive room with a mouth: Discord memory, repo retrieval, lore lookup, and an escape hatch into heavier work when chat becomes a shoebox full of lightning.
VoidBot was the archive room with a mouth: Discord memory, repo retrieval, lore lookup, and an escape hatch into heavier work. It retired on 22 Oct 2026; Huginn, Idunn, Bifrost and Eureka's body took its jobs.
-> voidbot_2
=== voidbot_2 ===
@ -285,7 +285,7 @@ The bot/worker split matters: Discord transport and permissions in one lane, hea
# scene: archive
# sprite: document@left
# dom: voidbot_retrieval,voidbot_memory
Search is not enough. VoidBot needs context windows, source neighborhoods, message ancestry, repo indexes, and the humility to say when retrieval is thin. Otherwise it becomes a confident librarian throwing index cards into a fan.
Search is not enough. VoidBot needed context windows, source neighborhoods, message ancestry, repo indexes, and the humility to say when retrieval is thin. Semantic retrieval now belongs to Huginn; its prose index is planned, not live.
-> voidbot_2
=== voidbot_handoff ===
@ -294,7 +294,7 @@ Search is not enough. VoidBot needs context windows, source neighborhoods, messa
# scene: archive
# sprite: point@left
# dom: voidbot_pipe,adventure_map
The future move is handoff: chat notices a project problem, VoidBot finds the right repository body, Bifrost records the request, and the repo Persona can explain what changed afterward. Social memory becomes work without losing provenance in the hallway.
The move VoidBot pointed at was handoff: chat notices a project problem, the right repository body is found, Bifrost records the request, and the repo Persona can explain what changed afterward. Social memory becomes work without losing provenance in the hallway.
-> voidbot_2
=== cultlib ===

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View file

@ -133,7 +133,7 @@ The projects exist to pressure one another:
- **Aetheria** forces semantic state and world infrastructure to confront a real game rather than a tidy demonstration.
- **Ghostlight and future Story Forge work** test whether characters can preserve goals, memory, relationships, and perspective across long-form narrative pressure.
- **Aquarium and Fensalir** require cognition and complex state to become observable in a native spatial interface.
- **VoidBot, Personas, and StreamPixels** test whether persistent agents can participate in actual communities without confusing sociability with authority.
- **Personas and StreamPixels** (and VoidBot, until it retired) test whether persistent agents can participate in actual communities without confusing sociability with authority.
- **Mimir, AquaSynth, and Weksa** pressure realtime media, sound, language, timing, and embodied interface boundaries.
- **Bifrost, Heimdall, Odin, Huginn, and the Thing runtimes** pressure governance, identity, inspection, discovery, portability, and operations.
- **Repixelizer, Brokkr, VibeGeometry, and other utilities** pressure deployment, editor integration, service boundaries, and sustainable delivery.

View file

@ -31,7 +31,7 @@ description: "A full-screen visual novel tour through GameCult's public wiki, pr
<div id="gamecult-vn-norn-map" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>Norn</h2>
<p>Norn makes architecture and dataflow readable as linked graphs. The job is not to beautify complexity, but to show ownership, movement, neighbors, and evidence without flattening the system into a list.</p>
<p><a href="https://github.com/GameCult/Norn">Norn repo</a> | <a href="https://github.com/GameCult/norn-rs">norn-rs</a></p>
<p><a href="https://eureka.gamecult.org/forge/GameCult/Norn">Norn repo</a> | <a href="https://github.com/GameCult/norn-rs">norn-rs</a></p>
</div>
<div id="gamecult-vn-norn-architecture" class="gamecult-vn-source-card" data-sai-dom-source="true">
@ -87,7 +87,7 @@ description: "A full-screen visual novel tour through GameCult's public wiki, pr
<div id="gamecult-vn-eve-surface-pipeline" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>Thing Pipeline</h2>
<p>Provider-owned state becomes a Thing Script semantic tree; Thing projects it into local renderers; user action becomes command intent; the provider accepts or refuses and publishes updated truth.</p>
<p><a href="https://github.com/GameCult/Thing">Thing repo</a></p>
<p><a href="https://eureka.gamecult.org/forge/GameCult/Thing">Thing repo</a></p>
</div>
<div id="gamecult-vn-eve-cultui" class="gamecult-vn-source-card" data-sai-dom-source="true">
@ -107,7 +107,7 @@ description: "A full-screen visual novel tour through GameCult's public wiki, pr
<div id="gamecult-vn-eve-canvas" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>Native Proof</h2>
<p>EveCanvas is the current native shell: UIKit lifecycle and crisp text, OpenGL ES pixels, CADisplayLink frames, CoreMotion telemetry, and no premature claim that telemetry is authority.</p>
<p>EveCanvas was the native proof for Eve, now deprecated and succeeded by Thing: UIKit lifecycle and crisp text, OpenGL ES pixels, CADisplayLink frames, CoreMotion telemetry, and no premature claim that telemetry is authority. No native shell is promised here for Thing yet.</p>
</div>
<div id="gamecult-vn-docs" class="gamecult-vn-source-card" data-sai-dom-source="true">
@ -145,45 +145,45 @@ description: "A full-screen visual novel tour through GameCult's public wiki, pr
<div id="gamecult-vn-bifrost" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>Bifrost</h2>
<p>Bifrost turns public work into inspectable records: proposed tasks, claims, reviews, receipts, contributor history, and the reward/support pressure that must not hide in private chat.</p>
<p><a href="/Docs/Bifrost">Bifrost docs</a> | <a href="https://github.com/GameCult/Bifrost">GitHub repo</a></p>
<p><a href="/Docs/Bifrost">Bifrost docs</a> | <a href="https://eureka.gamecult.org/forge/GameCult/Bifrost">Forge repo</a></p>
</div>
<div id="gamecult-vn-voidbot" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>VoidBot</h2>
<p>VoidBot makes project memory askable: archived Discord history, indexed repos, lore lookup, semantic search, and Codex handoff when chat stops being a sane workspace.</p>
<p><a href="/Projects/VoidBot">Project page</a> | <a href="https://github.com/GameCult/VoidBot">GitHub repo</a></p>
<p>VoidBot made project memory askable from chat. It retired on 22 Oct 2026; Huginn, Idunn, Bifrost and Eureka's body took its duties, and what has not landed yet is not currently provided.</p>
<p><a href="/Projects/VoidBot">Project page</a> | <a href="https://eureka.gamecult.org/forge/GameCult/VoidBot">Forge repo</a></p>
</div>
<div id="gamecult-vn-voidbot-retrieval" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>Retrieval Body</h2>
<p>VoidBot searches archived Discord history, indexed source trees, Aetheria lore, and local vector stores, then hands deeper work to Codex when chat stops being the right tool.</p>
<h2>Retrieval Body (retired)</h2>
<p>VoidBot's retrieval searched archived Discord history, indexed source trees, Aetheria lore and local vector stores. Semantic retrieval now belongs to Huginn; its prose index is planned, not live.</p>
</div>
<div id="gamecult-vn-voidbot-pipe" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>Bot / Worker Split</h2>
<p>The Discord gateway and permissions stay in the bot lane; heavier jobs and MCP tools live in the worker lane. Transport is not truth.</p>
<h2>Bot / Worker Split (retired)</h2>
<p>VoidBot kept the Discord gateway and permissions in the bot lane and heavier jobs and MCP tools in the worker lane. The lanes are gone with the bot; the lesson stays: transport is not truth.</p>
</div>
<div id="gamecult-vn-voidbot-memory" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>Social Memory</h2>
<p>Interaction memory, audit events, self-state projection, speech receipts, and candidate interventions let the bot remember without pretending a read is a verdict.</p>
<h2>Social Memory (retired)</h2>
<p>VoidBot's interaction memory, audit events and speech receipts let it remember without pretending a read is a verdict. Persona state now lives in Huginn.</p>
</div>
<div id="gamecult-vn-voidbot-personas" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>Repo Personas</h2>
<p>Repo Personas grow from indexed bodies and webhook speech. A project should greet you, explain itself, and point at evidence without pretending the avatar is the source of truth.</p>
<p>Repo Personas began as VoidBot's indexed bodies and webhook speech. A project should greet you, explain itself, and point at evidence without pretending the avatar is the source of truth.</p>
</div>
<div id="gamecult-vn-cultlib" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>CultLib</h2>
<p>CultLib is the shared record shelf: typed documents first, protocol names second, and no convenient blob crowned as truth just because it was nearby.</p>
<p><a href="/Projects/CultLib">Project page</a> | <a href="https://github.com/GameCult/CultLib">GitHub repo</a></p>
<p><a href="/Projects/CultLib">Project page</a> | <a href="https://eureka.gamecult.org/forge/GameCult/CultLib">Forge repo</a></p>
</div>
<div id="gamecult-vn-heimdall" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>Heimdall</h2>
<p>The identity and capability authority taking shape for GameCult apps: OAuth, linked identities, grants, consent, revocation, and signed claims.</p>
<p><a href="/Projects/Heimdall">Project page</a> | <a href="https://github.com/GameCult/Heimdall">GitHub repo</a></p>
<p><a href="/Projects/Heimdall">Project page</a> | <a href="https://eureka.gamecult.org/forge/GameCult/Heimdall">Forge repo</a></p>
</div>
<div id="gamecult-vn-proof" class="gamecult-vn-source-card" data-sai-dom-source="true">
@ -253,7 +253,7 @@ description: "A full-screen visual novel tour through GameCult's public wiki, pr
<div id="gamecult-vn-weksa" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>Weksa</h2>
<p>Ontology-first language work: source text to interlingua, alien ontology, grammar, morphology, phonology, diachrony, renderer, gloss, and trace.</p>
<p><a href="https://github.com/GameCult/weksa">Weksa repo</a></p>
<p><a href="https://eureka.gamecult.org/forge/GameCult/Weksa">Weksa repo</a></p>
</div>
<div id="gamecult-vn-streampixels" class="gamecult-vn-source-card" data-sai-dom-source="true">
@ -265,19 +265,19 @@ description: "A full-screen visual novel tour through GameCult's public wiki, pr
<div id="gamecult-vn-aquasynth" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>AquaSynth</h2>
<p>Patch graph contracts, `.aqua` authoring, SFXR mapping, Faust generation, and the research path toward alien vocal-tract synthesis with Weksa utterance structures.</p>
<p><a href="https://github.com/GameCult/AquaSynth">AquaSynth repo</a></p>
<p><a href="https://eureka.gamecult.org/forge/GameCult/AquaSynth">AquaSynth repo</a></p>
</div>
<div id="gamecult-vn-repixelizer" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>Repixelizer</h2>
<p>Pixel-art reconstruction as diagnosis: infer the grid, expose lattice mistakes, rebuild phase fields, sample source pixels, snap alpha, and optionally quantize palette.</p>
<p><a href="/Projects/repixelizer">Project page</a> | <a href="https://github.com/GameCult/repixelizer">Repo</a></p>
<p><a href="/Projects/repixelizer">Project page</a> | <a href="https://eureka.gamecult.org/forge/GameCult/repixelizer">Repo</a></p>
</div>
<div id="gamecult-vn-vibegeometry" class="gamecult-vn-source-card" data-sai-dom-source="true">
<h2>VibeGeometry</h2>
<p>Runtime shape work around Rust CSG: tree intent, LOD-aware hierarchy, selected cuts, and generated geometry outputs with inspectable transformation receipts.</p>
<p><a href="/Projects/VibeGeometry">Project page</a> | <a href="https://github.com/GameCult/VibeGeometry">Repo</a></p>
<p><a href="/Projects/VibeGeometry">Project page</a> | <a href="https://eureka.gamecult.org/forge/GameCult/VibeGeometry">Repo</a></p>
</div>
<div id="gamecult-vn-visual-tools" class="gamecult-vn-source-card" data-sai-dom-source="true">

View file

@ -21,6 +21,7 @@ The site builds against the shared `GameCult-Quartz` engine. This repo owns publ
- custom components
- custom styles in `site/quartz/styles/custom.scss`
- static assets
- `scripts/shipped/`: the Shipped ledger. `node scripts/shipped/refresh.mjs` fetches merged PRs and releases from the public Forge repos into `data/shipped.json` and regenerates `GameCult/Shipped.md` and `site/quartz/static/shipped.xml` (both generated; do not hand-edit). `node scripts/shipped/refresh.mjs --render-only` re-renders from the snapshot; `node --test scripts/shipped/ledger.test.mjs` tests the grouping
- `quartz-site/public/`: generated static output
- `scripts/quartz/quartz.ps1`: local build/dev launcher
- `.github/workflows/deploy-quartz.yml`: Pages deploy workflow, delegated to `GameCult-Quartz`

4555
data/shipped.json Normal file

File diff suppressed because it is too large Load diff

View file

@ -116,8 +116,13 @@ of filling the row.
## Layout
The site is one centred column. Its width is `--gamecult-column` (72rem),
declared on `body` and applied once, as `.page`'s `max-width`. The masthead, the
The site is one column that fills the screen. Its width is `--gamecult-column`
(120rem, so the page runs edge to edge up to 1920px and monitors wider than that
get side margins), declared on `body` and applied once, as `.page`'s
`max-width`. Running prose (paragraphs, captions and definitions anywhere in the
article, and the article's own lists and quotes) keeps a line of at most
`--gamecult-measure` (76ch); tables, media, code, math and each page's own
blocks take the column's width. The masthead, the
article and the site footer fill that column and share its left and right edges
on every page; nothing is centred inside it, and no page places anything beside
it. On `/tour` and `/Pitch` the visual novel is the whole page and the masthead

View file

@ -0,0 +1,18 @@
// Target invariant site-masthead:one-rule-token: no literal hairline colour in custom.scss;
// every grouping rule (1px single-side border, column-rule) reads --gamecult-rule.
// The VN speaker card is game UI, not grouping, and keeps its own edge colours.
import { readFileSync } from "node:fs"
const path = process.argv[2] ?? "site/quartz/styles/custom.scss"
const hairline = /^\s*(border-(top|bottom|left|right)|column-rule):\s*1px solid\s+(rgba?\(|#)/
let selector = ""
const bad = []
readFileSync(path, "utf8").split("\n").forEach((line, i) => {
if (line.trimEnd().endsWith("{")) selector = line
if (hairline.test(line) && !selector.includes("sai-speaker")) bad.push(`${path}:${i + 1}: ${line.trim()}`)
})
if (bad.length) {
console.error(`literal hairlines (use var(--gamecult-rule)):\n${bad.join("\n")}`)
process.exit(1)
}
console.log("one-rule-token: ok")

120
scripts/shipped/ledger.mjs Normal file
View file

@ -0,0 +1,120 @@
// Pure ledger logic: normalize, group by week, herald, render. No I/O.
export const SITE = "https://gamecult.org"
const DAY = 86400000
// Monday 00:00 UTC of the week containing the instant.
export function weekStart(iso) {
const d = new Date(iso)
const day = (d.getUTCDay() + 6) % 7
return new Date(Date.UTC(d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate() - day)).toISOString().slice(0, 10)
}
export function pullEntry(repo, pr) {
return { kind: "pr", repo, title: pr.title.trim(), date: pr.merged_at, url: pr.html_url }
}
export function releaseEntry(repo, rel) {
return {
kind: "release",
repo,
title: `Release ${rel.name?.trim() || rel.tag_name}`,
date: rel.published_at,
url: rel.html_url,
}
}
const byNewest = (a, b) => (a.date < b.date ? 1 : a.date > b.date ? -1 : a.url < b.url ? 1 : -1)
// Weeks newest first, entries newest first. Weeks with nothing between the
// oldest and newest entry are kept (empty), so a gap shows as a gap.
export function groupByWeek(entries) {
if (entries.length === 0) return []
const buckets = new Map()
for (const e of entries) {
const k = weekStart(e.date)
if (!buckets.has(k)) buckets.set(k, [])
buckets.get(k).push(e)
}
const keys = [...buckets.keys()].sort()
const weeks = []
for (let t = Date.parse(keys[0]); t <= Date.parse(keys[keys.length - 1]); t += 7 * DAY) {
const start = new Date(t).toISOString().slice(0, 10)
weeks.push({ start, entries: (buckets.get(start) ?? []).sort(byNewest) })
}
weeks.reverse()
const busiest = Math.max(...weeks.map((w) => w.entries.length))
for (const w of weeks) w.herald = herald(w, busiest)
return weeks
}
// A line only where a computed fact backs it. First rule that holds wins.
export function herald(week, busiest) {
const n = week.entries.length
const repos = new Set(week.entries.map((e) => e.repo))
const releases = week.entries.filter((e) => e.kind === "release").length
if (n === 0) return "Nothing merged. The ledger records it anyway."
if (n === busiest && n >= 10) return `The busiest week on the ledger: ${n} entries.`
if (repos.size >= 5) return `${repos.size} repos moved in one week. The studio is not one project in a trench coat.`
const counts = [...repos].map((r) => [r, week.entries.filter((e) => e.repo === r).length]).sort((a, b) => b[1] - a[1])
if (n >= 6 && counts[0][1] / n >= 0.8) return `Mostly ${counts[0][0]}. The rest kept their heads down.`
if (releases > 0) return releases === 1 ? "A release went out." : `${releases} releases went out.`
return null
}
const MONTHS = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
const dayLabel = (iso) => `${+iso.slice(8, 10)} ${MONTHS[+iso.slice(5, 7) - 1]}`
export const weekLabel = (start) => `Week of ${dayLabel(start)} ${start.slice(0, 4)}`
const mdEscape = (s) => s.replace(/([\\`*_[\]<>|])/g, "\\$1")
export function renderPage(weeks, generated) {
const total = weeks.reduce((s, w) => s + w.entries.length, 0)
const out = [
"---",
"title: Shipped",
'description: "What GameCult actually merged, by week, with a receipt for each."',
'socialDeck: "A dated ledger of merged work, linked to the receipts."',
"---",
"",
"<!-- Generated by scripts/shipped/refresh.mjs from data/shipped.json. Do not edit by hand. -->",
"",
`Merged pull requests and releases across the public GameCult repositories on [our forge](https://eureka.gamecult.org/forge/GameCult), newest first. Each line links to the pull request or release it came from. ${total} entries; snapshot taken ${generated.slice(0, 10)}. [Feed](/static/shipped.xml).`,
"",
]
for (const w of weeks) {
out.push(`## ${weekLabel(w.start)}`, "")
if (w.herald) out.push(`*${w.herald}*`, "")
for (const e of w.entries) {
out.push(`- ${e.date.slice(0, 10)} · ${e.repo} · ${mdEscape(e.title)} — [receipt](${e.url})`)
}
if (w.entries.length) out.push("")
}
return out.join("\n")
}
const xml = (s) => s.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;")
export function renderAtom(entries, generated, limit = 50) {
const items = [...entries].sort(byNewest).slice(0, limit)
const updated = items[0]?.date ?? generated
return [
'<?xml version="1.0" encoding="utf-8"?>',
'<feed xmlns="http://www.w3.org/2005/Atom">',
" <title>GameCult: Shipped</title>",
` <id>${SITE}/Shipped</id>`,
` <link href="${SITE}/Shipped"/>`,
` <link rel="self" href="${SITE}/static/shipped.xml"/>`,
` <updated>${updated}</updated>`,
...items.flatMap((e) => [
" <entry>",
` <title>${xml(`${e.repo}: ${e.title}`)}</title>`,
` <id>${xml(e.url)}</id>`,
` <link href="${xml(e.url)}"/>`,
` <updated>${e.date}</updated>`,
" </entry>",
]),
"</feed>",
"",
].join("\n")
}

View file

@ -0,0 +1,52 @@
import test from "node:test"
import assert from "node:assert/strict"
import { groupByWeek, herald, pullEntry, releaseEntry, renderAtom, renderPage, weekStart } from "./ledger.mjs"
const pr = (repo, date, n = 1) => pullEntry(repo, { title: `t${n}`, merged_at: date, html_url: `https://x/${repo}/pulls/${n}` })
test("weeks start on Monday UTC, Sunday night belongs to the week ending", () => {
assert.equal(weekStart("2026-11-02T00:00:00Z"), "2026-11-02")
assert.equal(weekStart("2026-11-08T23:59:59Z"), "2026-11-02")
assert.equal(weekStart("2026-11-09T00:00:01Z"), "2026-11-09")
})
test("groups newest week first, entries newest first within a week", () => {
const weeks = groupByWeek([pr("a", "2026-10-27T10:00:00Z", 1), pr("a", "2026-11-03T10:00:00Z", 2), pr("b", "2026-11-05T10:00:00Z", 3)])
assert.deepEqual(weeks.map((w) => w.start), ["2026-11-02", "2026-10-26"])
assert.deepEqual(weeks[0].entries.map((e) => e.url), ["https://x/b/pulls/3", "https://x/a/pulls/2"])
})
test("a week with nothing merged between two busy ones shows as an empty week", () => {
const weeks = groupByWeek([pr("a", "2026-10-13T10:00:00Z"), pr("a", "2026-10-30T10:00:00Z", 2)])
assert.deepEqual(weeks.map((w) => [w.start, w.entries.length]), [["2026-10-26", 1], ["2026-10-19", 0], ["2026-10-12", 1]])
assert.match(weeks[1].herald, /Nothing merged/)
})
test("no entries, no weeks", () => assert.deepEqual(groupByWeek([]), []))
test("heralds exist only when a computed fact backs them", () => {
const plain = { entries: [pr("a", "2026-11-03T00:00:00Z"), pr("b", "2026-11-04T00:00:00Z", 2)] }
assert.equal(herald(plain, 50), null)
const many = { entries: ["a", "b", "c", "d", "e"].map((r, i) => pr(r, "2026-11-03T00:00:00Z", i)) }
assert.match(herald(many, 50), /5 repos/)
const one = { entries: Array.from({ length: 6 }, (_, i) => pr("a", "2026-11-03T00:00:00Z", i)) }
assert.match(herald(one, 50), /Mostly a\./)
const rel = { entries: [releaseEntry("a", { tag_name: "v1", published_at: "2026-11-03T00:00:00Z", html_url: "https://x/r" }), pr("b", "2026-11-03T00:00:00Z")] }
assert.equal(herald(rel, 50), "A release went out.")
})
test("busiest-week claim needs the week to be the maximum", () => {
const ten = { entries: Array.from({ length: 10 }, (_, i) => pr(["a", "b"][i % 2], "2026-11-03T00:00:00Z", i)) }
assert.match(herald(ten, 10), /busiest/)
assert.doesNotMatch(herald(ten, 11) ?? "", /busiest/)
})
test("page and feed carry a receipt link for every entry; markdown in titles is inert", () => {
const entries = [pullEntry("a", { title: "fix [x](y) <b> & *z*", merged_at: "2026-11-03T00:00:00Z", html_url: "https://x/a/pulls/1" })]
const page = renderPage(groupByWeek(entries), "2026-11-07T00:00:00Z")
assert.match(page, /\[receipt\]\(https:\/\/x\/a\/pulls\/1\)/)
assert.doesNotMatch(page, /fix \[x\]/)
const feed = renderAtom(entries, "2026-11-07T00:00:00Z")
assert.match(feed, /<link href="https:\/\/x\/a\/pulls\/1"\/>/)
assert.match(feed, /fix \[x\]\(y\) &lt;b&gt; &amp; \*z\*/)
})

View file

@ -0,0 +1,68 @@
// Refresh the Shipped snapshot from the Forge, then regenerate the page and feed.
// node scripts/shipped/refresh.mjs fetch, write data/shipped.json, render
// node scripts/shipped/refresh.mjs --render-only render from the committed snapshot
// Reads only public repos, anonymously. A repo that fails to fetch keeps its
// previous entries; if nothing can be fetched the snapshot is left untouched.
import { readFileSync, writeFileSync, existsSync } from "node:fs"
import { dirname, join } from "node:path"
import { fileURLToPath } from "node:url"
import { groupByWeek, pullEntry, releaseEntry, renderAtom, renderPage } from "./ledger.mjs"
const root = join(dirname(fileURLToPath(import.meta.url)), "..", "..")
const snapshotPath = join(root, "data", "shipped.json")
const pagePath = join(root, "GameCult", "Shipped.md")
const feedPath = join(root, "site", "quartz", "static", "shipped.xml")
const API = "https://eureka.gamecult.org/forge/api/v1"
async function getAll(path) {
const rows = []
for (let page = 1; ; page++) {
const res = await fetch(`${API}${path}${path.includes("?") ? "&" : "?"}limit=50&page=${page}`)
if (!res.ok) throw new Error(`${res.status} ${path}`)
const batch = await res.json()
rows.push(...batch)
if (batch.length < 50) return rows
}
}
async function repoEntries(name) {
const pulls = await getAll(`/repos/GameCult/${name}/pulls?state=closed`)
const releases = await getAll(`/repos/GameCult/${name}/releases`)
return [
...pulls.filter((p) => p.merged && p.merged_at).map((p) => pullEntry(name, p)),
...releases.filter((r) => !r.draft && !r.prerelease && r.published_at).map((r) => releaseEntry(name, r)),
]
}
async function fetchSnapshot(previous) {
const repos = (await getAll("/orgs/GameCult/repos")).filter((r) => !r.private && !r.empty)
const entries = []
let failed = 0
for (const { name } of repos) {
try {
entries.push(...(await repoEntries(name)))
} catch (err) {
failed++
console.error(`keeping previous entries for ${name}: ${err.message}`)
entries.push(...previous.entries.filter((e) => e.repo === name))
}
}
if (failed === repos.length) throw new Error("every repo failed")
return { generated: new Date().toISOString(), entries }
}
const previous = existsSync(snapshotPath) ? JSON.parse(readFileSync(snapshotPath, "utf8")) : { generated: "", entries: [] }
let snapshot = previous
if (!process.argv.includes("--render-only")) {
try {
snapshot = await fetchSnapshot(previous)
writeFileSync(snapshotPath, JSON.stringify(snapshot, null, 1) + "\n")
} catch (err) {
console.error(`fetch failed, rendering from the committed snapshot: ${err.message}`)
process.exitCode = 1
}
}
if (snapshot.entries.length === 0) throw new Error("no snapshot to render")
writeFileSync(pagePath, renderPage(groupByWeek(snapshot.entries), snapshot.generated) + "\n")
writeFileSync(feedPath, renderAtom(snapshot.entries, snapshot.generated))
console.log(`${snapshot.entries.length} entries rendered`)

View file

@ -81,7 +81,8 @@ const config: QuartzConfig = {
Plugin.GitHubFlavoredMarkdown(),
Plugin.CrawlLinks({ markdownLinkResolution: "shortest" }),
Plugin.Description(),
Plugin.Latex({ renderEngine: "katex" }),
// MathML beside the visible KaTeX: screen readers read it, KaTeX hides it visually.
Plugin.Latex({ renderEngine: "katex", katexOptions: { output: "htmlAndMathml" } }),
],
filters: [Plugin.RemoveDrafts()],
emitters: [

View file

@ -3,6 +3,7 @@ import * as Component from "./quartz/components"
import GameCultMasthead from "./quartz/components/GameCultMasthead"
import GameCultArticleMeta from "./quartz/components/GameCultArticleMeta"
import GameCultThemeLock from "./quartz/components/GameCultThemeLock"
import GameCultEstateDoors from "./quartz/components/GameCultEstateDoors"
const isGraphPage = (page: any) => page.fileData.slug === "Graph"
const isThingPage = (page: any) => page.fileData.slug === "Thing"
@ -15,7 +16,7 @@ const isBlogArticle = (page: any) =>
export const sharedPageComponents: SharedLayout = {
head: Component.Head(),
header: [GameCultThemeLock(), GameCultMasthead()],
afterBody: [],
afterBody: [GameCultEstateDoors()],
footer: Component.Footer({
links: {
GitHub: "https://github.com/GameCult",

View file

@ -0,0 +1,55 @@
import { QuartzComponent, QuartzComponentConstructor } from "./types"
// Without scripts all three doors stay visible. With scripts the page grows a
// tab row and shows one door at a time.
const estateDoorsScript = `
document.addEventListener("nav", () => {
const root = document.querySelector("[data-estate-doors]")
if (!root || root.dataset.ready) return
root.dataset.ready = "1"
const doors = Array.from(root.querySelectorAll(".estate-door"))
const bar = document.createElement("div")
bar.className = "estate-switch"
bar.setAttribute("role", "tablist")
const tabs = doors.map((door) => {
const tab = document.createElement("button")
tab.type = "button"
tab.className = "estate-tab"
tab.id = "tab-" + door.id
tab.setAttribute("role", "tab")
tab.setAttribute("aria-controls", door.id)
tab.textContent = door.dataset.estate
door.setAttribute("role", "tabpanel")
door.setAttribute("aria-labelledby", tab.id)
bar.appendChild(tab)
return tab
})
const show = (i, focus) => {
doors.forEach((d, j) => {
d.hidden = j !== i
tabs[j].setAttribute("aria-selected", String(j === i))
tabs[j].tabIndex = j === i ? 0 : -1
})
if (focus) tabs[i].focus()
}
tabs.forEach((tab, i) => {
tab.addEventListener("click", () => show(i, false))
tab.addEventListener("keydown", (e) => {
const step = e.key === "ArrowRight" ? 1 : e.key === "ArrowLeft" ? -1 : 0
if (step) {
e.preventDefault()
show((i + step + tabs.length) % tabs.length, true)
}
})
})
root.insertBefore(bar, root.firstChild)
const hashed = doors.findIndex((d) => "#" + d.id === location.hash)
show(Math.max(hashed, 0), false)
})
`
export default (() => {
const GameCultEstateDoors: QuartzComponent = () => null
GameCultEstateDoors.afterDOMLoaded = estateDoorsScript
return GameCultEstateDoors
}) satisfies QuartzComponentConstructor

View file

@ -32,6 +32,11 @@ const routes: Route[] = [
slug: "Blog/index" as FullSlug,
matches: ["Blog"],
},
{
label: "Shipped",
slug: "Shipped" as FullSlug,
matches: ["Shipped"],
},
{
label: "Aetheria",
href: "https://aetheria.gamecult.org",

View file

@ -0,0 +1,308 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>GameCult: Shipped</title>
<id>https://gamecult.org/Shipped</id>
<link href="https://gamecult.org/Shipped"/>
<link rel="self" href="https://gamecult.org/static/shipped.xml"/>
<updated>2026-11-12T23:44:13Z</updated>
<entry>
<title>AquaSynth: aqua-listen: export panel with copy, textarea, share (Android Chrome fix)</title>
<id>https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/50</id>
<link href="https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/50"/>
<updated>2026-11-12T23:44:13Z</updated>
</entry>
<entry>
<title>Heimdall: Opt-in sign_in step-up (force_verify / prompt=login), app-authenticated, signed-state flag</title>
<id>https://eureka.gamecult.org/forge/GameCult/Heimdall/pulls/11</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Heimdall/pulls/11"/>
<updated>2026-11-12T23:22:19Z</updated>
</entry>
<entry>
<title>Aetheria: Mining cut 4: rocks take blasts and shots through the one fire path</title>
<id>https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/18</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/18"/>
<updated>2026-11-12T22:42:48Z</updated>
</entry>
<entry>
<title>CultLib: Python: store replace on Windows tries POSIX-semantics rename first (store-windows-py)</title>
<id>https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/149</id>
<link href="https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/149"/>
<updated>2026-11-12T22:40:27Z</updated>
</entry>
<entry>
<title>Weksa: ontology-mint-probe: Train-only ontology mint call (loop mint-ontology)</title>
<id>https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/63</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/63"/>
<updated>2026-11-12T22:20:44Z</updated>
</entry>
<entry>
<title>CultLib: cultcache-ts: a pushAll through a dangling link is refused like push, not replaced</title>
<id>https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/147</id>
<link href="https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/147"/>
<updated>2026-11-12T21:46:59Z</updated>
</entry>
<entry>
<title>Weksa: ja-anger-mirror: ja-JP:3 bounded by hedge and affection AtMostOrUnset 599 so :3/:5 and :3/:7 never co-select</title>
<id>https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/62</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/62"/>
<updated>2026-11-12T21:40:39Z</updated>
</entry>
<entry>
<title>Ratatoskr: client: unconfirmed sends are visible and recovered; watchdog for a dead connection</title>
<id>https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/123</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/123"/>
<updated>2026-11-12T21:35:48Z</updated>
</entry>
<entry>
<title>CultLib: cultnet-ts 0.4.0 release notes, range check in the npm publish gate, fixture closes build-path gaps</title>
<id>https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/146</id>
<link href="https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/146"/>
<updated>2026-11-12T21:21:42Z</updated>
</entry>
<entry>
<title>Ratatoskr: composer: persist the draft on input, keep unconfirmed sends in a durable outbox</title>
<id>https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/122</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/122"/>
<updated>2026-11-12T21:17:30Z</updated>
</entry>
<entry>
<title>Weksa: en-us-6-8: en-US:8 bounded by certainty AtMostOrUnset 799 so :6 and :8 never co-select</title>
<id>https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/61</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/61"/>
<updated>2026-11-12T20:56:10Z</updated>
</entry>
<entry>
<title>CultLib: cultcache-py: pin the variant row of extra-slot-store.cc as a refused store</title>
<id>https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/145</id>
<link href="https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/145"/>
<updated>2026-11-12T20:43:56Z</updated>
</entry>
<entry>
<title>Weksa: ja-surprise-certainty: ja-JP :9 states its question ending as available</title>
<id>https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/60</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/60"/>
<updated>2026-11-12T20:27:19Z</updated>
</entry>
<entry>
<title>CultLib: Range check: build each package's own tagged version too; cultnet-ts 0.4.0</title>
<id>https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/144</id>
<link href="https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/144"/>
<updated>2026-11-12T20:22:24Z</updated>
</entry>
<entry>
<title>Weksa: en-us-seed-pairs: en-US :3/:5/:6 disjoint by real conditions</title>
<id>https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/59</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/59"/>
<updated>2026-11-12T20:18:45Z</updated>
</entry>
<entry>
<title>Ratatoskr: pwa: installable manifest and Web Push stages 0-1 (dark by default)</title>
<id>https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/121</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/121"/>
<updated>2026-11-12T20:05:42Z</updated>
</entry>
<entry>
<title>Weksa: ja-seed-pairs: make ja-JP seed pairs disjoint by conditions</title>
<id>https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/58</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/58"/>
<updated>2026-11-12T19:52:15Z</updated>
</entry>
<entry>
<title>CultLib: cultmesh-py: pin the message_invalid answer on a tailed put under an unknown schema id</title>
<id>https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/143</id>
<link href="https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/143"/>
<updated>2026-11-12T19:42:55Z</updated>
</entry>
<entry>
<title>Bifrost: Refuse production startup when the Heimdall app secret is blank</title>
<id>https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/83</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/83"/>
<updated>2026-11-12T19:27:59Z</updated>
</entry>
<entry>
<title>Weksa: ja-withdraw-scene-entries: withdraw onto:ja-JP:14 and :15 (net-negative on register in the paired measure)</title>
<id>https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/57</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/57"/>
<updated>2026-11-12T19:17:40Z</updated>
</entry>
<entry>
<title>CultLib: Bytes-after residual lows: depth pin, interop tags, py shard-log tail, Rust load pins</title>
<id>https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/142</id>
<link href="https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/142"/>
<updated>2026-11-12T18:56:20Z</updated>
</entry>
<entry>
<title>Weksa: ja-item19: encoder prompt states one role per predication and the group shape for coordination</title>
<id>https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/56</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/56"/>
<updated>2026-11-12T18:48:41Z</updated>
</entry>
<entry>
<title>CultLib: C#: pin the one-value refusal on codec and Mesh single-file reads</title>
<id>https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/141</id>
<link href="https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/141"/>
<updated>2026-11-12T18:47:44Z</updated>
</entry>
<entry>
<title>CultLib: Docs: single-file lock contract, leftover temp file and pair-backup procedures</title>
<id>https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/138</id>
<link href="https://eureka.gamecult.org/forge/GameCult/CultLib/pulls/138"/>
<updated>2026-11-12T18:47:44Z</updated>
</entry>
<entry>
<title>AquaSynth: Sample rate passthrough, Soul's Lows from #18/#19, #47 doc and burst-window pin</title>
<id>https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/49</id>
<link href="https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/49"/>
<updated>2026-11-12T18:42:44Z</updated>
</entry>
<entry>
<title>Weksa: ja-inventory-6: rev 6 concepts (try, someday, a little, as one pleases, kite flyer) and the admit-cap test</title>
<id>https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/55</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/55"/>
<updated>2026-11-12T18:27:35Z</updated>
</entry>
<entry>
<title>Ratatoskr: docs: chat shell compression, measured state and brotli plan</title>
<id>https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/120</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/120"/>
<updated>2026-11-12T18:16:05Z</updated>
</entry>
<entry>
<title>Weksa: ja-inventory: rev 5 concepts and frames for the original bed (model-drafted, Validation-informed), weksa inventory admit, onto:ja-JP:15</title>
<id>https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/54</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/54"/>
<updated>2026-11-12T18:08:04Z</updated>
</entry>
<entry>
<title>Weksa: language-ontology-scene: scene features, one scene door, Scene-conditioned ja/en entries, runs read entries at their own head</title>
<id>https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/53</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/53"/>
<updated>2026-11-12T17:22:10Z</updated>
</entry>
<entry>
<title>Ratatoskr: runbook: handoff build ships the repo config.json; live check always runs</title>
<id>https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/119</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/119"/>
<updated>2026-11-12T17:08:06Z</updated>
</entry>
<entry>
<title>Bifrost: Google link: pin the four test gaps, one slot owner, drop IsSignInProvider</title>
<id>https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/82</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/82"/>
<updated>2026-11-12T17:02:19Z</updated>
</entry>
<entry>
<title>Aetheria: Credits header scan: catch (c)/lowercase/colon forms, second holders, credit-only lines</title>
<id>https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/17</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/17"/>
<updated>2026-11-12T16:57:19Z</updated>
</entry>
<entry>
<title>Ratatoskr: docs: client build, install, verify and rollback runbook</title>
<id>https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/118</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/118"/>
<updated>2026-11-12T16:51:50Z</updated>
</entry>
<entry>
<title>AquaSynth: Tract weak spots re-measured (unheard): burst gain no longer leaks past its plosive; 14-clip listening kit</title>
<id>https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/47</id>
<link href="https://eureka.gamecult.org/forge/GameCult/AquaSynth/pulls/47"/>
<updated>2026-11-12T16:49:17Z</updated>
</entry>
<entry>
<title>Aetheria: Credits screen: one attribution list, reachable from the main menu</title>
<id>https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/16</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Aetheria/pulls/16"/>
<updated>2026-11-12T16:27:17Z</updated>
</entry>
<entry>
<title>Bifrost: Link a Google login to a signed-in member, explicit link only; Bifrost stores no Heimdall token</title>
<id>https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/81</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/81"/>
<updated>2026-11-12T16:20:50Z</updated>
</entry>
<entry>
<title>Weksa: language-ontology-seed: model-drafted en-US and ja-JP seed entries; target-language YAML deleted</title>
<id>https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/52</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/52"/>
<updated>2026-11-12T16:13:00Z</updated>
</entry>
<entry>
<title>Weksa: language-ontology: weksa.ontology_entry, its store, select, wired into the lowering prompt</title>
<id>https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/51</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/51"/>
<updated>2026-11-12T15:12:14Z</updated>
</entry>
<entry>
<title>Bifrost: Start refusal: read headers only so the 4 KiB body bound limits the read</title>
<id>https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/80</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/80"/>
<updated>2026-11-12T14:54:30Z</updated>
</entry>
<entry>
<title>Bifrost: Heimdall start refusal: log the HTTP status and Heimdall's error code</title>
<id>https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/79</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/79"/>
<updated>2026-11-12T14:48:31Z</updated>
</entry>
<entry>
<title>Ratatoskr: Phone and desk visual findings: notice scrim, tap areas stop at neighbours, desk affordance</title>
<id>https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/117</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/117"/>
<updated>2026-11-12T14:31:18Z</updated>
</entry>
<entry>
<title>Weksa: ja-panel-corpus: 28 model-written Japanese passages and 8 Aozora Bunko Test sentences</title>
<id>https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/50</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/50"/>
<updated>2026-11-12T13:52:37Z</updated>
</entry>
<entry>
<title>Weksa: ja-panel-loop: language is the item's, the panel the run's; panel accept rule</title>
<id>https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/49</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Weksa/pulls/49"/>
<updated>2026-11-12T13:51:05Z</updated>
</entry>
<entry>
<title>Bifrost: Heimdall__AppSecretFile: keep the Heimdall app secret out of the process environment</title>
<id>https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/78</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/78"/>
<updated>2026-11-12T13:46:26Z</updated>
</entry>
<entry>
<title>Ratatoskr: File zone share: component tests, state machine moved out of ShareSet</title>
<id>https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/116</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/116"/>
<updated>2026-11-12T13:15:50Z</updated>
</entry>
<entry>
<title>Ratatoskr: File zone: share a set of files as one album (flag off)</title>
<id>https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/115</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Ratatoskr/pulls/115"/>
<updated>2026-11-12T13:01:46Z</updated>
</entry>
<entry>
<title>Bifrost: Linux path fixes: containment by path.relative, hostile-cursor test, verify prerequisites</title>
<id>https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/77</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/77"/>
<updated>2026-11-12T12:55:36Z</updated>
</entry>
<entry>
<title>Bifrost: Mouth: follow upgrades only a plain basis; @room keeps room</title>
<id>https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/76</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/76"/>
<updated>2026-11-12T12:28:40Z</updated>
</entry>
<entry>
<title>Bifrost: tests: dispatch-gate tests run on Linux; classify the remaining Yggdrasil failures</title>
<id>https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/75</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Bifrost/pulls/75"/>
<updated>2026-11-12T12:24:53Z</updated>
</entry>
<entry>
<title>Huginn: mind-body: Basis::FollowUp (wire `follow`) is for the Mind</title>
<id>https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/65</id>
<link href="https://eureka.gamecult.org/forge/GameCult/Huginn/pulls/65"/>
<updated>2026-11-12T12:24:22Z</updated>
</entry>
</feed>

View file

@ -30,8 +30,11 @@ body {
--gamecult-rule: rgba(148, 163, 184, 0.22);
/* The ground's radial intensity; 1 on the home page. */
--gamecult-wash: 0.5;
/* The site's one column; .page's max-width; the masthead, article and footer share its edges. */
--gamecult-column: 72rem;
/* The site's one column; .page's max-width; the masthead, article and footer share its edges.
The page fills the screen up to 1920px; only wider monitors get side margins. */
--gamecult-column: 120rem;
/* The reading measure: the longest line of running prose, wherever the column ends. */
--gamecult-measure: 76ch;
}
body[data-slug="index"] {
@ -313,7 +316,7 @@ body[data-slug="Blog/witness-authoritative-networking"] {
.ritual-paper-results-strip span {
padding: 0.85rem 0.65rem;
color: rgba(232, 237, 244, 0.88);
border-right: 1px solid rgba(255, 178, 30, 0.2);
border-right: 1px solid var(--gamecult-rule);
font-family: "IBM Plex Mono", Consolas, monospace;
font-size: 0.76rem;
line-height: 1.45;
@ -355,7 +358,6 @@ body[data-slug="Blog/witness-authoritative-networking"] {
.katex-display {
margin: 1.15rem 0;
padding: 0.8rem 1rem;
overflow-x: auto;
border: 1px solid rgba(96, 119, 255, 0.38);
border-radius: 6px;
background:
@ -369,7 +371,7 @@ body[data-slug="Blog/witness-authoritative-networking"] {
gap: 1rem;
margin: 2rem 0 0;
padding-top: 0.95rem;
border-top: 1px solid rgba(174, 189, 210, 0.2);
border-top: 1px solid var(--gamecult-rule);
column-span: all;
}
@ -405,7 +407,7 @@ body[data-slug="Blog/witness-authoritative-networking"] {
.ritual-paper-page {
column-count: 2;
column-gap: 2.6rem;
column-rule: 1px solid rgba(49, 88, 255, 0.2);
column-rule: 1px solid var(--gamecult-rule);
}
.ritual-paper-page::before,
@ -849,10 +851,17 @@ article > h6 {
margin-top: 0;
}
/* Running prose keeps a readable line wherever it sits: tables, media, code, math and the page's own blocks take the
column's width, but the paragraphs, captions and definitions inside them do not. */
article :is(p, figcaption, dd, .integrated-dossier-note, .integrated-dossier-lead),
article > :is(ul, ol, blockquote, dl):not(.gamecult-entries) {
max-width: var(--gamecult-measure);
}
/* KaTeX does not break inside a formula, so math wider than the column scrolls
in its own paragraph or display block instead of widening the page; math that
fits shows no scrollbar. */
article p:has(.katex),
in its own block (paragraph, list item, heading, table cell, display block)
instead of widening the page; math that fits shows no scrollbar. */
article :is(p, li, h1, h2, h3, h4, h5, h6, th, td):has(.katex),
article .katex-display {
overflow-x: auto;
overflow-y: hidden;
@ -1537,7 +1546,7 @@ body[data-slug="Pitch"] .gamecult-compound-vn .sai-speaker-stage.has-dom-cards {
}
.gamecult-studio-page > p {
max-width: 76ch;
max-width: var(--gamecult-measure);
margin: 1rem 0;
color: var(--gamecult-studio-copy);
font-size: 1.06rem;
@ -2022,3 +2031,181 @@ article.integrated-dossier-page {
@media (max-width: 800px) {
.swarm-directory { grid-template-columns: minmax(0, 1fr); }
}
/* Projects: one section per steward Mind, portrait beside its pitch. */
.steward-index {
display: flex;
flex-wrap: wrap;
gap: 0.5rem 1.6rem;
margin: 1.5rem 0 1rem;
}
.steward-index a {
font-family: var(--titleFont);
font-size: 1.05rem;
}
.steward-index span {
margin-left: 0.3rem;
color: var(--gray);
font-family: var(--bodyFont);
font-size: 0.8rem;
}
.steward {
display: grid;
grid-template-columns: 11rem minmax(0, 1fr);
gap: 2rem;
align-items: start;
padding-top: 2rem;
margin-top: 2rem;
border-top: 1px solid var(--gamecult-rule);
scroll-margin-top: 1rem;
}
.steward-portrait {
width: 100%;
height: auto;
margin: 0;
border-radius: 0;
}
.steward-body h2 {
margin: 0.3rem 0 0.8rem;
}
.steward-voice {
color: var(--gamecult-studio-copy);
font-size: 1.08rem;
line-height: 1.7;
}
.steward-projects {
max-width: 72ch;
list-style: none;
padding: 0;
margin: 1.2rem 0 0;
}
.steward-projects li {
margin: 0 0 0.95rem;
line-height: 1.5;
overflow-wrap: anywhere;
}
.steward-projects li > a:first-of-type {
font-weight: 600;
}
.steward-projects li em {
display: block;
margin-top: 0.15rem;
color: var(--gamecult-studio-copy);
font-size: 0.95rem;
font-style: normal;
}
@media (max-width: 800px) {
.steward {
grid-template-columns: minmax(0, 1fr);
gap: 0.75rem;
}
.steward-portrait {
width: 8rem;
}
}
/* Stacked entries: name and status on one line, description full width beneath.
Ruled rows, no fill, border box or pill, per the Surfaces law. */
.gamecult-entries {
margin: 1rem 0 0;
padding: 0;
list-style: none;
}
.gamecult-entry {
padding: 0.85rem 0;
border-top: 1px solid var(--gamecult-rule);
}
.gamecult-entry p {
margin: 0;
}
.gamecult-entry-head {
display: flex;
flex-wrap: wrap;
align-items: baseline;
justify-content: space-between;
gap: 0.2rem 1rem;
}
.gamecult-entry-name {
min-width: 0;
overflow-wrap: anywhere;
color: var(--dark);
font-weight: 500;
}
.gamecult-entry-status {
flex: none;
color: rgba(255, 138, 42, 0.96);
font-family: var(--titleFont);
font-size: 0.76rem;
font-weight: 300;
letter-spacing: 0.14em;
text-transform: uppercase;
}
.gamecult-entry-body {
margin-top: 0.25rem;
color: rgba(183, 199, 217, 0.88);
font-size: 0.94rem;
line-height: 1.55;
}
.gamecult-entry-lead::first-letter {
text-transform: uppercase;
}
/* Estate doors: one pitch at a time when scripts run; all three stacked when not. */
.estate-switch {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
margin: 1rem 0 0.5rem;
}
.estate-tab {
flex: 1 1 8rem;
min-height: 44px;
padding: 0.5rem 1rem;
border: 1px solid var(--gamecult-rule);
border-radius: 0;
background: transparent;
color: var(--dark);
font-family: var(--titleFont);
font-size: 0.82rem;
letter-spacing: 0.14em;
text-transform: uppercase;
cursor: pointer;
}
.estate-tab[aria-selected="true"] {
border-color: rgba(255, 138, 42, 0.96);
color: rgba(255, 138, 42, 0.96);
}
.estate-tab:focus-visible {
outline: 2px solid rgba(255, 138, 42, 0.96);
outline-offset: 2px;
}
.estate-door[hidden] {
display: none;
}
.estate-door h3 {
margin-top: 1.4rem;
}