Back to Dyad

Chat modes

rules/chat-modes.md

1.12.01.6 KB
Original Source

Chat modes

  • Always prefer Agent mode (local-agent) over legacy Build mode (build) when adding new features or updating existing features that select or create a writable chat mode. Exhausted Basic Agent quota must preserve Agent mode and surface a user-facing quota error with explicit Upgrade and Switch to Build actions; never silently run the turn in Build mode. Use Build automatically only when a documented legacy-only constraint requires it, and reuse the centralized mode-resolution logic instead of adding feature-specific entitlement checks.
  • Apply mode availability and model-compatibility rules to every selection path, including dropdowns, keyboard cycling, and recovery CTAs. An unavailable mode may remain selected so the UI can explain why it cannot run, but manual entry paths must skip or clearly gate it.
  • Treat Basic Agent quota checking and reservation as one app-wide admission operation: reserve a pending slot before redo, attachment, message, or model mutations; count pending reservations across chats and windows; persist the quota mark in the same transaction as turn acceptance; and release/refund every unsuccessful or aborted stream. Per-chat locks alone cannot protect the final slot.
  • Do not clear a submitted prompt, attachments, or component selections until main confirms durable turn acceptance, across both Home first-prompt and in-chat submission paths. Clear only the accepted snapshot so edits or attachments added while acceptance is pending survive. Admission failures such as exhausted quota must leave the complete payload in the composer so the user can change mode and resend it.