Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
ade6fda
:arrow_up: fix hue driver dependencies
rneswold Feb 21, 2026
d85b761
:wrench: a few fixes to get it to compile
rneswold Mar 24, 2026
d109528
:zap: don't inline expression evaluators
rneswold Apr 20, 2026
927accd
:zap: reduce the clones in compile.rs
rneswold Apr 16, 2026
4147707
:zap: remove use of `Cow`
rneswold Apr 20, 2026
2110d5b
:white_check_mark: add unit test which shows bug
rneswold Apr 27, 2026
303648a
:bug: fix comparison predicate
rneswold Apr 27, 2026
14f9819
:zap: an attempt at speeding up linking
rneswold Apr 27, 2026
ec9b59a
:wrench: simplify `dev` builds
rneswold Apr 28, 2026
d5c6572
:recycle: create helper functions
rneswold Apr 28, 2026
299d5f3
:wrench: add content type header
rneswold Apr 28, 2026
66677db
:memo: update logging messages
rneswold Apr 28, 2026
655a824
:art: convert `return` expressions to `break` expressions
rneswold Apr 28, 2026
b50a0b0
:memo: log the command sent to the bridge
rneswold Apr 28, 2026
85f42e3
:wrench: add AI context files
rneswold Jun 25, 2026
2ae4bff
:fire: remove bad example of a config file
rneswold Jun 25, 2026
7aa98b6
Merge update-crates with PR
rneswold Jun 30, 2026
4a4354d
:wrench: configure VSCode environment
rneswold Jun 30, 2026
beb23e5
:arrow_up: fix dependency features so it builds
rneswold Jun 30, 2026
3df33f9
:bug: round readings
rneswold Jun 30, 2026
56f1bef
:construction: major rewrite of Hue driver
rneswold Jun 30, 2026
93c0379
:memo: remove debug messages
rneswold Jun 30, 2026
59c4454
:zap: simplify expression
rneswold Jun 30, 2026
84e92b8
:art: simplify loop logic
rneswold Jun 30, 2026
d94a4ab
:zap: minimize time holding mutex
rneswold Jun 30, 2026
82928dd
:construction: migrate GraphQL support
rneswold Jul 2, 2026
a1b6e36
:arrow_up: use v0.14 of `cfgrammar`, et al
rneswold Jul 2, 2026
9c82016
:arrow_up: use v0.10 of `libmdns`
rneswold Jul 2, 2026
d4eb16f
:arrow_up: use v0.7 of `tower-http`
rneswold Jul 2, 2026
7c3d94e
:arrow_up: use v0.6 of `socket2`
rneswold Jul 2, 2026
0a608b3
:fire: stop committing `Cargo.lock`
rneswold Jul 2, 2026
94383dd
:arrow_up: use v0.8 of `axum-server`
rneswold Jul 2, 2026
b9e43b1
:arrow_up: use v1 of `toml`
rneswold Jul 2, 2026
13a68d2
:wrench: add to AGENTS.md
rneswold Jul 7, 2026
b79d9da
:recycle: no need for polymorphism
rneswold Jul 7, 2026
101cddf
:bug: fix `color` device
rneswold Jul 9, 2026
b6c6f39
:recycle: expends the `Value::Color` type
rneswold Jul 14, 2026
b00fb74
:sparkles: add logic block function WITH_ALPHA
rneswold Jul 14, 2026
466fdf0
:sparkles: add BRIGHTNESS() function to grammar
rneswold Jul 19, 2026
5cf9170
:sparkles: add BLEND() to grammar
rneswold Aug 1, 2026
09b8fe4
:bug: add a delay to guarantee timestamp order
rneswold Aug 6, 2026
92c3886
:bug: add GraphIQL dependency
rneswold Aug 6, 2026
671a4f4
:bug: fix website layout
rneswold Aug 6, 2026
0065819
:memo: improve logging for hue driver
rneswold Jul 5, 2026
b78fe2b
:bug: add missing support for Temperature colors
rneswold Aug 8, 2026
9555f3f
:zap: improve web site paths
rneswold Jul 5, 2026
aa5a4ed
:wrench: add GraphIQL when checking
rneswold Jul 12, 2026
afdb2e6
:truck: use modern module layout
rneswold Aug 14, 2026
a8afd2d
:bug: fix README paths
rneswold Aug 14, 2026
eb16cb5
:bug: fix timing issue
rneswold Aug 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,4 @@ test-publish-drmemd.sh

