From a83007d28f2ceafabea055fbdb48bbc10d46fa3f Mon Sep 17 00:00:00 2001 From: Eli Mallon Date: Mon, 14 Sep 2026 20:27:38 -0700 Subject: [PATCH] boot: the first paint no longer waits for the session broker only the access-wall decision does (the composer shows a loader until the broker answers), and the node's HTML starts the broker iframe itself so the sibling app boots in parallel with our bundle instead of after it (the client adopts the frame by id) Claude-Session: https://claude.ai/code/session_014aPQ5yqG9QFxKnbwQfCYKa (cherry picked from commit 8783803a3db4502a2487d7a532bd7914d93da0a3) --- pkg/linking/linking.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/linking/linking.go b/pkg/linking/linking.go index 111873525..bd7b877a3 100644 --- a/pkg/linking/linking.go +++ b/pkg/linking/linking.go @@ -88,6 +88,15 @@ func (l *Linker) brandingText(key string) string { return strings.TrimSpace(string(blob.Data)) } +func findChild(parent *html.Node, name string) *html.Node { + for node := range parent.ChildNodes() { + if node.Type == html.ElementNode && node.Data == name { + return node + } + } + return nil +} + // isAppBannerMeta reports whether a is the iOS Smart App Banner // (apple-itunes-app), which the template ships for the first-party app. func isAppBannerMeta(node *html.Node) bool { -- 2.51.2