Skip to content

Latest commit

 

History

History
392 lines (306 loc) · 24.1 KB

File metadata and controls

392 lines (306 loc) · 24.1 KB

Content drops

Generation 17 — the breathing drop (2026-08-23, same day as 16)

Generation 16's recorded residue, paid the same day: all eleven full-grid species gain second animation frames for all four stages — 44 grids — so they finally breathe alongside the archetype-composed species instead of standing still. The pose is the archetype B-frames' own idiom, MEASURED before it was imitated: every one of the seven relevant archetypes changes 6–14 cells per frame, all in the bottom rows — feet slide a pixel, a wing-tip drops, a blob's base bulges — and the face never moves (the breath is the JS bob; the pose is the ground contact). The draft is a weight sway: the lowest painted row shifts one column, the row above shifts the other way, clamped at the sprite's own margins; every pair was then eye-checked through the real composer (44/44 animate, diffs 10–24 composed cells, no severed outlines). gridElderB is drafted from the ELDER grid, never the adult — a fallback there would make the old creature hop a full row between frames. Each pack's history records the change; palpack validate's optional-slot sweep (added with generation 16) gets its first B-frame workload.

Generation 16 — the elders' drop (2026-08-23)

No new species — the ones already here got their old age. All eleven full-grid species (15 thistledown, 16 puddlejack, 17 glowtail, 18 latchback, 19 hushwing, 32 pondwink, 33 humblebee, 34 duskmoth, 36 hucklebear, 37 gloamgecko, 38 ripplechub) gain a gridElder: until now every one of them rendered its unchanged adult art at the stage the game's emotional payoff lands on, because the client's designed fallback (GridElder ?? GridAdult) had never been fed. The stoop follows the archetype elders' own recipe (B211/B212, W95): one row shorter, one row lower, feet planted — drafted by removing each adult's most vertically-redundant upper row (face rows protected), then reviewed sprite by sprite against the real composer. Each pack's history records the change.

The drop also closed a fence hole found on the way in: palpack validate swept only the required trio (gridBaby/Teen/Adult), so a malformed gridElder would have signed clean and then triggered the client's degrade-whole-species rule wearing a valid signature. The optional slots (elder + the four B-frames) are validated with the same structure and floors whenever present — this generation is the rule's first real workload.

Still open, recorded: the eleven carry no second animation frame (gridAdultB and kin), so they render still while archetype-composed species breathe. Forty-four grids of authored animation is its own drop, not a rider on this one.

Generation 15 — the gap-filling trio (2026-08-23)

Three studio-authored species against the roster survey's thinnest lanes — the shell, bloom and jelly archetypes each had one resident or none among the packs, and Neon and Alloy were one-member elements. All three are v1 sparse-feature species (the Wickroot pattern — an overlay on the archetype body, no custom grids), authored against a safe-cell map intersected across teen/adult/elder and both animation frames, because a feature cell replaces blindly and the teen and elder grids carry their banding in different cells than the adult (Cairnling's overlay plugs all three stages' accent cells; the first draft left teen pink at (7,10) and elder at (6,7)/(6,9)).

id key name archetype base shiny
39 cairnling Cairnling shell #7E7A6E stone #5EBC2F overgrown moss
40 trundlecap Trundlecap bloom #C1443C amanita #702BCA twilight violet
41 bottlestorm Bottlestorm jelly #C82FEE plasma violet #0D7CF2 clear-sky blue

Bottlestorm was drafted #3D7BFF storm-blue and W64's gene sweep refused it — a −24° hue-shifted genome lands dE00 1.7 from canonical Bitto, generation 13's own defect class, caught pre-publish this time by running the merged suite first. The whole hue wheel was then swept under the same bar (±30° both directions vs every canonical, 2.3 floor, 10.0 pairwise): the only open regions at body-legible lightness are electric violet and lime. The storm went violet — plasma reads more Neon than sky ever did — and the refused blue survives as the shiny. Final clearances: Cairnling 12.1, Trundlecap 5.1, Bottlestorm 11.1 against the worst genome-reachable crossing; 12.0+ canonical. CIEDE2000 re-validated against W64's recorded 4.1 before any number was believed.

Id 35 stays unspent — the Peatling record holds.

Generation 14 — the regions channel's first drop (2026-08-23)