*.sql
drmem.toml
Cargo.lock
18 changes: 12 additions & 6 deletions .justfile
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,16 @@ _test-redis-graphql: test-api
test-drmemd: _test-simple _test-simple-graphql _test-redis-graphql

build mode="dev":
@echo "🔧 Building {{ mode }}"
nice cargo build \
{{ if mode == "rel" { "--release" } else { "" } }} \
--features simple-backend,graphql,all-drivers
#!/usr/bin/env sh
if [ "{{ mode }}" = "dev" ]; then \
FEATURES="simple-backend"; \
RELEASE_FLAG=""; \
else \
FEATURES="redis-backend"; \
RELEASE_FLAG="--release "; \
fi; \
( echo "🔧 Building {{ mode }} with ${FEATURES}"; \
nice cargo build ${RELEASE_FLAG}--features ${FEATURES},graphql,all-drivers );

# This section has the targets for checking the syntax and
# correctness. These commands run faster than the tests because they
Expand All @@ -56,11 +62,11 @@ _check-simple:

_check-simple-graphql:
@echo "🤔 Checking simple-backend, with GraphQL"; \
nice cargo check --features simple-backend,graphql,all-drivers
nice cargo check --features simple-backend,graphiql,all-drivers

_check-redis-graphql:
@echo "🤔 Checking redis-backend, with GraphQL"; \
nice cargo check --features redis-backend,graphql,all-drivers
nice cargo check --features redis-backend,graphiql,all-drivers

check: _check-simple _check-simple-graphql _check-redis-graphql
@echo "🎉 DrMem source was checked successfully!"
Expand Down
7 changes: 7 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"rust-analyzer.cargo.features": [
"graphql",
"simple-backend",
"all-drivers"
]
}
33 changes: 33 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Agent Instructions

## Stack
- tokio

## Architecture
- `drmem-api` -- contains types and APIs used by drivers and the main executable
- `drivers` -- contains several crates that that implement DrMem drivers and can optionally be linked into `drmemd`
- `drivers/drmem-drv-hue` -- a driver for the Philips Hue products
- `drivers/drmem-drv-ntp` -- a driver to monitor NTPD servers
- `drivers/drmem-drv-sump` -- a driver to monitor a sump pump
- `drivers/drmem-drv-tplink` -- a driver to control devices that use the TP-Link protocol
- `drivers/drmem-drv-weather-wu` -- a driver to retrieve weather info from Weather Underground
- `drmemd` -- builds the main executable `drmemd`
- `drmemd/src/backends` -- holds code for storage backends; supports a simple or a redis backend, selectable by `cargo` features
- `drmemd/src/logic` -- holds code implementing the "logic block" processes
- `drmemd/src/drivers` -- holds several, simple drivers that are always available in a DrMem instance
- `drmemd/src/graphql` -- defines the optional GraphQL interface

## Rules
- Responses shouldn't be chatty -- keep it terse but informative
- Prefer minimal patches
- Prefer functional solutions over imperative
- Run `cargo check` after code changes
- Do not edit generated files directly
- Run `cargo check` before committing
- Use `jj` for version control
- Never use `unsafe` code

## Commands
- Build: `cargo build --features simple-backend,all-drivers,graphql`
- Check: `cargo check --features simple-backend,all-drivers,graphql`
- Test: `cargo test --features simple-backend,all-drivers,graphql`
1 change: 1 addition & 0 deletions CLAUDE.md
Loading
Loading