Skip to content

Fix schema string output coercion#3693

Merged
DavidBakerEffendi merged 1 commit into
masterfrom
3692-coerce-arrayscalar-outputs-into-strings-for-schema-backed-string-fields
Jun 1, 2026
Merged

Fix schema string output coercion#3693
DavidBakerEffendi merged 1 commit into
masterfrom
3692-coerce-arrayscalar-outputs-into-strings-for-schema-backed-string-fields

Conversation

@DavidBakerEffendi

Copy link
Copy Markdown
Collaborator

Description

Adds deterministic repair for schema-backed outputs when models return recoverable string-field shapes, such as prose arrays or scalar values where the response schema expects a non-enum string. Strict validation still runs after coercion so unrecoverable shapes continue to fail.

Key Changes:

  • Add shared schema-output coercion for non-enum string fields, including array/scalar repair and validated-only acceptance.
  • Apply the coercion path to job-level direct answers and schema-aware custom-agent terminal/repair outputs.
  • Add focused unit and integration coverage for array-to-string, scalar-to-string, enum protection, and JSON object/null boundaries.

Touch Points:

  • app/src/main/java/ai/brokk/executor/jobs/JobResponseSchemaSupport.java
  • app/src/main/java/ai/brokk/executor/jobs/JobRunner.java
  • app/src/main/java/ai/brokk/executor/agents/CustomAgentExecutor.java
  • app/src/test/java/ai/brokk/executor/jobs/JobResponseSchemaSupportTest.java
  • app/src/test/java/ai/brokk/executor/jobs/JobRunnerResponseSchemaTest.java
  • app/src/test/java/ai/brokk/executor/agents/CustomAgentExecutorTest.java

Validation:

  • ./gradlew :app:test --tests ai.brokk.executor.jobs.JobResponseSchemaSupportTest --tests ai.brokk.executor.jobs.JobRunnerResponseSchemaTest --tests ai.brokk.executor.agents.CustomAgentExecutorTest
  • ./gradlew fix tidy
  • ./gradlew analyze

@DavidBakerEffendi DavidBakerEffendi self-assigned this Jun 1, 2026
@DavidBakerEffendi
DavidBakerEffendi marked this pull request as ready for review June 1, 2026 08:36
@DavidBakerEffendi
DavidBakerEffendi merged commit 2497eed into master Jun 1, 2026
5 checks passed
@DavidBakerEffendi
DavidBakerEffendi deleted the 3692-coerce-arrayscalar-outputs-into-strings-for-schema-backed-string-fields branch June 1, 2026 08:55
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.

Coerce array/scalar outputs into strings for schema-backed string fields

1 participant