diff --git a/README.md b/README.md index a19b825..38dfb35 100644 --- a/README.md +++ b/README.md @@ -77,6 +77,16 @@ Deployment profiles and hardening references:
+Provider URL parity and CI harness resilience tightened for local LLM defaults and Playwright bootstrap stability + +- Fixed the built-in `Ollama (Local)` provider default so OpenClaw's OpenAI-compatible requests now target the correct `/v1` surface by default, and existing loopback-root overrides are normalized onto the same bounded path instead of failing on `/models` or `/chat/completions` at the daemon root. +- Added a provider URL contract matrix that pins built-in provider defaults, adapter endpoint assembly, and bounded Ollama normalization in one regression lane so future `LM Studio`, `Ollama`, and custom OpenAI-compatible drift is caught before release. +- Hardened the shared Playwright harness bootstrap so a single transient `openclaw.js` module-fetch failure in CI is retried once instead of failing the whole UI load, while still surfacing real import/runtime errors as hard test failures. + +
+ +
+ PNG Info sidebar workflow added with ComfyUI metadata extraction, better large-image handling, and lower-noise operator alerts - Added a new `PNG Info` sidebar tab with drag-and-drop, file picker, scoped paste, preview rendering, prompt copy actions, structured summary cards, and raw metadata inspection for saved generation images. @@ -768,6 +778,9 @@ Notes: - Optional: for single-user localhost setups, you can store a provider API key from the Settings tab (UI Key Store (Advanced)). - This writes to the server-side secret store (`{STATE_DIR}/secrets.json`). - Environment variables always take priority over stored keys. +- Built-in local-provider defaults use loopback-only OpenAI-compatible URLs: + - `Ollama (Local)` -> `http://127.0.0.1:11434/v1` + - `LM Studio (Local)` -> `http://localhost:1234/v1` ### 2 Configure webhook auth (required for `/webhook*`) diff --git a/docs/deploy/local-only.md b/docs/deploy/local-only.md index 97256a1..3edda14 100644 --- a/docs/deploy/local-only.md +++ b/docs/deploy/local-only.md @@ -35,7 +35,7 @@ No special configuration is required. - **Admin Token**: Not required for loopback-only operations (unless `OPENCLAW_ADMIN_TOKEN` is explicitly set). - **Webhooks**: Disabled by default. - **Local LLM (optional)**: - - Ollama: `http://127.0.0.1:11434` + - Ollama: `http://127.0.0.1:11434/v1` - LM Studio: `http://localhost:1234/v1` - Keep SSRF relax flags disabled: - `OPENCLAW_ALLOW_ANY_PUBLIC_LLM_HOST=0` @@ -58,6 +58,6 @@ No special configuration is required. 1. Open `http://127.0.0.1:8188` in your browser. 2. Open the OpenClaw tab in the sidebar. 3. Go to **Settings** -> **Health**. -4. If using Ollama, verify `http://127.0.0.1:11434/api/tags` responds. -5. In **Settings -> LLM**, set provider to `Ollama (Local)` and click **Load Models**. +4. If using Ollama, verify the daemon is reachable first via the native Ollama health/list surface `http://127.0.0.1:11434/api/tags`. +5. In **Settings -> LLM**, set provider to `Ollama (Local)`, leave **Base URL** empty to use the built-in `http://127.0.0.1:11434/v1` default (or set that exact loopback URL explicitly), and click **Load Models**. 6. All checks should be green. diff --git a/docs/frontend_ux_walkthrough.md b/docs/frontend_ux_walkthrough.md index 8a9ece2..af6f7ed 100644 --- a/docs/frontend_ux_walkthrough.md +++ b/docs/frontend_ux_walkthrough.md @@ -91,5 +91,7 @@ If `assist_streaming` is unavailable or the stream transport degrades, Planner/R - Run: `npm test` - Tests live in: `tests/e2e/specs/` - Harness: `tests/e2e/test-harness.html` (mocks ComfyUI core + basic OpenClaw API calls) +- Harness bootstrap now retries one transient `openclaw.js` module-fetch failure before surfacing a hard load error, so CI-only first-request flakiness does not get misreported as a permanent sidebar failure. - Web helper/self-test harness: `web/tests/e2e-harness.html` (includes frontend helper and wrapper idempotence checks) - Desktop host parity lane: `tests/e2e/specs/desktop_host_parity.spec.js` verifies standalone vs desktop host evidence separately and covers both sidebar and Remote Admin host-sensitive behavior under the shared harness shims. +- When investigating suspected harness flakes locally, prefer `npm run test:stress -- ` so the same shared bootstrap path is exercised repeatedly without changing the default `npm test` contract. diff --git a/docs/release/config_secrets_contract.md b/docs/release/config_secrets_contract.md index 5ce0f55..3bb8b64 100644 --- a/docs/release/config_secrets_contract.md +++ b/docs/release/config_secrets_contract.md @@ -62,6 +62,9 @@ Multi-tenant note: Notes: - Local providers (`ollama`, `lmstudio`) are loopback-only by design and should use `localhost` / `127.0.0.1` / `::1`. +- Built-in local-provider defaults are OpenAI-compatible URLs: + - `ollama` -> `http://127.0.0.1:11434/v1` + - `lmstudio` -> `http://localhost:1234/v1` - Local loopback provider targets do not require enabling insecure SSRF flags. - `OPENCLAW_LLM_ALLOWED_HOSTS` does not allow private/reserved IPs; those still require `OPENCLAW_ALLOW_INSECURE_BASE_URL=1`. - The same insecure override applies to config-save validation, `/openclaw/llm/models`, and outbound provider requests. diff --git a/docs/release/operator_ux_contracts.md b/docs/release/operator_ux_contracts.md index 796c548..ba77d85 100644 --- a/docs/release/operator_ux_contracts.md +++ b/docs/release/operator_ux_contracts.md @@ -50,7 +50,8 @@ interface BannerStatus { - **Monitoring**: Polls `/health` every 10s. - **Triggers**: Checks `stats.observability.total_dropped > 0`. - **Display**: Simple DOM injection of canonical `.openclaw-banner` markup; legacy `.moltbot-banner` compatibility selectors remain available through centralized runtime aliasing. -- **Limitations**: No connectivity state handling, no 'info'/'success' states, simplistic dedupe. +- **Connectivity posture**: Queue-monitor disconnect warnings should tolerate initial sidebar/bootstrap races and only escalate after bounded repeated failure or post-healthy disconnect evidence, so transient startup misses do not become durable incident noise. +- **Limitations**: No 'info'/'success' states, simplistic dedupe. ## 1.1 Notification Center (F66) diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index ca84a45..ee50753 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -61,6 +61,10 @@ Checklist: 3. In OpenClaw Settings: - Provider: `Ollama (Local)` or `LM Studio (Local)` - Base URL: leave empty to use the provider default, or set a loopback URL explicitly + - Provider defaults: + - `Ollama (Local)` -> `http://127.0.0.1:11434/v1` + - `LM Studio (Local)` -> `http://localhost:1234/v1` + - If an older saved Ollama URL is still set to `http://127.0.0.1:11434`, update it to `/v1` or clear the field so the built-in default can be applied 4. Keep these flags disabled: - `OPENCLAW_ALLOW_ANY_PUBLIC_LLM_HOST=0` - `OPENCLAW_ALLOW_INSECURE_BASE_URL=0`