Skip to content

fix(drift-sync): mechanical model-family sync (2026-08-07) - #366

Merged
jpr5 merged 1 commit into
mainfrom
fix/drift-2026-08-07-31225520102-c4c4866c6c7467e8
Aug 7, 2026
Merged

fix(drift-sync): mechanical model-family sync (2026-08-07)#366
jpr5 merged 1 commit into
mainfrom
fix/drift-2026-08-07-31225520102-c4c4866c6c7467e8

Conversation

@copilotkit-devops-bot

Copy link
Copy Markdown

Summary

Auto-generated, DATA-ONLY model-family sync (zero-LLM).

Needs human review + merge. This PR was opened by the
deterministic drift-sync pipeline after drift-sync-check
passed (changed-file allowlist, checksum-pin re-assert, clean
re-collect). It is NOT auto-merged — review CI, the diff, and
merge.

drift-sync-check verdict

npm warn Unknown project config "minimum-release-age". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
npm warn Unknown project config "block-exotic-subdeps". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
drift-sync-check passed: changed files are data-only, classification pins intact, clean re-collect
reason=ok

drift-sync outcome

npm warn Unknown project config "minimum-release-age". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
npm warn Unknown project config "block-exotic-subdeps". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
mechanical sync applied and drift-sync-check passed
  [deprecation-recorded] anthropic/claude-3-5-haiku: "claude-3-5-haiku" is absent from the live /models listing — recorded in deprecatedFamilies.anthropic (still referenced in aimock source — mock retained)
  [deprecation-recorded] anthropic/claude-3-5-sonnet: "claude-3-5-sonnet" is absent from the live /models listing — recorded in deprecatedFamilies.anthropic (still referenced in aimock source — mock retained)
  [deprecation-recorded] anthropic/claude-3-7-sonnet: "claude-3-7-sonnet" is absent from the live /models listing — recorded in deprecatedFamilies.anthropic (still referenced in aimock source — mock retained)
  [deprecation-recorded] anthropic/claude-3-haiku: "claude-3-haiku" is absent from the live /models listing — recorded in deprecatedFamilies.anthropic (still referenced in aimock source — mock retained)
  [deprecation-recorded] anthropic/claude-3-opus: "claude-3-opus" is absent from the live /models listing — recorded in deprecatedFamilies.anthropic (still referenced in aimock source — mock retained)
  [deprecation-recorded] anthropic/claude-3-sonnet: "claude-3-sonnet" is absent from the live /models listing — recorded in deprecatedFamilies.anthropic (still referenced in aimock source — mock retained)
  [deprecation-recorded] anthropic/claude-haiku-4: "claude-haiku-4" is absent from the live /models listing — recorded in deprecatedFamilies.anthropic (still referenced in aimock source — mock retained)
  [deprecation-recorded] anthropic/claude-opus-4: "claude-opus-4" is absent from the live /models listing — recorded in deprecatedFamilies.anthropic (still referenced in aimock source — mock retained)
  [deprecation-recorded] anthropic/claude-opus-4-1: "claude-opus-4-1" is absent from the live /models listing — recorded in deprecatedFamilies.anthropic (no remaining aimock reference — droppable from includeFamilies in a reviewed re-pin)
  [deprecation-recorded] anthropic/claude-sonnet-4: "claude-sonnet-4" is absent from the live /models listing — recorded in deprecatedFamilies.anthropic (still referenced in aimock source — mock retained)
