diff --git a/ai-assistance/overview.mdx b/ai-assistance/overview.mdx
index 014c576f..ad1f4221 100644
--- a/ai-assistance/overview.mdx
+++ b/ai-assistance/overview.mdx
@@ -48,18 +48,29 @@ It can also work with Amazon MCP servers, namely AWS Cost Explorer MCP Server, A
When available, the AI assistant includes reasoning in its replies, showing which tools (such as MCP servers) it used, displaying the raw data retrieved from those tools, and outlining next steps in plain language.
+If a tool call fails, the chat can display the tool output as an error.
+
+### Selecting an AI model
+
+If multiple models are available for your selected provider, use the model selector in the chat composer to switch models.
+
+The model selector:
+* Shows the currently selected model.
+* Shows a loading indicator while the model list is being fetched.
+* Uses provider icons in the selector when available.
+
### AI Step action
The **AI Step** action lets you run AI prompts in a separate step in your workflow, using outputs of its previous steps as context.
-You add **AI Step** as you would [add any other action](workflow-management/building-workflows#adding-more-actions). You then specify a prompt in the **Prompt** field and any relevant outputs of previous steps in the **Additional input** section:
+You add **AI Step** as you would [add any other action](/workflow-management/building-workflows#adding-more-actions). You then specify a prompt in the **Prompt** field and any relevant outputs of previous steps in the **Additional input** section:
Alternatively, you can combine prompt text and outputs from previous steps in the **Prompt** field.
### Generating commands and queries
-Whenever you work with an [action](/workflow-management/actions) that requires writing a CLI command or SQL query, you'll see the **Generate with AI** command next to the relevant property in the action's properties pane:
+Whenever you work with an [action](/workflow-management/actions/) that requires writing a CLI command or SQL query, you'll see the **Generate with AI** command next to the relevant property in the action's properties pane:
When you click **Generate with AI**, use the AI chat window to describe the outcome you want the command or query to achieve, and your LLM will generate it for you:
diff --git a/getting-started/user-management.mdx b/getting-started/user-management.mdx
index b7c7685f..a0c92a14 100644
--- a/getting-started/user-management.mdx
+++ b/getting-started/user-management.mdx
@@ -10,13 +10,19 @@ When you deploy OpenOps for the first time, it creates an admin user account. Th
The admin user account created this way has exactly one distinction: it can be used to create other user accounts.
+## Password requirements
+
+User passwords must:
+* Be 8-64 characters long.
+* Include only alphanumeric characters and the following special characters: `!@#$%^&*()_+-=[]{};':"\|,.<>/?`
+
## Creating new user accounts
OpenOps doesn't currently provide a UI for creating user accounts; instead, you can do it with two API calls.
The first API call is to sign in the admin user:
-```
+```shell
POST http://your-openops-installation/api/v1/authentication/sign-in
Content-Type: application/json
@@ -28,7 +34,7 @@ Content-Type: application/json
This call will return a JSON object that contains a property called `token`. Copy the value of this property and use it in the authorization header in the next call. This next call actually creates a new user account. Before making the call, in the body, don't forget to specify actual values for the four properties that are left empty in the sample below:
-```
+```shell
POST http://your-openops-installation/api/v1/authentication/sign-up
Authorization: Bearer your-admin-token
Content-Type: application/json