fix(encyclopedia): a planning reply that repeats a property is unusable #22

Merged
k.renner merged 1 commits from fix/encyclopedia-duplicate-json-keys into main 2026-10-27 07:29:22 +00:00
Member

The rebuild run on 2026-10-27 failed after 612 assignments: an assign reply contained titleEn twice in one object. JsonObject builds its dictionary lazily and throws ArgumentException on first access, which escaped AssignNotesUseCase.Validate and failed the run (502).

PlanParsing.Object (used by assign, split, fold and consolidate replies) now parses with AllowDuplicateProperties = false, so such a reply is unusable like any other malformed one: its batch is skipped and remembered, the run goes on.

Test Assign_DuplicatePropertyInReply_IsUnusable reproduced the production stack trace before the fix. Tests: Core 174, Contracts 85, Application 273, Host 164.

🤖 Generated with Claude Code

The rebuild run on 2026-10-27 failed after 612 assignments: an assign reply contained `titleEn` twice in one object. `JsonObject` builds its dictionary lazily and throws `ArgumentException` on first access, which escaped `AssignNotesUseCase.Validate` and failed the run (502). `PlanParsing.Object` (used by assign, split, fold and consolidate replies) now parses with `AllowDuplicateProperties = false`, so such a reply is unusable like any other malformed one: its batch is skipped and remembered, the run goes on. Test `Assign_DuplicatePropertyInReply_IsUnusable` reproduced the production stack trace before the fix. Tests: Core 174, Contracts 85, Application 273, Host 164. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
claude-bot added 1 commit 2026-10-27 07:12:01 +00:00
fix(encyclopedia): a planning reply that repeats a property is unusable
ci/woodpecker/pr/test Pipeline was successful
ci/woodpecker/push/test Pipeline was successful
af7ca24819
JsonObject builds its dictionary on first access and throws ArgumentException
on a repeated key, which escaped reply validation and failed the whole run
(assign reply with titleEn twice). Parsing now rejects duplicates up front, so
the reply counts as unusable like any other malformed one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
k.renner merged commit f93dfd1ef6 into main 2026-10-27 07:29:22 +00:00
k.renner deleted branch fix/encyclopedia-duplicate-json-keys 2026-10-27 07:29:23 +00:00
Sign in to join this conversation.