Fix/provider onboarding flow#236
Merged
Merged
Conversation
brandomr
force-pushed
the
fix/provider-onboarding-flow
branch
from
June 30, 2026 18:59
86af42f to
18e869c
Compare
Collaborator
|
The first popup when attempting a first query works great. It just finished running the query and is great. Including for visibility a few things I noticed, that seem to be unrelated to the work you did. Not sure how/when we want to address them, so just listing them here
|
mattprintz
approved these changes
Jun 30, 2026
mattprintz
left a comment
Collaborator
There was a problem hiding this comment.
Looks good.
I left some things I noticed in the comment, but they aren't blockers for this I think.
Contributor
Author
|
These are all very good points. I noticed the lag as well on loading. I want to think a bit about new user onboarding in general. The modal exposes things most users wouldn't even know what to do with (I think?) so we may want to streamline it. We may also need some instruction on how to actually get an API key. I'll think on it more. |
…fig UI get_providers() imported every archytas model module; a single module that fails to import (e.g. an upstream dependency mismatch) raised, which bubbled up through the config-schema builder and blanked the entire provider-configuration dialog (no API-key field, etc.). Now a failing module is skipped with a warning, and discovery is cached so broken imports aren't re-attempted/re-logged on every call. Also harden ConfigController.map_type: guard issubclass() against non-class type origins (e.g. typing.Literal[...]) and stop swallowing errors silently so a genuine schema-build failure is logged instead of producing a fieldless schema. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The provider form was styled via a dead id (#config-panel-provider, left with a debug `background-color: blue`) so it was never placed in its grid cell and its fields overflowed down onto the Reset/Cancel/Save row. Point the rule at the real element and let it scroll within the cell (min-height: 0 + overflow-y). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The query cell's message hook only tagged msg.cell for the "Request interrupted" case, so on an llm_auth_failure the model-config dialog had no cell to re-run -- the user's prompt was silently dropped and they had to re-type it. Tag the auth-failure message with its originating cell so it re-runs once a provider is configured. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
When credentials are configured at runtime, set_agent_model swapped the agent's model but not the chat history's, leaving the chat-history panel (which reads model metadata and token budgets from the chat history) stuck on the keyless default. Route the change through agent.set_model() so both stay consistent. Requires archytas with Agent.set_model(). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
mattprintz
force-pushed
the
fix/provider-onboarding-flow
branch
from
July 1, 2026 19:32
830010e to
e1de09e
Compare
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.
Summary
Fixes the brand-new-user onboarding flow: configure a provider → enter an API key → use the agent. Four independent commits, each one fix:
config: don't let one broken model module break the provider config UI.
get_providers()imported every archytas model module; a single failing import (e.g. an upstream dependency mismatch) bubbled up through the config-schema builder and blanked the entire provider-configuration dialog (no API-key field at all). Failing modules are now skipped with a warning, discovery is cached so broken imports aren't re-attempted/re-logged each call, andConfigController.map_typeno longer crashes on non-class type origins (e.g.typing.Literal[...]) or swallows errors silently.ui: provider-config form no longer overlaps the dialog buttons. The form was styled via a dead id (
#config-panel-provider, left with a debugbackground-color: blue), so it was never placed in its grid cell and its fields overflowed onto the Reset/Cancel/Save row. Pointed the rule at the real element and let it scroll within the cell.ui: re-run the originating query after configuring credentials. The query cell only tagged
msg.cellfor the "Request interrupted" case, so on anllm_auth_failurethe model-config dialog had no cell to re-run — the user's prompt was silently dropped and had to be re-typed. Now the originating cell is tagged and re-runs once a provider is configured.kernel: sync chat-history model on live model change.
set_agent_modelswapped the agent's model but not the chat history's, leaving the chat-history panel (which reads model metadata and token budgets from the chat history) stuck on the keyless default. Routes the change throughagent.set_model().Dependency
We call
Agent.set_model(), and the "key takes effect immediately" behavior relies on the env-precedence fix — both from jataware/archytas#83. Merge + release that first, then bump thearchytas>=pin in this repo to that release.Tests
tests/test_get_providers_resilience.py— provider discovery tolerates failing imports and returns a fresh (non-shared) mapping.Manual verification
Full blank-slate run (no config file): first message → provider-config modal (no overflow) → select provider, paste key → Save → key takes immediately → original prompt auto-runs → chat-history panel populates. Verified end-to-end for openai; non-openai providers were verified to bind the configured key directly.