model-eol 0.5.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -45
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,31 +14,6 @@ tooling that turns it into a Dependabot for models.**
|
|
|
14
14
|
|
|
15
15
|

|
|
16
16
|
|
|
17
|
-
## Release line
|
|
18
|
-
|
|
19
|
-
**0.4.1 - trusted migrations.** The 0.4 line made bot migrations independently
|
|
20
|
-
evaluable and bound each result to the exact default-branch commit, plan, eval
|
|
21
|
-
configuration, and feed digests. The workflow resolves the package version once
|
|
22
|
-
and reuses that exact version across planning, evaluation, and publication. It added
|
|
23
|
-
path-scoped policy and lifecycle routing for mixed-provider repositories,
|
|
24
|
-
trusted PR/issue ownership, stale-work reconciliation, and fresh-work behavior
|
|
25
|
-
when a retired model returns. The 0.4.1 patch moved the copy-ready workflows to
|
|
26
|
-
the current Node-backed Actions and fixed Google models-endpoint pagination. The
|
|
27
|
-
bundled feeds contain 313 entries across Amazon, Anthropic, Google, and OpenAI.
|
|
28
|
-
|
|
29
|
-
**0.5.0 - public contract and trust.** This milestone makes the data contract public:
|
|
30
|
-
canonical hosted schemas, a zero-dependency `validate` command, hosted feeds,
|
|
31
|
-
an Atom changelog, and byte-exact refresh receipts whose digests must match the
|
|
32
|
-
published data. It adds status-aware distributor refresh including Bedrock Public
|
|
33
|
-
Extended Access, preserves structured replacement guidance across JSON reports
|
|
34
|
-
and preserves channel-specific lifecycle clocks in CycloneDX,
|
|
35
|
-
preflights multi-file apply plan-wide and rolls back later commit failures,
|
|
36
|
-
fails explicitly on unapproved symlink coverage, and keeps configured eval
|
|
37
|
-
failures as distinct durable issues. It also
|
|
38
|
-
ships a repository-owned eval-harness starter, permanent exact-package consumer
|
|
39
|
-
UAT, and a Node 22 support floor. The hosted URLs become authoritative only after
|
|
40
|
-
the first green Pages deployment.
|
|
41
|
-
|
|
42
17
|
## The problem
|
|
43
18
|
|
|
44
19
|
On July 23, 2026, OpenAI shut down a scheduled wave of model snapshots. One of my
|
|
@@ -68,10 +43,11 @@ second, so the existing trackers can converge instead of each scraping alone.
|
|
|
68
43
|
- **`bot/`** - the Dependabot part: a cron GitHub workflow that maintains one
|
|
69
44
|
migration PR or issue per retiring model, published as the `model-eol-bot`
|
|
70
45
|
binary in the same npm package.
|
|
71
|
-
- **Public contract
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
46
|
+
- **Public contract** - versioned schemas, hosted feeds, refresh health, a
|
|
47
|
+
publication manifest, and an Atom changelog are live at
|
|
48
|
+
[`thossullivan.github.io/model-eol`](https://thossullivan.github.io/model-eol/).
|
|
49
|
+
Publication requires a refresh receipt for the exact feeds on `main`, followed
|
|
50
|
+
by an exact-byte check against every deployed asset.
|
|
75
51
|
|
|
76
52
|
## Try it
|
|
77
53
|
|
|
@@ -400,10 +376,9 @@ after the dry run if you want to retain the receipt as UAT evidence. Then let
|
|
|
400
376
|
`bot.yml.example` run the same contract with any explicitly opted-in provider
|
|
401
377
|
keys available to its read-only evaluate job, not its write-capable publish job.
|
|
402
378
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
access.
|
|
379
|
+
Inline `model-eol-bot --eval` and the legacy unbound report/status artifacts are
|
|
380
|
+
refused. A configured publication must consume the commit-bound manifest from
|
|
381
|
+
`model-eol-bot evaluate`; missing results fail before GitHub API access.
|
|
407
382
|
|
|
408
383
|
On its first actionable run, the bot creates the `model-eol` label. If repository
|
|
409
384
|
policy prevents label creation or assignment, it fails closed rather than publish
|
|
@@ -448,9 +423,8 @@ The refresh also travels in the other direction. On August 3, Google removed the
|
|
|
448
423
|
previously listed October 16 earliest shutdown dates for the Gemini 2.5 Pro,
|
|
449
424
|
Flash, and Flash-Lite GA models. The pipeline opened
|
|
450
425
|
[a PR with the semantic retraction](https://github.com/thossullivan/model-eol/pull/60),
|
|
451
|
-
and
|
|
452
|
-
|
|
453
|
-
as add new ones.
|
|
426
|
+
and downstream checks stopped warning from dates Google no longer listed. A
|
|
427
|
+
lifecycle tracker has to retract stale alarms as well as add new ones.
|
|
454
428
|
|
|
455
429
|
## The actual ask
|
|
456
430
|
|
|
@@ -469,15 +443,12 @@ move any of us can make here.
|
|
|
469
443
|
CI runs the full suite on every push and PR. The copy-ready bot workflow ships
|
|
470
444
|
as `bot.yml.example` and consumes the published package rather than local copies
|
|
471
445
|
of the tooling.
|
|
472
|
-
- The
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
runtime contracts.
|
|
478
|
-
Maintainer rollout: set Pages source to GitHub Actions, dispatch `feed-refresh`
|
|
479
|
-
from `main`, and require the resulting `public-contract` deployment to pass
|
|
480
|
-
before releasing 0.5.
|
|
446
|
+
- The [public contract](https://thossullivan.github.io/model-eol/) publishes
|
|
447
|
+
canonical schemas, feeds, refresh health, a publication manifest, and Atom.
|
|
448
|
+
Each deployment is bound to an exact feed-refresh receipt and verified against
|
|
449
|
+
every live asset. `model-eol validate` checks feeds, repository policy, check
|
|
450
|
+
reports, inventories, schedules, alerts, and plans against the same
|
|
451
|
+
zero-dependency runtime contracts.
|
|
481
452
|
- Current-model entries (and therefore policy-floor horizons) populate only when
|
|
482
453
|
refresh runs with provider API keys for the models endpoints.
|
|
483
454
|
- The checker matches known IDs only - it will not discover models absent from the
|