feat(docs): update README and AGENTS.md with RTK instructions

This commit is contained in:
2026-02-19 13:01:55 -08:00
parent 16f02ed967
commit 3dc66a536e
12 changed files with 296 additions and 104 deletions

View File

@@ -1,65 +0,0 @@
#!/usr/bin/env bash
# Lockfile helper for doorbell build harness
# Source this from mise tasks
LOCKFILE="/tmp/doorbell-${BOARD:-esp32-32e-4}.lock"
acquire_lock() {
if [ -f "$LOCKFILE" ]; then
OLD_PID=$(cat "$LOCKFILE" 2>/dev/null)
if [ -n "$OLD_PID" ] && kill -0 "$OLD_PID" 2>/dev/null; then
if [ "${FORCE:-}" = "1" ]; then
echo "Force: Killing existing process (PID: $OLD_PID)..."
kill "$OLD_PID" 2>/dev/null
sleep 1
kill -9 "$OLD_PID" 2>/dev/null
echo "Killed PID $OLD_PID"
else
echo "Error: Another instance is running (PID: $OLD_PID)"
echo "Kill with: mise run kill BOARD=$BOARD"
echo "Or force with: FORCE=1 mise run $TASK_NAME BOARD=$BOARD"
return 1
fi
else
echo "Stale lockfile found, removing..."
rm -f "$LOCKFILE"
fi
fi
trap 'rm -f "$LOCKFILE"' EXIT
echo "$$" > "$LOCKFILE"
echo "Acquired lock: $LOCKFILE (PID: $$)"
return 0
}
release_lock() {
rm -f "$LOCKFILE"
}
kill_locked() {
if [ ! -f "$LOCKFILE" ]; then
echo "No lockfile found: $LOCKFILE (nothing to kill)"
return 0
fi
OLD_PID=$(cat "$LOCKFILE" 2>/dev/null)
if [ -z "$OLD_PID" ]; then
echo "Lockfile is empty, removing..."
rm -f "$LOCKFILE"
return 0
fi
if kill -0 "$OLD_PID" 2>/dev/null; then
echo "Killing PID $OLD_PID..."
kill "$OLD_PID" 2>/dev/null
sleep 1
if kill -0 "$OLD_PID" 2>/dev/null; then
echo "Force killing PID $OLD_PID..."
kill -9 "$OLD_PID" 2>/dev/null
fi
echo "Killed PID $OLD_PID"
else
echo "Process $OLD_PID not running (stale lockfile)"
fi
rm -f "$LOCKFILE"
echo "Lockfile removed"
}

View File

@@ -7,7 +7,12 @@
# - /tmp/doorbell-$BOARD-state.json - Current device state
# - /tmp/doorbell-$BOARD-cmd.fifo - Command pipe (echo 'cmd' > fifo)
#
# Note: This script should be run after 'mise run kill' to ensure
# any existing processes using the serial port are terminated.
#
# Usage:
# mise run kill BOARD=$BOARD
# ./scripts/monitor-agent.sh $BOARD
# tail -f /tmp/doorbell-$BOARD.jsonl # Watch logs
# echo 'dashboard' > /tmp/doorbell-$BOARD-cmd.fifo # Send command
@@ -15,9 +20,6 @@ set -euo pipefail
BOARD="${1:-esp32-32e-4}"
source "./boards/$BOARD/board-config.sh"
source ./scripts/lockfile.sh
acquire_lock || exit 1
SERIAL="$PORT"
LOGFILE="/tmp/doorbell-$BOARD.jsonl"