Skip to content

feat(spec)!: prune still-dead aspirational config from Theme / Translation / Webhook (#3494)#3516

Merged
os-zhuang merged 2 commits into
mainfrom
feat/prune-aspirational-config-3494
Jul 27, 2026
Merged

feat(spec)!: prune still-dead aspirational config from Theme / Translation / Webhook (#3494)#3516
os-zhuang merged 2 commits into
mainfrom
feat/prune-aspirational-config-3494

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Part of #3494 (do not auto-close — the Job build-out PR completes it). Follow-up to the 2026-06 liveness audit; same enforce-or-remove treatment as #2377 / #3464 (PR #3486).

What

Removes every authorable-but-never-consumed prop the audit flagged that is still dead on main, re-verified before deletion:

Themespacing, breakpoints, logo, density, wcagContrast, rtl, touchTarget, keyboardNavigation + their dedicated sub-schemas (SpacingSchema, BreakpointsSchema, DensityModeSchema (+alias), WcagContrastLevelSchema (+alias)) and types. Verified against the objectui theme engine (packages/core/src/theme/ThemeEngine.ts): generateThemeVars consumes colors/typography/borderRadius/shadows/animation/zIndex/customVars only — none of the removed props is ever emitted as a CSS var. TouchTargetConfigSchema/FocusManagementSchema stay (owned by touch/keyboard schemas with their own consumers).

TranslationfileOrganization, messageFormat, lazyLoad, cache + MessageFormatSchema, TranslationFileOrganizationSchema. There is no ICU engine anywhere; interpolation is always simple {variable} substitution. File layout stays documented as a pure authoring convention. (supportedLocales is kept — it has a live reader: the pinyin-search toggle in serve.ts:743.)

Webhookbody, payloadFields, includeSession, authentication (bearer/basic/api-key were never attached; HMAC via secret stays), retryPolicy (outbox owns a fixed retry schedule), tags, and the entire inbound WebhookReceiverSchema (zero references repo-wide). The #3489 materializer reads none of the removed fields (mapWebhookToRow maps name/label/object/triggers/url/method/description/isActive and stashes the envelope in definition_json), so bridged delivery is unaffected. Removed props' liveness-ledger entries are dropped; the dead→live flip for materialized props stays with #3490.

Versioning

minor + feat(spec)!: + migration note, per the #2377/#3464 precedent (the launch-window guard rejects majors).

Verification

  • spec vitest: 6810 passed (dead-prop assertions removed, incl. the WebhookConfigSchema retry test that inherited the prune via extends)
  • check:api-surface / check:docs (253 files) / check:spec-changes / check:upgrade-guide / check:liveness all green
  • gen:schema manifest ratchet: 7 retired schema keys removed deliberately (automation/WebhookReceiver, system/MessageFormat, system/TranslationFileOrganization, ui/Breakpoints, ui/DensityMode, ui/Spacing, ui/WcagContrastLevel); integration/MessageFormat (message-queue serialization — different schema) untouched
  • Full-repo turbo type-check --force: green
  • Examples cleaned: showcase webhook retryPolicy, crm/showcase/todo i18n dead knobs

🤖 Generated with Claude Code

…ation / Webhook (#3494)

Removes the authorable-but-never-consumed props confirmed dead by the
2026-06 liveness audit (follow-up to #1878/#1893; same enforce-or-remove
treatment as #2377/#3464):

- Theme: spacing, breakpoints, logo, density, wcagContrast, rtl,
  touchTarget, keyboardNavigation (+ SpacingSchema, BreakpointsSchema,
  DensityModeSchema, WcagContrastLevelSchema and their aliases/types) —
  the objectui theme engine never emitted or consumed them.
- Translation: fileOrganization, messageFormat, lazyLoad, cache
  (+ MessageFormatSchema, TranslationFileOrganizationSchema) — no ICU
  engine exists; interpolation is always simple substitution.
- Webhook: body, payloadFields, includeSession, authentication (non-HMAC;
  HMAC via secret stays), retryPolicy, tags + the entire inbound
  WebhookReceiverSchema — the delivery path sends a fixed envelope and
  the outbox owns its own retry schedule. Liveness ledger entries for the
  removed props are dropped (dead->live flip for materialized props stays
  with #3490).

Kept deliberately: supportedLocales (live pinyin-search reader), job
retryPolicy/timeout (being built in the follow-up PR), and all webhook
props materialized by the #3489 bridge.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jul 27, 2026 4:00am

Request Review

@github-actions github-actions Bot added documentation Improvements or additions to documentation protocol:system tests protocol:ui tooling labels Jul 27, 2026
@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 2 package(s): @objectstack/cli, @objectstack/spec.

110 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/ai/agents.mdx (via @objectstack/spec)
  • content/docs/ai/skills-reference.mdx (via packages/cli, @objectstack/spec)
  • content/docs/ai/skills.mdx (via @objectstack/spec)
  • content/docs/api/client-sdk.mdx (via @objectstack/cli, @objectstack/spec)
  • content/docs/api/data-flow.mdx (via @objectstack/cli)
  • content/docs/api/environment-routing.mdx (via @objectstack/cli, @objectstack/spec)
  • content/docs/api/error-catalog.mdx (via @objectstack/cli, @objectstack/spec)
  • content/docs/api/error-handling-client.mdx (via @objectstack/spec)
  • content/docs/api/error-handling-server.mdx (via @objectstack/spec)
  • content/docs/api/index.mdx (via @objectstack/spec)
  • content/docs/automation/approvals.mdx (via packages/spec)
  • content/docs/automation/flows.mdx (via @objectstack/spec)
  • content/docs/automation/hook-bodies.mdx (via packages/cli, packages/spec)
  • content/docs/automation/hooks.mdx (via @objectstack/spec)
  • content/docs/automation/index.mdx (via @objectstack/spec)
  • content/docs/automation/webhooks.mdx (via @objectstack/spec)
  • content/docs/automation/workflows.mdx (via @objectstack/spec)
  • content/docs/concepts/architecture.mdx (via @objectstack/spec)
  • content/docs/concepts/design-principles.mdx (via packages/spec)
  • content/docs/concepts/index.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-driven.mdx (via @objectstack/spec)
  • content/docs/concepts/metadata-lifecycle.mdx (via packages/spec)
  • content/docs/concepts/north-star.mdx (via packages/spec)
  • content/docs/data-modeling/analytics.mdx (via @objectstack/spec)
  • content/docs/data-modeling/drivers.mdx (via @objectstack/spec)
  • content/docs/data-modeling/external-datasources.mdx (via @objectstack/spec)
  • content/docs/data-modeling/field-types.mdx (via @objectstack/spec)
  • content/docs/data-modeling/fields.mdx (via @objectstack/spec)
  • content/docs/data-modeling/formulas.mdx (via @objectstack/spec)
  • content/docs/data-modeling/index.mdx (via @objectstack/spec)
  • content/docs/data-modeling/objects.mdx (via @objectstack/spec)
  • content/docs/data-modeling/queries.mdx (via @objectstack/spec)
  • content/docs/data-modeling/schema-design.mdx (via @objectstack/spec)
  • content/docs/data-modeling/seed-data.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation-rules.mdx (via @objectstack/spec)
  • content/docs/data-modeling/validation.mdx (via @objectstack/spec)
  • content/docs/deployment/backup-restore.mdx (via @objectstack/cli)
  • content/docs/deployment/cli.mdx (via @objectstack/cli, @objectstack/spec)
  • content/docs/deployment/self-hosting.mdx (via @objectstack/cli)
  • content/docs/deployment/troubleshooting.mdx (via @objectstack/spec)
  • content/docs/deployment/validating-metadata.mdx (via @objectstack/spec)
  • content/docs/getting-started/build-with-claude-code.mdx (via @objectstack/spec)
  • content/docs/getting-started/common-patterns.mdx (via @objectstack/spec)
  • content/docs/getting-started/examples.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-reference.mdx (via @objectstack/spec)
  • content/docs/getting-started/quick-start.mdx (via @objectstack/spec)
  • content/docs/getting-started/your-first-project.mdx (via @objectstack/cli, @objectstack/spec)
  • content/docs/kernel/cluster.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/auth-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/cache-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/data-engine.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/index.mdx (via @objectstack/spec)
  • content/docs/kernel/contracts/metadata-service.mdx (via packages/spec)
  • content/docs/kernel/contracts/storage-service.mdx (via packages/spec)
  • content/docs/kernel/index.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/data-service.mdx (via packages/cli)
  • content/docs/kernel/runtime-services/email-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/index.mdx (via packages/cli, packages/spec)
  • content/docs/kernel/runtime-services/queue-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/sharing-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/sms-service.mdx (via packages/spec)
  • content/docs/kernel/runtime-services/storage-service.mdx (via packages/spec)
  • content/docs/kernel/services-checklist.mdx (via @objectstack/spec)
  • content/docs/permissions/authentication.mdx (via @objectstack/cli)
  • content/docs/permissions/authorization.mdx (via @objectstack/spec)
  • content/docs/permissions/permission-sets.mdx (via @objectstack/spec)
  • content/docs/permissions/permissions-matrix.mdx (via @objectstack/spec)
  • content/docs/permissions/positions.mdx (via @objectstack/spec)
  • content/docs/permissions/rls.mdx (via @objectstack/spec)
  • content/docs/permissions/sharing-rules.mdx (via @objectstack/spec)
  • content/docs/plugins/adding-a-metadata-type.mdx (via @objectstack/spec)
  • content/docs/plugins/development.mdx (via @objectstack/spec)
  • content/docs/plugins/index.mdx (via @objectstack/spec)
  • content/docs/plugins/packages.mdx (via @objectstack/cli, @objectstack/spec)
  • content/docs/protocol/backward-compatibility.mdx (via @objectstack/spec)
  • content/docs/protocol/diagram.mdx (via packages/spec)
  • content/docs/protocol/kernel/config-resolution.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/i18n-standard.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/index.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/lifecycle.mdx (via @objectstack/spec)
  • content/docs/protocol/kernel/plugin-spec.mdx (via @objectstack/cli, @objectstack/spec)
  • content/docs/protocol/kernel/realtime-protocol.mdx (via @objectstack/cli)
  • content/docs/protocol/kernel/runtime-capabilities.mdx (via @objectstack/spec)
  • content/docs/protocol/knowledge.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/query-syntax.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/schema.mdx (via @objectstack/spec)
  • content/docs/protocol/objectql/security.mdx (via packages/spec)
  • content/docs/protocol/objectql/state-machine.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/actions.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/concept.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/index.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/layout-dsl.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/record-alert.mdx (via @objectstack/spec)
  • content/docs/protocol/objectui/widget-contract.mdx (via @objectstack/spec)
  • content/docs/releases/implementation-status.mdx (via @objectstack/cli, @objectstack/spec)
  • content/docs/releases/index.mdx (via @objectstack/spec)
  • content/docs/releases/v12.mdx (via @objectstack/spec)
  • content/docs/releases/v13.mdx (via @objectstack/spec)
  • content/docs/releases/v16.mdx (via @objectstack/cli, @objectstack/spec)
  • content/docs/releases/v9.mdx (via @objectstack/spec)
  • content/docs/ui/actions.mdx (via @objectstack/spec)
  • content/docs/ui/create-vs-edit-form.mdx (via @objectstack/spec)
  • content/docs/ui/dashboards.mdx (via @objectstack/spec)
  • content/docs/ui/forms.mdx (via @objectstack/spec)
  • content/docs/ui/index.mdx (via @objectstack/spec)
  • content/docs/ui/public-data-collection.mdx (via @objectstack/spec)
  • content/docs/ui/setup-app.mdx (via @objectstack/spec)
  • content/docs/ui/translations.mdx (via @objectstack/spec)
  • content/docs/ui/views.mdx (via @objectstack/spec)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

…/retryPolicy props

The liveness compile lint no longer warns on authentication — the prop (and
its ledger entry) were removed outright, so the experimental-marker test case
is obsolete; the showcase-shaped fixture loses its dead retryPolicy key.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant