Uh oh!
There was an error while loading. Please reload this page.
docs(protocol): drop phantom labels and unbacked promises from the backward-compatibility page (#14210, #14245) - #14385
Merged
Conversation
…ckward-compatibility page - Breaking Change Process step 1: point at the label that actually exists, `protocol:breaking`, instead of the never-created `breaking-change`. - Reporting Compatibility Issues step 2: drop the `compatibility` label instruction entirely — no reader exists for it, so it does not exist either. - Delete the unsourced "minimum 2 MINOR releases" deprecation-survival guarantee (heading, mermaid diagram, and callout) and state the true process instead: a deprecated feature is retired at the boundary the ADR-0087 registry records for it, with no minimum dwell time. - Re-derive the "tracked separately and deliberately not stated here" sentence: the launch window closes at GA and strict SemVer resumes from that point, per `scripts/check-changeset-no-major.mjs`'s own end-condition header. _Generated by [Claude Code](https://claude.ai/code/session_01WLJQhde67SeTccsmnBVarV)_
baozhoutao
marked this pull request as ready for review
September 2, 2026 04:10
baozhoutao
enabled auto-merge
September 2, 2026 04:11
Uh oh!
There was an error while loading. Please reload this page.
baozhoutao
deleted the
claude/issue-14210-backward-compat-page-promises
branch
September 2, 2026 04:39
This was referenced Sep 2, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#14210
Fixes#14245
Both cards land in the same file,
content/docs/protocol/backward-compatibility.mdx— triage said "one implementer, one PR is fine; two cards, two criteria," so each card's criterion is checked off separately below.#14210 — phantom labels + unbacked deprecation-survival guarantee
Ruling (comment 5503137278, verbatim):
Criterion 1 — labels:
protocol:breaking(confirmed live viaGET /repos/objectstack-ai/objectstack/labels?per_page=100;breaking-changeandcompatibilitydo not exist in the label set).Breaking changes are proposed as GitHub issues with the `breaking-change` label.Breaking changes are proposed as GitHub issues with the `protocol:breaking` label.File a GitHub issue with the `compatibility` label.File a GitHub issue describing the unintended change.Criterion 2 — no unbacked dwell-time guarantee:
### Phase 2: Migration Period (minimum 2 MINOR releases)After:
### Phase 2: Migration PeriodA["v3.2.0 — feature deprecated..."] --> B["v3.3.0 — migration period continues"] --> C["v3.4.0 — migration continues (minimum 2 minor releases)"] --> D["v3.5.0 — feature removed..."]After: a 3-node generic flow (Deprecation notice → Migration period → Removal) with no fabricated version numbers and no minimum-duration claim; the Removal node now names the ADR-0087 registry boundary.
**Minimum guarantee:** Deprecated features survive for at least **2 MINOR releases** before they can be removed. ...After:
**No minimum survival window.** ObjectStack does not guarantee a deprecated feature survives for a fixed number of releases — [ADR-0049]'s dispositions for a flagged property are enforce,experimental, or remove, and none of them carries a dwell time. A deprecated feature is retired at the boundary the ADR-0087 registry records for it; ...#14245 — re-derive the GA end-condition sentence
Ruling (comment 5503069318, verbatim):
Criterion — GA end condition re-derived from the gate header, verbatim in substance:
scripts/check-changeset-no-major.mjsheader, "END CONDITION" section —"**End condition: at GA — the fixed group's first general-availability major — the group returns to STRICT SEMVER.**"No dates, no version numbers in the source; none introduced here.the condition that closes the window is tracked separately and is deliberately not stated here.the window closes at GA, and strict SemVer resumes from that point.Full diff
(
FENCE/CALLOUTabove stand in for the literal MDX code-fence and Callout-component syntax — GitHub's body sanitizer strips angle-bracket-shaped text, so the diff is spelled with placeholders here; the real file uses the actual MDX syntax.)Gates
Docs-only change (no package publishes anything) —
skip-changesetlabel applied on open per this repo's convention: precedent PR #14211 (same page, same author, docs-only) carriesdocumentation,size/s,skip-changeset.node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstackderived 29 local gate families for this path (content/docs/protocol/backward-compatibility.mdx). Reconciliation via--ran:The 1 NOT-MEASURED is
node scripts/check-test-completeness.mjs, which grades a savedturbo run testCI log and cannot run standalone locally (own PREREQUISITE NOT MET message) — CI-only by design, not a finding.All 28 runnable families passed at head
5ee7d7d93, including (after building the dependency closure —@objectstack/spec,@objectstack/formula,@objectstack/lint,@objectstack/client,@objectstack/client-react— that severalpnpm --filter @objectstack/{spec,lint}doc gates import compiled output from):pnpm --filter @objectstack/spec run check:docs—229 generated files in syncpnpm --filter @objectstack/spec run check:skill-examples—259 prose examples type-check across 3 surface(s)pnpm --filter @objectstack/lint run check:doc-formula-expressions/check:doc-security-posture— cleanpnpm check:doc-anchors,check:docs-single-h1,check:docs-redirects,check:doc-authoring,check:role-word,check:published-readme-links,check:vendor-version-stamps,check:react-page-adapter-contract,check:corpus-claim-drift,check:cross-package-test-inputs,check:docs-audit-scope,check:skill-identifier-liveness— all cleannode scripts/check-doc-frontmatter.mjs,check-doc-route-spelling.mjs,check-docs-section-name.mjs,check-section-landing-index.mjs,check-ci-filter-parity.mjs,check-cross-package-test-inputs.mjs,check-shard-attestation.mjs— all cleannode scripts/check-nul-bytes.mjs— clean (repo-wide scan, no raw control bytes)check:pm-dispatch-gates(its own vitest pin suite) was not part of this card's derived list — this PR does not touch any gate/tool script, only the target MDX content, so no derivation family or its self-tests apply beyond the 29 above.CI status on this draft is
in_progressat time of report — the farm runs the remaining 171 unrelated families regardless; per the dispatch contract this report is delivered at draft-PR time, not after CI convergence.Generated by Claude Code
Generated by Claude Code