Decode declared derived fields through their constructor owner - #10
Conversation
|
Independent OpenHCS579 peer review accepted decoder source ee0b65f/ac7b238: declaration-derived membership; init-only construction; supplied non-init values recursively decoded and compared with actual validated owner, never assigned. Omission and unknown/contradictory rejection remain strict; project_dataclass still owns init-only projection. No concrete source defect found. Read-only combined receiving now passed at OpenHCS57999245d276: original normal dev_client.main -> persistent shell -> original McpDevClient.execute, only closed wire peer controlled. Eight exact original successful native receipts yield terminal0; contradictory outcome, boolean outcome, extra key yield terminal1 with visible typed cause+original receipt and canonical batch roundtrip. Four CLI controls PASS,5.73s,254896KiB RSS,zero swaps. No native/client process/socket or mutation replay. The process imported fad3cbb version0.1.15 codec SHA d2be277051b070d73503025a3addcde8016787e18a369c45b60be0c0edb65fea; exact source diff to ac7b2380.1.16 changes only version. Existing failed fixture flag receipt remains archived, no success fabrication. Full receiving receipt/byte-exact raw outputs in OpenHCS579 docs/validation/mcp-shell-derived-diagnostic-20261004.rst and mcp-shell-combined-cli-20261004.tar.gz. This proves source CLI decoding/exit behavior, not fresh installed0.1.16 native readiness; release/metadata ownership remains separate. |
Fixes the shared decoder cause of OpenHCS issue 578 / PR 579. Field membership derives from dataclasses.fields; supplied fields decode through the original annotations; only init fields go to the constructor; supplied non-init fields must equal the constructed owner. Strict extras and conflicting derived values reject. No OpenHCS-specific branch, key stripping, alternate codec or stored mirror. Inherited/nested/default-derived family covered. Existing refactor-audit AST loader covered all OpenHCS/dependency production roots with zero parse omissions; this is source evidence, not global NRA behavioral proof. Full receipt: docs/source/derived-field-decoding.rst. Validation: focused37 pass; initial entire143 pass/1 stale .12 version golden; golden migrated to canonical packaging.Version instead of a third version literal; final entire144 pass. Original retained OpenHCS native registration-status reply now decodes registered/errors0/published1; contradictory outcome/bool/extras reject. This read-only receiving check imported the exact qualified package and peaked7.14GiB, process exited0; not called lightweight. No native launch, mutation replay, environment or installed dependency change. Actual combined CLI acceptance remains with OpenHCS579 owner; registry publication/installation remain distinct. CI deferred.