feat: use pi's standard model caching and add tests - #7
Open
unverbraucht wants to merge 2 commits into
Open
unverbraucht wants to merge 2 commits into
unverbraucht wants to merge 2 commits into
Conversation
Replace the custom models.json read/write logic with pi's standard refreshModels hook backed by the provider model store (context.store). Models are discovered from the Requesty /models endpoint using the account's resolved API key (so only enabled models are returned) and cached for offline/startup restore. Remove the /requesty-models-sync command; pi refreshes automatically on startup and model picker open. Manual providers.requesty config in models.json is no longer used; authenticate via /login requesty or REQUESTY_API_KEY. Bump to 0.3.0 (breaking) and add zero-dependency unit tests for model mapping, discovery, and the refresh caching/auth-gating behavior.
refreshModels previously called a non-existent context.store.read()/write()
API. pi passes a RefreshModelsContext with `stored` (read-only cached
snapshot) and `publish({ persist })` instead, so the handler threw
`TypeError: Cannot read properties of undefined (reading 'read')` on every
refresh — surfaced to the user as "Could not refresh requesty; showing
cached models." Nothing was ever persisted, so the cache could never update.
Switch to context.stored for the cache and context.publish({ persist }) to
write it, matching pi's built-in llama and remote-catalog providers. Also
rewrite the test harness to build a true RefreshModelsContext (no fake
`store` object) so this regression can't pass tests silently again.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Replace the custom models.json read/write logic with pi's standard refreshModels hook backed by the provider model store (context.store). Models are discovered from the Requesty /models endpoint using the account's resolved API key (so only enabled models are returned) and cached for offline/startup restore. Remove the /requesty-models-sync command; pi refreshes automatically on startup and model picker open.
Manual providers.requesty config in models.json is no longer used; authenticate via /login requesty or REQUESTY_API_KEY. Bump to 0.3.0 (breaking) and add zero-dependency unit tests for model mapping, discovery, and the refresh caching/auth-gating behavior.