Merge nucleic/clever-jade-shrew-bnrd into dev

This commit is contained in:
2026-08-04 23:39:54 -07:00
parent 2337b022fe
commit be5e679193
@@ -408,14 +408,24 @@ struct SessionDetailView: View {
// than being sent and silently ignored. // than being sent and silently ignored.
set: { on in if on { store.setSessionOrchestra(sessionID) } }), set: { on in if on { store.setSessionOrchestra(sessionID) } }),
catalog: store.intelligenceCatalog, catalog: store.intelligenceCatalog,
enabled: store.connectivity.isLive && !summary.archived, // Locked once the chat is in Orchestra, matching the Mac's composer: from
// there its model is the supervisor configured on the host, not a stop on
// this rail, and the host refuses a level for it anyway
// (`setSessionIntelligence`) — so the rail parks on the node rather than
// offering moves that would bounce.
enabled: store.connectivity.isLive && !summary.archived && !sessionOrchestra,
// Always offered — no Nucleic Control gate. See the new-chat composer. // Always offered — no Nucleic Control gate. See the new-chat composer.
orchestraAvailable: store.intelligenceCatalog.orchestraAvailable, orchestraAvailable: store.intelligenceCatalog.orchestraAvailable,
composerText: draft, composerText: draft,
routeDescription: sessionRouteDescription, routeDescription: sessionRouteDescription,
unavailableReason: summary.archived unavailableReason: summary.archived
? "This chat is archived." ? "This chat is archived."
: (store.connectivity.isLive ? nil : "The Mac that owns this chat is offline."), : !store.connectivity.isLive
? "The Mac that owns this chat is offline."
: (sessionOrchestra
? "This chat runs Orchestra — its supervisor model is set on the "
+ "Mac and stays fixed for the life of the chat."
: nil),
onPreviewChanged: { intelligencePreview = $0 }) onPreviewChanged: { intelligencePreview = $0 })
IntelligenceRouteLine( IntelligenceRouteLine(
level: level, level: level,