24 tags-only entries against compiled regions — island / coastal / alpine, B191's own fishing-pole vocabulary, two tags maximum, only where the geography is beyond argument. The third channel finally carries content, four generations after the client learned to read it (B469): tag chips appear on the found-place row of EXISTING Pals, and channel-verify went fully green for the first time in its history — all three channels verified, cached, and agreeing with the signed registry on a fresh live profile.

Generation 13 — the recolour (2026-08-22, same day as 12)

W64's colour clauses caught all three generation-12 species on the first full-suite run against the merged content: Hucklebear 4.1 dE00 from Loamcap, Gloamgecko 7.2 from Mossbyte, Ripplechub 8.5 from Puddlejack — plus a genome-reachable crossing (a hue-shifted Pilotwire minting a Pal that reads as Ripplechub at 1.3 dE00). The same class generation 10 recoloured seven species for. Fixed pack-side and republished within the hour: Hucklebear #8A2E42 deep berry-wine, Gloamgecko #445C51 dark dusk-moss, Ripplechub #A83D8F magenta koi with a seafoam shiny. The last pairing was solved structurally — hue rotation preserves lightness, so the wine at L≈33 cannot meet the magenta at any rotation. Full suite green at publish.

Generation 12 — PUBLISHED (2026-08-22, signed from Key Vault custody)

Three species from the guidlands intake's CC0 tier (DCSS rltiles, dcss-mon/animals/ — licence quoted from the drive's own credits.txt: "COURTESY (CC0, no credit required)"), drafted by sprite-draft.mjs in wave 58's batch and hand-finished in wave 59: all three stage grids authored per species, eyes deliberate (E iris + W white), premiere DNA minted by FreezeHarness, palpack validate green at 24 species.

id key name archetype element premiere seed
36 hucklebear Hucklebear quad Bloom the thicket kept one sweet
37 gloamgecko Gloamgecko crawler Mist the wall was warm all night
38 ripplechub Ripplechub fish Tide the jetty saved a crumb

