fix(ui): make ConversationInputSurface load state monotonic#67
fix(ui): make ConversationInputSurface load state monotonic#67google-labs-jules[bot] wants to merge 2 commits into
Conversation
The ConversationInputSurface was relying solely on `Visibility` without an `x:Load` optimization like other major surfaces in ChatView. This could lead to either unexpected pre-loading or loss of layout state when a blocking overlay temporarily hides the content. This adds `ShouldLoadConversationInputSurface` to the `ChatConversationSurfaceProjection` record struct, coordinates it monotonically in `ChatConversationSurfaceProjectionCoordinator`, exposes it in `ChatViewModel`, and binds it via `x:Load` in `ChatView.xaml`.
|
👋 Jules, reporting for duty! I'm here to lend a hand with this pull request. When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down. I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job! For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Your trial has ended. Reactivate Greptile to resume code reviews.
Observed Problem
During the daily lifecycle audit, it was discovered that
ConversationInputSurfaceinChatView.xamlrelied purely on theVisibilityproperty bound toShouldShowConversationInputSurface, but lacked the layout realization (x:Load) binding that the rest of the chat surfaces (ActiveConversationRoot,TranscriptSurface) use to maintain a monotonic UI tree during overlay transitions.Root Cause
The
ShouldLoadConversationInputSurfaceproperty was missing from theChatConversationSurfaceProjectionand its underlying state projection logic.Architectural Safety
The change is architecturally safe because it follows the existing SSOT and latest-intent patterns exactly. It updates the central projection record struct, sets the layout loading state using the standard logical OR monotonic accumulation
_hasLoadedConversationInputSurface |= state.ShouldShowConversationInputSurface;, and binds it safely. No native control behavior is overridden, and all layout rules (docs/audit/ & memory context) are obeyed.Verification Commands Run
dotnet build SalmonEgg.sln --configuration Debugdotnet test --project tests/SalmonEgg.Presentation.Core.Tests/SalmonEgg.Presentation.Core.Tests.csproj --configuration Debug --no-restoredotnet test --solution SalmonEgg.sln --configuration Debug --no-buildRemaining GUI-only Risks
There are no major GUI risks as
x:Loadhandles Uno cross-platform lazy loading natively, though visual testing with FlaUI/WASM smoke gates is deferred to CI.PR created automatically by Jules for task 9793495649596736472 started by @YoungSx