fix: address PR #683 review feedback

Critical fixes:
- Remove duplicate core.setFailed() call in parseAndSetStructuredOutputs
  (fixes double error reporting issue)
- Extract JSON schema handling to shared utility function
  (eliminates code duplication between agent/tag modes)

Changes:
- base-action/src/run-claude.ts: Remove redundant setFailed() before throw
- src/utils/json-schema.ts: New shared appendJsonSchemaArg() utility
- src/modes/agent/index.ts: Use shared JSON schema utility
- src/modes/tag/index.ts: Use shared JSON schema utility

All tests passing, types checked, code formatted.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
inigo
2025-11-18 11:55:41 -08:00
parent e600a516c7
commit e93583852d
6 changed files with 27 additions and 21 deletions

View File

@@ -73,7 +73,7 @@ inputs:
default: ""
json_schema:
description: |
JSON schema for structured output validation. Claude must return JSON matching this schema
JSON schema for structured output validation. Claude must return JSON matching this schema
or the action will fail. Outputs are automatically set for each field.
Access outputs via: steps.<step-id>.outputs.<field_name>
@@ -81,8 +81,7 @@ inputs:
Limitations:
- Field names must start with letter or underscore (A-Z, a-z, _)
- Special characters in field names are replaced with underscores
- Each output is limited to 1MB (values will be truncated)
- Objects and arrays are JSON stringified
- Each output is limited to 1MB
required: false
default: ""