← όλα τα πρότζεκτς

Project 430

Work-in-progress Windows tray personal assistant: local notes, reminders, Home Assistant controls, time-based automations, και planned AI features αν βρεθεί funding.

σε ανάπτυξη
ElectronReactTypeScriptViteSQLitebetter-sqlite3Home Assistant APIkeytarelectron-builderPowerShell

Σύνοψη

Το Project 430 είναι work-in-progress Windows-first desktop personal assistant με Electron, React, και TypeScript. Τρέχει από το system tray, κρατάει notes και reminders τοπικά σε SQLite, στέλνει desktop notifications όταν λήγουν reminders, συνδέεται με Home Assistant για έλεγχο lights/switches, και επιτρέπει time-based automation rules με execution logs. Το επόμενο μεγαλύτερο πλάνο είναι AI-assisted workflows, αν βρεθεί αρκετό funding για model/API costs και development time. Πακετάρεται ως Windows installer με smoke checks και versioned release artifacts.

Σημαντικά σημεία

  • System tray assistant με command-launcher style shortcuts και minimal desktop workflow.
  • Local-first μοντέλο: notes, reminders, automation rules, device cache, settings, και execution logs σε SQLite.
  • Reminder scheduler με desktop notifications, daily recurrence, snooze, completion, και renderer refresh events.
  • Home Assistant integration: URL/token setup, connection test, entity sync, cached lights/switches, και safe toggle actions.
  • Time-based automations που δημιουργούν local reminders ή togglάρουν Home Assistant entities, με retries, timeouts, και execution logs.
  • Planned AI layer αν υπάρχει funding: natural-language commands, smarter reminder/note workflows, και assistant-style automation suggestions.
  • Windows release pipeline με electron-builder NSIS installer, versioned release folders, smoke checks, clean-git validation, και cleanup scripts.

Context

I wanted a small desktop assistant that actually fits my own workflow instead of another giant cloud dashboard: quick notes, reminders, smart-home controls, and simple automations sitting one click away in the Windows tray. Project 430 is the first real version of that idea.

What it does

  • Creates and searches local notes with tags and pinned ordering.
  • Creates reminders with one-off or daily recurrence, then fires native desktop notifications when they are due.
  • Connects to a Home Assistant instance, syncs light/switch entities, and toggles supported devices from the app.
  • Defines time-based automation rules, currently localReminder and haToggle actions.
  • Records automation execution status, attempt counts, retry counts, timings, and errors for debugging.

Architecture

The app splits desktop responsibilities cleanly between Electron main, a constrained preload bridge, and a React renderer. The main process owns SQLite, notifications, Home Assistant calls, scheduling, settings, and secrets. The renderer only talks through the exposed assistantApi IPC surface.

  • src/main/main.ts wires windows, tray behavior, IPC handlers, reminder scheduling, and automation cycles.
  • src/main/db.ts owns SQLite migrations for notes, reminders, automations, cached devices, logs, and app settings.
  • src/main/services/* keeps feature logic separate: notes, reminders, Home Assistant, automation, settings, and secrets.
  • src/main/preload.ts exposes a narrow assistantApi instead of giving the UI direct Node access.
  • src/renderer/App.tsx is the main React surface for setup, command hints, notes, reminders, devices, rules, and logs.

Reliability work

  • Home Assistant requests have timeout handling, limited retries for safe methods, token validation, and clear HTTP error messages.
  • Automation actions run with retry and timeout guards so one bad device call does not silently stall the loop.
  • Reminder scheduling is guarded against overlapping ticks and catches notification failures per reminder.
  • Release scripts validate required commands, optionally enforce a clean git tree, stage installer outputs, run smoke checks, and refuse to overwrite existing versioned releases unless explicitly requested.

Status

Work in progress / MVP. The core loop works: local notes, reminders, Home Assistant sync/toggles, automation rules, logs, and Windows installer packaging. The current push is mostly UX polish, reliability hardening, and making the release flow repeatable. AI features are planned, but depend on finding enough funding to cover model/API costs and the time needed to build them properly.

Πρόσφατες εκδόσεις

v1.2.0

  • · Polished onboarding, themes, logo, and minimal workflow UX.
  • · Hardened reminders, automation confidence, Home Assistant handling, accessibility, and release safety.
  • · Improved Windows release packaging with smoke validation and versioned installer history.
toad mascot