Files
wakey/.serena/memories/style_and_conventions.md
T

1.3 KiB

Style And Conventions

Rust:

  • Edition 2024.
  • Prefer explicit, small service/API functions over large abstractions.
  • Use anyhow::Context for fallible operations in application layers.
  • Use tracing for logs.
  • Shared domain types live in wakey-core; Linux/OpenWrt I/O in wakey-linux; root crate owns service/CLI behavior; agent/control-plane should reuse service/domain types where possible.
  • SQLx query macros are used in control-plane state. Regenerate .sqlx metadata after query string changes.
  • Device identity is manual: observations and inventory may suggest, but should not silently pin, merge, promote, or delete known identifiers.
  • Hotplug observation actions should stay event-shaped (add, update, remove). Do not store NUD state as the action. NUD belongs to live neighbor/inventory data.

Frontend:

  • React + Vite + TypeScript.
  • Use existing component/style conventions; shadcn/base-ui/lucide are available.
  • Main operator UI is fleet-first: common path is find device, inspect current IP/MAC/agent, wake, copy, remember/merge.
  • Admin/debug pages stay available but should not dominate the primary nav.

Editing:

  • Keep changes scoped.
  • Preserve user edits in dirty worktrees.
  • Use apply_patch for manual file edits.
  • Default to ASCII unless files already use non-ASCII for a reason.