-
f36f0fe431
fix(permissions): narrow rm -rf deny globs to their exact forms
main

jpmschweitzerandClaude
2026-08-25 20:33:17 +02:00
-
8bdf950fcf
build(lint): select ruff's rules explicitly instead of inheriting them

jpmschweitzerandClaude
2026-08-17 12:36:37 +02:00
-
78d9b276ee
build(make): prove make setup actually works before exiting 0 (T-47)
jpmschweitzer
2026-08-17 12:04:12 +02:00
-
3f8e4cf593
fix(gateway): tell mypy the speech extra may be absent

jpmschweitzerandClaude
2026-08-11 14:30:56 +02:00
-
7846e48595
build(ci): move the pre-push gate into the Makefile

jpmschweitzerandClaude
2026-08-09 18:57:22 +02:00
-
eca10a0dd0
docs: qualify the workspace decision references

jpmschweitzerandClaude
2026-08-09 17:58:14 +02:00
-
5297249e58
ci(make): reserve exit 69 for "could not run" (D-26)

jpmschweitzerandClaude
2026-08-09 15:56:25 +02:00
-
2ef00c98de
build: add the root Makefile the previous commit should have carried

jpmschweitzerandClaude
2026-08-09 15:04:43 +02:00
-
ff193203c9
refactor: merge the component Makefiles into one at the root

jpmschweitzerandClaude
2026-08-09 15:03:58 +02:00
-
8cd2c05a00
chore(claude): pin PQL_VAULT per project so cwd stops choosing the vault

jpmschweitzerandClaude
2026-08-09 13:49:04 +02:00
-
984e43aa8f
chore(claude): deny toj in the sub-repos

jpmschweitzerandClaude
2026-08-09 13:42:09 +02:00
-
2cdefefecb
ci: gate pushes on a gitleaks scan of the outgoing commits

jpmschweitzerandClaude
2026-08-09 12:48:58 +02:00
-
101816de71
docs: replace AGENTS.md with a repo-specific CLAUDE.md

jpmschweitzerandClaude
2026-08-09 03:17:00 +02:00
-
b6fdd3313a
chore: adopt the workspace agent-config baseline

jpmschweitzerandClaude
2026-08-09 03:16:40 +02:00
-
67bee80dc8
docs(architecture): sync with measured 2026-08-07 state

jpmschweitzerandClaude
2026-08-07 15:05:15 +02:00
-
7c7ce1541c
release v0.2.2
v0.2.2

jpmschweitzerandClaude Fable 5
2026-07-19 12:32:13 +02:00
-
014c86f51e
chore(gateway): drop schweitz.internal, default to http://tatlock:8000

jpmschweitzerandClaude Fable 5
2026-07-19 12:22:25 +02:00
-
c4770194d9
chore(ci): push images via git.schweitz.net registry

jpmschweitzerandClaude Fable 5
2026-07-19 11:09:59 +02:00
-
ccb46d45b4
release v0.2.1
v0.2.1

jpmschweitzerandClaude Opus 4.8
2026-07-15 22:39:46 +02:00
-
9a62233775
fix(gateway): reword butler filler to avoid a TTS mid-phrase pause

jpmschweitzerandClaude Opus 4.8
2026-07-15 22:39:03 +02:00
-
24e9375095
fix(firmware): don't let the feedback gong swallow return-to-idle

jpmschweitzerandClaude Opus 4.8
2026-07-15 21:50:53 +02:00
-
e3021baf4d
release v0.2.0
v0.2.0

jpmschweitzerandClaude Opus 4.8
2026-07-15 21:32:31 +02:00
-
09f8afcadd
feat(gateway): butler filler line while Tatlock works

jpmschweitzerandClaude Opus 4.8
2026-07-15 21:29:35 +02:00
-
6b7fbb60c9
feat(gateway): voice command service

jpmschweitzerandClaude Opus 4.8
2026-07-15 21:29:00 +02:00
-
cdb23bda05
feat(firmware): volume control goes to eleven

