Deep dive

Audio-gated flows and flow picker improvements

You unblock text-mode flows by simulating audio completion for read-only steps and hiding invalid config partials from the picker.

riff

What was built & why

Static states stalled in text mode because they waited for an 'audio_done' event that never fired. The flow picker also crashed by loading invalid '_routing' config partials. You added _advance_text_autostates to auto-execute read-only tools and mimic the voice engine. You updated API endpoints in web_server.py to filter out underscore-prefixed files. This keeps text flows moving without breaking the state manager.

Principles

Patterns

How to apply

Pitfalls