Skip to content

fix: static type checker recognizes output_field as a field producer#69

Merged
Muizzkolapo merged 5 commits intomainfrom
fix/static-checker-output-field-recognition
Apr 1, 2026
Merged

fix: static type checker recognizes output_field as a field producer#69
Muizzkolapo merged 5 commits intomainfrom
fix/static-checker-output-field-recognition

Conversation

@Muizzkolapo
Copy link
Copy Markdown
Owner

Summary

  • The schema extractor hardcoded {raw_response, content} for non-JSON-mode schemaless actions, ignoring the output_field config key
  • Downstream actions observing the named output_field were rejected with false StaticTypeErrors (19 errors on a 7-action workflow)
  • Now reads output_field from the action config so the checker knows the actual field name produced at runtime

Changes

  • schema_extractor.py: Read output_field from config (defaulting to "raw_response" via get_default()) instead of hardcoding "raw_response"
  • test_schema_extractor.py: Two new tests — custom output_field produces the named field; regression guard for default behavior

Test plan

  • pytest tests/validation/static_analyzer/ — 153 passed
  • ruff check — clean
  • ruff format --check — clean
  • Run agac run -a support_resolution to confirm zero false-positive errors on the example workflow

Muizzkolapo and others added 5 commits April 1, 2026 21:58
The schema extractor hardcoded {raw_response, content} for non-JSON-mode
actions without a schema, ignoring the output_field config key. Downstream
actions observing the named output_field were rejected with false
StaticTypeErrors.

Read output_field from the action config (defaulting to "raw_response")
so the checker knows the actual field name the action will produce.
End-to-end test that a downstream action can observe an
output_field-produced field through the full analyzer pipeline.
Directly reproduces the original bug report scenario.
@Muizzkolapo Muizzkolapo merged commit f76a81e into main Apr 1, 2026
4 checks 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