You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
test(catalog): guard the dated fold's direction at the merge loop, not the predicate
#3034 widens the dated-suffix matcher and pins it with a predicate test that the
fold stays one-way: isDatedVariantId("deepseek-v4-pro", "deepseek-v4-pro-0813")
is false. That assertion is true of every implementation, including one whose
merge loop calls the predicate a second time with the arguments swapped -- which
is exactly what #3041 originally proposed and then withdrew.
So the guard is moved to where the resurrection would actually happen. These
three drive mergeConfiguredModelsIntoLiveCatalog itself, carried from #3041:
- a live base row must not resurrect a configured dated id
- a live MMDD dated row still folds onto its configured base
- a dated id named in retainConfiguredModelIds survives
Both directions were mutation-checked. Adding
|| isDatedVariantId(candidate.id, live.id) to the merge loop fails only the
first test (253 pass / 1 fail); narrowing the suffix back to /^\d{8}$/ fails 13,
including the MMDD and YYMM folds. Neither mutation is caught by the predicate
test alone.
The retention test is labelled for what it actually covers: production fills
retainConfiguredModelIds from combo targets, not from providers.*.models, so it
pins the OCX-111 path. The operator-facing opt-in is #1690's retainModels, which
does not exist yet -- and until it does, the dated id #3024 reports is still
dropped. This lands the safe half of #3024 and says so.
(cherry picked from commit a909682)
0 commit comments