Skip to content

Epic: package-first authoring (ADR-0070) — bases as the authoring & delete unit #2278

Description

@os-zhuang

ADR: framework#2277 (ADR-0070, Accepted). This card tracks the cross-repo rollout.

Status (2026-06-27): functionally complete. All six decisions (D1–D6) are implemented and merged across framework / ../objectui / ../cloud, and ADR-0070 is Accepted with an end-to-end live dogfood. The full lifecycle is now also covered by an automated gate (framework#2358). One deliberately-deferred tail remains, tracked as #2359 (retire the "Local / Custom" stopgap scope once envs are orphan-free). See the status comment below for the PR-by-PR map.

Problem (from a business-user Studio dogfood pass)

Authored metadata can end up orphaned (package_id = null) with no container to delete/export"a pile of loose metadata, how do I clean it up?". Root cause: no package-first contract. Stopgaps shipped: framework#2252 (coerce-to-null), objectui#1946 (Local scope). We adopt the Airtable base model: create/select a writable package (base) first; author into it; manage/delete/export by base.

Rollout checklist

Open questions (resolved)

  1. Auto-provision a base on first authoring → resolved: a prompted/named one-click base (cloud auto-creates a named base; no silent com.workspace).
  2. allowOrgOverride in single-tenant → keep overlay for surgical tweaks (design note; non-blocking).
  3. Delete-cascade also delete records? → resolved: deletePackage({ keepData }) + a "structure-only delete" UI option (objectui#1983).
  4. Base naming vs stable id (app.<slug>) → surface a name, keep the id stable (design note).

Repos: framework (kernel, ADR, dogfood gate), ../objectui (Studio), ../cloud (service-ai-studio). Remaining tail: #2359.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions