You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(cli): serial-read --grep + vserial-start live-tail hint
Two small onboarding wins for AI callers hunting a specific line in a
noisy serial backlog:
1. serial-read --grep <regex>
Server-side re.search filter applied BEFORE the tail/paging window,
so non-matching entries do not consume the byte budget. Cursor
semantics unchanged: 'next' still points into the raw ring so a
caller can drop the filter and keep paging. Invalid regex returns
success=false + invalid_grep=true + a human-readable error instead
of a 500. Direct-mode falls back to a local re.search over the
tail so the flag behaves the same either way.
2. vserial-start epilog with copy-pasteable live-tail recipes
For continuous 'wait for PANIC' style workflows the right tool is a
PTY + standard unix ('timeout 60 grep -m1 PANIC /tmp/fpb-tty…'),
not a bespoke --follow flag. The updated epilog spells that out so
a first-time AI doesn't reach for polling loops.
Tests:
- core/serial_read.py: 7 new cases (tail filter, no-match, paging,
budget accounting, invalid regex envelope, overflow-with-filter,
grep=None regression guard).
- routes/logs: grep filters before budget, invalid regex returns
structured error (not 500).
- cli/fpb_cli: proxy forwards grep, invalid_grep surfaces on the
CLI JSON envelope so callers can branch on success.
Coverage 86.0% (gate 85%), lint clean, verified against live server:
valid regex returns only matching entries, invalid regex returns the
structured error envelope.
0 commit comments