jpmschweitzerandClaude Opus 4.8
2026-07-15 21:27:48 +02:00
-
9521deddc5
feat(dev): device screenshot over USB

jpmschweitzerandClaude Opus 4.8
2026-07-15 20:24:41 +02:00
-
23f001ceb5
feat(face): tap-to-reveal volume controls

jpmschweitzerandClaude Opus 4.8
2026-07-15 20:24:04 +02:00
-
ebdb1f0457
Cycle rain streams through the sprite pool for a sense of change

jpmschweitzerandClaude Opus 4.8
2026-07-15 18:34:17 +02:00
-
b42d8216cc
Render matrix rain as pooled internal-RAM sprites

jpmschweitzerandClaude Opus 4.8
2026-07-15 18:02:59 +02:00
-
728c460d36
Raise the DSI bridge FIFO refill threshold for underrun margin

jpmschweitzerandClaude Opus 4.8
2026-07-15 18:02:59 +02:00
-
88a7f3e9cc
Lower DSI lane rate to 720 Mbps to smooth framebuffer reads

jpmschweitzerandClaude Opus 4.8
2026-07-15 18:02:59 +02:00
-
d4a9fd7265
Add CHANGELOG (Keep a Changelog format)

jpmschweitzerandClaude Opus 4.8
2026-07-15 14:44:37 +02:00
-
7abf9e3fdd
Record the esp-hosted PSRAM-mempool famine dead-end

jpmschweitzerandClaude Opus 4.8
2026-07-15 14:43:55 +02:00
-
4c3718411e
Ease DSI PSRAM write bursts: bigger inv buffer + half-rate rain

jpmschweitzerandClaude Opus 4.8
2026-07-15 14:43:32 +02:00
-
d1e1250016
Add DSI load-test harness; give the LVGL task a 16 KB stack

jpmschweitzerandClaude Opus 4.8
2026-07-15 14:42:19 +02:00
-
67de636ab4
Fix DSI blue flicker under load: lower DPI clock to 40 MHz

jpmschweitzerandClaude Opus 4.8
2026-07-15 14:41:34 +02:00
-
6b3b9ce0ed
Fix load-dependent DSI flicker: TRIPLE_PARTIAL -> TRIPLE_FULL tear-avoid

jpmschweitzerandClaude Fable 5
2026-07-15 11:31:25 +02:00
-
b462dff082
Phase 5: hands-free "Computer" wake word (esp-sr WakeNet + AFE VAD)

