breadbar/graphify-out/GRAPH_REPORT.md
Breadway d16ec3f6b4
Some checks failed
check / check (push) Failing after 48s
Changed Text Sizing
updated text sizing to better match the bar size, and increase
readability.
2026-08-18 09:54:35 +08:00

12 KiB

Graph Report - breadbar (2026-08-16)

Corpus Check

  • 25 files · ~24,569 words
  • Verdict: corpus is large enough that graph structure adds value.

Summary

  • 566 nodes · 1077 edges · 46 communities (29 shown, 17 thin omitted)
  • Extraction: 88% EXTRACTED · 0% INFERRED · 0% AMBIGUOUS · INFERRED: 2 edges (avg confidence: 0.8)
  • Token cost: 0 input · 0 output

Graph Freshness

  • Built from commit: e4c12e9b
  • Run git rev-parse HEAD and compare to check if the graph is stale.
  • Run graphify update . after code changes (no API cost).

Community Hubs (Navigation)

  • App
  • notifications/mod.rs
  • Icon System
  • tray.rs
  • stats.rs
  • GTK4 app entry point and widget tree
  • history.rs
  • screenshot.rs
  • wifi.rs
  • client.rs
  • bluetooth.rs
  • spawn
  • popup.rs
  • control.rs
  • Control panel popover
  • dev release workflow
  • AGENTS.md — Repo hygiene
  • workspaces.rs
  • rc release workflow
  • bakery package manager integration
  • clock.rs
  • media.rs
  • Stable artifact preparation
  • stable release workflow
  • feature/ short-lived branches
  • bread-ecosystem release policy integration
  • fix/ short-lived branches
  • Dev version auto-computation from latest tag
  • GTK4 development environment
  • Rust 1.77+ (LazyLock)
  • bread-theme palette loading
  • User CSS override (~/.config/breadbar/style.css)
  • Notification popups (top-right stack)
  • org.freedesktop.Notifications D-Bus service
  • Layer-shell popup window and card stack
  • SIGHUP theme reload
  • Volume/brightness OSD
  • /srv/breadway-dl/dev/ distribution
  • /srv/breadway-dl/beta/ distribution
  • /srv/breadway-dl/breadbar/ distribution
  • CLAUDE.md — Repo hygiene
  • build.sh
  • theme.rs
  • PanelSet

God Nodes (most connected - your core abstractions)

  1. App - 50 edges
  2. poll() - 16 edges
  3. WorkspaceTrail - 14 edges
  4. AppInput - 14 edges
  5. NotifServer - 13 edges
  6. NotifEvent - 12 edges
  7. Lucide Icon Library - 12 edges
  8. Watcher - 11 edges
  9. run() - 11 edges
  10. test_server() - 10 edges

