Skip to content

orionv: Stage 7 cutover and default runtime switch#83

Closed
sonra44 wants to merge 1 commit into
mainfrom
ORION
Closed

orionv: Stage 7 cutover and default runtime switch#83
sonra44 wants to merge 1 commit into
mainfrom
ORION

Conversation

@sonra44
Copy link
Copy Markdown
Owner

@sonra44 sonra44 commented Feb 26, 2026

Summary

Stage 7 is completed on branch ORION and locks ORION V as the default operator console runtime.

Included in this PR

  • Switch default operator console entrypoint to ORION V
  • Isolate legacy ORION runtime behind explicit legacy compose override/profile
  • Complete pilot cutover evidence and operational docs sync
  • Finalize Stage 7 task dossiers and release notes

Stage 7 Artifacts

  • TASKS/TASK_stage7_primary_switch.md
  • TASKS/TASK_stage7_final_cutover.md
  • docs/RELEASE_NOTES_ORIONV_1.0.0.md
  • docs/CUTOVER_PLAN.md
  • docs/ORION_V_RUNBOOK.md
  • docs/ORION_V_QUICKSTART.md

Validation Snapshot

  • Stage 6/7 cutover and rehearsal evidence is captured in task dossiers above
  • ORION V default startup and legacy isolation are documented and verified
  • Branch head tag: orionv-1.0.0

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Feb 26, 2026

Important

Review skipped

Too many files!

This PR contains 243 files, which is 93 over the limit of 150.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 29648f3c-a1c3-4201-89fe-8ca0252f116c

📥 Commits

Reviewing files that changed from the base of the PR and between 4ba569c and a9d7072.

⛔ Files ignored due to path filters (2)
  • generated/README.md is excluded by !**/generated/**
  • generated/__init__.py is excluded by !**/generated/**
📒 Files selected for processing (243)
  • .codex/imp/RE_QIKI_Maturity_Matrix.md
  • .codex/imp/RE_QIKI_Risks_and_Unresolved_Zones.md
  • .codex/imp/RE_QIKI_Runtime_Evidence_Notes.md
  • .codex/skills/qiki-checkpoint/SKILL.md
  • .codex/skills/qiki-drift-audit/SKILL.md
  • CONTRIBUTING.md
  • Cabinet/Reports/TRUTH_TABLE_2026-01-23.md
  • DOCUMENTATION_UPDATE_PROTOCOL.md
  • PRODUCTION_DEPLOYMENT_PLAN.md
  • README.md
  • RESTART_CHECKLIST.md
  • TASKS/TASK_20260226_orion_v_levels_overlay_and_bounded_events.md
  • TASKS/TASK_20260226_orion_v_stage4_functional_expansion.md
  • TASKS/TASK_20260226_orion_v_stage5_pilot_stabilization.md
  • TASKS/TASK_20260226_orionv_prep_quality_gate_e501.md
  • TASKS/TASK_20260226_stage6_cutover_rehearsal.md
  • TASKS/TASK_stage7_final_cutover.md
  • TASKS/TASK_stage7_primary_switch.md
  • config/grafana-datasource.yml
  • config/grafana.ini
  • config/loki-config.yaml
  • config/orion_v/procedures/safe_pause_resume.json
  • config/promtail-config.yaml
  • docker-compose.minimal.yml
  • docker-compose.operator.yml
  • docker-compose.operator_legacy.yml
  • docker-compose.operator_orionv.yml
  • docker-compose.phase1.yml
  • docker-compose.qcore-intents.yml
  • docker-compose.yml
  • docs/CUTOVER_PLAN.md
  • docs/INDEX.md
  • docs/ORION_V_HARDWARE_VIEW_MODEL.md
  • docs/ORION_V_QUICKSTART.md
  • docs/ORION_V_RUNBOOK.md
  • docs/RELEASE_NOTES_ORIONV_1.0.0.md
  • docs/WINDOWS_NATIVE_MIGRATION_GUIDE.md
  • docs/design/canon/INDEX.md
  • docs/design/game/SECTOR_TERTA_CANON.md
  • proto_extensions/utils/generate_mock_messages.py
  • scripts/check_reference_truth_boundaries.sh
  • scripts/qiki_drift_audit.sh
  • scripts/quality_gate_docker.sh
  • src/qiki/mission_control_terminal.py
  • src/qiki/services/faststream_bridge/lag_monitor.py
  • src/qiki/services/faststream_bridge/mode_store.py
  • src/qiki/services/faststream_bridge/radar_guard_publisher.py
  • src/qiki/services/faststream_bridge/tests/test_radar_guard_event_payload_times.py
  • src/qiki/services/faststream_bridge/tests/test_smoke_lag.py
  • src/qiki/services/operator_console/__init__.py
  • src/qiki/services/operator_console/clients/__init__.py
  • src/qiki/services/operator_console/clients/grpc_client.py
  • src/qiki/services/operator_console/clients/grpc_enhanced_client.py
  • src/qiki/services/operator_console/clients/metrics_client.py
  • src/qiki/services/operator_console/clients/nats_client.py
  • src/qiki/services/operator_console/core/__init__.py
  • src/qiki/services/operator_console/core/i18n.py
  • src/qiki/services/operator_console/legacy/__init__.py
  • src/qiki/services/operator_console/legacy/main_orion.py
  • src/qiki/services/operator_console/main.py
  • src/qiki/services/operator_console/main_live.py
  • src/qiki/services/operator_console/main_orion.py
  • src/qiki/services/operator_console/main_orion_v.py
  • src/qiki/services/operator_console/orion_v/__init__.py
  • src/qiki/services/operator_console/orion_v/app.py
  • src/qiki/services/operator_console/orion_v/dialogs.py
  • src/qiki/services/operator_console/orion_v/events_store.py
  • src/qiki/services/operator_console/orion_v/hardware_view_model/__init__.py
  • src/qiki/services/operator_console/orion_v/hardware_view_model/collector.py
  • src/qiki/services/operator_console/orion_v/hardware_view_model/diagnostics.py
  • src/qiki/services/operator_console/orion_v/hardware_view_model/key_aliases.py
  • src/qiki/services/operator_console/orion_v/hardware_view_model/thresholds.py
  • src/qiki/services/operator_console/orion_v/hardware_view_model/types.py
  • src/qiki/services/operator_console/orion_v/hardware_view_model/utils.py
  • src/qiki/services/operator_console/orion_v/i18n_ru.py
  • src/qiki/services/operator_console/orion_v/modules/__init__.py
  • src/qiki/services/operator_console/orion_v/modules/base.py
  • src/qiki/services/operator_console/orion_v/modules/common.py
  • src/qiki/services/operator_console/orion_v/modules/comms.py
  • src/qiki/services/operator_console/orion_v/modules/docking.py
  • src/qiki/services/operator_console/orion_v/modules/power.py
  • src/qiki/services/operator_console/orion_v/modules/thermal.py
  • src/qiki/services/operator_console/orion_v/procedure_engine.py
  • src/qiki/services/operator_console/orion_v/screens/__init__.py
  • src/qiki/services/operator_console/orion_v/screens/audit.py
  • src/qiki/services/operator_console/orion_v/screens/cockpit.py
  • src/qiki/services/operator_console/orion_v/screens/deep_dive.py
  • src/qiki/services/operator_console/orion_v/screens/raw.py
  • src/qiki/services/operator_console/orion_v/screens/system_health.py
  • src/qiki/services/operator_console/orion_v/screens/systems.py
  • src/qiki/services/operator_console/orion_v/widgets/__init__.py
  • src/qiki/services/operator_console/orion_v/widgets/alerts_overlay.py
  • src/qiki/services/operator_console/orion_v/widgets/header.py
  • src/qiki/services/operator_console/run_tests.py
  • src/qiki/services/operator_console/test_nats_connection.py
  • src/qiki/services/operator_console/test_run.py
  • src/qiki/services/operator_console/tests/test_docking_command_parsing.py
  • src/qiki/services/operator_console/tests/test_events_pause_unread.py
  • src/qiki/services/operator_console/tests/test_incident_rules.py
  • src/qiki/services/operator_console/tests/test_orion_radar_table_and_inspector_fields.py
  • src/qiki/services/operator_console/tests/test_rcs_command_parsing.py
  • src/qiki/services/operator_console/tests/test_rules_toggle_in_app.py
  • src/qiki/services/operator_console/tests/test_sensors_screen_aliases.py
  • src/qiki/services/operator_console/ui/__init__.py
  • src/qiki/services/operator_console/ui/metrics_panel.py
  • src/qiki/services/operator_console/ui/status_bar.py
  • src/qiki/services/operator_console/utils/__init__.py
  • src/qiki/services/operator_console/utils/data_export.py
  • src/qiki/services/operator_console/widgets/__init__.py
  • src/qiki/services/operator_console/widgets/metrics_panel.py
  • src/qiki/services/q_bios_service/__init__.py
  • src/qiki/services/q_bios_service/tests/__init__.py
  • src/qiki/services/q_bios_service/tests/test_health_checker_closes_channel.py
  • src/qiki/services/q_core_agent/core/agent.py
  • src/qiki/services/q_core_agent/core/agent_logger.py
  • src/qiki/services/q_core_agent/core/event_store.py
  • src/qiki/services/q_core_agent/core/grpc_data_provider.py
  • src/qiki/services/q_core_agent/core/interfaces.py
  • src/qiki/services/q_core_agent/core/openai_responses_client.py
  • src/qiki/services/q_core_agent/core/plugin_manager.py
  • src/qiki/services/q_core_agent/core/radar_backends/base.py
  • src/qiki/services/q_core_agent/core/radar_backends/bitmap_common.py
  • src/qiki/services/q_core_agent/core/radar_backends/unicode_backend.py
  • src/qiki/services/q_core_agent/core/radar_controls.py
  • src/qiki/services/q_core_agent/core/radar_fusion.py
  • src/qiki/services/q_core_agent/core/radar_ingestion.py
  • src/qiki/services/q_core_agent/core/radar_pipeline.py
  • src/qiki/services/q_core_agent/core/radar_plugins.py
  • src/qiki/services/q_core_agent/core/radar_policy_loader.py
  • src/qiki/services/q_core_agent/core/radar_render_policy.py
  • src/qiki/services/q_core_agent/core/radar_situation_config.py
  • src/qiki/services/q_core_agent/core/radar_situation_engine.py
  • src/qiki/services/q_core_agent/core/session_server.py
  • src/qiki/services/q_core_agent/core/ship_actuators.py
  • src/qiki/services/q_core_agent/core/ship_bios_handler.py
  • src/qiki/services/q_core_agent/core/ship_fsm_handler.py
  • src/qiki/services/q_core_agent/core/terminal_input_backend.py
  • src/qiki/services/q_core_agent/core/terminal_radar_renderer.py
  • src/qiki/services/q_core_agent/core/trace_export.py
  • src/qiki/services/q_core_agent/state/tests/test_conv.py
  • src/qiki/services/q_core_agent/state/tests/test_integration.py
  • src/qiki/services/q_core_agent/state/tests/test_store.py
  • src/qiki/services/q_core_agent/state/tests/test_stress.py
  • src/qiki/services/q_core_agent/state/tests/test_types.py
  • src/qiki/services/q_core_agent/state/types.py
  • src/qiki/services/q_core_agent/tests/test_agent.py
  • src/qiki/services/q_core_agent/tests/test_bios_handler_preserves_hash.py
  • src/qiki/services/q_core_agent/tests/test_e2e_boot_idle_docking.py
  • src/qiki/services/q_core_agent/tests/test_load_stability_harness.py
  • src/qiki/services/q_core_agent/tests/test_mission_control_terminal_no_autopip.py
  • src/qiki/services/q_core_agent/tests/test_radar_guards.py
  • src/qiki/services/q_core_agent/tests/test_radar_pipeline.py
  • src/qiki/services/q_core_agent/tests/test_radar_replay.py
  • src/qiki/services/q_core_agent/tests/test_radar_semantics_lod_clutter.py
  • src/qiki/services/q_core_agent/tests/test_radar_situation_config.py
  • src/qiki/services/q_core_agent/tests/test_radar_situational_awareness.py
  • src/qiki/services/q_core_agent/tests/test_safe_mode_fsm.py
  • src/qiki/services/q_core_agent/tests/test_session_multiconsole.py
  • src/qiki/services/q_core_agent/tests/test_terminal_input_backend_mapping.py
  • src/qiki/services/q_core_agent/tests/test_terminal_renderer.py
  • src/qiki/services/q_sim_service/core/mcqpu_telemetry.py
  • src/qiki/services/q_sim_service/logger.py
  • src/qiki/services/q_sim_service/main.py
  • src/qiki/services/q_sim_service/radar_publisher.py
  • src/qiki/services/q_sim_service/service.py
  • src/qiki/services/q_sim_service/tests/test_comms_plane.py
  • src/qiki/services/q_sim_service/tests/test_hardware_profile_hash.py
  • src/qiki/services/q_sim_service/tests/test_power_plane.py
  • src/qiki/services/q_sim_service/tests/test_qsim_service.py
  • src/qiki/services/q_sim_service/tests/test_radar_generation.py
  • src/qiki/services/q_sim_service/tests/test_rcs_control_commands.py
  • src/qiki/services/q_sim_service/tests/test_rcs_propulsion.py
  • src/qiki/services/q_sim_service/tests/test_sensor_plane.py
  • src/qiki/services/q_sim_service/tests/test_sensor_plane_limits_status.py
  • src/qiki/services/q_sim_service/tests/test_thermal_plane.py
  • src/qiki/services/qiki_chat/tests/test_models_aliases.py
  • src/qiki/services/registrar/core/codes.py
  • src/qiki/services/registrar/core/service.py
  • src/qiki/services/registrar/tests/test_codes.py
  • src/qiki/services/registrar/tests/test_integration.py
  • src/qiki/services/registrar/tests/test_service.py
  • src/qiki/services/shell_os/__init__.py
  • src/qiki/services/shell_os/ui/__init__.py
  • src/qiki/shared/config/generator.py
  • src/qiki/shared/config/hardware_profile_hash.py
  • src/qiki/shared/config/tests/test_hardware_profile_hash.py
  • src/qiki/shared/config_models.py
  • src/qiki/shared/models/bot_spec.py
  • src/qiki/shared/models/core.py
  • src/qiki/shared/models/radar.py
  • src/qiki/shared/models/tests/test_pydantic_models.py
  • src/qiki/shared/nats_subjects.py
  • src/qiki/tools/qiki_ask.py
  • src/qiki/ui/i18n.py
  • src/qiki/ui/widgets/__init__.py
  • src/qiki/ui/widgets/system_status.py
  • tests/conftest.py
  • tests/integration/test_control_ack_envelope.py
  • tests/integration/test_lag_monitor_smoke.py
  • tests/integration/test_power_pdu_overcurrent_event.py
  • tests/integration/test_power_soc_dynamics.py
  • tests/integration/test_radar_lr_sr_fusion_sim_truth.py
  • tests/integration/test_radar_lr_sr_topics.py
  • tests/integration/test_record_replay_incident_repro.py
  • tests/integration/test_record_replay_jsonl.py
  • tests/integration/test_thermal_core_spike_event.py
  • tests/integration/test_thermal_core_trip_event.py
  • tests/integration/test_xpdr_gating_flow.py
  • tests/shared/test_config_generator.py
  • tests/shared/test_config_models.py
  • tests/shared/test_proto_sensor_type_radar.py
  • tests/ui/widgets/test_system_status.py
  • tests/unit/test_js_init_config.py
  • tests/unit/test_orion_main_exception_logging.py
  • tests/unit/test_orion_mission_seed_row_message.py
  • tests/unit/test_orion_propulsion_axis_none_when_inactive.py
  • tests/unit/test_orion_sensors_disabled_status.py
  • tests/unit/test_orion_v_app_incidents.py
  • tests/unit/test_orion_v_cockpit.py
  • tests/unit/test_orion_v_events_store.py
  • tests/unit/test_orion_v_hardware_view_model.py
  • tests/unit/test_orion_v_hwm_comms_and_aliases.py
  • tests/unit/test_orion_v_hwm_compute.py
  • tests/unit/test_orion_v_hwm_diagnostics.py
  • tests/unit/test_orion_v_hwm_thermal.py
  • tests/unit/test_orion_v_nats_client.py
  • tests/unit/test_orion_v_nats_client_malformed_payload.py
  • tests/unit/test_orion_v_procedure_engine.py
  • tests/unit/test_orion_v_subsystem_modules.py
  • tests/unit/test_orion_v_systems_uses_hardware_model.py
  • tests/unit/test_power_load_shedding_order.py
  • tests/unit/test_qsim_bounded_queues.py
  • tests/unit/test_radar_range_band_validation.py
  • tests/unit/test_record_replay_timestamp_parsing.py
  • tools/ensure_generated.sh
  • tools/generate_configs.py
  • tools/nats_record_jsonl.py
  • tools/nats_replay_jsonl.py
  • tools/qiki_docgen/__main__.py
  • tools/qiki_docgen/core/config.py
  • tools/qiki_docgen/core/generator.py
  • tools/qiki_docgen/core/parser.py
  • tools/system_mode_smoke.py

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ORION

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@sourcery-ai sourcery-ai Bot left a comment

Choose a reason for hiding this comment

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

Sorry @sonra44, your pull request is larger than the review limit of 150000 diff characters

@sonra44
Copy link
Copy Markdown
Owner Author

sonra44 commented Feb 26, 2026

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c89668c8f3

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +565 to +568
kind = str(payload.get("kind") or "").strip().lower()
command_name = str(((payload.get("payload") or {}).get("command_name"))).strip().lower()
status = str(((payload.get("payload") or {}).get("status"))).strip().lower()
if expected in {kind, command_name, status}:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Correlate ACK matching to the current procedure command

_wait_for_ack accepts any previously seen successful ACK whose kind, payload.command_name, or payload.status matches expected, so a stale ACK from an earlier run can satisfy a later step immediately and incorrectly mark a procedure as successful even when the newly published command was never acknowledged; constrain matching to ACKs received after dispatch (or by correlation ID) to avoid false positives.

Useful? React with 👍 / 👎.

Comment on lines +406 to +408
"stream": "EVENTS_REPLAY",
"timestamp": datetime.now().isoformat(),
"subject": getattr(msg, "subject", None),
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Preserve original JetStream timestamps in replay records

Replay history assigns each fetched message timestamp = datetime.now(), so when an event payload does not carry its own timestamp, downstream window filters treat old events as fresh and replay on <seconds> can show out-of-window incidents; use the message metadata timestamp from JetStream instead of the fetch time.

Useful? React with 👍 / 👎.


def _show_help(self) -> None:
self._set_help_text(
"Levels f1/f2/f3/f4/f6/f7 | Incidents up/down ack clear select <id> | "
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Localize ORION V UI text as required EN/RU pairs

/workspace/QIKI_DTMP/AGENTS.md requires operator-console UI strings to be bilingual EN/RU (without spaces around /), but this newly introduced help text is English-only; this violates the documented console contract and leaves RU operators without the required localized command guidance.

Useful? React with 👍 / 👎.

Reinitialize the branch history from the current working base so the remote branch matches the local repository snapshot.

Ignored files remain excluded by normal git policy.
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.

1 participant