npm warn Unknown env config "block-exotic-subdeps". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
npm warn Unknown env config "minimum-release-age". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
npm warn Unknown project config "minimum-release-age". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
npm warn Unknown project config "block-exotic-subdeps". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.
�[33m[STARTED]�[39m Backing up original state...
�[32m[COMPLETED]�[39m Backed up original state in git stash (b343bb0)
�[33m[STARTED]�[39m Running tasks for staged files...
�[33m[STARTED]�[39m package.json�[0;90m — 1 file�[0m
�[33m[STARTED]�[39m *.{ts,mts,js,mjs,cjs,json,html,css,md}�[0;90m — 1 file�[0m
�[33m[STARTED]�[39m *.{ts,mts,js,mjs}�[0;90m — 1 file�[0m
�[33m[STARTED]�[39m prettier --write
�[33m[STARTED]�[39m eslint --fix
�[32m[COMPLETED]�[39m prettier --write
�[32m[COMPLETED]�[39m *.{ts,mts,js,mjs,cjs,json,html,css,md}�[0;90m — 1 file�[0m
�[32m[COMPLETED]�[39m eslint --fix
�[32m[COMPLETED]�[39m *.{ts,mts,js,mjs}�[0;90m — 1 file�[0m
�[32m[COMPLETED]�[39m package.json�[0;90m — 1 file�[0m
�[32m[COMPLETED]�[39m Running tasks for staged files...
�[33m[STARTED]�[39m Applying modifications from tasks...
�[32m[COMPLETED]�[39m Applying modifications from tasks...
�[33m[STARTED]�[39m Cleaning up temporary files...
�[32m[COMPLETED]�[39m Cleaning up temporary files...
[fix/drift-2026-08-07-31225520102 3e70a91] fix(drift-sync): mechanical model-family sync (deprecation-recorded anthropic/claude-3-5-haiku, deprecation-recorded anthropic/claude-3-5-sonnet, deprecation-recorded anthropic/claude-3-7-sonnet, deprecation-recorded anthropic/claude-3-haiku, deprecation-recorded anthropic/claude-3-opus, deprecation-recorded anthropic/claude-3-sonnet, deprecation-recorded anthropic/claude-haiku-4, deprecation-recorded anthropic/claude-opus-4, deprecation-recorded anthropic/claude-opus-4-1, deprecation-recorded anthropic/claude-sonnet-4)
 1 file changed, 10 insertions(+)
unchecked-providers=
reason=ok-applied
changeset-key=c4c4866c6c7467e8

@pkg-pr-new

pkg-pr-new Bot commented Aug 7, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@copilotkit/aimock@366

commit: 318b610

jpr5 added a commit that referenced this pull request Aug 7, 2026
…n merge (#367)

The drift-sync bot built its commit **subject** by interpolating every
changed family. On the first run that recorded ten deprecations, that
produced a **525-character header**, and commitlint rejects anything
over 100 — so the bot opened PR #366 that can never merge, putting a
human back in the loop for pure bookkeeping.

This was always latent. It stayed hidden because ten deprecations used
to mean "page a human" rather than a mechanical commit, and at one
change the unbounded subject is only 94 characters — just under the
limit.

## Change

The subject is now bounded for any number of changes, degrading by
*count* rather than by characters: it names how many families and which
providers, ending in a form whose length grows only with the count's
digits. The full per-family detail moves to the commit body, where
nothing is lost and `body-max-line-length` is respected.

The needs-human subject was already a fixed 72-character string and is
unchanged.

## Verification

Red drives the real construction path with the actual ten deprecations
from production run `31225520102`. Its output is **byte-identical to the
bot's real commit `3e70a91`** — 525 characters, real commitlint exit 1.

Green, same inputs, measured at 1 / 10 / 50 / 200 changes: **67 / 70 /
70 / 71** characters for one provider, and 67 / 86 / 86 / 87 across all
three. Growth is only the count's digits, so the bound is structural
rather than a slice. At 200 changes it still reads as a complete
sentence; at one change it reads "1 family:", not "1 changes". Fallback
forms were forced with synthetic long provider names — they engage at
six or more providers and stay within the limit as whole sentences.

Body integrity is proven by building real commits and linting them with
the repo's own config: the 200-change message passes with all 200 detail
triples present in the stored body.

The checks are non-vacuous, verified by controls that must fail and do:
the reconstructed 526-character header fails `header-max-length`, and a
162-character body line fails `body-max-line-length`.

Restoring the unbounded interpolation reds 7 of the 10 new tests. The
three survivors are honest and explained: at one change the old subject
is only 94 characters, which is precisely why this defect stayed
invisible until a ten-family run.
Recorded in deprecatedFamilies.anthropic — each family is absent from the
live /models listing. The mock is retained for every still-referenced
family, so tests that pin these models keep passing.

- claude-3-5-haiku: still referenced in aimock source — mock retained
- claude-3-5-sonnet: still referenced in aimock source — mock retained
- claude-3-7-sonnet: still referenced in aimock source — mock retained
- claude-3-haiku: still referenced in aimock source — mock retained
- claude-3-opus: still referenced in aimock source — mock retained
- claude-3-sonnet: still referenced in aimock source — mock retained
- claude-haiku-4: still referenced in aimock source — mock retained
- claude-opus-4: still referenced in aimock source — mock retained
- claude-opus-4-1: no remaining aimock reference — droppable from
  includeFamilies in a reviewed re-pin
- claude-sonnet-4: still referenced in aimock source — mock retained
@jpr5
jpr5 force-pushed the fix/drift-2026-08-07-31225520102-c4c4866c6c7467e8 branch from 3e70a91 to 318b610 Compare August 7, 2026 23:23
@jpr5
jpr5 merged commit c9af8c3 into main Aug 7, 2026
27 checks passed
@jpr5
jpr5 deleted the fix/drift-2026-08-07-31225520102-c4c4866c6c7467e8 branch August 7, 2026 23:25
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