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 0d3af6c
Browse filesBrowse the repository at this point in the historyBrowse files
feat(fr-033): Java port S-B2b — strict attr scoping + metadata.root → registry-conformance GREEN
Prunes each type.subType's logical attr requirements to the strict per-subtype set
sourced from spec/metamodel/*.json (extendsBase + extends composed), so the manifest
attrs blocks byte-match the golden and the loader rejects misplaced attrs
(ERR_UNKNOWN_ATTR). Fixes metadata.root (the hand-coded root wrapper) to the strict
4 structural children + "Root metadata document". RegistryManifestConformanceTest is
now GREEN — the Java metadata registry byte-matches the cross-port canonical. Corpus
fixtures fixed: none (no fixture placed a now-disallowed attr; the loader-test
root-attr capability is preserved via the retained any-attr wildcard, which is not a
structural child so it does not affect the manifest). Also fixed pre-existing NUL
bytes that had been written in place of space separators in two sort-key string
literals (SpecMetamodelReader.structKey, RegistryManifest child sort key).
The strict allow-list per (type, subType) is composed in SpecMetamodelReader
.strictAttrNames exactly as TS composes it: the subtype's own types[].children attrs,
plus <type>.base's attrs when extendsBase:true, plus every extends block (db/ui/prompt
JSON) whose matcher targets the subtype (exact / list / "*"). A new pre-seal apply pass
drops every INCLUDED attr requirement (direct + inherited) not in that set, leaving the
classifyPerTypeAttr carve-outs (isArray/isAbstract/extends/implements/isInterface/
object/objectAdapter/description) registered.
(The 5 metaobjects-ui/prompt-provider ConformanceTest failures are a separate gate —
next sub-step.)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>