2.3 KiB
Napkin Runbook — KVMote
Curation Rules
- Re-prioritize on every read.
- Keep recurring, high-value notes only.
- Max 10 items per category.
- Each item includes date + "Do instead".
Execution & Validation (Highest Priority)
-
[2026-03-24]
ImplicitUsings=disable— todo using deve ser explícito Do instead: ao adicionar código, verificar se todos os namespaces usados têmusingexplícito no topo. Faltou um → erro CS0103 silencioso em runtime. -
[2026-03-24] Designer file: sempre usar
this.nos membros de Form Do instead: emPrincipal.Designer.cs, escreverthis.btnConnect.Text = ...— nunca omitirthis.. Sem isso → CS0103. -
[2026-03-24] AutoScaleMode deve ser
DpicomAutoScaleDimensions = new SizeF(96F, 96F)Do instead: nunca usarNone(quebra DPI alto) nemFont(escala diferente por máquina). -
[2026-03-24] Form1.cs / Form1.Designer.cs são stubs vazios — não remover Do instead: manter como
namespace KVMote { }. VS os inclui no .csproj; remover do disco pode causar erro de build.
Build & Deploy
- [2026-03-24] Não usar "Publicar" do Visual Studio — gera ClickOnce (múltiplos arquivos)
Do instead: usar
dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=trueno terminal.
Domain Behavior Guardrails
-
[2026-03-24] Canal serial é único (9600 baud) — mouse trava durante paste de clipboard Do instead: isso é design proposital (limitação do BT HC-06). Não tentar paralelizar sem mudar o protocolo de transporte.
-
[2026-03-24] Chars não-ASCII (é, ã, ç) não são enviáveis via clipboard Do instead: filtrar/ignorar na
SendClipboardToClient. Limite:MaxClipChars = 300. -
[2026-03-24]
ClipCursornão é usado para prender o cursor em modo cliente Do instead: usar técnica FPS warp —SetCursorPosde volta ao centro a cada WM_MOUSEMOVE, acumulando deltas reais em_pendingDX/_pendingDY. -
[2026-03-24]
SendMouseusaMonitor.TryEnter(lossy) — descarta pacotes se canal ocupado Do instead: isso é intencional. Não trocar porlockpois bloquearia o hook de mouse. -
[2026-03-24] Arduino Leonardo é obrigatório — Uno não suporta HID USB nativo Do instead: nunca sugerir Arduino Uno ou Mega como substituto.