Add config.machineId to openSystem dependency array
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add requester filter to device tickets history page
- Create listMachineRequesters query to list unique requesters
- Add friendly API error formatting in desktop agent
- Translate validation errors to user-friendly Portuguese messages
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Reload config/token directly from store before syncing
- Avoid race condition when register() calls ensureRustdesk before React state updates
- Ensures machineId and token are always fresh from disk
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
The RustDesk data saved by Rust directly to file was not being
synced to the backend because the app redirected to the web platform
before the sync could complete.
- Reload store from disk in openSystem to get Rust-saved data
- Sync RustDesk before redirecting with 3s timeout
- Fire-and-forget sync to avoid blocking the redirect
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Corrigir indentacao do useEffect que dispara ensureRustdesk
- Adicionar logs detalhados em handleRustdeskProvision e ensureRustdesk
- Logs ajudam a diagnosticar falhas na sincronizacao do acesso remoto
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Update Next.js to 16.0.7
- Fix accent on menu item "Emprestimos" to "Empréstimos"
- Standardize loan page with project patterns (DateRangeButton, cyan color scheme, ToggleGroup)
- Add company filter to USB bulk policy dialog
- Update CardDescription text in devices overview
- Fix useEffect dependency warning in desktop main.tsx
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Usa Store.load com caminho absoluto em C:\Raven\data quando possível; fallback para AppData
- Remove import de fs (plugin) e opção 'dir' não suportada pelo plugin-store v2
- main.tsx: resolveDataDir usa executableDir/data quando possível; se falhar, cai para appLocalDataDir
- tauri.conf.json: remove bloco windows.nsis inválido no schema v2 para build passar
Objetivo: instalar dados fora do AppData (ex.: C:\Raven\data) quando o diretório de instalação permitir escrita.
- src-tauri: adiciona comando open_devtools que chama window.open_devtools()
- frontend: listeners para F12/Ctrl+Shift+I e botão direito com Ctrl/Shift
Facilita depuração de UI no executável Tauri.
- tauri.conf.json: configura nsis (installMode perMachine, allowToChangeInstallDirectory, installDirName, createDesktopShortcut)
- main.tsx: Store.load agora usa appLocalDataDir (dados do app em AppData do usuário)
- README: documenta instalação Windows, dados em AppData e build leve (--bundles nsis)