Skip to content

chore: refresh the generated catalog - #159

Merged
viztor merged 4 commits into
mainfrom
chore/generated-refresh
Nov 13, 2026
Merged

viztor merged 4 commits into
mainfrom
chore/generated-refresh

Conversation

@viztor

@viztor viztor commented Nov 5, 2026 •

Copy link
Copy Markdown
Owner

The nightly freshness check found the vendor sources moved, and CI regenerated src/catalog-data.ts (run 43224577274, 2026-11-12). src/go-limits-data.ts is not part of this refresh: its generator has failed on main since 2026-11-07, which #167 fixes. Since #168, a limits failure no longer holds the catalog back.

What the vendor moved

  • Zen 82 → 87.
    • Added: claude-fable-5-2, gemini-4-carbon, iceman-free, inkling-2-small-free, longcat-2.5-free, minimax-m3.1-flash-free, muse-ember-1.0.
    • Retired: crouton-alpha-free, pulse-alpha-free.
  • Go 31 → 32. Added: longcat-2.5-free.
  • deepseek-v4.1-flash is now named "DeepSeek V4.1 Flash 1017" on both planes.
  • Some prices moved. No doc or test pins those.

What followed it

The generated file is CI's, unchanged. Three commits follow it through what pins the catalog:

  • README.md and README.zh-CN.md, kept in step: the routing table rows (Zen 27 no SDK / 32 openai / 18 anthropic / 9 google / 1 mistral), the totals, the date, and the Go Chat Completions list (longcat-2.5-free, and hy4, missing since an earlier refresh).
  • docs/protocol-routing-and-merge.md, docs/redirect-planes.md and docs/deep-dive.md: the served counts and the per-plane SDK table. The "listed" counts cannot be measured from the session that wrote this, so they keep their recorded values and are marked as such.
  • test/catalog.test.ts and test/usage-service.test.ts: the literal counts the suite pins on purpose, and the renamed display name. Every count test still compares a doc against the catalog, and none was weakened.

These were reviewed in two adversarial rounds, with two skeptics per finding. All upheld findings are fixed.

Gate on Node 26:

  • vp check: 0 errors, 18 warnings.
  • Unit suite: 102 files, 1735 passed. The same on the rc channel.
  • Mock suite: 52 passed.
  • pnpm run build and scripts/check.ts: passed.

@github-actions
github-actions Bot force-pushed the chore/generated-refresh branch from aec84b9 to 834d440 Compare November 12, 2026 13:09
The nightly regenerated `src/catalog-data.ts`: Zen 82 -> 87 served (+
claude-fable-5-2, gemini-4-carbon, iceman-free, inkling-2-small-free,
longcat-2.5-free, minimax-m3.1-flash-free, muse-ember-1.0; - crouton-alpha-free,
pulse-alpha-free), Go 31 -> 32 (+ longcat-2.5-free), and the vendor renamed
`deepseek-v4.1-flash` to "DeepSeek V4.1 Flash 1017" on both planes. Zen's SDK
split is now 27 no-SDK / 32 openai / 18 anthropic / 9 google / 1 mistral, Go's
21 / 5 / 5 / 1, and Zen's free tiers 10 -> 12. The generated files are not
touched here; `src/go-limits-data.ts` stays as main has it.

- README.md, README.zh-CN.md: the routing table's rows and both prose totals
  (87), with the measurement date; the Chinese table's no-SDK row also caught
  up from a stale 24.
- docs/protocol-routing-and-merge.md: every `N of 87` row and the counts' date
  and provenance.
- docs/redirect-planes.md: the served/listed cells (87/139, 32/39; listed moves
  with each new id and keeps retired ones, as the earlier refreshes recorded),
  the plane-by-plane SDK table, the `0 of 87` / `0 of 32` sentence, and the
  counts' date and provenance.
- test/catalog.test.ts: the deliberate literal constants (Go 32, Zen 87, free
  12, per-SDK and per-route counts 32/18 and 34/21), the shared-id count in a
  comment (17), and the display name the enrichment and lookup tests read from
  the catalog for the still-present `deepseek-v4.1-flash`.
- test/usage-service.test.ts: the allowance row's model name, which is the
  catalog's spelling and so follows the vendor's rename.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141fKp5k6hiaJcP5ovhGtSD
