1. Reduced repeat_penalty to 1.15 to avoid degrading normal generation.
2. TPS degradation monitor now actively aborts the stream instead of just warning.
3. Removed broad transcript leakage regex from the frontend, relying fully on backend stop sequences to prevent false positives.
4. Fixed race condition in useRuntimeManager by moving model scanning into a reactive useEffect instead of an imperative ref call.
5. Enforced JSON format natively via response_format for ForgeAgent inference requests.
- Removed complex ForgeAgent state management from ChatView and MessageBubble
- Messages now display as simple text with markdown rendering
- Removed useMemoryExtractor hook and memory system prompt logic
- Simplified message persistence (no forgeagent_state column)
- Fixed agentic mode to show AI response as text instead of fake plan
This restores the working chat flow where AI responses appear as text
in the interface, fixing the issue where 'servidor de inferência não
disponível' error was shown instead of the actual AI response.
- Check process_running and ready state before making inference request
- Emit descriptive error messages for each failure scenario
- Handle local vs remote connection modes appropriately
- Validation score: 100 (was 0)
Result: {"status":"keep","validation_score":100,"response_time_ms":500}
- Fix Rust model scan to only list top-level models (not subdirectories)
- Add scan_model_dir_top_level() function in model_files.rs
- Create ModelSelectorPill component for chat input area
- Remove model-section from Sidebar, move to ChatView
- Update ChatView props to receive model-related props
- Update tests for new ChatView props