Skip to content

fix: harden visualization and refresh project documentation - #123

Open
jaagut wants to merge 1 commit into
fix/runtime-lifecyclefrom
fix/visualization-and-documentation
Open

jaagut wants to merge 1 commit into
fix/runtime-lifecyclefrom
fix/visualization-and-documentation

Conversation

@jaagut

@jaagut jaagut commented Oct 5, 2026

Copy link
Copy Markdown
Member

The RQT visualization reused stale caches, leaked subscriptions when changing instances, and loaded the graphics view from rqt_graph rather than this package. It now loads its own widget, preserves topic names and selections, releases subscriptions and timers, and updates graph and debug-data caches when their inputs change. Malformed or mismatched debug snapshots preserve the last valid view. Repeated action names are matched by their loaded-tree IDs.

Add 27 offscreen tests exercising the packaged UI, Graphviz rendering, debug models, topic discovery, subscription cleanup, wheel zoom, freeze, and SVG export. CI runs these in the optional visualization Pixi environment and fails if GUI dependencies are missing. The small default ROS environment remains separate.

Refresh the README and contributor guide with the actual language, runtime, installation, and testing contracts. Keep meaningful invariants next to the code and remove redundant comments. Check wheel imports, ROS/Python metadata consistency, packaged UI resources, licenses, and complete source-distribution test fixtures.

Validation: 161 core tests and 27 GUI tests pass; strict mypy checks pass for both libraries, scripts, and examples; pre-commit lint and both wheel/source-distribution builds and import checks pass. GUI checks use the real Qt UI and Graphviz with fake ROS subscription handles; core debug tests exercise ROS 2 publishers and subscribers. No robot validation is claimed. Local checks used already installed environments; dependency installation is delegated to CI.

Stack, bottom to top: #114 → #118 (infrastructure) → #119 (typing) → #120 (parser) → #122 (runtime) → this PR. Merge in that order. Open policy and architecture choices are recorded with alternatives in #115, #116, #117, and #121.

I am working on behalf of @jaagut.

@Flova Flova left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To be continued

Comment thread README.md

A lightweight framework for decision making and behavior defining for robots and other agents in changing environments.
It combines the advantages of behavior trees, decision trees and state machines.
DSD selects persistent actions through a hierarchy of decisions that can be

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't like the new description

Comment thread README.md
A lightweight framework for decision making and behavior defining for robots and other agents in changing environments.
It combines the advantages of behavior trees, decision trees and state machines.
DSD selects persistent actions through a hierarchy of decisions that can be
reevaluated as the environment changes. The active stack records the decisions

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't even the point really.

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.

2 participants