Avocet by Circuit Forge LLC — email classifier training tool: multi-account IMAP fetch, card-stack labeling UI, benchmark harness
Find a file
pyr0ball d82db402a3 fix: keyboard shortcuts now work after labels load (lazy keymap evaluation)
useLabelKeyboard now accepts labels as Label[] | (() => Label[]).
The keymap is rebuilt on every keypress from the getter result instead of
being captured once at construction time — so keys 1–9 now fire correctly
after the async /api/config/labels fetch completes.

LabelView passes () => labels.value so the reactive ref is read lazily.

New test: 'evaluates labels getter on each keypress' covers the async-load
scenario (empty list → no match; push a label → key fires).
2026-03-04 12:32:25 -08:00
app feat: add GET /api/fetch/stream SSE endpoint for real-time IMAP progress 2026-03-04 12:05:23 -08:00
config feat: initial avocet repo — email classifier training tool 2026-02-27 14:07:38 -08:00
data feat: initial avocet repo — email classifier training tool 2026-02-27 14:07:38 -08:00
scripts fix: prevent blank page on rebuild and queue drain on skip/discard 2026-03-03 19:26:34 -08:00
tests feat: add GET /api/fetch/stream SSE endpoint for real-time IMAP progress 2026-03-04 12:05:23 -08:00
web fix: keyboard shortcuts now work after labels load (lazy keymap evaluation) 2026-03-04 12:32:25 -08:00
.gitignore feat: initial avocet repo — email classifier training tool 2026-02-27 14:07:38 -08:00
CLAUDE.md docs(avocet): document email field schemas and normalization layer 2026-03-03 18:43:41 -08:00
environment.yml feat: initial avocet repo — email classifier training tool 2026-02-27 14:07:38 -08:00
manage.sh fix(avocet): normalize queue schema + bind to 0.0.0.0 for LAN access 2026-03-03 18:43:00 -08:00
pytest.ini feat: initial avocet repo — email classifier training tool 2026-02-27 14:07:38 -08:00
requirements.txt fix(avocet): store original item in _last_action; add requirements.txt 2026-03-03 15:16:54 -08:00