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).
Earlier execute_trpc bypassed the gate; fixed in
Anti-clobber read-merge
Copilot's .update calls now do a read-merge — fetch the current row, apply the partial payload as an overlay, submit the full row. Prevents Zod-default clobber where a partial payload replaced unspecified fields with schema defaults.
Applied generally to all clobber-prone .update paths.
Self-approval bypass fix
Copilot used to auto-confirm its OWN approval gate when running multi-turn plans (agentic self-confirm).
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)
Earlier only exact match — Copilot silently reported "not found" when the operator's phrasing didn't match. Fixed.
Anchor-hints — when Copilot has an ambiguous match, it asks "Did you mean CAFISSIMO 70g FINE AROMA or CAFISSIMO STR INTENSO?" instead of guessing.
Missing admin-domain writes
Filled in Copilot's ability to reach missing admin surfaces:
- 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 — write tool added; earlier Copilot claimed to edit them but silently redirected to FAQ edits.
- AI Cockpit config — read tools + ergonomic approval-gated writes.
- User-owned-config audit — Copilot's edits to
message_templates+teammatesnow show up in the audit log withactor=copilot:<agent-name>.
Operator-friendly language
The operator no longer sees:
- 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
Under the hood:
- **.
- **. Now stable.
- **
Operator sees:
- Lower per-turn cost visible in Cost dashboard.
- Faster Copilot responses.