Files
Evandro Fonseca Junior 77c57c3d45 Add runtime state validation before ForgeAgent HTTP call
- 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}
2026-04-02 14:37:01 -03:00

52 lines
2.6 KiB
Markdown

# Phase 6: Chat UI Redesign - Context
**Gathered:** 2026-04-02
**Status:** Ready for planning
## Phase Boundary
The existing milestone already moved ForgeLM toward Manus-inspired colors and input composition, but the key agentic transcript experience is still missing. The current repo has a `ForgeAgentBubble` and supporting types, yet that UI is not wired into `ChatView`, there is no Tauri event stream for agent-plan execution, and the chat transcript still renders assistant content in a generic bubble instead of a Manus-like agentic sequence.
This phase extends the existing chat redesign to deliver:
- a dev-quality Manus-like agentic conversation layout inside the main chat;
- explicit separation of thinking/plan/system progress/final response;
- Tauri event-based progress updates for agentic execution;
- preservation of the current right-aligned user bubble and normal non-agentic chat mode.
## Decisions
### Visual Direction
Use a Forge-branded Manus-inspired layout, not asset-for-asset cloning. Preserve hierarchy, density, spacing, and interaction style.
### Technical Direction
Reuse existing `types/forgeagent.ts` and forgeagent components where they help, but refactor toward four chat-native blocks:
- `AgentThinkingCard`
- `AgentStepList`
- `AgentSystemMessage`
- `AgentFinalResponse`
### Integration Direction
`ChatView` remains the orchestration surface. Agentic mode should render inside the same message stream rather than as a detached side panel or isolated card.
## Existing Code Insights
- `ChatView.tsx` owns message rendering, streaming state, and persistence.
- `ForgeAgentBubble.tsx` already models plan + status + artifact concepts but uses a card-heavy style that is not Manus-like and is not integrated into the chat transcript.
- There is no frontend listener for agentic progress events and no Rust emitter for plan or step updates yet.
- `types/forgeagent.ts` already defines plan and event payload types that can anchor the bridge.
## Specific Ideas
1. Add a fourth plan (`06-04`) rather than rewriting the earlier phase docs.
2. Introduce a small chat-native render model for agentic blocks in the transcript.
3. Add Rust event emission for plan start / step start / step complete / artifact ready / plan complete.
4. Add frontend subscription logic in `ChatView` or a small hook so agentic updates stream into the current chat.
5. Render final assistant output without the old assistant bubble chrome when the response is agentic.
## Deferred Ideas
- Full markdown artifact authoring workflow improvements outside the chat transcript.
- Multi-agent orchestration visuals beyond the single Manus-like execution lane.