Repository navigation
Commit 929d9e3
* wip(spec): tombstone the seven cron-typed positions, per-family ADR-0087 entries, pins
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MkQhmuuJAVDjmeWNixwDDH
* wip(spec): move export constants below the module docblock, regenerate docs, fix cache carrier fixture
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MkQhmuuJAVDjmeWNixwDDH
* wip(spec): connector family D3 twin per the #15954 letter, re-judge the two missed fixtures, harden pins
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MkQhmuuJAVDjmeWNixwDDH
* wip(spec): name the tool without the house-sentence marker in the connector D3 twin (class pin `retired-key-migrate-sentence`)
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MkQhmuuJAVDjmeWNixwDDH
* chore(docs): regenerate export.mdx on the merged tree
The os-regen merge driver resolved content/docs/references/api/export.mdx
with exit 0 and no conflict markers while silently dropping origin/main's
side: the merge commit's blob was byte-identical to this branch's tip and
carried 0 of PR #17090's `refusal` envelope rows.
scripts/pm/os-regen-merge.sh step 2 restored main's side in the worktree,
and `gen:schema && gen:docs` re-derived this branch's cron-retirement
tombstones on top. The merged page now carries both intents.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MkQhmuuJAVDjmeWNixwDDH
* refactor(spec)!: delete the seven cron-typed positions outright — no tombstone, no D2, no D3
Executes the maintainer ruling of 2026-09-10 on this PR: 直接删. The previous
round retired the seven positions the tombstone way — `retiredKey()` at every
site, seven `RETIRED_KEYS_BY_MAJOR[18]` entries, one D2 conversion for the
connector family and five D3 semantic entries. The maintainer ruled that whole
kit out on the reading that customers do not upgrade major by major in order,
after the seat had recommended the opposite in writing and stated the cost.
So the keys simply stop existing:
- 7 `migrations/entries/retired-keys/18.*.ts` deleted
- 5 `migrations/entries/semantic/18.*-retired.ts` deleted
- `conversions/registry.ts`: `connector-sync-schedule-removed` (D2) deleted,
and its id dropped from step 18's `conversionIds`
- `migrations/registry.ts` regenerated — the generated regions collapse
- the six schema files keep only the deletion half; no `retiredKey()` survives.
Each site keeps a source comment recording what left, why nothing read it,
and that `Job.schedule.expression` is the one cron slot the platform evaluates
- `authorable-surface/`: the four rows that existed are deleted rather than
marked `[RETIRED]`; the build's own #4650 proof 2 carries each of them (the
def is not reachable from the 26 metadata-type roots)
- the pin test is rewritten around what a bare deletion actually produces: the
authored value is accepted and STRIPPED, and no ADR-0087 surface names any of
the seven — with a lit and a dark control on every absence reading
- the changeset is rewritten for the smaller change
Claude-Session: https://claude.ai/code/session_01MkQhmuuJAVDjmeWNixwDDH
Co-authored-by: Claude <noreply@anthropic.com>
* test(spec): restore the two well-formed fixtures the rewrite paraphrased
`CACHE_WELL_FORMED` and `DR_PLAN_WELL_FORMED` are the ATTRIBUTION CONTROLS of
every pin in this file — each site asserts that the same document without the
deleted key still parses, so a fixture that does not parse turns the control
into a second failure mode and the pin proves nothing. Retyping them from
memory rather than carrying them across produced exactly that: `DistributedCacheConfig`
needs `tiers` and `invalidation`, and `DisasterRecoveryPlan` takes no `name`.
Both are restored to the bytes they carried before, and the suite is green.
Claude-Session: https://claude.ai/code/session_01MkQhmuuJAVDjmeWNixwDDH
Co-authored-by: Claude <noreply@anthropic.com>
* docs(spec): correct the "silent strip" cost statement at all four sites, and re-count clause ② as seven
A CONTRACT_REVIEW_TIER review measured this branch's head and found the cost
statement the maintainer signs off on by merging to be factually wrong. Four
sites said the strip is silent. It is not: `lintUnknownAuthoringKeys` (#3786)
walks every stack collection whose entry schema is strip-mode, and `connectors`
is one, so for `connectors[].syncConfig.schedule` — the one deleted position a
stack manifest reaches — `os validate` and `os build` NAME the dropped key and
`os validate --strict` EXITS 1 on it. Measured at head on an otherwise-clean
stack: without the key 0 warnings / exit 0, with it 1 warning / exit 1.
The truth is more favourable to authors than what the maintainer was told, but
it is not the sentence they were asked to confirm. Corrected at all four sites:
the changeset, `migrations/registry.ts`'s step-18 rationale, two comments in
`cron-typed-positions-retirement.test.ts`, and the PR body's 维护者速读. The
accurate statement is per channel: the PARSE strips silently, `os validate` /
`os build` name the key, `--strict` refuses, `os migrate meta` still lists
nothing.
Same round, two more corrections and no behaviour change:
* Clause ② is SEVEN widenings, not two, and THREE of them are required-key
removals (`ScheduleState.cronExpression`,
`ScheduledExport.schedule.cronExpression`,
`ScheduleExportRequest.schedule.cronExpression`). Measured on both legs:
the five schema files restored to the merge-base on disk, one probe run,
restored to HEAD and re-run, with a byte-identity check after the restore.
14 cases, 14 refusals on the base leg, 14 accept-and-strip on the head leg.
* The changeset now names the departure of the required `cronExpression:
string` member from `ScheduleExportInput` — a published TS interface on
`IExportService`. "No def leaves the public surface" is true and does not
cover a member. Sweep: zero consumers outside `packages/spec`.
⛔ No behaviour changed: the seven deletions, the merge and the ADR-0087
disposition are untouched, and the 直接删 ruling is not re-litigated.
Claude-Session: https://claude.ai/code/session_01MkQhmuuJAVDjmeWNixwDDH
Co-authored-by: Claude <noreply@anthropic.com>
---------
Co-authored-by: Claude <noreply@anthropic.com>
1 parent d57611d commit 929d9e3
29 files changed
Lines changed: 840 additions & 154 deletions
File tree
- .changeset
- content/docs/references
- api
- automation
- integration
- system
- packages
- qa/dogfood/test
- spec
- authorable-surface
- docs
- src
- api
- automation
- contracts
- integration
- migrations
- system
- skills/objectstack-formula
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
751 | 751 | | |
752 | 752 | | |
753 | 753 | | |
754 | | - | |
| 754 | + | |
755 | 755 | | |
756 | 756 | | |
757 | 757 | | |
758 | 758 | | |
759 | 759 | | |
760 | 760 | | |
761 | | - | |
762 | 761 | | |
763 | 762 | | |
764 | 763 | | |
| |||
825 | 824 | | |
826 | 825 | | |
827 | 826 | | |
828 | | - | |
| 827 | + | |
829 | 828 | | |
830 | 829 | | |
831 | 830 | | |
| |||
837 | 836 | | |
838 | 837 | | |
839 | 838 | | |
840 | | - | |
841 | 839 | | |
842 | 840 | | |
843 | 841 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
345 | 345 | | |
346 | 346 | | |
347 | 347 | | |
348 | | - | |
349 | 348 | | |
350 | 349 | | |
351 | 350 | | |
| |||
0 commit comments