Conversation
There was a problem hiding this comment.
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
FlightPhasetaxonomy and propagatesphasethrough step decorators → introspection → step results → report rendering. - Updates web-editor types + graph conversion to carry/display
phasebadges 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.
There was a problem hiding this comment.
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.
|
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. |
|
@hrishiballal I'll see what I can do about grouping them on the flow. It might be more tricky. |
|
OK in that case, lets make it optional, if it is too tricky, we can drop it, the current implementation is really great! |
| FlightPhase.FLIGHT_PLANNING: "Flight Planning", | ||
| FlightPhase.PRE_FLIGHT: "Pre-flight", | ||
| FlightPhase.ENGINE_START: "Engine Start / Depart", | ||
| FlightPhase.TAXI_OUT: "Taxi Out", |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
FlightPhase should be optional, I think that this is the behaviour
Implement #104