Id 35 stays unspent — it is the record of the pulled Peatling (generation 11's provenance question), and spending it would erase what the gap remembers.

Published the same day on the owner's word: merged from staged/gen12, the vault key derive-checked against the pinned public half before signing, generation 12 signed and verified (clears the current key, refused by the retired one), live on the CDN within a minute, and a fresh browser profile on the live game cached generation 12 end to end.

Generation 11 — STAGED, unsigned · drop 2026-W34 ("The Guidlands Wave")

Staged 2026-08-21 and waiting on the signing ceremony. THREE species and three Playground scenes, drawn from the owner's asset drive (the3dcoder/guidlands) through the repo's own pipelines — the first drop whose art starts outside this project.

Pondwink (pondwink, id 32, Tide, quad) — a frog that is never quite where you saw it. Humblebee (humblebee, id 33, Bloom, wisp) — modest ambitions, immaculate manners. Duskmoth (duskmoth, id 34, Mist, wisp) — stitched from the last ten minutes of evening.

A FOURTH WAS STAGED AND PULLED, and id 35 is deliberately left unspent. Peatling was drafted from bog_troll.png under the guidlands repo's client/public/assets/bestiary/, and carried a credit line calling that art owner-produced. It is not: that repo's own credits.txt files the Admurin Mega Pack under PURCHASED (commercial licence) covering "every per-species sheet under bestiary/", and scripts/bake_bestiary.py names exactly three drawn exceptions — mud_crab, giant_toad, zombie — none of them this one. The pack's terms are not on the drive, and a signed drop REDISTRIBUTES art rather than merely using it in a build, which is where pack terms most often differ. The owner pulled it rather than publish a provenance question. The draft stays in the app repo marked HOLD; nothing here claims id 35.

Each of the three carries hand-finished baby/teen/adult grids (drafted by tools/sprite-draft.mjs from CC0 DCSS rltiles, finished by hand — provenance in every source file's credit), lore, stat and need biases, and a premiere DNA minted by FreezeHarness mint.

Playground scenesbackgrounds/backgrounds-9816c8dd.json replaces the single-scene file: Lantern Thicket (unchanged, 🪙900), Peat Hollow (🪙900), Porchlight Lane (🪙900), Honeydawn Field (free). Honeydawn was proposed at 800, which the rulebook refuses — v1 prices are free or at-or-above 900, so that eight Pals never undercut one — and the owner took the free branch rather than the floor. It is the first free scene the CHANNEL has carried (Meadow is free but compiled), so a keeper with no coins can still change where their Pals live. A republish is a wholesale replace, so the three arrive and Lantern Thicket keeps its price and its owners.

Client requirement met: v2.21.0 (live on both origins, verified 2026-08-21) understands every channel this drop uses — the backgrounds channel has shipped since v1.33.

Generation 9 — 2026-07-29 · Drop 2026-W31 ("Two Small Comforts")

A wardrobe-only drop, and the first publish under B205's guards.

Enamel Mug (hat-enamel-mug, hat, common, 🪙120) Navy rim, one chip, and more tea through it than most cupboards see in a lifetime. Retired to a warmer job.

Yarn End (scarf-yarn-end, scarf, common, 🪙120) Too short for the row it was meant for. Too good to throw out. 🧶

Both were authored and gated in the app repo by W68-DROP, which assembles them into the canonical bytes publish emits and reads them back through the shipped WardrobeFile.Read, counted — both channel readers are fail-soft by design, so a rejected piece is silent, and "it did not throw" is the posture that cost generation 4 two species. Hat and scarf rather than props on purpose: the shop's tier-heading branches exclude props and the priced ladder stops at Rare, so a coin relic prop would render as a bare tile with no heading and a dead tap target. Filling that cell is an app release, not a drop.

What the guards reported, and why the third line is the point:

freshness:   baseline generation 8 byte-identical to the live registry
append-only: backgrounds 1 → 1 entry, none removed
append-only: wardrobe   1 → 3 entries, none removed
append-only: 6 species and 2 channels compared against generation 8

Wave 40 came one command short of publishing from a generation-7 clone whose palpack.mjs contained zero references to backgrounds. That would have re-issued an already-signed generation and silently unpublished Lantern Thicket — a 900-coin background — for everyone who had bought it, with no error anywhere. The channel guard now derives its set from the previous payload's own keys rather than a named list of two, and the freshness gate refuses any clone that is not byte-identical to live.

Verified live after publish: registry reports generation 9, the cosmetics file carries all three pieces (both new ones and The Lamplighter), and the backgrounds channel still answers 200.

Generation 1 — 2026-07-23

Emberimp (species 14) — premiere code: e1f20c80-000e-c5e0-5f54-29a6afd8f631 Paste it in the Hatchery seed box (requires app content sync — the app fetches this repo automatically). Weekly weight-table rolls arrive with the next app release; until then the premiere code is the only wild source. 🔥

Generation 3 — 2026-07-24 · Drop 2026-W30 ("First Weekly Drop")

The first drop assembled through the Barn queue: filed → operator-approved in /admin → signed. Custom 3-stage art debuts (pack v2).

Thistledown (species 15, Bloom) — premiere code: e0915087-000f-c9ad-88cf-33c76fb4819c A wandering tuft that collects overheard wishes. Founder phrase: "make a wish" 🌾

Puddlejack (species 16, Tide) — premiere code: 5f9cbe7b-0010-c9b0-0315-a7d139d76a54 A puddle that jumped back. Founder phrase: "after the rain" 💧

Glowtail (species 17, Neon) — premiere code: b3ce4dbe-0011-cf70-1a1b-498cd46fdebb A neon gecko whose tail writes names in the dark. Founder phrase: "night market" ✨

Also in this drop: Emberimp weight 60 → 69 + lore touch-up (dex-edit, first staged-pool publish). Paste any premiere code in the Hatchery seed box (content sync fetches this repo automatically).

Generation 4 — 2026-07-25 · Drop 2026-W31 ("Logbook and Fog")

Two species, and the first content-delivered cosmetics ever to ship: pieces now ride a v2 species pack as an additive field, exactly as v1.7 designed and nobody had yet used.

Latchback (species 18, Alloy) — premiere code: 3f5b0022-0012-cd25-4ecd-1c7a8005c4e6 A walking strongbox that files everything and returns nothing. Premiere seed: "sign the logbook" 🧰 Carries Paper Admiral (hat, uncommon, 350 coins).

Hushwing (species 19, Mist) — premiere code: ebfdbe91-0013-cecb-7058-58378a025dfa A fog-wader that lifts one wing and the morning goes quiet. Premiere seed: "quiet as weather" 🌫️ Carries Moth Hour (aura, rare, 900 coins) — the first aura with a shape in it rather than a dither, three moths that never lose a cell on any body at any stage.

Paste either premiere code in the Hatchery seed box; content sync fetches this repo automatically, and the cosmetics appear in the shop's Style tab once it lands.

That last sentence was wrong and this drop was broken. Neither species appeared for anyone and neither cosmetic existed; see generation 5. Left standing rather than quietly corrected, because a ledger that edits its own claims after the fact is not a ledger.

Held from this drop, and why, in drafts/2026-W31/: Geodecoil (art not at the bar — the adult read as architecture rather than a serpent) and Wander Bell (its milestone slot was filled by a compiled piece in game v1.8.0, so it needs either a coin price or a new milestone — owner's call).

Generation 5 — 2026-07-25 · Withdrawal (no new content)

Generation 4 made Latchback and Hushwing invisible to every live client, and this generation is the rollback. No species added, none removed, both cosmetics arrays stripped.

The cause was one missing line, four layers down. palpack has always written "slot": "hat" as a string; System.Text.Json will not turn a string into an enum without a JsonStringEnumConverter, and the game's sync options did not carry one. So every cosmetic-carrying pack threw while deserializing — and the throw happened inside the blanket catch that wraps whole-pack ingestion, so what got dropped was not the cosmetic but the species. Both new Pals hatched as dormant mystery eggs.

The documented promise — "a malformed cosmetic is skipped, never sinks its species" — could not hold, because the failure landed before any per-item code ran. That is now a rule with teeth rather than a comment: pack cosmetics are read through Core/Cosmetics/PackCosmetics.cs off a raw JsonElement, parsed and validated one piece at a time, and no additive pack field may ever cost a species (game decision D57).

Recorded late: this entry was written with generation 6, because generation 5 shipped as an emergency and the ledger was not updated at the time. Noting that rather than backdating it.

Generation 6 — 2026-07-25 · Drop 2026-W31, cosmetics half ("Folded, Moth-lit, Wandering")

The cosmetics from generation 4, re-shipped now that the client that can read them (game v1.9.0) is the one actually running. No species changes — same six ids, same premiere codes as generation 4; only the two packs carrying wardrobe pieces moved.

Paper Admiral — hat, uncommon, 350 coins, on Latchback's pack. Folded from yesterday's news. Commands a fleet of one.

Moth Hour — aura, rare, 900 coins, on Hushwing's pack. The first aura with a shape in it rather than a dither: three moths that never lose a cell on any body at any stage. They think you're the porch light. Every night, all three of them, absolutely certain.

Wander Bell — scarf, rare, 900 coins, on Latchback's pack, and the first wandering piece: it is only in stock roughly one week in three, on a schedule derived from its own key, never away more than two weeks, and the shop says when it is due back. Some weeks the stall has one; most weeks the hook is bare.

Why it is a coin rare rather than the elder trophy it was drafted as: that milestone slot was taken by a compiled piece in game v1.8.0, and granting two scarves for one achievement is worse than repricing. The name then earned a mechanic instead of losing one.

Signed only after the signed pack bytes were read back through the shipped PackCosmetics reader — every piece parsing, both rares still Rare, the wandering flag surviving the wire — which is the check generation 4 did not have.

Generation 7 — 2026-07-25 · The first piece on the wardrobe channel

No species changes. One cosmetic, and it is the first ever delivered by cachepal-cosmetics-v1 — the file cosmetics now have to themselves (D61), rather than riding inside a creature's pack.

The Lamplighter — hat, relic, 2600 coins. They walked the whole street at dusk so nobody would come home to a dark house. No one ever thanked them. They went out again the next night.

Hat/Relic was one of only two empty cells in the shop's whole ladder, so this fills a real hole rather than crowding a full shelf. Requires game v1.10.0 — older clients skip the registry's wardrobe reference as an unknown field and simply see a shop without it.

Two things about the art are firsts. Its single glint is the one * the shipped relics all carry, so it belongs to the same family as The Long Thread and Signal Lantern. And it is the only hat in the game that never clips: every painted cell is inside rows 1–4 and columns 4–13, which is the box that survives all nine hat anchors including shell's (−4, +5) — the offset that shaves a corner off every other hat. Verified against all 27 archetype × stage combinations, 22 of 22 cells landing on every one.

Generation 8 — 2026-07-27 · The first scene on the backgrounds channel

No species changes, no cosmetics. One Playground background, and it is the first ever delivered by cachepal-backgrounds-v1 — the channel scenes now have to themselves (B90), built on the same isolation lesson the wardrobe file was (D61): its parse path cannot reach the species registry, so a bad scene can never cost a creature.

Lantern Thicket — Playground background, 900 coins. Paper lanterns against the dusk. The fireflies came to see.

Requires game v1.33.0. Older clients skip the registry's backgrounds reference as an unknown field and simply see the three compiled scenes, exactly as before.

The art travels inside the signed file. A background needs pixels, and the obvious shape — a URL to this host — was refused: it would add a second fetch path with its own failure modes, put an unverified remote URL inside a CSS url(), and break offline, because the client caches files rather than downloads. Carrying the PNG as base64 inside the SHA-256-pinned file means the pixels inherit the registry's Ed25519 chain for free, render from cache with no network at all, and cannot be swapped by anyone without this key.

Why this drop waited for a reload rather than a deploy. The client returns early from a content sync when the generation is not newer — and that check sits ABOVE the channel fetches. So a device that had synced generation 8 while still running v1.32.0 would never have fetched this file at all: not on update, not ever, until generation 9. Nothing would have errored; the scene simply would not exist. So v1.33.0 went live first, and this was signed only after the household confirmed it had actually reloaded — the same shape as the generation 6 wait, for a sharper reason.

palpack publish learned the channel in this drop, rather than the reference being pasted in by hand — a hand-added ref would have been silently dropped by the next publish, which rebuilds the payload from the repo. backgrounds/CURRENT names the live file in one line, and background keys are now append-only for the blunt reason cosmetic keys are: a scene that vanishes stops resolving, and its owner's Playground heals back to the Meadow. The bag row survives, so a republished scene returns to whoever bought it — but the thing they paid for stops appearing, which is the same broken promise a vanished hat would be.

Signed only after the signed file bytes were read back through the shipped BackgroundFile reader — one scene, price 900, band and rest spots intact, art arriving as a data URI — which is the check generation 4 did not have.

Generation 10 — drop 2026-W32 (2026-08-04)

Twelve new species, ids 20–31, taking the live roster from twenty to thirty-two. Six counterpart pairs — a made thing and a grown thing on the same body plan, opposite in nature — spread across the archetypes the roster was thinnest in: serpent, jelly, fish, crawler, bloom and shell each had one or two species and now have three or four.

Eight arrive day-one. Four are earned on the expedition ladder, gated as whole pairs rather than halves: the crawlers (tallymite, shinglecoat) at the Dusk Market's rung, the shells (bramblewick, palisade) at the Chalk Downs'. A pair exists to be read against itself, so gating one and not the other would hand a keeper half a joke. The rungs are the ladder's own, read through MilestoneCatalog rather than retyped, and the counter behind them sums over every Pal a keeper has raised INCLUDING THE DEPARTED — a species that appeared on somebody's board must never leave it because a Pal died.

Seven species were recoloured, all of them pack-side, and the compiled roster was not touched. Four for canonical separation: glowtail, hushwing, latchback, thistledown sat below W64-ROSTER's dE00 bar of 10 against species they could genuinely be confused with, the worst pair at 5.0 — near the just-noticeable difference. Those six collisions had existed since the registry began and nothing had ever measured them, because W64 enumerated only the fourteen COMPILED species. It now reads the content repo too (B343).

Three more for something a canonical measurement cannot see. W64's group C sweeps every species across its whole ±30° hue range and requires it to stay a just-noticeable difference from every other species AT REST — and a hue-shifted glitchfin read as sendling at 0.7 and as puddlejack at 1.5. A mutated Pal that looks like a different species. Twenty-eight crossings across eight directed pairs, all in one blue/cyan cluster, cleared by moving sendling, pilotwire and puddlejack.

Why this drop was signed twice. The first attempt produced a generation 10 containing SIX species while eighteen were being published: the session's working copy was reverted underneath the tool between validate (which counted 18) and publish (which read 6). Every existing gate was satisfied, because they all ask whether the tree is internally consistent and current against the live registry, and a smaller tree is both. Nothing reached the CDN only because the push had not happened — luck, not a control.

palpack publish now REFUSES an unpinned tree: PALPACK_EXPECT_COMMIT and PALPACK_EXPECT_SPECIES must be set, and both are re-checked immediately before the first byte is written, because the whole point is that the tree can move mid-run. The commit is the pin rather than the count alone, since eighteen species can be the wrong eighteen. Attack-proven three ways before this drop was signed with it.