Skip to content

Implement tagging steps#106

Merged
atti92 merged 9 commits intomainfrom
issue-104
Mar 18, 2026
Merged

Implement tagging steps#106
atti92 merged 9 commits intomainfrom
issue-104

Conversation

@atti92
Copy link
Contributor

@atti92 atti92 commented Mar 12, 2026

Implement #104

image image image

@atti92 atti92 requested review from RomanPszonka and hrishiballal and removed request for RomanPszonka March 12, 2026 21:16
@RomanPszonka RomanPszonka requested review from Copilot and removed request for hrishiballal March 12, 2026 21:17
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds an optional “flight phase” annotation to scenario steps/operations so they can be labeled (and potentially grouped) in the web editor and HTML reports, addressing issue #104’s request for step annotations.

Changes:

  • Introduces a FlightPhase taxonomy and propagates phase through step decorators → introspection → step results → report rendering.
  • Updates web-editor types + graph conversion to carry/display phase badges in the toolbox, nodes, and properties panel.
  • Updates the HTML report template to render steps under phase headers when phases are present.

Reviewed changes

Copilot reviewed 21 out of 21 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
web-editor/src/utils/scenarioConversion.ts Adds phase into node data when converting YAML → graph.
web-editor/src/types/scenario.ts Extends Operation/NodeData/StepResult types with optional phase.
web-editor/src/styles/Toolbox.module.css Adds layout + styling for toolbox phase badge.
web-editor/src/styles/Node.module.css Adds styling for phase badge on graph nodes.
web-editor/src/hooks/useScenarioGraph.ts Populates new nodes with phase from the dragged operation.
web-editor/src/components/ScenarioEditor/Toolbox.tsx Displays phase badge and includes phase in tooltip title.
web-editor/src/components/ScenarioEditor/PropertiesPanel.tsx Displays a phase indicator for the selected node.
web-editor/src/components/ScenarioEditor/CustomNode.tsx Renders a phase badge (Plane icon + phase code) on nodes.
src/openutm_verification/server/introspection.py Includes phase in operation metadata returned to the UI.
src/openutm_verification/core/templates/report_template.html Adds phase-grouped rendering for steps in HTML reports.
src/openutm_verification/core/steps/air_traffic_step.py Annotates a step with a specific flight phase.
src/openutm_verification/core/reporting/reporting_models.py Adds phase to the StepResult reporting model.
src/openutm_verification/core/reporting/reporting.py Passes phase label mapping into the HTML template render context.
src/openutm_verification/core/flight_phase.py New module defining FlightPhase and FLIGHT_PHASE_LABELS.
src/openutm_verification/core/execution/scenario_runner.py Extends scenario_step decorator to accept phase and propagate it into StepResult + introspection metadata.
src/openutm_verification/core/clients/opensky/opensky_client.py Annotates a step with phase=FlightPhase.EN_ROUTE.
src/openutm_verification/core/clients/flight_blender/flight_blender_client.py Annotates multiple steps with standing/en-route/post-flight phases.
src/openutm_verification/core/clients/amqp/amqp_client.py Annotates queue-monitoring steps with standing/en-route/post-flight phases.
src/openutm_verification/core/clients/air_traffic/blue_sky_client.py Annotates simulation steps with en-route phase.
src/openutm_verification/core/clients/air_traffic/bayesian_air_traffic_client.py Annotates session-id + simulation steps with standing/en-route phases.
src/openutm_verification/core/clients/air_traffic/air_traffic_client.py Annotates session-id + simulation steps with standing/en-route phases.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@atti92 atti92 self-assigned this Mar 12, 2026
@atti92 atti92 requested a review from Copilot March 12, 2026 21:35
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 21 out of 21 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

@hrishiballal
Copy link
Contributor

Hello @atti92 , thank you for this, I was thinking about this a bit more and especially the terminology. I think the following list maybe better representation rather than the ADREP flight phase taxonomy terms and the acronyms.

A side question: While you are grouping in the rlght / left columns would the actual UI (where the bozes in the sceanrio is loaded) can be grouped?

Thank you again for this.

- Flight Planning
- Pre-flight
- Engine Start / Depart
- Taxi-out
- Take-off
- Rejected take-off
- Initial Climb
- En Route Climb
- Cruise
- Descent
- Approach
- Go-around
- Landing
- Taxi-in
- Arrival / Engine Shutdown
- Post-flight
- Flight Close
- Ground Services

@atti92
Copy link
Contributor Author

atti92 commented Mar 13, 2026

@hrishiballal I'll see what I can do about grouping them on the flow. It might be more tricky.

@hrishiballal
Copy link
Contributor

OK in that case, lets make it optional, if it is too tricky, we can drop it, the current implementation is really great!

@atti92 atti92 marked this pull request as ready for review March 13, 2026 22:31
FlightPhase.FLIGHT_PLANNING: "Flight Planning",
FlightPhase.PRE_FLIGHT: "Pre-flight",
FlightPhase.ENGINE_START: "Engine Start / Depart",
FlightPhase.TAXI_OUT: "Taxi Out",
Copy link
Contributor

@hrishiballal hrishiballal Mar 18, 2026

Choose a reason for hiding this comment

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

Its not your issue per say, but wanted to say that some of these labels are not really realted to drones e.g. a quadcopter does not have a taxi (its only for fixed wing aircraft), its not a problem but I think we might have to update this list.

Copy link
Contributor

Choose a reason for hiding this comment

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

We might need to add new labels e.g. awaiting authorization or authorization cancelled or emergency


from openutm_verification.core.clients.opensky.base_client import OpenSkyError
from openutm_verification.core.execution.dependency_resolution import DEPENDENCIES
from openutm_verification.core.flight_phase import FlightPhase
Copy link
Contributor

Choose a reason for hiding this comment

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

FlightPhase should be optional, I think that this is the behaviour

@atti92 atti92 merged commit c36c664 into main Mar 18, 2026
2 checks passed
@atti92 atti92 deleted the issue-104 branch March 18, 2026 20:32
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