jpmschweitzerandClaude Fable 5
2026-07-15 10:52:41 +02:00
-
cb5826e02b
Fork fix: the SDIO wedge is FIXED (esp-hosted-mcu #167)

jpmschweitzerandClaude Fable 5
2026-07-15 09:50:27 +02:00
-
ac9d24e0f9
SDIO tuning for sustained audio-upload TX (the real wall)

jpmschweitzerandClaude Fable 5
2026-07-15 09:18:03 +02:00
-
5c6a6eba36
Fix touch crash + make rain a reachability signal + calm the alarm churn

jpmschweitzerandClaude Fable 5
2026-07-15 09:04:57 +02:00
-
795a1d4baf
Remove boot-time diagnostic burst (fast re-wedge trigger)

jpmschweitzerandClaude Fable 5
2026-07-15 02:44:04 +02:00
-
395e05343d
gateway: handle websocket.disconnect in receive loop

jpmschweitzerandClaude Fable 5
2026-07-15 02:29:10 +02:00
-
f156b640d8
Stop the C6 reflash loop: accept factory 2.12.11 slave (gate >=2)

jpmschweitzerandClaude Fable 5
2026-07-15 02:27:58 +02:00
-
ca2144694a
Test BLE-coex wedge hypothesis: C6 slave rebuilt with Bluetooth off

jpmschweitzerandClaude Fable 5
2026-07-15 02:24:31 +02:00
-
02d91461b8
Upstream reproduction pack for the SDIO wedge (esp-hosted-mcu#167)

jpmschweitzerandClaude Fable 5
2026-07-15 02:12:11 +02:00
-
fe82a7a22d
Test DHCP-renewal wedge hypothesis: fully static IP on 2.12 pair

jpmschweitzerandClaude Fable 5
2026-07-15 01:57:16 +02:00
-
e5c8a38f94
Stability round 2: WIFI_PS_NONE + 10MHz SDIO

jpmschweitzerandClaude Fable 5
2026-07-15 01:29:33 +02:00
-
7943e0e72a
1-bit SDIO to kill the wedge-reboot loop; gong on cold boot only

jpmschweitzerandClaude Fable 5
2026-07-15 01:19:52 +02:00
-
b8974ec84f
Wi-Fi data path FIXED: esp_hosted 2.12 on both chips + C6 SDIO auto-OTA

jpmschweitzerandClaude Fable 5
2026-07-15 00:26:28 +02:00
-
3a402220b0
Device registry (/devices + hello), static-IP fallback, WS keepalive, uncompressed fonts

jpmschweitzerandClaude Fable 5
2026-07-14 22:34:57 +02:00
-
ed0e8221f1
Phase 2: full LVGL face + Wi-Fi + gateway WebSocket + touch-to-talk

jpmschweitzerandClaude Fable 5
2026-07-14 21:42:51 +02:00
-
ae9f6e0abb
Approved gong voicing: 220Hz fundamental, fatter mids, -7dBFS at vol 75

jpmschweitzerandClaude Fable 5
2026-07-14 20:44:30 +02:00
-
bfe792f006
Replace beeps with a cathedral gong

jpmschweitzerandClaude Fable 5
2026-07-14 20:41:02 +02:00
-
60c73e135c
Boot chime through ES8311: audio-out path verified on hardware

jpmschweitzerandClaude Fable 5
2026-07-14 20:34:59 +02:00
-
450bac1c81
First successful flash: placeholder face live; fix 20MHz PSRAM trap; power ladder

jpmschweitzerandClaude Fable 5
2026-07-14 20:31:25 +02:00
-
2d5cbd1174
Document versioning policy: 0.x per roadmap phase, 1.0.0 = wall milestone

jpmschweitzerandClaude Fable 5
2026-07-14 20:17:55 +02:00
-
550db5a0ef
CI: use WATCHTOWER_HTTP_API_TOKEN secret name as set on the repo

jpmschweitzerandClaude Fable 5
2026-07-14 20:04:29 +02:00
-
79d43ec199
Deployment home is the tatlock-ui Portainer stack, not a standalone file
v0.1.0

jpmschweitzerandClaude Fable 5
2026-07-14 19:08:50 +02:00
-
15b8a1b900
Strip Tatlock <think> reasoning before TTS and history

jpmschweitzerandClaude Fable 5
2026-07-14 18:15:36 +02:00
-
22f00fda0f
Drop audioop: request 16 kHz directly via Speaches sample_rate extension

jpmschweitzerandClaude Fable 5
2026-07-14 18:13:58 +02:00
-
f5df5049db
Add rage table-flip state; wire gateway to live Speaches; add CI pipeline

jpmschweitzerandClaude Fable 5
2026-07-14 17:54:30 +02:00
-
42b988b7ef
Add face design: ASCII expressions + matrix rain simulator, wait cues, fresh latency numbers

jpmschweitzerandClaude Fable 5
2026-07-14 17:32:16 +02:00
-
0886c84d5e
Document Speaches speech layer, on-device processing limits, latency constraints

jpmschweitzerandClaude Fable 5
2026-07-14 17:14:44 +02:00
-
576fd7d237
Initial scaffold: ESP32-P4 firmware + voice gateway for Tatlock endpoint

jpmschweitzerandClaude Fable 5
2026-07-14 16:58:59 +02:00