Surprising Connections (you probably didn't know these)

  • Control panel popover --USES--> Settings [LIKELY] README.md → assets/Bluetooth Settings.svg
  • CPU/RAM/power/battery (right section) --USES--> AC Power [CERTAIN] README.md → assets/AC Power.svg
  • CPU/RAM/power/battery (right section) --USES--> Battery Low [CERTAIN] README.md → assets/Battery 1 Bar.svg
  • CPU/RAM/power/battery (right section) --USES--> Battery Medium [CERTAIN] README.md → assets/Battery 2 Bars.svg
  • CPU/RAM/power/battery (right section) --USES--> Battery Full [CERTAIN] README.md → assets/Battery 3 Bars.svg

Import Cycles

  • None detected.

Hyperedges (group relationships)

  • Multi-track release system — forgejo_workflows_dev_release_yml_dev_release_workflow, forgejo_workflows_rc_release_yml_rc_release_workflow, forgejo_workflows_release_yml_release_workflow, CONTRIBUTING.md:dev-track, CONTRIBUTING.md:beta-track, CONTRIBUTING.md:stable-track [INFERRED]
  • Component-module correspondence — README.md:status-bar, README.md:control-panel, README.md:notification-daemon, README.md:main.rs, README.md:bar-workspaces, README.md:bar-stats, README.md:bar-media, README.md:bar-control, README.md:bar-tray, README.md:notifications-mod [INFERRED]
  • Dependency polling and caching pattern — README.md:bar-stats, README.md:bar-media, README.md:bar-wifi, README.md:bar-control [INFERRED]
  • D-Bus service protocol adoption — README.md:notification-daemon, README.md:notification-spec, README.md:bar-tray, README.md:dbus [INFERRED]
  • External tool integration pattern — README.md:bar-stats, README.md:bar-media, README.md:bar-wifi, README.md:bar-control, README.md:iw, README.md:wpctl, README.md:pactl, README.md:brightnessctl, README.md:playerctl, README.md:breadcrumbs [INFERRED]
  • Theme customization layers — README.md:theme.rs, README.md:bread-theme-integration, README.md:pywal-integration, README.md:css-override, README.md:sighup-reload [INFERRED]
  • WiFi Signal Strength Variants — assets_wifi_weak_svg_wifi_low_icon, assets_wifi_medium_svg_wifi_high_icon, assets_wifi_strong_svg_wifi_icon, assets_wifi_connecting_svg_wifi_sync_icon, assets_wifi_disconnect_svg_wifi_off_icon [INFERRED]
  • System Control Icons — assets_shutdown_svg_power_icon, assets_sleep_svg_moon_icon, assets_restart_svg_rotate_ccw_icon [INFERRED]
  • Status Bar Widget Icons — assets_previous_svg_skip_back_icon, assets_volume_svg_volume_2_icon, assets_ram_usage_svg_memory_stick_icon [INFERRED]
  • Lucide Icon Integration Pattern — https_lucide_icon_library, breadbar:icon-system, assets_previous_svg_skip_back_icon, assets_ram_usage_svg_memory_stick_icon, assets_restart_svg_rotate_ccw_icon, assets_shutdown_svg_power_icon, assets_sleep_svg_moon_icon, assets_volume_svg_volume_2_icon, assets_wifi_connecting_svg_wifi_sync_icon, assets_wifi_disconnect_svg_wifi_off_icon, assets_wifi_medium_svg_wifi_high_icon, assets_wifi_strong_svg_wifi_icon, assets_wifi_weak_svg_wifi_low_icon [INFERRED]
  • SVG Vector Graphics Elements — assets_previous_svg_triangle_shape, assets_previous_svg_vertical_line, assets_ram_usage_svg_memory_modules, assets_ram_usage_svg_memory_chassis, assets_restart_svg_circular_arrow, assets_restart_svg_corner_arrow, assets_shutdown_svg_power_button, assets_shutdown_svg_power_symbol, assets_sleep_svg_crescent_shape, assets_volume_svg_speaker_cone, assets_volume_svg_sound_waves, assets_wifi_connecting_svg_wifi_arcs, assets_wifi_connecting_svg_sync_arrows, assets_wifi_disconnect_svg_wifi_arcs_disabled, assets_wifi_disconnect_svg_cancel_slash, assets_wifi_medium_svg_signal_dot, assets_wifi_medium_svg_two_signal_arcs, assets_wifi_strong_svg_signal_dot_full, assets_wifi_strong_svg_three_signal_arcs, assets_wifi_weak_svg_signal_dot_low, assets_wifi_weak_svg_one_signal_arc [INFERRED]

Communities (46 total, 17 thin omitted)

Community 0 - "App"

Cohesion: 0.07 Nodes (66): Cell, ComponentParts, Controller, FnOnce, Init, Input, Instant, LayerShell (+58 more)

Community 1 - "notifications/mod.rs"

Cohesion: 0.09 Nodes (36): AtomicU32, OwnedValue, Action, BarService, compute_expire(), Expire, get_capabilities_includes_actions_and_inline_reply(), inline_reply_placeholder() (+28 more)

Community 2 - "Icon System"

Cohesion: 0.08 Nodes (35): Skip Back Icon, Triangle Polygon, Vertical Separator Line, Memory Chassis Rectangle, Memory Module Elements, Memory Stick Icon, Circular Arrow Path, Corner Arrow (+27 more)

Community 3 - "tray.rs"

Cohesion: 0.14 Nodes (23): Arc, Header, Proxy, SignalEmitter, make_tray_image(), parse_service(), pixels_to_image(), read_icon() (+15 more)

Community 4 - "stats.rs"

Cohesion: 0.16 Nodes (26): bat_path(), bt_connected_icon(), bt_rfkill_on(), CpuSnapshot, poll(), read_ac(), read_battery(), read_bt() (+18 more)

Community 5 - "GTK4 app entry point and widget tree"

Cohesion: 0.04 Nodes (46): GTK4 >= 4.12 (runtime required), Hyprland compositor, Minute-tick clock, Control panel data: volume, brightness, sinks, playerctl polling and media widget, Polling loop: CPU, RAM, power, battery, BT, WiFi, StatusNotifierWatcher D-Bus and SNI rendering, WiFi popover and breadcrumbs integration (+38 more)

Community 6 - "history.rs"

Cohesion: 0.12 Nodes (38): Path, build_window(), collapse_ws(), Entry, format_time(), from_persisted(), history_path(), load_into() (+30 more)

Community 7 - "screenshot.rs"

Cohesion: 0.22 Nodes (17): ApplicationWindow, capture_standalone_window(), Cli, dispatch(), finish(), Handles, open_panel_on_root_map(), Box (+9 more)

Community 8 - "wifi.rs"

Cohesion: 0.25 Nodes (17): HashSet, CrumbsStatus, fetch_profile_list(), fetch_scan(), fetch_status(), ComponentSender, Option, String (+9 more)

Community 9 - "client.rs"

Cohesion: 0.20 Nodes (14): emit_click(), fetch_and_send(), ComponentSender, spawn(), apply_style(), build_node(), bundled_icon(), icon_texture() (+6 more)

Community 10 - "bluetooth.rs"

Cohesion: 0.27 Nodes (12): BtDevice, BtPopoverData, fetch_devices(), powered(), ComponentSender, Option, String, Vec (+4 more)

Community 11 - "spawn"

Cohesion: 0.32 Nodes (12): brightness_watcher(), create_window(), OsdEvent, query_volume(), Option, Receiver, Sender, Window (+4 more)

Community 12 - "popup.rs"

Cohesion: 0.29 Nodes (20): Cards, apply_body_text(), build_window(), CardSpec, create_window(), dismiss(), emit_action(), emit_closed() (+12 more)

Community 13 - "control.rs"

Cohesion: 0.26 Nodes (8): AudioSink, ControlPanelData, fetch_sinks(), ComponentSender, String, Vec, spawn_load(), spawn_set_sink()

Community 14 - "Control panel popover"

Cohesion: 0.18 Nodes (11): Audio output selector (PulseAudio sinks), Brightness slider (brightnessctl), Control panel popover, Live CPU%, GPU%, network throughput display, Power buttons: lock, suspend, reboot, poweroff, SNI system tray, Volume slider (wpctl, up to 150%), Settings (+3 more)

Community 15 - "dev release workflow"

Cohesion: 0.25 Nodes (8): Artifact preparation and signing, bakery.toml integration, cargo build --release --locked, dev release workflow, Dev index.json regeneration, main branch push trigger, self-hosted runner on hestia, Dev version auto-computation

Community 16 - "AGENTS.md — Repo hygiene"

Cohesion: 0.33 Nodes (5): AGENTS.md — Repo hygiene, Architecture, CI, Don't, Remotes

Community 17 - "workspaces.rs"

Cohesion: 0.15 Nodes (27): Fixed, Overlay, RefCell, apply_geom(), button_geom(), ease(), ease_overshoot(), Geom (+19 more)

Community 18 - "rc release workflow"

Cohesion: 0.33 Nodes (6): Beta index.json regeneration, RC artifact preparation, RC build on tag, RC tag guard (contains -rc.), rc release workflow, vX.Y.Z-rc.N tag push trigger

Community 19 - "bakery package manager integration"

Cohesion: 0.60 Nodes (5): bakery package manager integration, beta track (vX.Y.Z-rc.N tags), dev track (every push to main), Tag-based release cycle, stable track (vX.Y.Z tags)

Community 20 - "clock.rs"

Cohesion: 0.36 Nodes (8): DateTime, current(), date(), now(), ComponentSender, String, spawn_ticker(), time()

Community 21 - "media.rs"

Cohesion: 0.43 Nodes (5): fetch(), MediaState, ComponentSender, String, spawn_poller()

Community 22 - "Stable artifact preparation"

Cohesion: 0.50 Nodes (4): GitHub Release artifact upload, Stable artifact preparation, Stable release build, Stable index.json regeneration

Community 23 - "stable release workflow"

Cohesion: 0.67 Nodes (3): NOT -rc tag guard, stable release workflow, vX.Y.Z tag push trigger

Community 42 - "CLAUDE.md — Repo hygiene"

Cohesion: 0.40 Nodes (4): CI, CLAUDE.md — Repo hygiene, Don't, Remotes

Community 44 - "theme.rs"

Cohesion: 0.23 Nodes (11): Native, Palette, bind_auto(), bind_output(), fg_color(), fg_color_for(), load_css(), load_css_for() (+3 more)

Community 45 - "PanelSet"

Cohesion: 0.29 Nodes (7): make_dismiss(), make_panel(), PanelSet, IsA, Self, Widget, Window

Knowledge Gaps

  • 98 isolated node(s): build.sh script, CpuSnapshot, Remotes, CI, Architecture (+93 more) These have ≤1 connection - possible missing edges or undocumented components.
  • 17 thin communities (<3 nodes) omitted from report — run graphify query to explore isolated nodes.

Suggested Questions

Questions this graph is uniquely positioned to answer:

  • Why does App connect App to tray.rs, stats.rs, wifi.rs, client.rs, bluetooth.rs, control.rs, PanelSet, workspaces.rs, clock.rs, media.rs? High betweenness centrality (0.189) - this node is a cross-community bridge.
  • Why does WorkspaceTrail connect workspaces.rs to App? High betweenness centrality (0.052) - this node is a cross-community bridge.
  • Why does AppInput connect App to tray.rs, stats.rs, wifi.rs, bluetooth.rs, control.rs, media.rs? High betweenness centrality (0.037) - this node is a cross-community bridge.
  • What connects build.sh script, CpuSnapshot, Remotes to the rest of the system? 98 weakly-connected nodes found - possible documentation gaps or missing edges.
  • Should App be split into smaller, more focused modules? Cohesion score 0.06630211893369788 - nodes in this community are weakly interconnected.
  • Should notifications/mod.rs be split into smaller, more focused modules? Cohesion score 0.08843537414965986 - nodes in this community are weakly interconnected.
  • Should Icon System be split into smaller, more focused modules? Cohesion score 0.07563025210084033 - nodes in this community are weakly interconnected.