Skip to content

[codex] Fail loud on malformed VM legacy tags#460

Merged
proboscis merged 3 commits into
mainfrom
issue/vm-legacy-tag-parsers-fail-loud/run-20260612-015028
Jun 12, 2026
Merged

[codex] Fail loud on malformed VM legacy tags#460
proboscis merged 3 commits into
mainfrom
issue/vm-legacy-tag-parsers-fail-loud/run-20260612-015028

Conversation

@proboscis

@proboscis proboscis commented Jun 11, 2026

Copy link
Copy Markdown
Owner

Summary

Fixes vm-legacy-tag-parsers-fail-loud.

The legacy VM tag fallback parser no longer converts malformed control objects into plausible values. Missing payload attributes now fail loudly with tag-specific messages:

  • Resume / Transfer: missing value
  • Delegate / Pass: missing effect
  • ResumeThrow / TransferThrow: missing exception

Regression coverage now lives in tests/core/test_vm_legacy_tag_parser_fail_loud.py, so it is covered by the repository's tests/ gate. I also added doeff-traverse build metadata so the full root suite can import that workspace package after uv sync --reinstall.

Root Cause

The legacy parser helpers used getattr(...).ok().map(...).unwrap_or(...), so missing Python attributes silently became Value::Unit or Value::String("unknown exception"). The outer match also replaced useful extraction errors with generic messages.

The reported packages/doeff-vm/tests/test_pyvm.py tests/ failure reproduces in this checkout as stale package-test API/export expectations (state, run, RunResult, start_program, etc.), not as a fail-loud live-path regression. Current Python constructors in doeff/program.py and the Rust pyclasses require the relevant payload fields, so absence of those attributes is malformed for the parser paths changed here.

Validation

  • uv sync --reinstall
  • uv run python -m pytest tests/core/test_vm_legacy_tag_parser_fail_loud.py -q -> 6 passed
  • uv run python -m pytest tests/ -q -> 880 passed, 90 skipped

@proboscis proboscis marked this pull request as ready for review June 12, 2026 06:17
@proboscis proboscis merged commit 524f429 into main Jun 12, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant