Repository navigation
Conversation
`:models` in the command box printed the table `figaro models` prints, with os.Stdout: round the pager's writer, onto the terminal. Nothing on it could be acted on. It is now an itemised live view (itemView, like the form and the queue), so the pit's one picker drives it: ^N/^P and j/k move, the wash and the marker show the choice, `y` yanks the model id, `/` searches, G and gg reach the ends of three hundred models. The subject's current model carries a ●, and each row carries its provider. ENTER SETS THE MODEL, and its provider with it, in one patch: system.model to the chosen id and system.provider to the provider that listed it. A model is only meaningful to its own provider, and choosing copilot's model while the board still said anthropic would send a name Anthropic has never heard of on the next turn. When the provider already matches, the store drops the unchanged key and the write is exactly `figaro set system.model <id>`. The bar says what took; the ● moves. Activate hands off to a goroutine: it runs under the render lock and the set dials. `/` could not reach a provider: the heading is chrome and search walks selectable rows. The picker now searches a row's note as well as its text -- what a reader sees is what `/` finds -- which also makes the tab pit's descriptions searchable. The standalone `figaro models` shares the fetch and now writes to the package's stdout, so it can never paint over a pager again. Verified with the flake build in an isolated .#sandbox shell, real credentials: :models lists every configured provider's models, Enter on claude-opus-5-5 set it (figaro state agrees) and the next turn was answered by it; Enter on a copilot model set model and provider together and the next turn was answered through copilot; Enter back on anthropic restored both.
Owner
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
:modelsin the transcript's command box is now a selection pit, the same picker as the completion, form and queue pits, and Enter sets the aria's model.yyanks the model id;/searches; gg/G reach the ends of the list (300+ models across providers here).●, and every row shows its provider.system.modelto the chosen id andsystem.providerto the provider that listed it, in one patch. A model means nothing to another provider, so picking a copilot model while the board said anthropic would have failed on the next turn. When the provider already matches, the store drops the unchanged key and it's exactlyfigaro set system.model <id>. The bar confirms and the●moves. The write happens off the render lock./walks selectable rows and the provider heading isn't one, so the picker now also searches a row's note. That also makes the tab pit's descriptions searchable.figaro modelsfrom a shell: shares the fetch and writes to the package's stdout. It usedos.Stdout, which inside the pager painted over the screen.Verified
Flake build, isolated
.#sandboxdevshell, real credentials::modelslisted every configured provider's models.claude-opus-5-5:figaro stateshowed it, and the next turn was answered by it.Tests:
TestModelsView*(4), red first. Full suite green, apart from one flake ininternal/figaro(TestAgent_FIFOOrdering), which this PR doesn't touch; it passes-count=3on both this branch and main.