jimmy
ef968ebe39
docs: run/edit mode, profiles behavior, send presets
...
Made-with: Cursor
2026-03-21 23:51:00 +13:00
jimmy
a5432db99a
feat(ui): gate profile create/clone/delete to edit mode
...
Made-with: Cursor
2026-03-21 23:50:59 +13:00
jimmy
764d918d5b
data: update local db fixtures and browser test expectations
...
Made-with: Cursor
2026-03-21 23:15:55 +13:00
jimmy
edadb40cb6
docs: rewrite API reference for current HTTP and driver flows
...
Made-with: Cursor
2026-03-21 23:15:44 +13:00
jimmy
9323719a85
feat(ui): add run/edit workflow and improve preset color editing
...
Made-with: Cursor
2026-03-21 23:15:31 +13:00
jimmy
91de705647
feat(profiles): seed new profiles and refresh tabs on apply
...
Made-with: Cursor
2026-03-21 23:15:19 +13:00
jimmy
3ee7b74152
fix(api): stabilize palette and preset endpoints
...
Made-with: Cursor
2026-03-21 23:15:08 +13:00
jimmy
98bbdcbb3d
chore: add dev watch command to Pipfile scripts
...
Made-with: Cursor
2026-03-21 23:15:00 +13:00
jimmy
a2abd3e833
data: refresh db JSON fixtures
...
Made-with: Cursor
2026-03-21 20:17:33 +13:00
jimmy
550217c443
ui: data-bwignore on AP password fields for password managers
...
Made-with: Cursor
2026-03-21 20:17:33 +13:00
jimmy
2d2032e8b9
esp32: log startup and UART receive for debugging
...
Made-with: Cursor
2026-03-21 20:17:33 +13:00
jimmy
81bf4dded5
docs: update msg.json example payload
...
Made-with: Cursor
2026-03-21 20:17:33 +13:00
jimmy
a75e27e3d2
feat: device model, API, static UI, and endpoint tests
...
Made-with: Cursor
2026-03-21 20:17:33 +13:00
jimmy
13538c39a6
tests: skip browser tests when no driver; try Firefox after Chrome
...
Made-with: Cursor
2026-03-21 20:17:33 +13:00
jimmy
7b724e9ce1
tests: point model tests at db/ and align palette assertions
...
Made-with: Cursor
2026-03-21 20:17:33 +13:00
jimmy
aaca5435e9
chore: gitignore local settings.json (session secret)
...
Made-with: Cursor
2026-03-21 20:17:33 +13:00
jimmy
b64dacc1c3
Stop ignoring esp32; drop esp32 rules from .gitignore
...
Made-with: Cursor
2026-03-21 20:08:24 +13:00
jimmy
8689bdb6ef
Restore esp32 MicroPython sources (main, benchmark_peers)
...
Adjust .gitignore to ignore esp32/* except *.py so firmware .bin stays untracked.
Made-with: Cursor
2026-03-21 19:59:52 +13:00
jimmy
c178e87966
Ignore esp32 folder
2026-03-21 19:53:19 +13:00
jimmy
dfe7ae50d2
Add led-tool and led-driver submodules
2026-03-21 19:52:59 +13:00
jimmy
8e87559af6
Add led-tool and led-driver as submodules
2026-03-21 19:52:14 +13:00
jimmy
aa3546e9ac
Remove obsolete scripts and root config files
...
Drop clear-debug-log, install, run_web, send_empty_json, esp32 helpers,
and root msg.json/settings.json in favor of current layout.
Made-with: Cursor
2026-03-21 19:47:29 +13:00
jimmy
b56af23cbf
Add scripts: start, copy ESP32 main, install boot service
...
Made-with: Cursor
2026-03-15 23:43:27 +13:00
jimmy
ac9fca8d4b
Pi port: serial transport, addressed ESP-NOW bridge, port 80
...
- Run app on Raspberry Pi: serial to ESP32 bridge at 912000 baud, /dev/ttyS0
- Remove ESP-NOW/MicroPython-only code from src (espnow, p2p, wifi, machine/Pin)
- Transport: always send 6-byte MAC + payload; optional to/destination_mac in API and WebSocket
- Settings and model DB use project paths (no root); fix sys.print_exception for CPython
- Preset/settings controllers use get_current_sender(); template paths for cwd=src
- Pipfile: run from src, PORT from env; scripts for port 80 (setcap) and test
- ESP32 bridge: receive 6-byte addr + payload, LRU peer management (20 max), handle ESP_ERR_ESPNOW_EXIST
- Add esp32/main.py, esp32/benchmark_peers.py, scripts/setup-port80.sh, scripts/test-port80.sh
Made-with: Cursor
2026-03-15 17:16:07 +13:00
jimmy
9f37dbbff0
Add data files and local tooling
2026-01-16 22:31:47 +13:00
jimmy
df37f15f73
Update UI for palettes, presets, and patterns
2026-01-16 22:31:36 +13:00
jimmy
9c43a0a22b
Update backend models, controllers, and session
2026-01-16 22:31:24 +13:00
jimmy
d41faddfca
Update static files and templates
...
- Add htmx library
- Update main.js and styles.css
- Update index.html template
2026-01-11 21:34:19 +13:00
jimmy
9e2409430c
Add documentation and utility modules
...
- Add API specification documentation
- Add system specification document
- Add UI mockups and documentation
- Add utility modules (wifi)
2026-01-11 21:34:18 +13:00
jimmy
5f6e45af09
Clean up obsolete files
...
- Remove old web.py, wifi.py, patterns.py
- Remove old static files from root
- Remove unused component files
2026-01-11 21:34:17 +13:00
jimmy
cccda24448
Add comprehensive model tests
...
- Add tests for all model CRUD operations
- Add test for base Model class
- Add test runner for all model tests
- Tests include cleanup and validation
2026-01-11 21:34:17 +13:00
jimmy
5cca60d830
Update main.py with controllers and static route
...
- Mount model controllers as subroutes
- Add static file serving route
- Integrate controllers into main application
2026-01-11 21:34:16 +13:00
jimmy
ac750a36e7
Add controllers for models
...
- Add REST API controllers for all models
- Controllers use Microdot subroutes
- Support CRUD operations via HTTP endpoints
- Controllers: preset, profile, group, sequence, tab, palette
2026-01-11 21:34:15 +13:00
jimmy
01f373f0bd
Add model base class and models
...
- Add Model base class with get_next_id() method
- Add Preset model with CRUD operations
- Add Profile model with tabs and palette support
- Add Group model for device grouping
- Add Sequence model for preset sequencing
- Add Tab model for organizing device controls
- Add Palette model for color collections
2026-01-11 21:34:14 +13:00
jimmy
e0a0e083be
Initial commit
2025-04-15 10:14:46 +00:00