pi-provider: no update path for a provider with hand-authored model fields #94
Labels
No labels
blocked
bug
decision
duplicate
enhancement
help wanted
invalid
landed?
question
ready-to-merge
stale
wontfix
bug
duplicate
enhancement
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
allod/nexus#94
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
pi-providerhas no way to update an existing provider whose stored models carry fields outside discovery's translation allowlist (compat,thinkingLevelMap), so those catalogs are hand-edited even though the tool is the declared owner of provider updates.Primary goals:
discover-refreshstill refuses fields discovery cannot regenerate; the update path is explicit, not a relaxed allowlist.Current state
discover-refreshrefuses any stored model carrying a key outsideapi,contextWindow,id,input,maxTokens,name,reasoning(scripts/pi-provider:857). A provider usingcompat(developer-role control, adaptive thinking) orthinkingLevelMaptherefore cannot refresh at all.addanddiscover-addrefuse whenever the provider already exists (scripts/pi-provider:835and:996), so there is no in-place update path either. The only option left is editing the provider JSON by hand and relying on the catalog build check.allod/nexus#34 kept
compat/thinkingLevelMaprefused and out-scoped turningaddinto an update command, which left this gap untracked. This issue is the tracked ask. The separate failure where the credential-registry validator rejects object-form targets is tracked by allod/nexus#36 and allod/secrets#16 and is not this issue's subject.Scope
In scope: one explicit update path for a provider with hand-authored model fields. Smallest option: let
add --models-fileaccept an existing provider and replace only itsmodels, leaving the credential, targets, named tokens and provider-level fields alone. Alternative: havediscover-refreshpreserve the hand-authored keys it cannot regenerate.Out of scope: relaxing the discovery allowlist generally; any change to discovery HTTP, bearer, transaction or recovery behavior (allod/nexus#32).
Validation
A fixture that updates a stored provider carrying
compatand proves every other field survives, plus a refusal witness for the custom-name and unsupported-field cases.Landed on master in
8db259f:add <provider> --models-file <path>on an existing provider replaces only its models; discover-refresh refusals now name that path. Validated bybash tests/pi-provider.sh(364 assertions) and the provisioning-contract check.