Repository navigation
docs(ai): no gemini fallback, one Ollama address for every read, --agent target dirs (forge-cli#852) - #205
Merged
Conversation
…ent target dirs (forge-cli#852) Document forge-cli #852 (open, head cbf1fc61) on the pages #204 wrote for #850. New sentences carry the branch marker. "Before #852" sentences describe main 28a1f2e2. - copilot_no_llm_provider replaces the gemini fallback. A troubleshooting section lists the four messages and their causes, and error-codes gets the catalog entry. - One address for every Ollama read: - OLLAMA_HOST may name any host. - A stated endpoint is used for the model pick, the model check and each --tiered stage. - A user:password@ is sent as basic auth, shown masked, and saved only with the plaintext opt-in. - fluid ai test --endpoint takes an Ollama address on any host. - fluid forge --agent reports a contract written to any --target-dir. - FLUID_LLM_API_KEY wins over the provider's own key, and forge data-model --llm-model does not read the saved provider. The pages had both wrong for 0.28.0 too. - The 0.18.1 fluid ai test crash warning is replaced: the crash was fixed in 0.28.0 (forge-cli #839).
9 of 15 tasks
#852 merged as 3900c45f. Its tree matches the checked head plus one test-only commit, 3166bde0. The 23 branch markers become the main form, and upgrading.md's #852 section becomes a subsection of "On forge-cli `main` since 0.28.0".
fas89
marked this pull request as ready for review
November 12, 2026 09:01
fas89
added a commit
that referenced
this pull request
Nov 12, 2026
… saved choice and JSON-only --agent stdout (forge-cli#853, #854) (#206) * docs(ai): FLUID_LLM_API_KEY only for a named provider, the saved choice in every run, JSON-only --agent stdout (forge-cli#853, #854) Document forge-cli #853 and #854. Both are on main at 33326517, and neither is in a release yet. - llm-providers, "Which provider a run uses": the ladder (a named provider, one key variable, the saved fluid ai setup choice, one keyring key, Ollama, an agent). - llm-providers, "Which key a provider gets": FLUID_LLM_API_KEY goes only to a named provider, and forge warns when it is not used. - project-dotenv-trust: an OpenAI, Anthropic, Gemini or GitHub Models endpoint in a project file needs the provider's own key, and setup keeps saved keys off project hosts. - production-troubleshooting: the saved-agent no-provider message replaces the removed "does not read the saved choice" one, and the three key warnings are listed. - environment-variables, ai, doctor, forge, mission, upgrading: the key rule, the saved choice in runs without a terminal, agent pass-over, JSON-only --agent stdout, and mission. - #205's saved-choice text is corrected for #854. * chore: pin forge-cli 0.29.0, and mark what shipped in it forge-cli 0.29.0 (v0.29.0, 802ffed7) contains #844 and #850 to #854. - cli-version.json now pins 0.29.0. forge-cli-releases.json is reviewed through 0.29.0 (--refresh-releases from canonical/main). - 14 version claims and the stamps of the two generated contract pages move to 0.29.0. The bundled schemas are unchanged. - The 70 "On forge-cli main, not yet in a release" markers for #850, #852, #853 and #854 become "since 0.29.0". - "Before #85x" sentences described main between those PRs, a state no release shipped. Most become "Through 0.28.0" history, checked against the 0.28.0 source and runs. Three that only held on main go. - upgrading.md: "On forge-cli main since 0.28.0" becomes "Changes in 0.29.0", grouped by topic. The mission bullet goes, because 0.28.0 never picked a coding agent either.
This branch was previously deployed
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.
Companion to forge-cli #852, the follow-ups to forge-cli #850. #204 documented #850 and is merged; this PR updates the same pages for #852.
Draft until review. forge-cli #852 merged at 08:26Z as
3900c45f. The new sentences therefore carry*On forge-climain, not yet in a release ([forge-cli #852](...)).*, as #850's do. Sentences that start "Before #852" describemainbetween #850 and #852. No release shipped that state, so they can go at the next pin bump if #850 and #852 ship together.Checked against these forge-cli commits:
cbf1fc61, #852's head at the time. The final head3166bde0only adds a test totests/test_ollama_host.py, and the squash3900c45fhas the same tree as3166bde0.28a1f2e2(mainbefore #852), for "Before #852".fluid ai testnote.What changed
No
geminifallback. With nothing that names a provider, forge stops withcopilot_no_llm_provider. advanced/production-troubleshooting.md gets a "No LLM provider is selected" section: the four messages, their causes and the catalog's suggestions. The error's docs link lands on that page without an anchor. advanced/error-codes.md gets the catalog entry. llm-providers.md, cli/doctor.md, cli/ai.md and environment-variables.md drop "falls back togemini" and say which settings name a provider.One Ollama address for every read. A new "One address for every Ollama read" section in llm-providers.md covers the following:
OLLAMA_HOSTmay name any machine for the probe, the default-model pick andfluid ai setup.--tieredstage.--llm-endpoint gpu-boxmeanshttp://gpu-box:11434.user:password@is sent as basic auth, shown masked, and saved only withFLUID_ALLOW_PLAINTEXT_AI_SECRETS.OLLAMA_HOSTwins over the saved address.The sentences that said these reads stay on
localhostare replaced in cli/ai.md, litellm-backend.md and network-safety.md.fluid ai test --endpointtakes an Ollama address on any host. The exit-2 row of the exit-code table now lists the endpoints it refuses. The model check asks--endpoint, so the page's example exits5.fluid forge --agentreports a contract written to any--target-dir(cli/forge.md).upgrading.md gets a short #852 subsection under "On forge-cli
mainsince 0.28.0", including theLlmProvider.list_available_models(..., endpoint=)keyword. No page documents provider plugins, so that is the only place for it.Stale warning removed. The 0.18.1
fluid ai testcrash ("name 'detect_ollama_available' is not defined") was fixed in 0.28.0 (forge-cli #839). The warning in cli/ai.md and production-troubleshooting.md now says so.Wrong on 0.28.0 too, fixed in passing. Neither sentence carries a marker:
FLUID_LLM_API_KEYis used "when no provider-specific key is set". In fact it wins over the provider's own key.forge data-model --llm-modelalone uses the saved provider, elseollama. In fact it does not read the saved choice: it uses a local Ollama that answers, elsegemini.The saved-provider condition. llm-providers.md now says that a run with
--non-interactive(which--agentsets) skips the providerfluid ai setupsaved. The inline setup is gated on that flag, not on a terminal.Checks run locally
Run with Python 3.11 and
data-product-forge==0.28.0from pypi.org/simple, withFORGE_CLI_CHANGELOGset to forge-climain's CHANGELOG.md:check_cli_docs.py: exit 0. All 1382fluidinvocations match, and the marker sweep is OK. Noflag_oracle_okentry is needed.gen_contract_reference.py --checkandcheck_providers.py: exit 0.npm ci && npm run docs:build: exit 0.node scripts/check-dist-links.mjsis clean, and every new anchor is indist/.How the claims were checked
Every sentence was checked by running the CLI on forge-cli
cbf1fc61,28a1f2e2, v0.28.0 and v0.27.0, in an isolated environment:HOMEand a null keyring;PATH;The new
test_forge_agent_mode.pycases pass oncbf1fc61(21 passed) and fail onmain(4 failed).The first pass found 7 imprecise sentences and 3 that were wrong or stale outside the change. The re-check confirmed all fixed, and found two cells where the #852 marker trailed the #852 text; in those cells the markers now come before the text they mark.
Left as is on purpose: network-safety.md's "Defaults that changed in v0.8.3" row still says "Localhost only". It is a history row, and its Override cell carries the #850 and #852 notes.