Castopod in the pasture

Castopod 1.15.5 (peers/castopod.sh): the official image on the shared MySQL, its podcast @pod made and published through
its admin pages, episodes through its REST API, its fediverse queue sent by spark. scenarios/castopod.sh, 15 checks: the
follow, an episode reaching alice with its sound, her like, boost and comment landing there, the unfollow, statistics
(from NodeInfo2).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LsXgEaXee4GCU1hwYgPJXw
This commit is contained in:
thepraandClaude Opus 5.5 committed 2026-10-06 11:12:06 +02:00
1 parent 69ab8e50eb
commit 0310bbe0f9
6 files changed
+182

No files matched your search

+16
View File
@@ -854,6 +854,22 @@ without a port, before it gives out its OAuth client.
never as the relay's boost), and nobody's home; a persona's public post goes to the relays, nothing less public, and
reaches Mastodon through both (forwarded on its proof, and announced).
### Castopod 1.15.5
- **A podcast is the actor** (`@pod@castopod.test`); its people are not. It accepts follows by itself.
- **An episode goes out as a Note that only links to the episode's page**; the page serves a `PodcastEpisode` (its words
in `description`, its sound in `audio`, its cover in `image`). PrivaPub reads `PodcastEpisode`, and a Note that is
only a link to its author's episode takes the episode's sound, title, cover and words (one signed fetch), so the post
plays.
- **Publishes NodeInfo2 only** (`/.well-known/x-nodeinfo2`); PrivaPub's server description falls back to it.
- **Running it:** the official image on the shared MySQL with a file cache; `spark install:init-database` (a second run
stops before seeding: `db:seed AppSeeder`) and `install:create-superadmin`; a podcast is made and published only
through its admin pages (a 1400px square cover, a 3:1 banner and an empty `location_name` are required, or the form
fails); episodes through its REST API (`restapi.*` appended to the `.env` it writes at each start); its fediverse
queue goes out through `spark fediverse:broadcast`.
- **Pasture evidence (2026-10-06, `tools/pasture/scenarios/castopod.sh`):** 15 checks pass: alice follows the podcast,
an episode reaches her with its sound, her like, boost and comment land there, the unfollow, statistics.
### Forte 26.9.10
- **Portable identities (FEP-ef61):** a channel's actor is `https://<server>/.well-known/apgateway/did:key:z6Mk…/actor`,