Pulse Copilot capability parity
Pulse Copilot got a large capability expansion in the June-July batch. The goal: parity with everything the operator can do in the UI, so the operator can drive routine work via chat.

Approval gate on all mutations
Every WRITE — task template edit, teammate update, message template change, FAQ create, price change, cleaner assign — hits a confirm-before-mutate approval gate.
Copilot proposes the change → the surface shows a "Confirm" button with the diff → operator taps to commit.
Applies to both:
- Intent tools (structured actions Copilot maps to).
- Raw
execute_trpc(the fallback tool Copilot uses when no intent matches).
Anti-clobber read-merge
Copilot's .update calls do a read-merge — fetch the current row, apply the partial change as an overlay, submit the full row. Fields you didn't mention keep their current values.
Approval gate
Copilot's write actions require your confirmation. It can never confirm its own approval gate — including mid-way through multi-turn plans.
Fuzzy / substring fallback
When operator asks about "the coffee capsule supply" and the actual row is "CAFISSIMO 70g FINE AROMA capsules", Copilot's lookup falls back through:
- Exact match
- Substring match
- Fuzzy (edit distance)
Anchor-hints — when Copilot has an ambiguous match, it asks "Did you mean CAFISSIMO 70g FINE AROMA or CAFISSIMO STR INTENSO?" instead of guessing.
Admin surfaces Copilot can reach
- Email templates — read + write via approval gate.
- Pricing — read + write per property.
- set_cleaner — assign a cleaner to a reservation.
- FAQ — read + write + create.
- Message templates — read + write via approval gate.
- AI Cockpit config — read tools + ergonomic approval-gated writes.
- User-owned-config audit — Copilot's edits to
message_templates+teammatesshow up in the audit log withactor=copilot:<agent-name>.
Operator-friendly language
Copilot never surfaces:
- Raw tRPC path names
- Internal field jargon
- Chain-of-thought reasoning
- System-prompt leakage
Copilot speaks operator English: "I'll update the check-in template" instead of "I'll call operations.messageTemplates.update on slug=checkin_instructions".
Copilot cache + cost work
Prompt caching and context-window management keep per-turn cost down and long conversations stable. What you see:
- Lower per-turn cost visible in Cost dashboard.
- Faster Copilot responses.