You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 382df95
Browse filesBrowse the repository at this point in the historyBrowse files
fix(render,verify): resolve nested @objectref by FQN across ports (ADR-0041) (#182)
* fix(render,verify): FQN-exact nested @objectref resolution across ports (ADR-0041)
The verify --templates prompt-drift gate and render-helper payload field-tree
derivation resolved a nested field.object @objectref by BARE short-name, so a
fully-qualified ref (pkg::Name) bound the WRONG same-named object.value on a
cross-package short-name collision — emptying the element subtree and raising a
spurious ERR_VAR_NOT_ON_PAYLOAD on its inner {{fields}}. This ports the Java fix
into the three remaining buggy ports and gates it cross-port:
- Python: _resolve_nested_object_ref resolves FQN-exact when the ref contains "::".
- C#: RenderHelperGenerator.ResolveNestedObjectRef is FQN-exact; the verify
field-tree gets a dedicated ResolveObjectRef, kept SEPARATE from the bare
FindObject used by record emission so record identifiers stay bare.
- TS: the CLI verify (payload-field-tree) and docs-annotator (template-payload-tree)
resolvers route through the shared refMatchesObject SSOT; the render-helper
resolver was already FQN-safe.
Shared gate: a new xpkg-collision/ sub-corpus under
fixtures/template-output-render-conformance/ (two packages each declaring an
object.value Note; a Digest payload referencing both by FQN @objectref) drives
the render-helper conformance runners in TS/Python/C#/Kotlin and fails on revert.
Java is already covered by TemplateVerifyTest's ADR-0041 collision case.
Auto-derived has-accessor recognition in verify stays a per-port concern by
design — no other port emits has<Field> accessors and no shared template uses them.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013VXidfNN755CyTZTg1w8UV
* no-mistakes(review): key render-helper cycle guard by FQN not bare name
* no-mistakes(document): sync ADR-0041 consequences with non-JVM render/verify FQN fix
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments