Skip to content

Native: Add configuration window in Native UI#2489

Draft
sudeeptarlekar wants to merge 120 commits intoesrlabs:native-uifrom
sudeeptarlekar:native_ui/add_mcp_config_window
Draft

Native: Add configuration window in Native UI#2489
sudeeptarlekar wants to merge 120 commits intoesrlabs:native-uifrom
sudeeptarlekar:native_ui/add_mcp_config_window

Conversation

@sudeeptarlekar
Copy link
Copy Markdown
Member

No description provided.

@sudeeptarlekar sudeeptarlekar force-pushed the native_ui/add_mcp_config_window branch 2 times, most recently from 58480f2 to 6f4788c Compare March 3, 2026 07:30
@sudeeptarlekar sudeeptarlekar force-pushed the native_ui/add_mcp_config_window branch 2 times, most recently from aa138ca to d29c6e8 Compare March 5, 2026 15:55
* Create the app crate to be run point for Chipmunk native desktop
  application.
* Set unified version and rust edition in workspace and make all other
  crates follow it.
* Add dependencies for native app.
* Add support for parsing CLI arguments
* Support for basic logging.
* Hello world from native UI
* Specify the paths for internal crates in indexer workspace instead of
  having to specify their paths in each project.
* Apply those changes on all internal crates withing indexer directory
* Rename crate to application
* Define UI & Core & Service and State modules.
* Define communication types (commands and events) for both general app
  and sessions.
* Define communication channels for general app
* Render Menu with one command to close the app.
+ Ignore errors in repaint watcher since we will get and error once the
  states sender channel is dropped.
* Use two main modules for the app (host and session) and have each
  modules containing its UI, services, data and core modules as
  sub-modules.
* This change will make it easier in the future to split the two main
  modules into separated crates.
* Create the UI for rendering the content of the sessions using the
  communication channels.
* Spawn a task for each session to make the communication for each
  session locally.
* UI will just read the file and render it's content as lines.
* Channels communication still need some thinking because we are tight
  to the render loop to receive the events.
Change the mechanism for waking up the UI on events to include egui
context in all senders and call it explicitly on each send.
* Wire up close session command adding and ID for each session.
* Improve notifications adding additional items and cleaning up the
  implementation in UI.
* Log send errors in one function and embedded it in all senders
* Create a struct to be passed through UI components to be able to send
  notifications and check for shared UI state across all UI components.
* Use this struct to send command encapsulating the error handling.
* New error type for UI.
* Rename to UiComponents to HostUI
* Move receivers and notification handling to host UI completely.
* Use the table provided by the crate egui_table to show the logs.
* Current implementation still primitive without using functionality in
  chipmunk core.
We need the UI for each session to have it's own unique ID to avoid
its owned controls from having ID clashes. We had this problem with
tables from different sessions sharing their scroll state.
* Bind session from rust core libraries in the native UI.
* Currently we can establish a session and deliver the number of lines
  that has been read.
* UI needs to request for lines so it can display them in the table.
Building system to display logs in table (WIP): We load all logs
without cleaning up the logs aren't needed.
* Better way to check for data need to be fetched.
* Encapsulate logic for getting log entries inside MainTable struct
* This approach avoids having to load existing logs but is complex and
  is based on assumptions that the logs are sequenced and sorted.
* Implement showing a window of logs simply using a map with indexes
  avoiding the complexity of keeping track on the existing logs.
* Request discard rendering frame when new logs needed to be fetched to
  avoid rendering the rows where we don't have data.
Tables use the ID of their direct parent, therefor we need to assign
an ID for that part and it's not enough to assign an ID for the
session root UI as it solved in previous commit
* Create the bottom panel with the tab control + Add tabs types
* Create components for each tab and render the initial content for each
  one of them.
* Input controls follow the functionality and look if the current one.
* It provides extra functionality for handling Ctrl+Backspace.
* Implement filter & search-value move flows with consistent state
  updates.
* Introduce unified sync_search_pipelines target-based API and use it
  across UI call sites.
* Wire search-value apply/drop commands in backend service.
* Add shared search-value validation with eligibility reasons and
  cache it in filter metadata.
* Add unit tests to sensitive logic code.
* Implement line charts including:
  - Send values from backend.
  - Data management in UI state.
  - Charts visualizations.
* Fixes for handling charts reset to auto bounds
Chart bounds now covers all edge-cases in discovering that users has
custom viewport of the table.

The changes are keeping track on the current and sent ranges and have
more infos instead of keeping track on the last requested range as
source of truth.

Unified charts function on changes for both filters and search values.
* Use sources default color palette for charts to avoid allocate another
  color palette.
* Add offset to avoid filters and charts having similar colors (red,
  light red)
Implement enabling and disabling charts without removing them from the
session and link in side bar filters UI to a checkbox
It was possible to get the same color if a search were assign as
filter then moved to charts. This commit fixes this edge-case by
ensuring there is no duplication in colors
It's possible for users now to select the colors of their charts using
any color they want via the color picker.
Filters and charts will still get a color assign from panel by default
* Fix issues regarding flickering when items are disabled/enabled
* Improve performance by avoiding multiple checks in render loop.
* Use frames for each group and extend their width
* Use Sides for items for proper shrinking and truncating
* Extend titles & Improve details view
* Create one main module in shared for all search, filters and charts
  related module grouping them in one place.
* Resolve unused and TODOs in code before merging
* Cleanup + Refactoring
FxHashMap dependency already exists in the codebase so this commit
extends using it in places where keys are managed locally only.
@sudeeptarlekar sudeeptarlekar force-pushed the native_ui/add_mcp_config_window branch 6 times, most recently from fb014ab to 15af468 Compare March 16, 2026 11:06
Move color assignment from global registry to each session since it's a
visual setting that shouldn't be a part of the logical parameters for
each session
Previous implementation had multiple boolean in constructor leading to
code like new("search", true, false, true)
This is replaced with the builder pattern
* Filter flags can be edited after being applied UI.
* Remove and move to charts are removed since they are available in the
  context menu anyway
* Registry supported editing filter with duplicating them if a filter is
  referenced in multiple places.
* Filter and charts text values can be edited with text edit mode.
* Add regex validation for filters when regex flag is enabled.
* Registry checks for duplicate when adding new filters and search
  values.
@sudeeptarlekar sudeeptarlekar force-pushed the native_ui/add_mcp_config_window branch 2 times, most recently from 2982483 to e9f2c2a Compare March 18, 2026 10:12
@sudeeptarlekar sudeeptarlekar force-pushed the native_ui/add_mcp_config_window branch 3 times, most recently from 3bf7438 to 11de86b Compare March 18, 2026 16:41
@sudeeptarlekar sudeeptarlekar force-pushed the native_ui/add_mcp_config_window branch from 11de86b to 4ba9644 Compare March 23, 2026 14:57
@sudeeptarlekar sudeeptarlekar force-pushed the native_ui/add_mcp_config_window branch from 4ba9644 to 2fab6aa Compare March 25, 2026 10:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants