Skip to content

refactor: use live models.dev and pinned user connections - #259

Merged
wangtsiao merged 3 commits into
7df-lab:mainfrom
wangtsiao:feat/live-models-dev-catalog
Nov 6, 2026
Merged

wangtsiao merged 3 commits into
7df-lab:mainfrom
wangtsiao:feat/live-models-dev-catalog

Conversation

@wangtsiao

@wangtsiao wangtsiao commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Use two sources: live models.dev metadata and user configuration. Remove bundled Rust and pi-ai model tables plus the catalog import script.
  • Keep successful remote results only in process memory. Refresh at startup/picker access and explicitly on demand; retain last-good memory on failure. Never read/write directory snapshots.
  • Pin user endpoints, protocols, selected model IDs and credential references. Remote updates cannot redirect existing credentials. Support per-model endpoints/protocols/wire aliases and custom OpenAI-compatible backends.
  • Keep provider discovery temporary. Only an explicit model selection saves its transport, not discovered pricing/capabilities. Explicit metadata edits use sparse user overrides.
  • Preserve OAuth adapter/login actions without a static model directory. Explicit OAuth login initializes missing transport; background credential sync does not. Existing custom routes and headers remain intact.
  • Preserve existing configuration and old snapshot files. Sparse legacy connections need an explicit reconnect rather than adopting a remote route.

Tradeoffs

  • A fresh offline process has configured models, but no public directory to browse.
  • Unsupported models.dev SDK packages are omitted rather than assigned a guessed protocol.
  • Native TUI ignores legacy models.json. Protocol/authentication adapters remain available.
  • Provider discovery and OAuth were validated with deterministic fixtures; no real account login or paid model calls were performed.

Validation

  • Desktop typecheck: passed with full frozen-lock dependencies, no diagnostics.
  • Desktop focused UI/OAuth suites: 38 passed.
  • Full TUI suite: passed again after syncing current main; 3 integration skips require built local server binaries.
  • Config suite: 70 passed. Core catalog regressions: 14 passed.
  • OAuth/header suite: 11 passed; explicit credential binding: 5; catalog refresh: 4; mixed-endpoint routing: 1; protocol OAuth field: 1.
  • Original CI's three server failures were repaired and individually retested successfully. Mid-turn model/reasoning switch fixture also passed.
  • Local server library run: 528 passed, 3 Git/non-repository environment tests failed, 2 ignored. All three environment-dependent cases passed in CI; the final full workspace test job passed.
  • Rust formatting and whitespace checks passed. Canonical schema regenerated.
  • Fixed the final CI regression: empty catalog resolution no longer erases an inherited model when reusing the same provider/router. One- and two-spawn tests now assert successful Python tool output and nonempty handle/request models. The exact previously failing test passed (0.49s); all 16 subagent lifecycle tests passed. Original timeouts are unchanged.
  • Final head 18a8871 passed all 23 jobs: CI #617 (17/17), including full workspace tests, and Runtime bundles Agent Runtime: Wait agent output returned as raw streaming tokens — makes agent think sub-agent is unresponsive #138 (6/6). Verified current main b02804c with no commits behind and no review blockers before merge.

Head remains the independent wangtsiao/devo fork branch. Synchronized with upstream main b02804c, including merged #258 and #260.

Sync upstream main, retain sparse authored settings and inherited protocols,
keep authenticated discovery transient, and repair CI regression fixtures.
@wangtsiao
wangtsiao marked this pull request as ready for review November 6, 2026 10:41
@wangtsiao
wangtsiao merged commit a84821e into 7df-lab:main Nov 6, 2026
23 checks passed
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