Skip to content

record-tui-gif: discover the LLM endpoint at runtime instead of hardcoding a port - #72

Merged
binlecode merged 2 commits into
mainfrom
decouple-record-skill-from-llm-port
Aug 16, 2026
Merged

binlecode merged 2 commits into
mainfrom
decouple-record-skill-from-llm-port

Conversation

@binlecode

Copy link
Copy Markdown
Owner

What

The GIF workload exists only to keep the GPU gauges moving while vhs records — nothing in actop depends on which model or port answers. The script nevertheless pinned http://localhost:9040, which read like a declared dependency but was only whatever happened to be running when it was written. That stack renumbered twice in 2026-08 alone, and each time this script failed with an error pointing at the wrong conclusion ("router not started").

It now binds to nothing:

  • probes the locally listening ports for an OpenAI (/v1/models) or Ollama (/api/tags) model-listing API, takes the first that answers
  • asks that endpoint which model it serves instead of guessing a name
  • LLM_URL pins it explicitly when that matters (ROUTER_URL still honoured as the old name)
  • discovery failure falls through to a no-workload recording instead of aborting — a flat-gauge GIF is degraded, not invalid

Also drops a stale claim: the comment said /v1/models was unusable as a probe because the llama.cpp router 400s body-less GETs. That router no longer parses request bodies at all and passes GETs straight through, so the two-step /api/tags → /health fallback it justified is gone.

Release

No release. This is skill-only churn with no user-visible change, so per CLAUDE.md → "When to cut a release" it is logged under CHANGELOG.md [Unreleased] and ships with the next release that carries a real fix.

Verification

  • bash -n clean
  • discovery run against the live machine: found :8081, :8181, :9140; correctly skipped :8283 (TEI embeddings) and :8126 (unrelated proxy), neither of which serves a model listing
  • model auto-pick returned the loaded GGUF path from the chosen endpoint

binlecode and others added 2 commits August 16, 2026 18:53
…oding a port

The workload exists only to make the GPU gauges move while vhs records — nothing
about actop depends on which model or port answers. The script nevertheless
pinned http://localhost:9040, which read like a declared dependency but was just
whatever happened to be running on the author's machine. That stack renumbered
twice in 2026-08 alone, and each time this script failed with an error pointing
at the wrong conclusion ("router not started").

It now binds to nothing: it checks which local ports actually speak an OpenAI or
Ollama model-listing API and takes the first that answers, then asks that
endpoint which model it serves. LLM_URL pins it explicitly when that matters
(ROUTER_URL still honoured as the old name).

A missing endpoint no longer fails the run either — a flat-gauge GIF is degraded,
not invalid, so discovery failure falls through to SKIP_WORKLOAD with a note.

Also drops a stale claim: the comment said /v1/models was unusable as a probe
because the llama.cpp router 400s body-less GETs. That router no longer parses
request bodies at all and passes GETs straight through, so the two-step
/api/tags -> /health fallback it justified is gone.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Skill-only churn, so per CLAUDE.md "When to cut a release" it waits for the
next release carrying a user-visible change rather than burning a version.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@binlecode
binlecode merged commit c44f708 into main Aug 16, 2026
5 checks passed
@binlecode
binlecode deleted the decouple-record-skill-from-llm-port branch August 16, 2026 22:58
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