- README.md, README.zh-CN.md: the Go Chat Completions bullet lists the full
  no-SDK set again (21), adding `hy4` (missing since #156) and
  `longcat-2.5-free`, the Go model this refresh adds, in catalog order.
- docs/redirect-planes.md: the listed halves go back to 132 / 38. They were
  derived by arithmetic in the previous commit, and that arithmetic double
  counts the returning `minimax-m3.1-flash-free`; the registry is not
  reachable to re-measure them, so the dated note now says only the served
  halves were refreshed in #159 and the listed ones are carried forward.
- docs/deep-dive.md: the enrichment's example display name follows the
  vendor's rename to "DeepSeek V4.1 Flash 1017".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141fKp5k6hiaJcP5ovhGtSD
The refresh moved the @ai-sdk/google row of the protocol table to 9, but
the bullet below it still said "那 8 个". Name the models without a number,
as the English bullet does, so the prose cannot drift on the next refresh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141fKp5k6hiaJcP5ovhGtSD
@viztor viztor changed the title chore: refresh the generated catalog and limits tables chore: refresh the generated catalog Nov 13, 2026
@viztor
viztor merged commit 7504fe2 into main Nov 13, 2026
9 checks passed
viztor pushed a commit that referenced this pull request Nov 13, 2026
Conflicts resolved with P-R1's structure and wording, carrying #159's facts:

- README.md, README.zh-CN.md: P-R1's Go list order (Google last) and
  three-column protocol table; #159's Go completions list (+ hy4,
  longcat-2.5-free) and counts 27/32/18/9/1 of 87 (the zh table's stale
  24 is now 27). P-R1's four properties kept over main's rewording of
  the passage P-R1 replaced.
- docs/deep-dive.md: P-R1's items 4-5; item 3 takes the renamed
  "DeepSeek V4.1 Flash 1017".
- docs/protocol-routing-and-merge.md: P-R1's modern-family table and
  mistral row; #159's date, PR provenance and 87-model counts.
- docs/redirect-planes.md: P-R1's credential column and mistral
  protocol; #159's served counts (87, 32) and shape counts (27/21,
  32, 18, 9).
- test/catalog.test.ts: P-R1's protocol-keyed union test with #159's
  counts (34 Responses, 21 Messages); the Zen-route test P-R1 removed
  stays removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141fKp5k6hiaJcP5ovhGtSD
viztor pushed a commit that referenced this pull request Nov 13, 2026
) into claude/vigilant-mendel-bctz9n-p-r2

Brings P-R1's merge of main (#170, the nightly push fix; #159, the
catalog refresh to Zen 87 / Go 32) and D27 (the route claim steps aside
for a plane entry another plugin owns, by realm or marker) under P-R2.
The merged tree is P-R2's own change on top of the parent.

Conflicts:

- AGENTS.md, the pure-utils line for the plane's decisions. P-R1 added
  `src/utils/plane-ownership.ts` to the list and the D27 clause (which
  entries the claim takes and which another plugin owns, read by realm
  and marker; the meter asks the same questions). P-R2 added the family
  `auto` resolves to (`AUTO_ENDPOINT_FAMILY`, P-R2) to the plane-model
  clause. Kept the parent's line and carried P-R2's clause into it.

Every other file merged cleanly; src/catalog-data.ts,
src/go-limits-data.ts and CHANGELOG.md are the parent's exactly.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141fKp5k6hiaJcP5ovhGtSD
viztor pushed a commit that referenced this pull request Nov 13, 2026
) into claude/vigilant-mendel-bctz9n-p3

The merged tree is P3's own change (the discoverModels wrapper that
complements a served plane's Settings fetch with the catalog) on top of
P-R2 with P-R1's D27 and main #170/#159. Conflicts, and how each was
resolved:

- src/host/route-claim.ts: P3 wrapped restartHolder in a
  state.restarting marker and added claiming()/heldByPiAi; D27 split
  restartHolder into restartServed(fiber, key, still) with restartHolder
  and restartLender over it, and added steppedAside(). Kept D27's split
  and put P3's restarting marker into restartServed, so claiming() reads
  engaged while either restart of the served row is in flight. Kept both
  claiming() and steppedAside() on the returned claim. heldByPiAi now
  reads heldPlanes (the planes the claim takes) instead of
  resolvedPlanes, as D27 did at every other site: a plane pi-ai holds
  for another plugin must not make the claim read stood down for the
  plane beside it.
- src/lifecycle.ts: P3 deleted installModelDiscovery, toDiscovered and
  the registerModelDiscovery namespaces and hands the wrapper the claim;
  D27 threaded claim.steppedAside into the stream hook and the old
  decorator. Kept P3's discovery (installDiscovery(ctx, config, claim))
  and D27's stream hook wiring.
- src/models-discovery.ts: P3's wrapper and doc kept; D27's decorator
  parameter dropped with the decorator it changed. The wrapper does not
  read the step-aside yet: the follow-up commit adds it, red first.
- test/models-discovery.test.ts: P3's cases kept; D27's unit case kept,
  on P3's signature (the claim with a steppedAside accessor) and with
  P3's answer on the plane the claim takes (pi's row, then the servable
  catalog ids pi lacks).
- docs/improvement-plan.md: D27's settings.describe line; P3's landed
  discoverModels record, with D27's requirement on it stated as still
  to meet; P3's landed item 9, with D27's requirement as a bullet.
