Skip to content

Collections stage 4: reference fields and repeaters (needs RFC) #114

Open

Description

@Madraka

Planned after stages 1–3 (#71, closed): reference fields (an entry pointing to entries of another collection) and repeaters/blocks (lists of grouped values). RFC-0042 §6 left them out on purpose. They need:

  • cross-node integrity: what happens when a referenced entry is deleted or archived;
  • a locale rule for references;
  • cost control for resolving them on render;
  • nested Studio forms;
  • MCP and JSON Schema output that strict structured-output modes still accept.

Next step: an RFC (.agents/skills/write-rfc). No implementation before it is accepted.

Activity

  1. Madraka commented on Nov 10, 2026

    @Madraka
    ContributorAuthor

    RFC-0045 (collections stage 4: reference fields and repeaters) was accepted on 2026-11-10, with its three decisions ratified. The document is in PR #193: docs/rfcs/0045-collections-stage-4-references-and-repeaters.md.

    Rollout, one PR per step. Both new types stay refused on every write path until step 7.

    1. asset_refs by site, a prerequisite. It scopes deleteAsset, the rebuild and the unused filter by site, chunks the rebuild, adds field assets to the purge asset rule, and skips the rebuild on an unchanged import. That last part fixes Sync: an 'unchanged' import rebuilds asset_refs from plan-time rows and can drop a concurrent edit's row #196.
    2. Contract and pure core. The schema diff and pnpm gen, the fields_unsupported gate (checkFieldDefinitions and checkBundle), and the checker, resolver and JSON Schema emitter. No behaviour change.
    3. Store and integrity. entry_refs (migration 0033), the batch-time guards, rebuilds, fieldAssetRefs for repeater items, kind-aware release dependencies and edition id mapping. It also changes behaviour on existing sites: translation_group_in_use, the readsOriginal tightening, the group check on group-only changes, canonical import bodies, and the collections anchor.
    4. Renderer and purges. Cards, depth and budget, gated per view; snapshot-only purges; fields: 2.
    5. Field operations for the new types.
    6. MCP. fieldsSchemaStrict, fieldsStrict/clearFields, list_references, the translation tools.
    7. Studio. The EntryPicker, ReferenceList, RepeaterField, FieldControl and UsedByList blocks, plus the builder.
    8. Enable. The gate accepts the types once the site Worker reports fields: 2, followed by a one-time, per-node rebuild.
    9. Listings and structured data. Reference list fields, and ReferenceValueSource with targetField.

    The RFC's "Implementation watch list" names the riskiest SQL. Each phase PR's review checks it.

  2. added 2 commits that reference this issue on Nov 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions