Description
Update MainFeature view layer to render either TerminalView or DialogueView based on the currently selected tab's surface.
Spec: Epic #250 §5.
Scope
File
MacApp/Relay/MainFeature.swift or the corresponding view file.
Switch
```swift
switch selectedTab.surface {
case .shell, .agentTerminal:
TerminalView(store: store.scope(state: .currentTerminalFeature, action: .terminal))
case .agentDialogue:
DialogueView(store: store.scope(state: .currentDialogueFeature, action: .dialogue))
}
```
Ensure scoping maps to the active tab's AgentSessionFeature.State.presentation case.
Empty states
- No tabs → Welcome screen (unchanged).
- Tab with no started session → placeholder.
Acceptance Criteria
Relationships
Description
Update
MainFeatureview layer to render eitherTerminalVieworDialogueViewbased on the currently selected tab'ssurface.Spec: Epic #250 §5.
Scope
File
MacApp/Relay/MainFeature.swiftor the corresponding view file.Switch
```swift
switch selectedTab.surface {
case .shell, .agentTerminal:
TerminalView(store: store.scope(state: .currentTerminalFeature, action: .terminal))
case .agentDialogue:
DialogueView(store: store.scope(state: .currentDialogueFeature, action: .dialogue))
}
```
Ensure scoping maps to the active tab's
AgentSessionFeature.State.presentationcase.Empty states
Acceptance Criteria
.shell/.agentTerminal→ TerminalView;.agentDialogue→ DialogueView..designSystem(...)) applied to DialogueView the same way as to TerminalView.Relationships