- docs/deep-dive.md: main's catalog name in item 3; P3's item 4 (the
  native registration item 5 is gone with P3's deletion).
- docs/redirect-planes.md: D27's endpoint-family row and P3's
  host-discovery row, both.
- CONTRIBUTING.md: P3's tier A (hostModules: null) and tier B
  (host-discovery) text, plus D27's realm option.

Adapted where the parents meet outside a conflict:

- test/host-planes-foreign.test.ts: D27's Fetch case expected the
  unmarked plane to answer the 1.x merge; under P3 it is pi's ids
  without the retired one, then every servable, non-deprecated catalog
  id pi lacks.
- test/host-discovery.test.ts: main #170's catalog makes the first Zen
  gap row a Gemini model (gemini-4-carbon), whose request names the
  model in the URL path and whose 401 pi reports as PI_AI_ERROR (as the
  characterization measures); the adopted-gap case reads the model and
  the finish per protocol.

Known red on this tree: D27's discovery step-aside cases (the unit case
and the tier-B Fetch case, both orders), since P3's wrapper ignores the
step-aside. The next commit makes them green.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141fKp5k6hiaJcP5ovhGtSD
viztor pushed a commit that referenced this pull request Nov 13, 2026
… into claude/vigilant-mendel-bctz9n-p-t2

The merged tree is P-T2's own change on top of P3's tip: src/ is P3's
exactly apart from P-T2's two source edits (models-catalog.ts,
stream-hook.ts), and every case the parents added since the last
restack sits in P-T2's layout. Conflicts, and how each was resolved:

- AGENTS.md: P-T2 points the route claim's stand-in at
  test/support/route-claim-stand-in.ts and drops host-harness from the
  tier-B entry; D27 adds tier B's realm option and the step-aside to the
  route-claim and purge entries. Kept D27's text with P-T2's file names.
- CONTRIBUTING.md: tier A keeps P-T2's case list (host-harness retired);
  tier B takes D27's realm option sentence.
- test/support/host.ts: P-T2 files the plugin's row through pluginRow
  (id, package, config); D27 adds the realm option. profilePatchText
  takes both the row id and the realm label; D27's host-planes-foreign
  passes its config as pluginRow: { config }.
- test/catalog.test.ts: #159 restated the shim's counts and the renamed
  display name; P-T2 replaced the counts with invariants and picks rows
  by shape, so P-T2's side stands (no title is lost: the counts were
  assertions inside existing cases, and the priced-differently case was
  already P-T2's "agrees about free" plus the seeded stream-hook case).
- test/usage-service.test.ts: #159's display-name change was to a case
  P-T2 moved to usage-service-readings, where the name is read off the
  allowance row by shape; P-T2's side stands.
- test/stream-hook.test.ts: imports unioned; D27's case uses the file's
  static createStreamHook, resolveConfig and AsyncLocalStorage imports
  instead of dynamic ones.
- test/fetch-patch.test.ts: D27's "another plugin's request" describe
  sits in fetch-patch.test.ts (the credentials part, which holds key
  capture), ahead of P-T2's "patchFetch · credentials"; SESSION_HEADER
  added to its door import.
- test/route-claim.test.ts: P-T2's split stands. D27's standing-down
  assertions merged in place; its listener case moved to the listener
  describe of route-claim-listener.test.ts, and its four second-row
  cases (with the Neighbours table) to that file's "a second pi-ai row",
  on the shared stand-in (FakeFiber imported from it).

Auto-merged parent cases verified in place: go-discovery (D27 describe
on loader-rows' real contexts), models-discovery, purge-service, reload,
plane-profile, endpoint-family, host-discovery, freshness-scope, and the
new plane-ownership and host-planes-foreign files through the door.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141fKp5k6hiaJcP5ovhGtSD
viztor pushed a commit that referenced this pull request Nov 13, 2026
The nightly refresh (#171) regenerated src/catalog-data.ts: Zen 87 -> 88 with
gemini-4-hydrogen ("Gemini 4 Hydrogen", @ai-sdk/google, paid), Go unchanged at
32, src/go-limits-data.ts unchanged. Every document and test that pins what
moved follows it:

- README.md: the routing table's @ai-sdk/google row 9 -> 10, and the stated
  total 87 -> 88 (both mentions) with its date 2026-11-12 -> 2026-11-13; the
  catalog tests parse both the table and the sentence.
- README.zh-CN.md: the same three changes, kept in step with the English
  README for the docs-pairing gate and the bilingual prose-total test.
- docs/protocol-routing-and-merge.md: every "N of 87" becomes "of 88", the
  Google row 9 -> 10, and the counts-as-of note names #171 and its date.
- docs/redirect-planes.md: Zen "87 served" -> 88, the shapes table's Google
  Zen cell 9 -> 10, "0 of 87 on Zen" -> 88, and both counts-as-of notes name
  #171; the listed halves stay the ones #156 recorded, as #159 left them,
  since the registry was not re-read.
- test/catalog.test.ts: the bundled Zen shim's pinned length 87 -> 88. The
  free count (12), the Responses/Anthropic buckets and the both-planes overlap
  are unchanged, because the new model is paid, Google and Zen-only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0141fKp5k6hiaJcP5ovhGtSD
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.

2 participants