Pulse Copilot
Pulse Copilot is the AI assistant embedded in the Pulse dashboard. You ask it a question in natural language; it has access to the operations toolkit and can read your data, find a teammate, look up a property, and — when you ask — create a task on your behalf.
Think of it as a chat-driven shortcut for everything you can do from the dashboard, plus a question-answering layer over your operations data.
In this section
Overview
What it can do
- Answer questions about your operations: "What's on my plate today?", "How many cleanings does Marina have this week?", "Is there a reservation in Vydrica next weekend?"
- Create tasks for you: "Create a task for Zuzana to buy oven cleaner for the Prístavná flat — here's a photo."
- Find people and properties: "What's Marina's WhatsApp number?", "Show me the configuration for Castle&River Vydrica."
- Draft messages: "Draft a check-in message for Johanna's reservation tomorrow."
Where it lives
A floating panel in the bottom-right of the Pulse dashboard. Click the chat icon to open it; click again to dock.
The same chat history persists across page navigations within Pulse. Clear resets the conversation.
Image attachment
You can attach images two ways:
- Paperclip icon → native file picker.
- Paste (CMD+V / Ctrl+V) with an image on the clipboard — the image attaches as if uploaded. Added in #187, matches Claude.ai's behaviour.
Useful for: a screenshot of a guest WhatsApp thread, a photo of a broken appliance, an Airbnb screenshot of a review.
Max image size: ~5 MB raw (6.67 MB base64). Larger images trigger a toast.
How it handles requests
Behind the scenes the chat runs as a multi-round tool-use conversation:
- Operator sends a message + optional images.
- The chat model picks up tools —
find_teammate,find_property,find_reservation,find_task_template,create_task,query_messages, etc. - The model loops (up to 16 rounds) until it has enough information to respond.
- The final response is rendered with a footer showing "Used N tool rounds this turn. Handled by: \<specialist>".
Trust model
Critical: the chat will tell you what tools it called and what they returned. After #186 the UI shows a verification badge — "✓ Created task #N" — only when the corresponding tool actually executed AND returned ok. If the chat says it created a task but no tool was called, a warning banner reads:
⚠ The assistant says it did X but no tool was called — please verify.
If you ever see that banner, verify in Operations → Tasks before assuming the action happened.
Timeout & long requests
Heavy requests (image + multi-round tool work) can take 30–120 seconds. Pre-#186, the Fly proxy timed out at 60 s and the operator saw "Failed to execute 'json' on 'Response': Unexpected end of JSON input". After the fix, the proxy timeout was raised and a clearer error message surfaces when an actual timeout occurs:
The server is taking too long to respond. Your message may still be processing — check back in a moment before retrying.
Retry behaviour
The Retry button does not automatically re-send large images that were part of the failed turn. Before #187 retry was re-sending the heavy payload and re-failing the same way; now it warns first.
Related issues
- #186 — empty-response timeout + AI-hallucinated tool execution.
- #187 — UX (clipped send button + paste-image support).