Deep dive
You unblock text-mode flows by simulating audio completion for read-only steps and hiding invalid config partials from the picker.
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.
Auto-advance simulation for gated states
Prefix-based filtering for internal assets
Apply _advance_text_autostates to any flow step that requires audio confirmation but runs in text-only contexts.
Filter any UI list by excluding items starting with an underscore to prevent loading partial configs.