Skip to content

spec: retire the seven cron-typed positions nothing reads — export schedules, ScheduleState.cronExpression, DataSyncConfig.schedule, CacheWarmup.schedule, backup/DR schedules — under ADR-0049 (#15954 ruling, option A per family) #16320

Description

@os-zhuang

Work card for the #15954 ruling (director seat, decision batch #56, maintainer 「其他同意」 on the per-family recommendation, 2026-09-06). This card carries the retire half; the PromptTemplate marking half is its sibling card (linked from #15954). Sequencing: after the #15028 / #15035 narrowing PR on shared/expression.zod.ts lands.

Positions to retire (seven positions, six key names)

file:Schema.field line (at origin/main f1e91595f, re-locate by text) reachable from a stack manifest
api/export.zod.ts ScheduledExport.schedule.cronExpression :576 no — API contract
api/export.zod.ts ScheduleExportRequest.schedule.cronExpression :706 no — API request
automation/execution.zod.ts ScheduleState.cronExpression :454 no — runtime state
integration/connector.zod.ts DataSyncConfig.schedule :257 yesConnector.syncConfig, defineStack({ connectors })
system/cache.zod.ts CacheWarmup.schedule :156 no
system/disaster-recovery.zod.ts BackupConfig.schedule :57 no
system/disaster-recovery.zod.ts DisasterRecoveryPlan.testing.schedule :238 no

Not in scope: system/job.zod.ts CronSchedule.expression (read by croner), ai/knowledge-source.zod.ts KnowledgeRefreshPolicy.cron (experimental-marked), Object.titleFormat (read by objectui; #15947), and the PromptTemplate pair (sibling card).

Shape — the #14477 / PR #15514 precedent, spec-property-retirement playbook

  • RETIRED_KEYS_BY_MAJOR[18] entries + retiredKey() tombstones at each position; refusal pins (an author who writes the key gets the tombstone's did-you-mean, never silent acceptance).
  • One ADR-0087 D3 semantic entry per family: export API schedules; automation ScheduleState; connector sync schedule; cache warmup; backup / DR testing. The connector entry states the measured population (zero in-repo authors — examples, docs, skills, objectui pin all swept with controls; out-of-repo stacks NOT MEASURED) since it is the only stack-collection member.
  • Regenerate: authorable-surface shards, JSON schema, api-surface, reference pages; retire the D7 cron-declared-unwired ledger rows for these positions (packages/qa/dogfood/test/expression-conformance.ledger.ts).
  • Changeset: @objectstack/spec minor, **BREAKING** banner, <!-- adr-0087: registered <entry-ids> -->. Immediate retirement, no deprecation window (2026-08-27 ruling).
  • Clause-②: yes on both carriers; contract review at tier.

Re-check before claiming

git grep -n "CronExpressionInputSchema" origin/main -- packages/spec/src | grep -v test
git grep -n "cron-declared-unwired" origin/main -- packages/qa/dogfood/test/expression-conformance.ledger.ts

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions