Skip to content

Releases

Odyssey v0.2.0 — Mojo 1.0.0 stable port

Choose a tag to compare

@mvillmow mvillmow released this 26 Aug 15:21
Immutable release. Only release title and notes can be modified.
v0.2.0
7b111e8

Odyssey v0.2.0 — Mojo 1.0.0 stable port

219 commits since v0.1.0-pkgtest (2026-05-20). This release is the full Mojo 1.0.0 stable port.

Highlights

  • Mojo 1.0.0 stable migration complete — toolchain pinned mojo==1.0.0 (MAX 26.5), full codebase migrated off 0.26-era APIs (pointer origins, unsafe_* memory ops, __deinit__, def/fn unification), docs + ADRs updated (ADR-018: uv-managed toolchain).
  • All 363 test files pass on 1.0.0 stable (just validate green end-to-end: 61 executables built, full test suite, --Werror clean).
  • Rename: ProjectOdyssey → Odyssey — module namespace src/projectodyssey → src/odyssey.
  • 16 new primitives (10 layers + 6 optimizers); new optimizers: Adan, Sophia (clipped-preconditioned update), Muon variants (Hyperball, LionMuon, SF-NorMuon), Muon delegator dispatch; autograd vector-Jacobian products.
  • 6 neural-network architectures training end-to-end (LeNet-5, MLP, ResNet-18, GoogLeNet, VGG-16, MobileNetV1, AlexNet) with synthetic-data smoke mode for all 8 train entrypoints.
  • Security hardening: 100+ CodeQL/CVE alerts cleared (tarslip, ReDoS, workflow injection, least-privilege tokens), pinned base image digests.

Upstream Mojo bug work

Documented in docs/dev/mojo-1.0.0-regressions.md. 14 issues filed against modular/modular:

  • Filed: #6939 (return-move UAF), #6940 (Scalar pow compile), #6941 (VM-limit abort), #6958/#6959/#6963, #6965 (closure-capture UAF), #6445 (KGEN JIT), #6433 (VM reservation)
  • Closed & verified fixed on 1.0.0 (2026-08-26): #6959 (Atomic escape — workaround removed, original API restored), #6413/#6445 (KGEN JIT canaries in suite)
  • Closed DUPLICATE (expected behavior, no fix): #6939/#6963 — canonical patterns (origin-tied data_ptr, single-tensor returns) retained
  • Permanent watchdog tests: test_jit_crash_6413, test_jit_crash_6445, test_return_move_canary + escape-audit CI gate

Ecosystem

  • modular-community: new odyssey rattler-build recipe (v0.2.0) → install via pixi add odyssey from the modular-community prefix.dev channel.

Repo stats

  • ~198K lines of Mojo, 363 test files, 74 justfile recipes, UV/Just/Podman tooling.

Full changelog: git log v0.1.0-pkgtest..v0.2.0

v0.1.0-pkgtest

Choose a tag to compare

@github-actions github-actions released this 20 May 03:11
Immutable release. Only release title and notes can be modified.
v0.1.0-pkgtest
200d2eb

Release v0.1.0-pkgtest

Release Date: $(date -u +"%Y-%m-%d")

What's New

Changes since datasets-v2

  • fix(ci): remove test job from release.yml until upstream Mojo JIT bug is fixed (#5431) (200d2eb)
  • fix(tests): update test_io_helpers fixtures-path assertion after shared→projectodyssey rename (#5430) (d271044)
  • fix(ci): bump release.yml test job timeout 20→60 min (#5428) (495840f)
  • fix(ci): replace removed mojo test subcommand with just test-mojo in release.yml (#5427) (0f25b33)
  • fix(packaging): narrow just wheel chmod to just the wheel file (#5426) (12b33c6)
  • fix(ci): chmod dist/ world-writable so in-container just wheel can write to it (#5425) (31347d0)
  • fix(packaging): run just wheel inside container (mirror #5422 fix) (#5424) (1f0dd72)
  • fix(ci): pin sanitizer builds to x86-64-v3 to avoid SIGILL on CI runners (#5423) (ffce9df)
  • fix(packaging): run just build-recipe inside container (#5422) (5cf1de8)
  • fix(ci): add setup-just step to release.yml build job (#5421) (9ac970a)
  • fix(packaging): make conda recipe + install-local actually work end-to-end (#5419) (9d5dd46)
  • feat(packaging): Python wheel bundling .mojopkg (PR 4 of 4) (#5416) (bd08356)
  • fix(ci): release workflow attaches .mojopkg/.conda/.whl artifacts (PR 3 of 4) (#5417) (56a6ef8)
  • feat(packaging): conda recipe + just install/publish (PR 2 of 4) (#5415) (e9e123f)
  • refactor(packaging): rename shared/ → src/projectodyssey/ (PR 1 of 4) (#5414) (e8c5609)
  • fix(ci): stream ASan test output live & surface signal-kill exit codes (#5412) (9946879)
  • fix(ci): capture real ELF cores via gdb wrapper for SIGILL diagnosis (#5411) (e986838)
  • chore(ci): remove coredump-capture action and its wiring (#5409) (652abcc)
  • fix: add missing worktree cleanup path (#5410) (f2b3133)
  • refactor(scripts): inline worktree cleanup in rebase-all-branches (#5408) (c8724cc)
  • fix(justfile): export USER_ID/GROUP_ID to podman compose up/down (#5407) (e79165e)
  • fix(ci): repair main container-publish (nightly SBOM tag + summary aggregator) (#5406) (da1b3f7)
  • chore(ci)(deps): bump the github-actions group across 1 directory with 4 updates (#5404) (05c9c83)
  • fix(ci): unblock main — MD040 + trailing-whitespace from PR #5402 (#5405) (4565246)
  • docs(blog): day 187 — phantom bugs in the CI machines (#5402) (591f9f1)
  • chore(ci): remove Changelog Reminder workflow (#5403) (d995def)
  • ci(test): remove modular/modular#6433 workaround, fan out matrix (#5381) (e3e0de8)
  • fix(justfile): make just build actually compile everything; add asan/tsan modes (#5389) (2462f1e)
  • fix(tests): alias shared.training.SGD to TrainingSGD to resolve import ambiguity (#5388) (adb4c35)
  • Forbid ::warning:: advisory pattern; flip 9 sites fail-fast (#5387) (5b01298)
  • chore: refactor || true workarounds; add forbid-suppressions guard (#5385) (e1f03e2)
  • fix(ci): coredump-capture path namespace + always-write metadata (#5380) (ab048ab)
  • docs(mojo): add UnsafePointer memory safety guidance (#5371) (948756c)
  • docs(training): monitoring & divergence detection strategy (#5370) (6dcf689)
  • tooling(version): add version-sync automation (closes #5327, #5190) (#5368) (45eab7d)
  • infra: extend resource limits + dep-sync hook (closes #5317, #5137) (#5369) (584bad7)
  • refactor(tests): merge duplicate import blocks (closes #5297, #5186) (#5377) (f546526)
  • tooling: add CHANGELOG-update reminder for PRs (closes #5165) (#5374) (7022dde)
  • docs: add external install guide and roadmap (closes #5326, #5321) (#5367) (e0b880b)
  • docs(privacy): add GDPR/data-privacy guidance (closes #5332) (#5365) (188eecc)
  • chore(ci)(deps): bump the github-actions group with 2 updates (#5364) (aaa07e3)
  • ci: extend core-dump capture to all 5 test jobs (modular/modular#6413) (#5378) (f308c77)
  • docs: update coverage status post-1.0 bump (closes #5301) (#5375) (eea739c)
  • ci: add concurrency groups to cancel stale PR runs (closes #5051) (#5373) (119cf82)
  • chore(security): untrack .env, strengthen gitignore, add pre-commit guard (refs #5188) (#5372) (b89ea54)
  • ci(security): extend audit to pixi/conda packages (closes #5314) (#5376) (96c251d)
  • test(spinlock): add concurrency tests for race condition (closes #5319) (#5366) (1469b42)
  • Phase G: EASY tier consolidated (33 issues) (#5363) (9124a74)
  • chore(deps): migrate to Mojo 1.0.0b2 (#5353) (e054d5d)
  • test(foundation): implement paper implementation validation tests (#5350) (3a79b71)
  • feat(ci): implement Test Configuration Loading tests (#5344) (#5349) (d216545)
  • fix: make just train lenet fp16 200 work end-to-end in Podman (#5351) (0dd0952)
  • fix(env): separate host/container pixi envs, remove ADR-009, fix stale tests (#5348) (9067e02)
  • chore(ci)(deps): bump anthropics/claude-code-action (#5345) (953ecca)
  • fix: Add hephaestus dependency to resolve mypy type errors (#5341) (462b0e8)
  • fix(docker): fix root:root bind-mount breaking just build-release (#5340) (f3de3c3)
  • fix(audit): add pip-audit and pip-licenses to pixi.toml (#5337) (0a3bb34)
  • fix(docker): add build/ to _ensure_writable in entrypoint.sh (#5335) (72c8ee5)
  • feat(ci): add markdownlint/pixi/justfile/symlink CI jobs (#5278) (eb3c9c8)
  • chore(ci): add unified required-checks workflow (#5276) (143a0d7)
  • docs(repro): add self-contained minimal reproducer for KGEN JIT buffer overflow (8e3be11)
  • docs(repro): add standalone SpinLock race condition reproducer (62497e8)
  • fix(memory-pool): replace store(0) with fetch_add(-1) in SpinLock.unlock() (2b95aca)
  • fix(ci): serialize mojo test jobs and lift virtual address limit (c7a4918)
  • docs(workaround): remove superseded retry mitigation section and unused retry.py (e04197f)
  • fix(tests): fix Mojo compile errors blocking CI on main (59696db)
  • fix(ci): remove trailing blank lines from requirements files (end-of-file-fixer) (eb73d5e)
  • fix(docs): fix MD013 line-length in scripts/README.md and mojo-jit-crash-workaround.md (4f7d092)
  • fix(docs): fix markdownlint MD060/MD013 errors in 3 files (c33a484)
  • style(scripts): ruff format check_precommit_versions.py (852553f)
  • fix(scripts): read feature deps in check_precommit_versions (hephaestus 0.7.0 bug) (120884b)
  • fix(tests): update test_check_stale_scripts to hephaestus 0.7.0 API (2a35698)
  • fix(ci): install hephaestus in Python test jobs + regenerate requirements (07c9c21)
  • fix(ci): install hephaestus in test-agents job (cfc766e)
  • fix(ci): install hephaestus in test-python job (6dbf498)
  • cleanup(adr009): remove check_test_count.py enforcement (ADR-009 resolved 2026-03-20) (b1b4c4d)
  • fix(ci): remove stale-cache restore-keys from setup-pixi action (9aafa27)
  • fix(docs): replace out-of-tree relative links with absolute GitHub URLs (mkdocs strict) (1f2215e)
  • fix(docs): blank line before ordered list in repro/README (MD032) + fix table style (MD060) (ba6280b)
  • chore(ci)(deps): bump anthropics/claude-code-action (f675096)
  • fix(deps): regenerate pixi.lock with prod environment (3570830)
  • chore(deps): separate dev from production dependencies in pixi.toml (c64014a)
  • style(scripts): apply ruff format to wrapper scripts (0dc7f7e)
  • fix(scripts): update hephaestus wrappers to 0.7.0 API (ab43c6b)
  • fix(shared/testing): import shape symbols from shared.core.shape (8f3ae43)
  • perf(tests): complete ADR-015 import audit + add targeted-import repro (9b5063c)
  • chore(adr): reconcile superseded ADRs with tree (3f08e9d)
  • perf(core): localize elementwise import in loss_utils.mojo (0d5d85d)
  • perf(core): localize shape import in matrix.mojo (c17dc4f)
  • perf(core): localize shape imports in conv.mojo and pooling.mojo (fb5d87d)
  • perf(core): localize shape import in reduction.mojo to reduce JIT footprint (2842b95)
  • refactor: migrate remaining from shared.data imports to submodule paths (4d92558)
  • repro: fix reproduction steps — clone-based, no hardcoded paths, includes container build (4fbac36)
  • repro: add repro_hello.mojo and fix hello.mojo references (c73ba7f)
  • fix(ci): add max-parallel: 2 to test matrix; add Day 165 blog post (44dc9e4)
  • repro: document root cause of JIT crash as virtual memory exhaustion (0f5cea6)
  • repro: add Category 4 deterministic module-level import chain crash reproducers (7cee744)
  • chore: regenerate pixi.lock with homericintelligence-hephaestus==0.7.0 (5ce4005)
  • fix(deps): require hephaestus>=0.7.0 for agents, validation, and other new modules (703d2ea)
  • fix(ci): correct hephaestus dep constraint and fix pre-pixi script invocations (d1c8f2d)
  • feat(cleanup): add hephaestus dep and replace ported scripts with wrappers (L13) (e29dc07)
  • chore(deps)(deps): bump pytest from 8.4.2 to 9.0.3 (7b2b099)
  • chore(deps)(deps): bump the python-minor-patch group with 2 updates (8d7ce36)
  • chore(ci)(deps): bump the github-actions group across 1 directory with 5 updates (a31b1cd)
  • chore(dev-deps)(deps-dev): update setuptools requirement (d0432a5)
  • fix(security): add input validation, path traversal protection, and health endpoint to dashboard server (08bc38f)
  • fix(refactor): add raises to _is_uniform_tensor after rebase onto main (e8b671e)
  • refactor: migrate remaining _get_float64 reads to typed pointers (6450923)
  • fix(core): fix BFloat16 latent bug in AnyTensor FP8/BF8 conversion (4b90364)
  • fix(tests): repair test_gradient_checker_meta.mojo parse error (7a4412f)
  • refactor(docker): parameterize hardcoded /home/dev path in COPY --from directives (d781927)
  • docs: add changelog contribution guidelines to CONTRIBUTING.md (6545b7b)
  • perf(data): localize shape import in cifar10 and reduction import in integration test (6cab17c)
  • perf(core): localize heavy imports in loss, linear, and conv modules (9c8880c)
  • perf(core): localize heavy imports in activation.mojo to reduce JIT footprint (21b94d8)
  • chore(ci): remove stale non-blocking comments from comprehensive-tests.yml (ADR-015 Action 3) (0f8bf57)
  • refactor(ci): remove test-with-retry.sh and wire direct mojo invocat...
Read more

Dataset Mirror v2

Choose a tag to compare

@mvillmow mvillmow released this 18 Dec 05:41
Immutable release. Only release title and notes can be modified.

Pre-downloaded datasets for CI reliability.