Skip to content

fix(ts): cancel the D-22 label-default flip — mirror Python 34-06#127

Open
helloiamvu wants to merge 4 commits into
mainfrom
fix/ts-d22-flip-cancel
Open

fix(ts): cancel the D-22 label-default flip — mirror Python 34-06#127
helloiamvu wants to merge 4 commits into
mainfrom
fix/ts-d22-flip-cancel

Conversation

@helloiamvu

@helloiamvu helloiamvu commented Jul 15, 2026

Copy link
Copy Markdown
Member

Summary

Cross-SDK divergence found during the 1.17 docs refresh: Python 1.17.0 cancelled the D-22 label-default flip (bare dataset() keeps label="cli" silently — an explicit, contractually-stable default; nothing flips at 2.0), but the TS SDK still emitted the one-time FutureWarning and its TSDoc still promised label=null at 2.0. If TS had followed through, cross-SDK byte-parity would break at 2.0.

This ports the cancellation (mirrors packages/core 34-06 semantics exactly):

  • research.ts: warning latch, _D22_BRIDGE_WARNING, fireDefaultLabelWarningOnce, the _resetDefaultLabelWarning test hook, and the internal warnOnDefaultLabel flag removed. The alias-split wrappers stay distinct callables (pinned by tests) but no longer diverge behaviorally; the LABEL_OMITTED sentinel path (omitted ≠ explicit null) is untouched, so output bytes are unchanged.
  • panels.ts: the once-per-panel warning call removed.
  • index.ts: _resetDefaultLabelWarning export dropped (an underscore test hook, removed with the machinery it reset).
  • Tests inverted to never-warns + a new omitted == explicit label="cli" byte-identity check; labels.ts/TSDoc comment sweep.
  • .planning PT-3401 parity ticket gains a reconciliation log entry.

Gates

  • meta suite 289 passed, typecheck clean (all four strict flags)
  • size budgets green — meta 42.21/44 kB (0.2 kB smaller)
  • Review loop (codex + TypeScript Architect) running per REVIEW-DISCIPLINE; verdicts will be posted here.

🤖 Generated with Claude Code


typescript_only: true — this PR is itself the parity action: it ports the already-landed Python 34-06 flip-cancellation to TS (reconciliation recorded in .planning/parity-tickets/PT-3401-ts-async-align.md); there is no Python-side change to mirror.

Cross-SDK divergence found during the 1.17 docs refresh: Python 1.17.0
cancelled the D-22 flip (bare dataset() keeps label='cli' silently, no
FutureWarning, NO default change at 2.0), but TS dataset() still fired the
one-time warning and its TSDoc promised 'default flips to label=null at
2.0' — if TS had followed through, cross-SDK byte-parity would break at
2.0.

- research.ts: remove the _defaultLabelWarned latch, _D22_BRIDGE_WARNING,
  fireDefaultLabelWarningOnce, the _resetDefaultLabelWarning test hook, and
  the internal warnOnDefaultLabel flag — the alias-split wrappers stay
  DISTINCT callables (pinned by tests) but no longer diverge behaviorally;
  omitted label resolves to the explicit, contractually-stable 'cli'
  default silently. TSDoc rewritten to the cancelled-flip semantics.
- panels.ts: drop the FIX-5 once-per-panel warning call.
- index.ts: drop the _resetDefaultLabelWarning export (underscore test
  hook, removed with the machinery it reset).
- labels.ts: comment sweep ('D-22 2.0 default' -> stable implicit default).
- tests: label-axis + panels warning assertions inverted to
  never-warns + a new omitted==explicit byte-identity check.

meta suite 289 passed; typecheck clean; size budgets green (meta
42.21/44 kB — 0.2 kB smaller). PT-3401 reconciliation log updated in the
planning repo.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@helloiamvu helloiamvu requested a review from Tarabcak July 15, 2026 08:57
@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown

Docs-required check: PASS

API-surface change includes docs updates — no reminder needed.

API-surface files changed:

packages-ts/meta/src/index.ts
packages-ts/meta/src/labels.ts
packages-ts/meta/src/panels.ts
packages-ts/meta/src/research.ts

Docs files changed:

.changeset/ts-d22-flip-cancelled.md

@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown

Parity ticket gate: PASSED

parity-ticket-check: TS-side trigger surface touched; opt-out satisfied (parity ticket, typescript_only flag, or label).

See CROSS-SDK-SYNC.md §2 for the workflow.

helloiamvu and others added 2 commits July 15, 2026 11:06
… no-op through 1.x

codex + TypeScript Architect converged: dropping a shipped root-barrel
export in a MINOR breaks downstream compile-time imports. The hook is now
a @deprecated no-op stub (the latch it reset no longer exists), re-exported
from the barrel, pinned by an importability test; removed at 2.0. Also
fixes the stale FIRES-ONCE header comment in label-axis.test.ts (Architect
below-gate note).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…below-gate nit)

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

Copy link
Copy Markdown
Member Author

Review loop complete (REVIEW-DISCIPLINE, codex gpt-5.5 + TypeScript Architect):

  • iter-1: both reviewers independently converged on one HIGH — removing the shipped _resetDefaultLabelWarning root-barrel export in a minor is a downstream compile break. Fixed in cb877b7: @deprecated no-op stub through 1.x + barrel re-export + importability test (removal at 2.0).
  • final: TS Architect PASS (commit verified byte-identical to the remediation it approved; tsc --noEmit clean on HEAD, suites green; LABEL_OMITTED sentinel + silent-cli behavior confirmed untouched). codex PASS.
  • f0877f0 = comment-only test-header fix (Architect below-gate nit).

Gates: meta suite 289 passed · typecheck clean (all four strict flags) · size budgets green (meta 42.21/44 kB, −0.2 kB).

Also re-fires the parity-ticket gate so it reads the updated PR body
(typescript_only marker) — the workflow only triggers on opened/synchronize
and reruns replay the stale event payload.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant