Skip to content

feat: add field paths to input conversion errors - #79

Merged
leandrodamascena merged 1 commit into
mainfrom
feat/conversion-field-paths
Nov 4, 2026
Merged

leandrodamascena merged 1 commit into
mainfrom
feat/conversion-field-paths

Conversation

@leandrodamascena

Copy link
Copy Markdown
Member

Nested input conversion errors now identify the failing field, such as messages[0].content[1].text, while preserving exception classes and application causes. rboto.exceptions.get_conversion_context(error) exposes typed service, operation, path, expected rule, category and truncation metadata.

The shared core and generator build diagnostics while failures unwind. Map locations use entry positions, values stay out of automatic diagnostics, and context lengths are bounded. Builder-required fields come from explicit builder checks so fields with defaults are not reported as missing. All 34 services are regenerated. Python argument binding and deferred event-stream errors retain their existing handling.

Validation:

  • 690 codegen/core tests and 131 compiled tests with S3, DynamoDB, Lambda and Bedrock Runtime; 55 service-dependent cases skipped.
  • Strict mypy, Pyright, Ruff, workspace Rust tests, formatting, Clippy, documentation build and workflow lint.
  • Five before/after processes per build: small input preparation 2.679 → 2.605 µs; 200 nested records 677.754 → 665.487 µs. This is an optimized adapter/core microbenchmark without networking, not an end-to-end release benchmark. Method and limits are in benchmarks/input_conversion.md.

Closes #70.

@leandrodamascena
leandrodamascena merged commit 768dee9 into main Nov 4, 2026
43 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Include precise field paths in input conversion errors

1 participant