You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Ajustes opcionais dos modelos virtuais (nits de revisão do #187 e #188) #189
snapshotRouteState filtra o catálogo inteiro por rota; indexar o snapshot uma vez por requisição (Map por provider/authType).
ProxyController recebe ModelListRoutingService como @Optional(); se um refactor tirar o import, os virtuais somem em silêncio. Tornar obrigatório (ajustando specs) ou logar warn quando ausente.
Uma exceção em ModelListRoutingService.forAgent derruba todo o /v1/models; avaliar degradar para auto + reais.
resolveVirtualModel: normalize e as checagens de disponibilidade rodam em série; com descoberta fria, até 12 consultas por pedido. Promise.all ou memoização por pedido.
paramsScopeLookup: rota fora da cadeia cai em scopes[0]; logger.debug nesse ramo.
scopedFailures: hop sem authType grava requestParams: null em vez do snapshot só do corpo, diferente do principal.
A API administrativa aceita criar um virtual só com fallbacks, mas MCP e CLI recusam. Se a regra é "fallback exige principal", aplicá-la também no VirtualModelService.
Reordenação por teclado perde o foco da alça a cada seta (mutate recria os objetos e o <For> remonta o item); devolver o foco e anunciar a posição com aria-live.
Edição parcial no modal: se o PUT passa e o PATCH de response-mode falha, o erro aparece em toast e inline e o cartão fica com o nome antigo até recarregar.
context_length e shadows do cartão ficam desatualizados depois de mudar fallbacks pelo cartão (recarregar a view após a escrita).
previewShadows não cobre provider/modelo-subscription.
MessageDetails: "Routing" e "Virtual model" mostram o mesmo nome.
O confirm() de delete poderia avisar que os parâmetros por modelo do virtual também são apagados.
docs/usuario/provedores-e-roteamento.md: o corpo da cadeia esgotada traz error.primary_model, error.primary_provider e error.attempted_fallbacks (aninhados em error), não no topo.
Desempenho: índice do snapshot por requisição, normalização e disponibilidade em paralelo em resolveVirtualModel, /v1/models com a lista de provedores em cache.
UX do dashboard: foco e aria-live na reordenação, edição parcial no modal, cartão recarregado após escritas, previewShadows com -subscription, MessageDetails sem duplicação, aviso de parâmetros no delete, ID público no "Send this header".
Links: M301 e e-mails de limite apontam para /harnesses/<agente>/….
Docs: error.* aninhado na cadeia esgotada.
Fechados como não planejados, por decisão do mantenedor: @Optional() do ModelListRoutingService sem aviso, degradação de /v1/models em falha de forAgent, logger.debug em paramsScopeLookup, requestParams: null em hop sem authType, e "fallback exige principal" no VirtualModelService.
Activity
patrickbrandao commentedon Oct 26, 2026
Do #190 (MCP/CLI):
VirtualModelService.patrickbrandao commentedon Oct 26, 2026
Do #191 (dashboard):
mutaterecria os objetos e o<For>remonta o item); devolver o foco e anunciar a posição comaria-live.context_lengtheshadowsdo cartão ficam desatualizados depois de mudar fallbacks pelo cartão (recarregar a view após a escrita).previewShadowsnão cobreprovider/modelo-subscription.MessageDetails: "Routing" e "Virtual model" mostram o mesmo nome.confirm()de delete poderia avisar que os parâmetros por modelo do virtual também são apagados.patrickbrandao commentedon Oct 26, 2026
Do qa-docker do #191:
/agents/<agente>/routing, que hoje só redireciona para/harnesses/<agente>/routing; usar o caminho atual.custom:<uuid>/<modelo>; usar o ID público.patrickbrandao commentedon Oct 26, 2026
Da validação final (qa-docker em
main3ebc3a7):docs/usuario/provedores-e-roteamento.md: o corpo da cadeia esgotada trazerror.primary_model,error.primary_providereerror.attempted_fallbacks(aninhados emerror), não no topo.fix(frontend): polish virtual models UX (#189 nits) (#207)
patrickbrandao commentedon Oct 26, 2026
Tratado na v0.1.5 (#206, #207, #208):
resolveVirtualModel,/v1/modelscom a lista de provedores em cache.aria-livena reordenação, edição parcial no modal, cartão recarregado após escritas,previewShadowscom-subscription,MessageDetailssem duplicação, aviso de parâmetros no delete, ID público no "Send this header"./harnesses/<agente>/….error.*aninhado na cadeia esgotada.Fechados como não planejados, por decisão do mantenedor:
@Optional()doModelListRoutingServicesem aviso, degradação de/v1/modelsem falha deforAgent,logger.debugemparamsScopeLookup,requestParams: nullem hop semauthType, e "fallback exige principal" noVirtualModelService.