-
Notifications
You must be signed in to change notification settings - Fork 15
GPUI desktop refactor: correct architecture to scope-centric design, implement real-time tracing logs, and fix all views #29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: refactor-gpui
Are you sure you want to change the base?
Conversation
Co-authored-by: GZTimeWalker <28180262+GZTimeWalker@users.noreply.github.com>
Co-authored-by: GZTimeWalker <28180262+GZTimeWalker@users.noreply.github.com>
…cal scrolling Co-authored-by: GZTimeWalker <28180262+GZTimeWalker@users.noreply.github.com>
|
@copilot continue on your work, but you're a little off target right now:
|
I've analyzed the original Slint project structure. The key differences from my initial implementation:
I'm now:
Will commit changes as I complete each section. |
…sign Co-authored-by: GZTimeWalker <28180262+GZTimeWalker@users.noreply.github.com>
Co-authored-by: GZTimeWalker <28180262+GZTimeWalker@users.noreply.github.com>
|
@copilot Okay, now continue with your refactor, be sure to read all docs. You can now plan your steps and progress by yourself. Try to make further, and make something really works -- the logging is shown just like the slint for example. |
I'll continue the refactor to make the views functional. My plan:
Starting with fixing the view compilation errors and implementing the log streaming. |
Co-authored-by: GZTimeWalker <28180262+GZTimeWalker@users.noreply.github.com>
|
@copilot continue your remaining works. |
Continuing the remaining work. I'll complete:
Working on fixing the views now to get a clean build. |
…d pages, LogEntry) Co-authored-by: GZTimeWalker <28180262+GZTimeWalker@users.noreply.github.com>
…string, i18n Cow) Co-authored-by: GZTimeWalker <28180262+GZTimeWalker@users.noreply.github.com>
|
@copilot keep going on the plan.
|
I'll work on:
Starting with wiring up the tracing logger to the NetworkLogsView. |
Co-authored-by: GZTimeWalker <28180262+GZTimeWalker@users.noreply.github.com>
Co-authored-by: GZTime <Time.GZ@outlook.com>
MAJOR ARCHITECTURE CORRECTION based on detailed analysis of the original Slint project.
Architecture Analysis & Corrections
After careful analysis of the Slint codebase, discovered the application follows a scope-centric architecture, not page-centric as initially implemented.
Key Architectural Changes
Scope-Based Design:
Corrected Views:
Documentation Added
ACTUAL_ARCHITECTURE.md (6.5KB): Comprehensive analysis of Slint project
Updated MIGRATION_PLAN.md: Added corrected architecture section with proper scope-centric design
Data Model Corrections
New Models (matching Slint):
Removed Incorrect Models:
Tunnelstruct (replaced byInstance)Connectionstruct (not in Slint design)Pageenum (replaced by string-based page IDs)Tracing Log Subscriber Implementation ⭐
Implemented real-time log streaming from tracing to UI, fully functional and working like Slint:
UiLogLayer - Custom tracing subscriber layer:
Features:
Implementation:
Log Flow:
tracing::info!(),tracing::error!(), etc.UiLogLayercaptures the eventVertical Scrolling
Added
.overflow_y_scroll()to main content container:Views Implementation Completed
All views have been updated to match the corrected scope-centric architecture:
RootView
SidebarView
ConnectionsView
NetworkLogsView ⭐
level_color(),opacity()SettingsView
theme,language,running_in_trayapi_port,online(daemon status)daemon_auto_start,show_network_logs,logging_levelEvents Module
Instance,Scopeinstead ofTunnel,ConnectionPageId(String) instead ofPageenumCode Quality
#[allow(dead_code)]annotationsCurrent Status
✅ All views updated and compiling successfully
✅ Real-time tracing logs working in UI (matching Slint implementation)
The application structure is now complete and matches the Slint architecture:
Testing
Next Steps
Wire up UI logger receiver in main.rs for real-time log display✅ COMPLETEDOriginal prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.