Skip to content

[adm 3] Rebuild metadata-driven instance Properties - #204

Merged
artiphishle merged 28 commits into
mainfrom
agent/adm-3-instance-properties
Aug 6, 2026
Merged

[adm 3] Rebuild metadata-driven instance Properties#204
artiphishle merged 28 commits into
mainfrom
agent/adm-3-instance-properties

Conversation

@artiphishle

@artiphishle artiphishle commented Aug 6, 2026

Copy link
Copy Markdown
Contributor

Roadmap: #115

Closes #118.

Status

Ready for review. The package-owner boundary is resolved with released @ankhorage/zora v2.9.3, including Heading instance-authoring metadata.

Image remains intentionally outside this scope because ZORA declares it as directManifestNode: false; manifest media authoring remains owned by [adm 14].

Previous roadmap step

[adm 2] established ZORA-owned authoring authority and theme recipe metadata. This [adm 3] PR consumes that released public metadata for the first production instance-authoring surface.

What changed

  • update Studio to @ankhorage/zora ^2.9.3 and refresh bun.lock
  • replace the raw arbitrary prop dump in /ankh/properties/{nodeId} with fields derived from ZORA_COMPONENT_META
  • expose only props classified with authoring.authority === 'instance'
  • keep theme-owned and unclassified props out of per-instance authoring
  • add string, number, boolean, and declared enum editors
  • preserve metadata categories and ordering
  • show metadata defaults without persisting them as explicit node overrides
  • keep node ID, component type, and alias as read-only node identity
  • update nodes through the existing canonical manifest mutation and persistence flow
  • remove the obsolete raw-value formatter used only by the former prop dump
  • add package-neutral authoring model tests, page boundary tests, documentation, public exports, and a patch changeset
  • add a released-package integration test for Heading through the serializable @ankhorage/zora/metadata subpath
  • verify Heading content and semantics remain instance-authorable while size and color remain theme-owned

Ownership boundaries

  • ZORA remains the sole owner of concrete component and authoring metadata.
  • The concrete Studio UI injects ZORA_COMPONENT_META at the app/UI composition boundary.
  • Package-neutral Studio helpers consume only an injected structural registry and do not recreate or mutate ZORA metadata.
  • No parallel unsaved Properties model, arbitrary JSON editor, inline editor, drawer, sidebar, or theme-per-instance override path is introduced.

Validation

Green on CI run 31061885019:

  • frozen dependency install with @ankhorage/zora@2.9.3
  • TypeScript build
  • Ankhorage Doctor validation
  • lint and format check
  • Knip
  • full test suite, including released ZORA Heading metadata integration
  • Studio Web smoke
  • generated-app Web E2E
  • package typecheck
  • changeset status

Release

Changeset: .changeset/neat-instance-properties.md

Copy link
Copy Markdown
Contributor Author

Roadmap audit follow-up before this downstream draft is completed:

  1. Consume the released ZORA version from [adm 3] Classify Heading authoring metadata zora#278 and add representative Heading integration/default coverage.
  2. Replace the provisional custom boolean/choice Pressable controls and hard-coded selected border color with existing ZORA control primitives/theme tokens where their current APIs fit. Do not leave a Studio-local visual control system.
  3. Rerun the full Studio validation, Web smoke, and generated-app Web E2E after the package update.

The branch remains Draft and blocked at the ZORA release boundary.

@artiphishle artiphishle self-assigned this Aug 6, 2026
@artiphishle
artiphishle marked this pull request as ready for review August 6, 2026 00:56
@artiphishle
artiphishle merged commit d749c07 into main Aug 6, 2026
1 check passed
@artiphishle
artiphishle deleted the agent/adm-3-instance-properties branch August 6, 2026 01:13
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.

[adm 3] Rebuild minimal instance Properties at /ankh/properties/{nodeId}

1 participant