can't be bothered writing a commit message
Some checks failed
dev release / build (push) Failing after 5m30s
Some checks failed
dev release / build (push) Failing after 5m30s
This commit is contained in:
parent
cdd5de8f58
commit
670cf22f2c
27 changed files with 68553 additions and 11318 deletions
|
|
@ -1,21 +1,21 @@
|
|||
# Graph Report - bread (2026-08-15)
|
||||
# Graph Report - bread (2026-08-16)
|
||||
|
||||
## Corpus Check
|
||||
- 62 files · ~88,250 words
|
||||
- 66 files · ~90,429 words
|
||||
- Verdict: corpus is large enough that graph structure adds value.
|
||||
|
||||
## Summary
|
||||
- 1467 nodes · 3347 edges · 88 communities (64 shown, 24 thin omitted)
|
||||
- Extraction: 99% EXTRACTED · 1% INFERRED · 0% AMBIGUOUS · INFERRED: 48 edges (avg confidence: 0.78)
|
||||
- 1486 nodes · 3384 edges · 93 communities (68 shown, 25 thin omitted)
|
||||
- Extraction: 99% EXTRACTED · 1% INFERRED · 0% AMBIGUOUS · INFERRED: 47 edges (avg confidence: 0.78)
|
||||
- Token cost: 0 input · 0 output
|
||||
|
||||
## Graph Freshness
|
||||
- Built from commit: `a6973360`
|
||||
- Built from commit: `cdd5de8f`
|
||||
- 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)
|
||||
- lua/mod.rs
|
||||
- LuaEngine
|
||||
- RawEvent
|
||||
- config.rs
|
||||
- Server
|
||||
|
|
@ -31,24 +31,24 @@
|
|||
- bread-cli/src/main.rs
|
||||
- types.rs
|
||||
- podman.rs
|
||||
- StateHandle
|
||||
- run_udev_monitor
|
||||
- Value
|
||||
- Result
|
||||
- hooks_shell.rs
|
||||
- bluetooth.rs
|
||||
- SubscriptionId
|
||||
- glob.rs
|
||||
- run_state_engine
|
||||
- RtnetlinkAdapter
|
||||
- StateHandle
|
||||
- Adapter
|
||||
- network.rs
|
||||
- power.rs
|
||||
- hyprland.rs
|
||||
- Adapter
|
||||
- dl.breadway.dev Distribution
|
||||
- parse_upower_message
|
||||
- main Branch
|
||||
- git-branch-widget.lua
|
||||
- TestHarness
|
||||
- Sync
|
||||
- active-window-widget.lua
|
||||
- cpu-temp-widget.lua
|
||||
- .new
|
||||
- focus-mode-widget.lua
|
||||
- workflow-status-widget.lua
|
||||
- bread.widget API
|
||||
|
|
@ -70,10 +70,10 @@
|
|||
- bread.system.startup
|
||||
- Monitors Configuration Example
|
||||
- Binds Module (Built-in)
|
||||
- Bakery Package Manager
|
||||
- Phase 3: GUI Control Center
|
||||
- Phase 5: Cross-Device Mesh
|
||||
- Dev Version Computation
|
||||
- lua/mod.rs
|
||||
- external-monitors.lua
|
||||
- AGENTS.md — Repo hygiene
|
||||
- CLAUDE.md — Repo hygiene
|
||||
- ModuleHostLua
|
||||
- ModuleHostRegistry
|
||||
- xtask/src/main.rs
|
||||
|
|
@ -98,15 +98,20 @@
|
|||
- init.lua
|
||||
- Execution
|
||||
- packaging/README.md
|
||||
- PathBuf
|
||||
- build.sh
|
||||
- beta Release Track
|
||||
- dev Release Track
|
||||
- stable Release Track
|
||||
|
||||
## God Nodes (most connected - your core abstractions)
|
||||
1. `LuaEngine` - 59 edges
|
||||
2. `RawEvent` - 49 edges
|
||||
2. `RawEvent` - 50 edges
|
||||
3. `BreadEvent` - 38 edges
|
||||
4. `raw()` - 37 edges
|
||||
5. `RuntimeState` - 34 edges
|
||||
5. `RuntimeState` - 36 edges
|
||||
6. `StateHandle` - 28 edges
|
||||
7. `now_unix_ms()` - 26 edges
|
||||
7. `now_unix_ms()` - 25 edges
|
||||
8. `Adapter` - 25 edges
|
||||
9. `SubscriptionId` - 25 edges
|
||||
10. `ModuleHostLua` - 24 edges
|
||||
|
|
@ -118,31 +123,29 @@
|
|||
breadd/src/adapters/bluetooth.rs → bread-shared/src/lib.rs
|
||||
- `classify()` --calls--> `now_unix_ms()` [INFERRED]
|
||||
breadd/src/adapters/filesystem.rs → bread-shared/src/lib.rs
|
||||
- `emit_topology_snapshot()` --calls--> `now_unix_ms()` [INFERRED]
|
||||
breadd/src/adapters/hyprland.rs → bread-shared/src/lib.rs
|
||||
- `network_raw_event()` --calls--> `now_unix_ms()` [INFERRED]
|
||||
breadd/src/adapters/network.rs → bread-shared/src/lib.rs
|
||||
- `power_raw_event()` --calls--> `now_unix_ms()` [INFERRED]
|
||||
breadd/src/adapters/power.rs → bread-shared/src/lib.rs
|
||||
|
||||
## Import Cycles
|
||||
- 2-file cycle: `breadd/src/core/state_engine.rs -> breadd/src/lua/mod.rs -> breadd/src/core/state_engine.rs`
|
||||
- 2-file cycle: `bread-shared/src/lib.rs -> bread-shared/src/module_host_ipc.rs -> bread-shared/src/lib.rs`
|
||||
|
||||
## Hyperedges (group relationships)
|
||||
- **** — ci_dev_release, workflow_version_compute, release_track_dev, distribution_dl_breadway_dev, package_bakery [INFERRED]
|
||||
- **** — adapter_udev, adapter_hyprland, adapter_power, sys_bread_daemon, api_bread_on, sys_lua_runtime [INFERRED]
|
||||
- **** — config_init_lua, config_modules_dir, pattern_module_skeleton, api_bread_on, sys_lua_runtime [INFERRED]
|
||||
- **** — api_bread_workflow, api_bread_spawn, api_bread_wait, example_dock_workflow, api_bread_notify [INFERRED]
|
||||
- **** — api_bread_widget, api_bread_every, example_widget_cpu_temp, api_bread_state_watch [INFERRED]
|
||||
- **** — branch_main, ci_dev_release, ci_rc_release, ci_stable_release, release_track_dev, release_track_beta, release_track_stable [INFERRED]
|
||||
|
||||
## Communities (88 total, 24 thin omitted)
|
||||
## Communities (93 total, 25 thin omitted)
|
||||
|
||||
### Community 0 - "lua/mod.rs"
|
||||
Cohesion: 0.06
|
||||
Nodes (86): now_unix_ms(), ModulePermission, Option, String, WidgetSpec, RuntimeState, bluetooth_connect(), bluetooth_disconnect() (+78 more)
|
||||
### Community 0 - "LuaEngine"
|
||||
Cohesion: 0.11
|
||||
Nodes (19): ErrorEntry, HandlerEntry, HandlerKind, LuaEngine, LuaMessage, ModuleInfo, AtomicU64, HashMap (+11 more)
|
||||
|
||||
### Community 1 - "RawEvent"
|
||||
Cohesion: 0.05
|
||||
Cohesion: 0.06
|
||||
Nodes (67): adapter_source_is_hashable_and_eq(), AdapterSource, bread_event_new_accepts_owned_and_borrowed_names(), bread_event_new_assigns_unique_id_and_no_cause(), bread_event_new_sets_current_timestamp(), bread_event_with_timestamp_preserves_timestamp_and_assigns_id(), BreadEvent, DaemonSection (+59 more)
|
||||
|
||||
### Community 2 - "config.rs"
|
||||
|
|
@ -155,11 +158,11 @@ Nodes (41): A, command_target(), event_domain(), is_known_app(), is_reserved_dom
|
|||
|
||||
### Community 4 - "widget.rs"
|
||||
Cohesion: 0.07
|
||||
Nodes (32): accepts_node_count_at_max(), accepts_tree_at_max_depth(), Align, Background, box_of(), default_orientation(), FontWeight, is_valid_class() (+24 more)
|
||||
Nodes (33): accepts_node_count_at_max(), accepts_tree_at_max_depth(), Align, Background, box_of(), default_orientation(), FontWeight, is_valid_class() (+25 more)
|
||||
|
||||
### Community 5 - "Bread Daemon (breadd)"
|
||||
Cohesion: 0.06
|
||||
Nodes (39): Bluetooth Adapter, Hyprland Adapter, Network Adapter, Power Adapter, udev Adapter, bread.on(pattern, fn), bread.spawn(fn), bread.wait(pattern, opts) (+31 more)
|
||||
Nodes (36): Bluetooth Adapter, Hyprland Adapter, Network Adapter, Power Adapter, udev Adapter, bread.on(pattern, fn), bread.spawn(fn), bread.wait(pattern, opts) (+28 more)
|
||||
|
||||
### Community 6 - "filesystem.rs"
|
||||
Cohesion: 0.12
|
||||
|
|
@ -175,7 +178,7 @@ Nodes (50): daemon_survives_repeated_reloads_and_pipeline_resumes(), emit_with_a
|
|||
|
||||
### Community 9 - "state_engine.rs"
|
||||
Cohesion: 0.12
|
||||
Nodes (19): apply_device_change(), apply_event_to_state(), device_connect_adds_device_with_all_fields(), device_connect_is_idempotent_for_same_id(), device_disconnect_of_unknown_id_is_noop(), device_disconnect_removes_matching_id(), ev(), monitor_connect_adds_new_monitor() (+11 more)
|
||||
Nodes (20): apply_device_change(), apply_event_to_state(), device_connect_adds_device_with_all_fields(), device_connect_is_idempotent_for_same_id(), device_disconnect_of_unknown_id_is_noop(), device_disconnect_removes_matching_id(), ev(), hyprland_snapshot_replaces_topology() (+12 more)
|
||||
|
||||
### Community 10 - "modules_mgmt.rs"
|
||||
Cohesion: 0.11
|
||||
|
|
@ -194,20 +197,20 @@ Cohesion: 0.19
|
|||
Nodes (29): CausalityTracker, Cli, Commands, config_directory(), daemon_socket_path(), format_timestamp(), handle_modules_cmd(), HooksCommand (+21 more)
|
||||
|
||||
### Community 14 - "types.rs"
|
||||
Cohesion: 0.17
|
||||
Nodes (21): Device, DeviceRule, DeviceTopology, InterfaceState, MatchCondition, ModuleStatus, Monitor, NetworkState (+13 more)
|
||||
Cohesion: 0.15
|
||||
Nodes (21): DeviceTopology, InterfaceState, MatchCondition, ModuleStatus, Monitor, NetworkState, PowerState, ProfileState (+13 more)
|
||||
|
||||
### Community 15 - "podman.rs"
|
||||
Cohesion: 0.15
|
||||
Nodes (17): container_event(), ignores_remove_event(), ignores_stop_event_to_avoid_double_emit_with_died(), ignores_unknown_action(), map_podman_event(), maps_died_event(), maps_health_status_event(), maps_start_event() (+9 more)
|
||||
|
||||
### Community 16 - "StateHandle"
|
||||
Cohesion: 0.14
|
||||
Nodes (10): condition_matches(), resolve_device(), Option, Result, String, Value, Vec, StateHandle (+2 more)
|
||||
### Community 16 - "Value"
|
||||
Cohesion: 0.17
|
||||
Nodes (14): active_window_from_data(), apply_hyprland_snapshot(), condition_matches(), hyprland_state_key(), json_stringish(), resolve_device(), Option, Result (+6 more)
|
||||
|
||||
### Community 17 - "run_udev_monitor"
|
||||
Cohesion: 0.35
|
||||
Nodes (9): enumerate_with_udev(), Result, Self, Sender, String, Vec, run_udev_monitor(), ScannedDevice (+1 more)
|
||||
### Community 17 - "Result"
|
||||
Cohesion: 0.13
|
||||
Nodes (26): bluetooth_connect(), bluetooth_disconnect(), bluetooth_find_adapter(), bluetooth_get_powered(), bluetooth_query(), bluetooth_set_powered(), bluetooth_set_scanning(), bluetooth_spawn() (+18 more)
|
||||
|
||||
### Community 18 - "hooks_shell.rs"
|
||||
Cohesion: 0.18
|
||||
|
|
@ -221,13 +224,13 @@ Nodes (10): address_from_path(), BluetoothAdapter, parse_bluetooth_message(), Me
|
|||
Cohesion: 0.29
|
||||
Nodes (13): HashMap, String, Vec, Subscription, SubscriptionId, SubscriptionTable, table_add_assigns_provided_id_and_finds_match(), table_clear_removes_all() (+5 more)
|
||||
|
||||
### Community 22 - "run_state_engine"
|
||||
Cohesion: 0.27
|
||||
Nodes (12): dispatch_event(), handle_command(), Arc, AtomicU64, Receiver, RwLock, Self, Sender (+4 more)
|
||||
### Community 22 - "StateHandle"
|
||||
Cohesion: 0.15
|
||||
Nodes (16): dispatch_event(), handle_command(), Arc, AtomicU64, HashMap, Receiver, RwLock, Self (+8 more)
|
||||
|
||||
### Community 23 - "RtnetlinkAdapter"
|
||||
Cohesion: 0.22
|
||||
Nodes (7): ip_from_bytes(), Option, Result, Self, Sender, String, RtnetlinkAdapter
|
||||
### Community 23 - "Adapter"
|
||||
Cohesion: 0.19
|
||||
Nodes (9): Adapter, ip_from_bytes(), Option, Result, Self, Sender, String, RtnetlinkAdapter (+1 more)
|
||||
|
||||
### Community 24 - "network.rs"
|
||||
Cohesion: 0.27
|
||||
|
|
@ -239,15 +242,11 @@ Nodes (8): power_raw_event(), PowerAdapter, PowerSnapshot, read_power_state(), O
|
|||
|
||||
### Community 26 - "hyprland.rs"
|
||||
Cohesion: 0.29
|
||||
Nodes (7): hyprland_event_socket(), HyprlandAdapter, parse_hyprland_line(), PathBuf, Result, Sender, String
|
||||
Nodes (11): emit_topology_snapshot(), hyprland_event_socket(), hyprland_request_json(), hyprland_request_socket(), HyprlandAdapter, parse_hyprland_line(), PathBuf, Result (+3 more)
|
||||
|
||||
### Community 27 - "Adapter"
|
||||
Cohesion: 0.23
|
||||
Nodes (8): Adapter, parse_upower_message(), Message, Result, Self, Sender, UPowerAdapter, Send
|
||||
|
||||
### Community 28 - "dl.breadway.dev Distribution"
|
||||
Cohesion: 0.25
|
||||
Nodes (8): main Branch, dev-release.yml Workflow, rc-release.yml Workflow, release.yml Workflow, dl.breadway.dev Distribution, beta Release Track, dev Release Track, stable Release Track
|
||||
### Community 27 - "parse_upower_message"
|
||||
Cohesion: 0.27
|
||||
Nodes (6): parse_upower_message(), Message, Result, Self, Sender, UPowerAdapter
|
||||
|
||||
### Community 29 - "git-branch-widget.lua"
|
||||
Cohesion: 0.62
|
||||
|
|
@ -265,9 +264,9 @@ Nodes (3): main(), Result, Sync
|
|||
Cohesion: 0.83
|
||||
Nodes (3): label_for(), M.on_load(), widget_root()
|
||||
|
||||
### Community 33 - "cpu-temp-widget.lua"
|
||||
Cohesion: 0.83
|
||||
Nodes (3): M.on_load(), read_temp_c(), widget_root()
|
||||
### Community 33 - ".new"
|
||||
Cohesion: 0.16
|
||||
Nodes (15): ModulePermission, Option, String, bluetooth_list_devices(), builtin_module_decls(), is_lib_path(), list_lua_files(), module_name_from_path() (+7 more)
|
||||
|
||||
### Community 34 - "focus-mode-widget.lua"
|
||||
Cohesion: 1.00
|
||||
|
|
@ -281,8 +280,24 @@ Nodes (3): M.on_load(), most_relevant(), widget_update()
|
|||
Cohesion: 0.67
|
||||
Nodes (3): bread.widget API, CPU Temperature Widget Example, Live Widget Update Pattern
|
||||
|
||||
### Community 60 - "lua/mod.rs"
|
||||
Cohesion: 0.30
|
||||
Nodes (20): now_unix_ms(), RuntimeState, module_store_get(), module_store_set(), Arc, JsonValue, RwLock, widget_list_json() (+12 more)
|
||||
|
||||
### Community 61 - "external-monitors.lua"
|
||||
Cohesion: 0.29
|
||||
Nodes (8): apply(), apply_monitor(), connected(), drm_first_mode(), drm_status(), is_internal(), list_connectors(), M.on_load()
|
||||
|
||||
### Community 62 - "AGENTS.md — Repo hygiene"
|
||||
Cohesion: 0.33
|
||||
Nodes (5): AGENTS.md — Repo hygiene, CI, Don't, Local architecture (still true), Remotes
|
||||
|
||||
### Community 63 - "CLAUDE.md — Repo hygiene"
|
||||
Cohesion: 0.40
|
||||
Nodes (4): CI, CLAUDE.md — Repo hygiene, Don't, Remotes
|
||||
|
||||
### Community 64 - "ModuleHostLua"
|
||||
Cohesion: 0.10
|
||||
Cohesion: 0.09
|
||||
Nodes (38): call(), HostMessage, IoCommand, RpcResponse, Duration, Option, PathBuf, Receiver (+30 more)
|
||||
|
||||
### Community 65 - "ModuleHostRegistry"
|
||||
|
|
@ -310,8 +325,8 @@ Cohesion: 0.14
|
|||
Nodes (14): API Stability & Versioning, Bread Documentation, Contents, Debugging tips, Dictionary: Event reference, Dictionary: IPC protocol, Dictionary: Runtime state schema, Integrating a bread\* app (+6 more)
|
||||
|
||||
### Community 71 - "udev.rs"
|
||||
Cohesion: 0.32
|
||||
Nodes (10): build_device_event(), build_event(), enumerate_payload_includes_classification_fields(), prop_bool(), prop_str(), Option, Value, udev_event_payload() (+2 more)
|
||||
Cohesion: 0.18
|
||||
Nodes (18): build_device_event(), build_event(), enumerate_payload_includes_classification_fields(), prop_bool(), prop_str(), Option, Result, Self (+10 more)
|
||||
|
||||
### Community 72 - "Dictionary: Lua API"
|
||||
Cohesion: 0.17
|
||||
|
|
@ -373,25 +388,29 @@ Nodes (3): M.on_load(), read_temp_c(), widget_root()
|
|||
Cohesion: 0.67
|
||||
Nodes (3): `bread.exec_capture(cmd, opts) -> ok, stdout`, `bread.exec(cmd)`, Execution
|
||||
|
||||
### Community 88 - "PathBuf"
|
||||
Cohesion: 1.00
|
||||
Nodes (3): dirs_home(), lua_expand_path(), PathBuf
|
||||
|
||||
## Knowledge Gaps
|
||||
- **179 isolated node(s):** `install.sh script`, `Branches`, `The release cycle`, `Tracks, from a user's perspective`, `Keeping the API docs honest` (+174 more)
|
||||
- **182 isolated node(s):** `build.sh script`, `install.sh script`, `Remotes`, `CI`, `Local architecture (still true)` (+177 more)
|
||||
These have ≤1 connection - possible missing edges or undocumented components.
|
||||
- **24 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
|
||||
- **25 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 `RawEvent` connect `RawEvent` to `Server`, `filesystem.rs`, `git.rs`, `udev.rs`, `systemd.rs`, `podman.rs`, `run_udev_monitor`, `bluetooth.rs`, `RtnetlinkAdapter`, `network.rs`, `power.rs`, `hyprland.rs`, `Adapter`?**
|
||||
_High betweenness centrality (0.094) - this node is a cross-community bridge._
|
||||
- **Why does `Adapter` connect `Adapter` to `Server`, `filesystem.rs`, `git.rs`, `udev.rs`, `systemd.rs`, `podman.rs`, `run_udev_monitor`, `bluetooth.rs`, `RtnetlinkAdapter`, `network.rs`, `power.rs`, `hyprland.rs`, `Sync`?**
|
||||
_High betweenness centrality (0.077) - this node is a cross-community bridge._
|
||||
- **Why does `BreadEvent` connect `RawEvent` to `ModuleHostLua`, `lua/mod.rs`, `ModuleHostRegistry`, `Server`, `state_engine.rs`, `run_state_engine`?**
|
||||
_High betweenness centrality (0.063) - this node is a cross-community bridge._
|
||||
- **What connects `install.sh script`, `Branches`, `The release cycle` to the rest of the system?**
|
||||
_179 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
- **Should `lua/mod.rs` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.056 - nodes in this community are weakly interconnected._
|
||||
- **Why does `Adapter` connect `Adapter` to `Server`, `filesystem.rs`, `git.rs`, `udev.rs`, `systemd.rs`, `podman.rs`, `bluetooth.rs`, `network.rs`, `power.rs`, `hyprland.rs`, `parse_upower_message`, `Sync`?**
|
||||
_High betweenness centrality (0.089) - this node is a cross-community bridge._
|
||||
- **Why does `RawEvent` connect `RawEvent` to `Server`, `filesystem.rs`, `git.rs`, `udev.rs`, `systemd.rs`, `podman.rs`, `bluetooth.rs`, `Adapter`, `network.rs`, `power.rs`, `hyprland.rs`, `parse_upower_message`?**
|
||||
_High betweenness centrality (0.084) - this node is a cross-community bridge._
|
||||
- **Why does `BreadEvent` connect `RawEvent` to `ModuleHostLua`, `LuaEngine`, `.new`, `Server`, `ModuleHostRegistry`, `state_engine.rs`, `StateHandle`?**
|
||||
_High betweenness centrality (0.061) - this node is a cross-community bridge._
|
||||
- **What connects `build.sh script`, `install.sh script`, `Remotes` to the rest of the system?**
|
||||
_182 weakly-connected nodes found - possible documentation gaps or missing edges._
|
||||
- **Should `LuaEngine` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.11153846153846154 - nodes in this community are weakly interconnected._
|
||||
- **Should `RawEvent` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.051842708517016396 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.05702970297029703 - nodes in this community are weakly interconnected._
|
||||
- **Should `config.rs` be split into smaller, more focused modules?**
|
||||
_Cohesion score 0.07191780821917808 - nodes in this community are weakly interconnected._
|
||||
_Cohesion score 0.0670122176971492 - nodes in this community are weakly interconnected._
|
||||
Loading…
Add table
Add a link
Reference in a new issue