Publish Claude Code Binaries / Stage and publish binaries (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-arm64 (push) Canceled after 0s
Publish Tutti App Runtime / Build darwin-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build linux-amd64 (push) Canceled after 0s
Publish Tutti App Runtime / Build windows-amd64 (push) Canceled after 0s
Sync Tutti Agent Skills / sync (push) Canceled after 0s
Windows Agent Adapters / Test Windows agent adapters (push) Canceled after 0s
Windows Daemon Adapters / Test Windows daemon adapters (push) Canceled after 0s
Publish Tutti App Runtime / Publish runtime catalog (push) Canceled after 0s
42 lines
1.0 KiB
Go
42 lines
1.0 KiB
Go
package agentruntime
|
|
|
|
import "strings"
|
|
|
|
const initialTitleEstablishedRuntimeContextKey = "tuttiInitialTitleEstablished"
|
|
|
|
func initialTitleEstablishedFromRuntimeContext(
|
|
runtimeContext map[string]any,
|
|
title string,
|
|
) bool {
|
|
if strings.TrimSpace(title) != "" {
|
|
return true
|
|
}
|
|
if established, ok := runtimeContext[initialTitleEstablishedRuntimeContextKey].(bool); ok {
|
|
return established
|
|
}
|
|
// Sessions created before this marker existed are fail-closed. Their title
|
|
// must not be replaced by a later submit after restart.
|
|
return true
|
|
}
|
|
|
|
func runtimeContextWithInitialTitleEstablished(
|
|
runtimeContext map[string]any,
|
|
established bool,
|
|
) map[string]any {
|
|
next := clonePayload(runtimeContext)
|
|
if next == nil {
|
|
next = map[string]any{}
|
|
}
|
|
next[initialTitleEstablishedRuntimeContextKey] = established
|
|
return next
|
|
}
|
|
|
|
func markInitialTitleEstablished(session Session) Session {
|
|
session.InitialTitleEstablished = true
|
|
session.RuntimeContext = runtimeContextWithInitialTitleEstablished(
|
|
session.RuntimeContext,
|
|
true,
|
|
)
|
|
return session
|
|
}
|