This release adds 1 notable feature for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+14 more
Summary
AI summaryFixed SubstrateNotFound exit‑code downgrade, fresh‑substrate lint noise, RL1 false positives on non‑L1 substrates, and JSON‑Schema over‑strictness.
Full changelog
Seven-round post-release audit of v0.5.9 surfaced four real bugs. This hotfix closes all four. Two audit rounds on the fixed tree confirm no new regressions. Zero contract-shape changes. Operators upgrade with pip install -U myco and nothing else.
Bugs fixed
-
SubstrateNotFoundexit code silently downgraded — v0.5.8 promised exit 4 for "no substrate at this path" butbuild_contextwrapped the exception inUsageError, downgrading to exit 3. Fixed: re-raiseSubstrateNotFoundwith the helpful message. CI scripts that special-caseexit == 4now work. -
Fresh-substrate lint noise — every freshly-germinated substrate reported 10 findings on first
myco immune(5 MEDIUM SE1 + 1 MEDIUM SH1 + 4 LOW RL1) due to the canon template stamping kernel-path_reffields. Fixed: template trimmed to minimal. Fresh substrate now reports 0 findings out of the box. -
RL1 noisy on substrates without L1 protocol — RL1 fired 7 findings on every fresh substrate. Fixed: RL1 early-returns when
docs/architecture/L1_CONTRACT/protocol.mdis absent. The check is only meaningful for substrates that mirror Myco's L1 tree. -
Canon JSON-Schema over-strict — v0.5.9 schema required
subsystems.*.doc; Python validator didn't. IDE false positives. Fixed: schema matches kernel requirements.
Additional improvement
.myco_state/unsafe_writes.logaudit trail — everyMYCO_ALLOW_UNSAFE_WRITE=1bypass writes one line (<ISO-8601 UTC> <target>) to this log. Resolves a stale v0.5.9 TODO. Sets up the ledger a future SE-class dim will count from.
Seven-round audit summary
| Round | Scope | Result |
|---|---|---|
| 1 | Static gates (pytest / ruff / mypy / immune / hunger) | all green |
| 2 | E2E all 18 verbs on fresh substrate | all exit 0 |
| 3 | MCP server boot + tool registration | 18 verbs + 9 aliases = 27 tools |
| 4 | Static code (bare excepts, type-ignores, TODOs) | 1 stale TODO fixed (→ log) |
| 5 | Edge cases (empty canon, missing, corrupt) | exit codes 3/4/5 all correct |
| 6 | Fresh PyPI install | works; 25 dims discovered |
| 7 | Deep cross-check v0.5.9 canon on v0.5.10 kernel | backward-compat confirmed |
Gate status at release
- pytest: 757 passing (2 new tests: RL1 skip + unsafe_writes.log)
- ruff + ruff format: clean
- mypy src/myco: 0 errors
- myco immune on self: exit 0, 0 findings
- myco immune on fresh substrate: exit 0, 0 findings (was 10 at v0.5.9)
- myco hunger: clean
- python -m build + twine check: PASSED × 2
- jsonschema-validate live
_canon.yaml: OK - jsonschema-validate fresh canon: OK
- Exit-code matrix verified: 3 / 4 / 5 all preserved
Upgrading
pip install -U myco
That's it. Existing v0.5.9 substrates with the full canon shape continue to load and lint cleanly under v0.5.10. Fresh germinations get a minimal canon that produces 0 findings out of the box.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About Battam1111/Myco
Agent-first cognitive substrate with 18 manifest-driven verbs (germinate / eat / assimilate / sporulate / traverse / immune / molt / …) and 25 lint dimensions enforcing contract invariants mechanically (R1–R7). Cross-session / cross-project memory via a self-validating filesystem graph — AST + markdown-link derived, not embedding-based. Provider-agnostic by design: MP1/MP2 dims forbid LLM-SDK imports in the kernel and plugin tree. Editable-default install. Works with Claude Code, Cursor, Windsurf, Zed, VS Code, and any MCP client.
Related context
Related tools
Beta — feedback welcome: [email protected]