{
  "schema_version": 1,
  "report_id": "AEROSIM-EAB-REL-1.0.0",
  "source_commit": "0faea543943f893601fdc90c9a64f0b566cd0d80",
  "generated_at": "2026-09-25",
  "page_contract": 49,
  "release": {
    "id": "AEROSIM-REL-1.0.0",
    "title": "AeroSim 1.0.0",
    "status": "CURRENT",
    "epic_ids": [
      "AEROSIM-EP-1",
      "AEROSIM-EP-2",
      "AEROSIM-EP-3",
      "AEROSIM-EP-4",
      "AEROSIM-EP-5",
      "AEROSIM-EP-9"
    ],
    "feature_ids": [
      "AEROSIM-FT-41",
      "AEROSIM-FT-42",
      "AEROSIM-FT-43",
      "AEROSIM-FT-44",
      "AEROSIM-FT-45",
      "AEROSIM-FT-46",
      "AEROSIM-FT-47",
      "AEROSIM-FT-48",
      "AEROSIM-FT-50",
      "AEROSIM-FT-51",
      "AEROSIM-FT-52",
      "AEROSIM-FT-30",
      "AEROSIM-FT-31",
      "AEROSIM-FT-32",
      "AEROSIM-FT-33",
      "AEROSIM-FT-34",
      "AEROSIM-FT-1",
      "AEROSIM-FT-2",
      "AEROSIM-FT-9",
      "AEROSIM-FT-10",
      "AEROSIM-FT-11",
      "AEROSIM-FT-3",
      "AEROSIM-FT-4",
      "AEROSIM-FT-5",
      "AEROSIM-FT-12",
      "AEROSIM-FT-13",
      "AEROSIM-FT-14",
      "AEROSIM-FT-6",
      "AEROSIM-FT-7",
      "AEROSIM-FT-15",
      "AEROSIM-FT-16",
      "AEROSIM-FT-17",
      "AEROSIM-FT-18",
      "AEROSIM-FT-53"
    ]
  },
  "counts": {
    "epics": 6,
    "features": 34,
    "tasks": 162,
    "requirements": 49,
    "adrs": 3
  },
  "evidence_snapshot": {
    "observed_at": "2026-09-24T18:55:00Z",
    "documentation_source_commit": "0faea543943f893601fdc90c9a64f0b566cd0d80",
    "application_default": "7e7d557291c9b15a8b97e8ef587e3faa91c5bf03",
    "development": {
      "gitops_revision": "fb5469900a93a607c2767342912d9b95cd09bc98",
      "source_revision": "7e7d557291c9b15a8b97e8ef587e3faa91c5bf03",
      "release_identity": "development-7e7d557",
      "argo_sync": "Synced",
      "argo_health": "Healthy",
      "chart": {
        "version": "1.0.0+build.3",
        "source_revision": "8a448c70fcf09e05fc7b75f078572a85b92b6cf6",
        "digest": "sha256:dceace9ffa94054c6f0f0b114d55b3edd240dab504cf254b3cd48137a5a5437f"
      },
      "template": {
        "repository": "corp-v1-aerosim/gondor-v1-tmpl-aerosim",
        "commit": "cd49b100f346ada07688500abbaff149e673f534",
        "tree": "e82bc37680f0765980a6fc74895b427263df975b",
        "answer_file": "copier-answers.development.yml"
      },
      "nebula_digest": "sha256:1748ac900cd9af525c1110e9bb056e7b93e331b71c4032e3ce84119282124401",
      "singularity_digest": "sha256:4f903ebcfbd06c6026044383b7746809e142fea111d840c6d990d4048529a3e2"
    },
    "production": {
      "gitops_revision": "5a440bbe62b4d284b8b8ce81c2afeb79a974f762",
      "source_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
      "release_identity": "1.0.0.2",
      "argo_sync": "Synced",
      "argo_health": "Healthy",
      "chart": {
        "version": "1.0.0+build.3",
        "source_revision": "8a448c70fcf09e05fc7b75f078572a85b92b6cf6",
        "digest": "sha256:dceace9ffa94054c6f0f0b114d55b3edd240dab504cf254b3cd48137a5a5437f"
      },
      "template": {
        "repository": "corp-v1-aerosim/gondor-v1-tmpl-aerosim",
        "commit": "6b247bc205512f531b91ea929a2c68404531bc21",
        "tree": "74cdc07356209e3625676c70d37fae7b1d227e83",
        "answer_file": "copier-answers.production.yml"
      },
      "nebula_digest": "sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
      "singularity_digest": "sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
    },
    "invalidation_rule": "Any source, image, chart, GitOps revision, environment or required journey change invalidates prior candidate UAT evidence."
  },
  "task_status_counts": {
    "Done": 161,
    "ToBeReleased": 1
  },
  "requirement_status_counts": {
    "Proposed": 49
  },
  "unresolved": {
    "proposed_feature_ids": [
      "AEROSIM-FT-41",
      "AEROSIM-FT-42",
      "AEROSIM-FT-43",
      "AEROSIM-FT-44",
      "AEROSIM-FT-45",
      "AEROSIM-FT-46",
      "AEROSIM-FT-47",
      "AEROSIM-FT-48",
      "AEROSIM-FT-50",
      "AEROSIM-FT-51",
      "AEROSIM-FT-52",
      "AEROSIM-FT-30",
      "AEROSIM-FT-31",
      "AEROSIM-FT-32",
      "AEROSIM-FT-33",
      "AEROSIM-FT-34",
      "AEROSIM-FT-1",
      "AEROSIM-FT-2",
      "AEROSIM-FT-9",
      "AEROSIM-FT-10",
      "AEROSIM-FT-11",
      "AEROSIM-FT-3",
      "AEROSIM-FT-4",
      "AEROSIM-FT-5",
      "AEROSIM-FT-12",
      "AEROSIM-FT-13",
      "AEROSIM-FT-14",
      "AEROSIM-FT-6",
      "AEROSIM-FT-7",
      "AEROSIM-FT-15",
      "AEROSIM-FT-16",
      "AEROSIM-FT-17",
      "AEROSIM-FT-18"
    ],
    "unaccepted_requirement_ids": [
      "FR-0001",
      "FR-0002",
      "FR-0003",
      "FR-0004",
      "FR-0005",
      "FR-0006",
      "FR-0007",
      "FR-0008",
      "FR-0009",
      "FR-0010",
      "FR-0011",
      "FR-0012",
      "FR-0013",
      "FR-0016",
      "FR-0017",
      "FR-0018",
      "FR-0019",
      "FR-0020",
      "FR-0021",
      "FR-0022",
      "FR-0023",
      "FR-0024",
      "FR-0025",
      "FR-0037",
      "FR-0038",
      "FR-0039",
      "FR-0040",
      "FR-0041",
      "FR-0048",
      "FR-0049",
      "FR-0050",
      "FR-0051",
      "FR-0052",
      "FR-0053",
      "FR-0054",
      "FR-0055",
      "FR-0057",
      "FR-0058",
      "FR-0059",
      "NFR-0001",
      "NFR-0002",
      "NFR-0003",
      "NFR-0005",
      "NFR-0006",
      "NFR-0007",
      "NFR-0008",
      "NFR-0009",
      "NFR-0010",
      "NFR-0011"
    ],
    "proposed_adr_ids": [],
    "release_gates": [
      "authenticated UAT_PASSED",
      "new immutable release/chart identity",
      "RootAtSkic production-promotion approval",
      "TASK-0149 through TASK-0157 closure",
      "human post-release acceptance"
    ]
  },
  "requirement_execution_mismatches": [
    {
      "requirement_id": "FR-0001",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0001"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0002",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0073",
        "TASK-0154",
        "TASK-0158"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0003",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0002"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0004",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0083",
        "TASK-0084",
        "TASK-0141",
        "TASK-0148"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0005",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0003"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0006",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0096"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0007",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0004",
        "TASK-0125"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0008",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0005",
        "TASK-0125"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0009",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0006",
        "TASK-0097",
        "TASK-0142",
        "TASK-0156",
        "TASK-0159"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0010",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0007",
        "TASK-0123"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0011",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0111",
        "TASK-0112",
        "TASK-0123",
        "TASK-0134"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0012",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0008",
        "TASK-0122",
        "TASK-0133"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0013",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0114",
        "TASK-0115",
        "TASK-0122"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0016",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0086",
        "TASK-0087",
        "TASK-0088"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0017",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0076",
        "TASK-0077",
        "TASK-0078",
        "TASK-0079"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0018",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0080",
        "TASK-0081",
        "TASK-0082"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0019",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0089",
        "TASK-0090",
        "TASK-0126",
        "TASK-0140",
        "TASK-0155"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0020",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0091",
        "TASK-0092"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0021",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0093",
        "TASK-0094",
        "TASK-0095",
        "TASK-0151",
        "TASK-0161",
        "TASK-0163"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0022",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0098",
        "TASK-0099",
        "TASK-0100",
        "TASK-0124",
        "TASK-0135"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0023",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0101",
        "TASK-0102",
        "TASK-0103",
        "TASK-0104",
        "TASK-0153"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0024",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0105",
        "TASK-0106",
        "TASK-0107",
        "TASK-0136",
        "TASK-0147",
        "TASK-0149",
        "TASK-0171"
      ],
      "classification": "current_active_implementation",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0025",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0108",
        "TASK-0109",
        "TASK-0110",
        "TASK-0127",
        "TASK-0137",
        "TASK-0138"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0037",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0053",
        "TASK-0054",
        "TASK-0055",
        "TASK-0056",
        "TASK-0118"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0038",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0057",
        "TASK-0058",
        "TASK-0059",
        "TASK-0060",
        "TASK-0119"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0039",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0061",
        "TASK-0062",
        "TASK-0063",
        "TASK-0064",
        "TASK-0120"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0040",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0065",
        "TASK-0066",
        "TASK-0067",
        "TASK-0068",
        "TASK-0143"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0041",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0069",
        "TASK-0070",
        "TASK-0071",
        "TASK-0072",
        "TASK-0121",
        "TASK-0144"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0048",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0011",
        "TASK-0012",
        "TASK-0013",
        "TASK-0117"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0049",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0014",
        "TASK-0015",
        "TASK-0016"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0050",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0017",
        "TASK-0018",
        "TASK-0019",
        "TASK-0020"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0051",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0021",
        "TASK-0022",
        "TASK-0023",
        "TASK-0024"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0052",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0025",
        "TASK-0026",
        "TASK-0027",
        "TASK-0139"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0053",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0028",
        "TASK-0029",
        "TASK-0030"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0054",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0031",
        "TASK-0032",
        "TASK-0033",
        "TASK-0034",
        "TASK-0152",
        "TASK-0160"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0055",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0035",
        "TASK-0036",
        "TASK-0037",
        "TASK-0038",
        "TASK-0146",
        "TASK-0150"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0057",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0039",
        "TASK-0040",
        "TASK-0041",
        "TASK-0042",
        "TASK-0128"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0058",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0043",
        "TASK-0044",
        "TASK-0045",
        "TASK-0046",
        "TASK-0157",
        "TASK-0162"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "FR-0059",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0047",
        "TASK-0048",
        "TASK-0049",
        "TASK-0050",
        "TASK-0051",
        "TASK-0052",
        "TASK-0129",
        "TASK-0130",
        "TASK-0131",
        "TASK-0132",
        "TASK-0145"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "NFR-0001",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0004",
        "TASK-0075",
        "TASK-0085",
        "TASK-0096",
        "TASK-0097",
        "TASK-0113",
        "TASK-0116",
        "TASK-0122",
        "TASK-0123",
        "TASK-0125"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "NFR-0002",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0074",
        "TASK-0085",
        "TASK-0097"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "NFR-0003",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0004",
        "TASK-0005",
        "TASK-0096",
        "TASK-0125"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "NFR-0005",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0005",
        "TASK-0075",
        "TASK-0085",
        "TASK-0096",
        "TASK-0097",
        "TASK-0113",
        "TASK-0116",
        "TASK-0122",
        "TASK-0123",
        "TASK-0125"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "NFR-0006",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0003",
        "TASK-0004",
        "TASK-0006",
        "TASK-0074",
        "TASK-0085",
        "TASK-0097",
        "TASK-0113",
        "TASK-0116",
        "TASK-0122",
        "TASK-0123",
        "TASK-0125"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "NFR-0007",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0011",
        "TASK-0012",
        "TASK-0013",
        "TASK-0014",
        "TASK-0015",
        "TASK-0016",
        "TASK-0017",
        "TASK-0018",
        "TASK-0019",
        "TASK-0020",
        "TASK-0021",
        "TASK-0022",
        "TASK-0023",
        "TASK-0024",
        "TASK-0025",
        "TASK-0026",
        "TASK-0027",
        "TASK-0028",
        "TASK-0029",
        "TASK-0030",
        "TASK-0031",
        "TASK-0032",
        "TASK-0033",
        "TASK-0034",
        "TASK-0035",
        "TASK-0036",
        "TASK-0037",
        "TASK-0038",
        "TASK-0039",
        "TASK-0040",
        "TASK-0041",
        "TASK-0042",
        "TASK-0043",
        "TASK-0044",
        "TASK-0045",
        "TASK-0046",
        "TASK-0047",
        "TASK-0048",
        "TASK-0049",
        "TASK-0050",
        "TASK-0051",
        "TASK-0052",
        "TASK-0117",
        "TASK-0128",
        "TASK-0129",
        "TASK-0130",
        "TASK-0131",
        "TASK-0132"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "NFR-0008",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0053",
        "TASK-0054",
        "TASK-0055",
        "TASK-0056",
        "TASK-0057",
        "TASK-0058",
        "TASK-0059",
        "TASK-0060",
        "TASK-0061",
        "TASK-0062",
        "TASK-0063",
        "TASK-0064",
        "TASK-0065",
        "TASK-0066",
        "TASK-0067",
        "TASK-0068",
        "TASK-0069",
        "TASK-0070",
        "TASK-0071",
        "TASK-0072",
        "TASK-0118",
        "TASK-0119",
        "TASK-0120",
        "TASK-0121"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "NFR-0009",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0074",
        "TASK-0079",
        "TASK-0082",
        "TASK-0085",
        "TASK-0088"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "NFR-0010",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0004",
        "TASK-0005",
        "TASK-0006",
        "TASK-0090",
        "TASK-0091",
        "TASK-0092",
        "TASK-0094",
        "TASK-0095",
        "TASK-0096",
        "TASK-0097",
        "TASK-0125",
        "TASK-0126"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    },
    {
      "requirement_id": "NFR-0011",
      "requirement_status": "Proposed",
      "terminal_task_ids": [
        "TASK-0099",
        "TASK-0100",
        "TASK-0103",
        "TASK-0104",
        "TASK-0106",
        "TASK-0107",
        "TASK-0108",
        "TASK-0109",
        "TASK-0110",
        "TASK-0111",
        "TASK-0112",
        "TASK-0114",
        "TASK-0115",
        "TASK-0122",
        "TASK-0123",
        "TASK-0124",
        "TASK-0127"
      ],
      "classification": "historical_implementation_evidence",
      "interpretation": "Implementation history only; does not establish requirement approval, satisfaction, or release acceptance."
    }
  ],
  "risk_register": [
    {
      "id": "R-SEC-01",
      "asset": "Public/API traffic",
      "scenario": "Internal Osgiliath-to-Ingress hop is HTTP.",
      "controls": "ADR-0004; public HTTPS/WSS at Osgiliath; optional chart TLS.",
      "residual": "Likelihood/impact not quantitatively assessed.",
      "owner": "AeroSim Architecture / Gondor platform",
      "treatment": "Board confirms accepted residual or requires re-encryption.",
      "status": "Accepted architecture decision; residual review open"
    },
    {
      "id": "R-SEC-02",
      "asset": "Identity/session",
      "scenario": "Authenticated UAT cannot restore the in-memory OIDC session.",
      "controls": "OIDC PKCE, invalid-token rejection, ordinary-user UAT rule.",
      "residual": "Complete authenticated release evidence absent.",
      "owner": "AeroSim UAT / Delivery",
      "treatment": "Repair fixture and rerun against exact tuple.",
      "status": "Open release blocker"
    },
    {
      "id": "R-SEC-03",
      "asset": "Pilot data",
      "scenario": "Data classification, retention, deletion and legal basis are not recorded.",
      "controls": "Pilot-subject isolation and transactional persistence tests.",
      "residual": "Retention/deletion obligations and ownership unresolved.",
      "owner": "Product authority / Data owner",
      "treatment": "Board records classification, retention, deletion and audit policy.",
      "status": "Open governance decision"
    },
    {
      "id": "R-SEC-04",
      "asset": "Database recovery",
      "scenario": "Backup, restore, PITR, RPO/RTO and restore testing are not release decisions.",
      "controls": "Prisma migrations and transactional verification.",
      "residual": "Recovery capability cannot be claimed.",
      "owner": "Operations / Data owner",
      "treatment": "Approve recovery objectives and provide restore evidence.",
      "status": "Open governance decision"
    },
    {
      "id": "R-SEC-05",
      "asset": "Secrets",
      "scenario": "Rotation, compromise response and privileged Keycloak credentials are outside current evidence.",
      "controls": "Bitwarden-backed External Secrets; no browser receipt of administrative secrets.",
      "residual": "Rotation and incident ownership unrecorded.",
      "owner": "Gondor platform / Security",
      "treatment": "Record rotation cadence, emergency procedure, owner and evidence.",
      "status": "Open governance decision"
    },
    {
      "id": "R-SEC-06",
      "asset": "Database transport",
      "scenario": "API-to-database TLS is not established by reviewed manifests.",
      "controls": "NetworkPolicy permits TCP 5432 only from aerosim-api; credentials arrive through External Secrets.",
      "residual": "Transport encryption is unproven.",
      "owner": "Security / Operations / Architecture",
      "treatment": "Enable verified PostgreSQL TLS or accept the bounded namespace risk.",
      "status": "Open security decision"
    },
    {
      "id": "R-ARC-01",
      "asset": "Flight authority",
      "scenario": "ADR-0001 accepts browser-local flight authority under explicit conditions.",
      "controls": "Deterministic 60 Hz fixed-step tests, bounded catch-up and fail-closed validation.",
      "residual": "Client variance, tampering, replay provenance and unsupported-device behaviour remain bounded but not eliminated.",
      "owner": "AeroSim Architecture",
      "treatment": "Preserve the accepted conditions; require a superseding decision for server-authoritative or competitive behaviour.",
      "status": "Accepted with residual conditions"
    },
    {
      "id": "R-ARC-02",
      "asset": "Configuration/catalogue",
      "scenario": "ADR-0002 accepts static browser-bundled catalogue authority for Release 1.",
      "controls": "Build-time validation, source revision binding, immutable launch snapshot and mismatch rejection.",
      "residual": "Catalogue updates remain release-coupled; dynamic authority remains deferred.",
      "owner": "AeroSim Architecture",
      "treatment": "Preserve accepted conditions; require a superseding decision for dynamic catalogues.",
      "status": "Accepted with residual conditions"
    },
    {
      "id": "R-REL-01",
      "asset": "Release audit identity",
      "scenario": "Rejected 1.0.0.2 identity is associated with different corrective images.",
      "controls": "Immutable digest/GitOps tuple and mismatch rejection.",
      "residual": "Current desired state cannot be promoted as the rejected identity.",
      "owner": "AeroSim Releases / RootAtSkic",
      "treatment": "Approve a new release and chart identity before promotion.",
      "status": "Open release blocker"
    },
    {
      "id": "R-REL-02",
      "asset": "Environment evidence",
      "scenario": "Development advanced to source 7e7d557 and GitOps fb54699 while production remains on dbba4a1 / 5a440bb.",
      "controls": "Exact source, image and GitOps tuple recording; evidence invalidation rule.",
      "residual": "Prior development UAT cannot prove the current or production candidate.",
      "owner": "AeroSim UAT / Releases",
      "treatment": "Classify new source scope, freeze one tuple, rerun all required journeys and prohibit evidence mixing.",
      "status": "Open release blocker"
    },
    {
      "id": "R-GOV-01",
      "asset": "Lifecycle authority",
      "scenario": "33 Proposed Features and all 49 Release 1 requirements remain unapproved while linked child Tasks carry Done or ToBeReleased execution states.",
      "controls": "Exact lifecycle events, hashes and fail-closed report language preserve the contradiction.",
      "residual": "Technical delivery could be mistaken for authorized scope, accepted requirements, or release acceptance.",
      "owner": "AeroSim Scope / Architecture / Product authority",
      "treatment": "Issue exact-item dispositions or conservatively reconcile unauthorized lifecycle states; never infer approval from Task completion.",
      "status": "Open governance blocker"
    }
  ],
  "identity_control_register": [
    {
      "id": "IAM-01",
      "control": "OIDC flow",
      "current": "Authorization Code + PKCE initiated by the browser session client.",
      "owner": "AeroSim Architecture / Identity platform",
      "decision": "Issuer, audience, scopes, redirect URIs and production client ownership require Board confirmation."
    },
    {
      "id": "IAM-02",
      "control": "Subject binding",
      "current": "Protected HTTP and Socket.IO boundaries derive one Keycloak subject; pilot data is subject-scoped and cross-pilot access is rejected.",
      "owner": "AeroSim Architecture / API",
      "decision": "Fine-grained authorization policy and administrator/service identities require explicit acceptance."
    },
    {
      "id": "IAM-03",
      "control": "Session and tokens",
      "current": "Application session is held in browser memory; invalid/expired/wrong-issuer tokens are rejected.",
      "owner": "AeroSim Architecture / Web",
      "decision": "Token/session lifetimes, cookie protections, revocation, logout and signing-key rollover are not recorded as accepted KDDs."
    },
    {
      "id": "IAM-04",
      "control": "Identity lifecycle",
      "current": "Keycloak provides authentication; local credential fallback is excluded.",
      "owner": "Identity platform / Product authority",
      "decision": "Joiner/mover/leaver, deprovisioning, MFA, federation, recovery and privileged administration are outside the current accepted evidence."
    },
    {
      "id": "IAM-05",
      "control": "Authenticated UAT",
      "current": "Two unauthenticated journeys pass; storageState cannot restore the in-memory OIDC session for the authenticated journey.",
      "owner": "AeroSim UAT / Delivery",
      "decision": "Repair ordinary SSO fixture and produce a durable UAT_PASSED handoff for one exact development tuple."
    }
  ],
  "data_lifecycle_register": [
    {
      "data": "Pilot identity",
      "store": "Keycloak subject",
      "owner": "Identity platform / API",
      "purpose": "Authentication and pilot ownership",
      "retention": "Realm-defined / not documented in report source",
      "deletion": "Deprovisioning/erasure not evidenced",
      "evidence_gap": "Audit event evidence required"
    },
    {
      "data": "Pilot profile and preferences",
      "store": "PostgreSQL via Prisma",
      "owner": "AeroSim API / Product data owner",
      "purpose": "Personalization and controls",
      "retention": "Not recorded",
      "deletion": "Deletion/export not recorded",
      "evidence_gap": "Cross-pilot isolation tests exist"
    },
    {
      "data": "Progress / resumable activity",
      "store": "PostgreSQL via Prisma",
      "owner": "AeroSim API / Product data owner",
      "purpose": "Continuity and resume",
      "retention": "Not recorded",
      "deletion": "Invalidation exists; retention/deletion not recorded",
      "evidence_gap": "Transactional and ownership evidence exists"
    },
    {
      "data": "Flight outcome / debrief",
      "store": "PostgreSQL via Prisma",
      "owner": "AeroSim API / Product data owner",
      "purpose": "Outcome and progression",
      "retention": "Not recorded",
      "deletion": "Failed persistence withholds saved debrief/progress",
      "evidence_gap": "Persistence and failure tests exist"
    },
    {
      "data": "Operational logs / diagnostics",
      "store": "Runtime/CI artifacts",
      "owner": "Delivery / Operations",
      "purpose": "Troubleshooting and release evidence",
      "retention": "Not recorded",
      "deletion": "Disposal not recorded",
      "evidence_gap": "Must avoid secrets and personal data"
    }
  ],
  "features": [
    {
      "id": "AEROSIM-FT-41",
      "title": "Introduce the Nebula Frontend Foundation",
      "epic_id": "AEROSIM-EP-1",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-41/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-41.yml",
      "user_story": {
        "actor": "The AeroSim delivery team",
        "capability": "Establish React, Vite, TypeScript, and Stardust",
        "benefit": "The capability becomes an explicit, testable project boundary."
      },
      "summary": "Establish React, Vite, TypeScript, and Stardust",
      "user_problem_statement": "The delivery team needs the AeroSim solution to establish React, Vite, TypeScript, and Stardust.",
      "value": "The capability becomes an explicit, testable project boundary.",
      "scope": "Establish React, Vite, TypeScript, and Stardust",
      "acceptance_outcomes": [
        "Nebula builds a production React/Vite application with strict TypeScript and shared Stardust primitives.",
        "A representative routed screen renders through the adopted foundation in automated component and production-build checks."
      ],
      "risks": [
        "Partial introduction could leave an ungoverned or duplicated technical boundary."
      ],
      "exclusions": [],
      "dependencies": [],
      "question_ids": [
        "Q-0016"
      ],
      "requirement_ids": [
        "FR-0048",
        "NFR-0007"
      ],
      "task_ids": [
        "TASK-0011",
        "TASK-0012",
        "TASK-0013",
        "TASK-0117"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 4
      },
      "design_linked_task_count": 1,
      "non_visual_task_count": 3,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
          "description": "Engineering Features grounded in the selected AeroSim technology stack."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639545730994267",
          "description": "Engineering Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-41-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-41",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-41.yml",
              "item_id": "AEROSIM-FT-41",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-41-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "b0846ad06ec7755f0f3ae3040fa1888a91e2c2d5949196e547f31b248e4d930a"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-41-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-41",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
              "description": "Engineering Feature definition source.",
              "item_id": "AEROSIM-FT-41",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-41-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-41",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-41-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-41.yml",
              "item_id": "AEROSIM-FT-41",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-41-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "79d4ea06fc794fc6ef70fb055d2ee9cd82d1991a19d7524cdb67455d0e351de0"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-41-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-41.yml",
            "item_id": "AEROSIM-FT-41",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-41-PORTFOLIO-0001"
          }
        ],
        "hash": "b0846ad06ec7755f0f3ae3040fa1888a91e2c2d5949196e547f31b248e4d930a"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-42",
      "title": "Introduce the Singularity Backend Foundation",
      "epic_id": "AEROSIM-EP-1",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-42/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-42.yml",
      "user_story": {
        "actor": "The AeroSim delivery team",
        "capability": "Establish Fastify and TypeScript for APIs and business logic",
        "benefit": "The capability becomes an explicit, testable project boundary."
      },
      "summary": "Establish Fastify and TypeScript for APIs and business logic",
      "user_problem_statement": "The delivery team needs the AeroSim solution to establish Fastify and TypeScript for APIs and business logic.",
      "value": "The capability becomes an explicit, testable project boundary.",
      "scope": "Establish Fastify and TypeScript for APIs and business logic",
      "acceptance_outcomes": [
        "Singularity starts a Fastify service with typed request and response boundaries.",
        "Automated tests verify the service health route and rejection of invalid input."
      ],
      "risks": [
        "Partial introduction could leave an ungoverned or duplicated technical boundary."
      ],
      "exclusions": [],
      "dependencies": [],
      "question_ids": [],
      "requirement_ids": [
        "FR-0049",
        "NFR-0007"
      ],
      "task_ids": [
        "TASK-0014",
        "TASK-0015",
        "TASK-0016"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 3
      },
      "design_linked_task_count": 0,
      "non_visual_task_count": 3,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
          "description": "Engineering Features grounded in the selected AeroSim technology stack."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639545730994267",
          "description": "Engineering Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-42-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-42",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-42.yml",
              "item_id": "AEROSIM-FT-42",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-42-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "6488104473236b2752800bd37801cae6ce9b9395f313e83ac8fbeaf11e0da15b"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-42-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-42",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
              "description": "Engineering Feature definition source.",
              "item_id": "AEROSIM-FT-42",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-42-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-42",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-42-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-42.yml",
              "item_id": "AEROSIM-FT-42",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-42-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "adb2ccfc673c4bccabf7b258dc36dfe2f5c147699ceec618add2641122792d8c"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-42-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-42.yml",
            "item_id": "AEROSIM-FT-42",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-42-PORTFOLIO-0001"
          }
        ],
        "hash": "6488104473236b2752800bd37801cae6ce9b9395f313e83ac8fbeaf11e0da15b"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-43",
      "title": "Introduce Persistent Data Management",
      "epic_id": "AEROSIM-EP-1",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-43/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-43.yml",
      "user_story": {
        "actor": "The AeroSim delivery team",
        "capability": "Establish PostgreSQL and Prisma for governed persistent records",
        "benefit": "The capability becomes an explicit, testable project boundary."
      },
      "summary": "Establish PostgreSQL and Prisma for governed persistent records",
      "user_problem_statement": "The delivery team needs the AeroSim solution to establish PostgreSQL and Prisma for governed persistent records.",
      "value": "The capability becomes an explicit, testable project boundary.",
      "scope": "Establish PostgreSQL and Prisma for governed persistent records",
      "acceptance_outcomes": [
        "A clean PostgreSQL database can apply all committed Prisma migrations reproducibly.",
        "Integration tests verify one governed transactional write and read without leaking data across pilots."
      ],
      "risks": [
        "Partial introduction could leave an ungoverned or duplicated technical boundary."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-42"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0050",
        "NFR-0007"
      ],
      "task_ids": [
        "TASK-0017",
        "TASK-0018",
        "TASK-0019",
        "TASK-0020"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 4
      },
      "design_linked_task_count": 0,
      "non_visual_task_count": 4,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
          "description": "Engineering Features grounded in the selected AeroSim technology stack."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639545730994267",
          "description": "Engineering Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-43-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-43",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-43.yml",
              "item_id": "AEROSIM-FT-43",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-43-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "51c3e0405b8b7ea1dd11ea812cfe9f9580a5af9f6e16a9838914df11184f63c7"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-43-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-43",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
              "description": "Engineering Feature definition source.",
              "item_id": "AEROSIM-FT-43",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-43-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-43",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-43-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-43.yml",
              "item_id": "AEROSIM-FT-43",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-43-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "84538d974f360947b35449ca1819c8413c3183d3047b5841a8c872f270a910b4"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-43-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-43.yml",
            "item_id": "AEROSIM-FT-43",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-43-PORTFOLIO-0001"
          }
        ],
        "hash": "51c3e0405b8b7ea1dd11ea812cfe9f9580a5af9f6e16a9838914df11184f63c7"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-44",
      "title": "Introduce Real-Time Communication",
      "epic_id": "AEROSIM-EP-1",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-44/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-44.yml",
      "user_story": {
        "actor": "The AeroSim delivery team",
        "capability": "Establish Socket.IO with shared typed contracts",
        "benefit": "The capability becomes an explicit, testable project boundary."
      },
      "summary": "Establish Socket.IO with shared typed contracts",
      "user_problem_statement": "The delivery team needs the AeroSim solution to establish Socket.IO with shared typed contracts.",
      "value": "The capability becomes an explicit, testable project boundary.",
      "scope": "Establish Socket.IO with shared typed contracts",
      "acceptance_outcomes": [
        "Nebula and Singularity consume one shared typed Socket.IO event contract.",
        "Tests cover connection, authorization, reconnect, ordering, and invalid-event behavior."
      ],
      "risks": [
        "Partial introduction could leave an ungoverned or duplicated technical boundary."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-41",
        "AEROSIM-FT-42"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0051",
        "NFR-0007"
      ],
      "task_ids": [
        "TASK-0021",
        "TASK-0022",
        "TASK-0023",
        "TASK-0024"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 4
      },
      "design_linked_task_count": 0,
      "non_visual_task_count": 4,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
          "description": "Engineering Features grounded in the selected AeroSim technology stack."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639545730994267",
          "description": "Engineering Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-44-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-44",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-44.yml",
              "item_id": "AEROSIM-FT-44",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-44-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "7623974dff2f8d8e3fa9f7a96670110f1dd35f3cb4d134fd7a716e2ca2209df8"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-44-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-44",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
              "description": "Engineering Feature definition source.",
              "item_id": "AEROSIM-FT-44",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-44-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-44",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-44-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-44.yml",
              "item_id": "AEROSIM-FT-44",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-44-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "aecaecc31f3ecf7dea8ed6d4facda69d7eb9697a6cd870c352cd6b585a1c93eb"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-44-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-44.yml",
            "item_id": "AEROSIM-FT-44",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-44-PORTFOLIO-0001"
          }
        ],
        "hash": "7623974dff2f8d8e3fa9f7a96670110f1dd35f3cb4d134fd7a716e2ca2209df8"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-45",
      "title": "Introduce the 3D Rendering Runtime",
      "epic_id": "AEROSIM-EP-1",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-45/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-45.yml",
      "user_story": {
        "actor": "The AeroSim delivery team",
        "capability": "Establish Three.js and React Three Fiber for browser flight rendering",
        "benefit": "The capability becomes an explicit, testable project boundary."
      },
      "summary": "Establish Three.js and React Three Fiber for browser flight rendering",
      "user_problem_statement": "The delivery team needs the AeroSim solution to establish Three.js and React Three Fiber for browser flight rendering.",
      "value": "The capability becomes an explicit, testable project boundary.",
      "scope": "Establish Three.js and React Three Fiber for browser flight rendering",
      "acceptance_outcomes": [
        "A representative aircraft, terrain, environment, and camera scene renders through React Three Fiber.",
        "Scene lifecycle and low-level Three.js ownership are explicit and production build emits no browser-runtime errors."
      ],
      "risks": [
        "Partial introduction could leave an ungoverned or duplicated technical boundary."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-41"
      ],
      "question_ids": [
        "Q-0015",
        "Q-0016"
      ],
      "requirement_ids": [
        "FR-0052",
        "NFR-0007"
      ],
      "task_ids": [
        "TASK-0025",
        "TASK-0026",
        "TASK-0027",
        "TASK-0139"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 4
      },
      "design_linked_task_count": 1,
      "non_visual_task_count": 3,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
          "description": "Engineering Features grounded in the selected AeroSim technology stack."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639545730994267",
          "description": "Engineering Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-45-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-45",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-45.yml",
              "item_id": "AEROSIM-FT-45",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-45-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "55f8ca2e0d098ca21202c83e0fcde30418b6e279da9d3c219366041eab5b2416"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-45-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-45",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
              "description": "Engineering Feature definition source.",
              "item_id": "AEROSIM-FT-45",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-45-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-45",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-45-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-45.yml",
              "item_id": "AEROSIM-FT-45",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-45-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "2bf9c9bc2720f16067a6eb8ffe9653e22ee7f7fe9de94d790a2c0fc787655343"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-45-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-45.yml",
            "item_id": "AEROSIM-FT-45",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-45-PORTFOLIO-0001"
          }
        ],
        "hash": "55f8ca2e0d098ca21202c83e0fcde30418b6e279da9d3c219366041eab5b2416"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-46",
      "title": "Introduce the Flight Physics Runtime",
      "epic_id": "AEROSIM-EP-1",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-46/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-46.yml",
      "user_story": {
        "actor": "The AeroSim delivery team",
        "capability": "Establish Rapier and @react-three/rapier for deterministic physics",
        "benefit": "The capability becomes an explicit, testable project boundary."
      },
      "summary": "Establish Rapier and @react-three/rapier for deterministic physics",
      "user_problem_statement": "The delivery team needs the AeroSim solution to establish Rapier and @react-three/rapier for deterministic physics.",
      "value": "The capability becomes an explicit, testable project boundary.",
      "scope": "Establish Rapier and @react-three/rapier for deterministic physics",
      "acceptance_outcomes": [
        "Rapier advances aircraft and collision state through the documented deterministic simulation step.",
        "Repeated fixed inputs and initial state pass motion and collision regression tests."
      ],
      "risks": [
        "Partial introduction could leave an ungoverned or duplicated technical boundary."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-45"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0053",
        "NFR-0007"
      ],
      "task_ids": [
        "TASK-0028",
        "TASK-0029",
        "TASK-0030"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 3
      },
      "design_linked_task_count": 0,
      "non_visual_task_count": 3,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
          "description": "Engineering Features grounded in the selected AeroSim technology stack."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639545730994267",
          "description": "Engineering Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-46-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-46",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-46.yml",
              "item_id": "AEROSIM-FT-46",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-46-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "f718bb803100c2d592913c730135cfc17c4f6a330a5e7f7c38eecc9fd170ac92"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-46-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-46",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
              "description": "Engineering Feature definition source.",
              "item_id": "AEROSIM-FT-46",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-46-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-46",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-46-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-46.yml",
              "item_id": "AEROSIM-FT-46",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-46-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "d85d1e7cb92c5f9c0b87dcac835efe06f686c5e4cef2b1b0a4eb42f2a3af1d67"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-46-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-46.yml",
            "item_id": "AEROSIM-FT-46",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-46-PORTFOLIO-0001"
          }
        ],
        "hash": "f718bb803100c2d592913c730135cfc17c4f6a330a5e7f7c38eecc9fd170ac92"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-47",
      "title": "Introduce the Terrain Pipeline",
      "epic_id": "AEROSIM-EP-1",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-47/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-47.yml",
      "user_story": {
        "actor": "The AeroSim delivery team",
        "capability": "Establish heightmap terrain and aligned Rapier collision",
        "benefit": "The capability becomes an explicit, testable project boundary."
      },
      "summary": "Establish heightmap terrain and aligned Rapier collision",
      "user_problem_statement": "The delivery team needs the AeroSim solution to establish heightmap terrain and aligned Rapier collision.",
      "value": "The capability becomes an explicit, testable project boundary.",
      "scope": "Establish heightmap terrain and aligned Rapier collision",
      "acceptance_outcomes": [
        "Visual terrain and Rapier collision are generated from the same normalized height data.",
        "Representative probes keep rendered elevation and collision elevation within the defined tolerance."
      ],
      "risks": [
        "Partial introduction could leave an ungoverned or duplicated technical boundary."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-45",
        "AEROSIM-FT-46"
      ],
      "question_ids": [
        "Q-0015"
      ],
      "requirement_ids": [
        "FR-0054",
        "NFR-0007"
      ],
      "task_ids": [
        "TASK-0031",
        "TASK-0032",
        "TASK-0033",
        "TASK-0034",
        "TASK-0152",
        "TASK-0160"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 6
      },
      "design_linked_task_count": 2,
      "non_visual_task_count": 4,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
          "description": "Engineering Features grounded in the selected AeroSim technology stack."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639545730994267",
          "description": "Engineering Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-47-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-47",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-47.yml",
              "item_id": "AEROSIM-FT-47",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-47-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "823e7b351a44cc937b8b704c4c5a68de0de48b5994f6d4f1bec84d4ce0bafabb"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-47-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-47",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
              "description": "Engineering Feature definition source.",
              "item_id": "AEROSIM-FT-47",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-47-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-47",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-47-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-47.yml",
              "item_id": "AEROSIM-FT-47",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-47-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "6ea077c3ce506a57596df452105a25e16970b426ce3f5aa7339fc4c007c96cb1"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-47-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-47.yml",
            "item_id": "AEROSIM-FT-47",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-47-PORTFOLIO-0001"
          }
        ],
        "hash": "823e7b351a44cc937b8b704c4c5a68de0de48b5994f6d4f1bec84d4ce0bafabb"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-48",
      "title": "Introduce the 3D Asset Pipeline",
      "epic_id": "AEROSIM-EP-1",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-48/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-48.yml",
      "user_story": {
        "actor": "The AeroSim delivery team",
        "capability": "Establish governed glTF/GLB sourcing, licensing, provenance, and optimization",
        "benefit": "The capability becomes an explicit, testable project boundary."
      },
      "summary": "Establish governed glTF/GLB sourcing, licensing, provenance, and optimization",
      "user_problem_statement": "The delivery team needs the AeroSim solution to establish governed glTF/GLB sourcing, licensing, provenance, and optimization.",
      "value": "The capability becomes an explicit, testable project boundary.",
      "scope": "Establish governed glTF/GLB sourcing, licensing, provenance, and optimization",
      "acceptance_outcomes": [
        "Each runtime asset is optimized to glTF/GLB and has source, license, provenance, and budget metadata.",
        "Validation rejects an unlicensed, untraceable, unsupported, or over-budget asset."
      ],
      "risks": [
        "Partial introduction could leave an ungoverned or duplicated technical boundary."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-45"
      ],
      "question_ids": [
        "Q-0014",
        "Q-0015"
      ],
      "requirement_ids": [
        "FR-0055",
        "NFR-0007"
      ],
      "task_ids": [
        "TASK-0035",
        "TASK-0036",
        "TASK-0037",
        "TASK-0038",
        "TASK-0146",
        "TASK-0150"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 6
      },
      "design_linked_task_count": 2,
      "non_visual_task_count": 4,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
          "description": "Engineering Features grounded in the selected AeroSim technology stack."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639545730994267",
          "description": "Engineering Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-48-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-48",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-48.yml",
              "item_id": "AEROSIM-FT-48",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-48-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "46c4d6b4bdc1f9bf8c9a675491261e26dd4ab159f9b552f3c31c508242a74b0d"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-48-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-48",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
              "description": "Engineering Feature definition source.",
              "item_id": "AEROSIM-FT-48",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-48-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-48",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-48-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-48.yml",
              "item_id": "AEROSIM-FT-48",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-48-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "6160fc8f77a5413f3ce028a4a70c3501629dd12592e48b7386a5b738440e1bf6"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-48-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-48.yml",
            "item_id": "AEROSIM-FT-48",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-48-PORTFOLIO-0001"
          }
        ],
        "hash": "46c4d6b4bdc1f9bf8c9a675491261e26dd4ab159f9b552f3c31c508242a74b0d"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-50",
      "title": "Introduce Keycloak Identity Integration",
      "epic_id": "AEROSIM-EP-1",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-50/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-50.yml",
      "user_story": {
        "actor": "The AeroSim delivery team",
        "capability": "Establish Keycloak SSO without registration or local credentials",
        "benefit": "The capability becomes an explicit, testable project boundary."
      },
      "summary": "Establish Keycloak SSO without registration or local credentials",
      "user_problem_statement": "The delivery team needs the AeroSim solution to establish Keycloak SSO without registration or local credentials.",
      "value": "The capability becomes an explicit, testable project boundary.",
      "scope": "Establish Keycloak SSO without registration or local credentials",
      "acceptance_outcomes": [
        "Protected AeroSim access redirects to Keycloak and returns to the intended route after success.",
        "No registration, password, or local credential form exists in AeroSim."
      ],
      "risks": [
        "Partial introduction could leave an ungoverned or duplicated technical boundary."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-41",
        "AEROSIM-FT-42"
      ],
      "question_ids": [
        "Q-0016"
      ],
      "requirement_ids": [
        "FR-0057",
        "NFR-0007"
      ],
      "task_ids": [
        "TASK-0039",
        "TASK-0040",
        "TASK-0041",
        "TASK-0042",
        "TASK-0128"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 5
      },
      "design_linked_task_count": 1,
      "non_visual_task_count": 4,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
          "description": "Engineering Features grounded in the selected AeroSim technology stack."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639545730994267",
          "description": "Engineering Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-50-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-50",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-50.yml",
              "item_id": "AEROSIM-FT-50",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-50-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "e8d0bff882b04bcd278e3840ffd59dbe54f0262f74178d77fe72204a4a280d43"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-50-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-50",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
              "description": "Engineering Feature definition source.",
              "item_id": "AEROSIM-FT-50",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-50-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-50",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-50-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-50.yml",
              "item_id": "AEROSIM-FT-50",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-50-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "6809c93909a0a455499dffe598900faf07d88bea595aa0b5c6bee7b8f37abe7c"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-50-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-50.yml",
            "item_id": "AEROSIM-FT-50",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-50-PORTFOLIO-0001"
          }
        ],
        "hash": "e8d0bff882b04bcd278e3840ffd59dbe54f0262f74178d77fe72204a4a280d43"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-51",
      "title": "Introduce Automated Engineering Validation",
      "epic_id": "AEROSIM-EP-1",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-51/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-51.yml",
      "user_story": {
        "actor": "The AeroSim delivery team",
        "capability": "Establish tests, linting, type checking, and production builds",
        "benefit": "The capability becomes an explicit, testable project boundary."
      },
      "summary": "Establish tests, linting, type checking, and production builds",
      "user_problem_statement": "The delivery team needs the AeroSim solution to establish tests, linting, type checking, and production builds.",
      "value": "The capability becomes an explicit, testable project boundary.",
      "scope": "Establish tests, linting, type checking, and production builds",
      "acceptance_outcomes": [
        "The declared local validation and Gitea Actions run the same lint, type, test, and production-build gates.",
        "CI reports success only for the exact immutable candidate head after every required gate passes."
      ],
      "risks": [
        "Partial introduction could leave an ungoverned or duplicated technical boundary."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-41",
        "AEROSIM-FT-42",
        "AEROSIM-FT-43",
        "AEROSIM-FT-45",
        "AEROSIM-FT-46"
      ],
      "question_ids": [
        "Q-0015",
        "Q-0016"
      ],
      "requirement_ids": [
        "FR-0058",
        "NFR-0007"
      ],
      "task_ids": [
        "TASK-0043",
        "TASK-0044",
        "TASK-0045",
        "TASK-0046",
        "TASK-0157",
        "TASK-0162"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 6
      },
      "design_linked_task_count": 2,
      "non_visual_task_count": 4,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
          "description": "Engineering Features grounded in the selected AeroSim technology stack."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639545730994267",
          "description": "Engineering Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-51-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-51",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-51.yml",
              "item_id": "AEROSIM-FT-51",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-51-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "2b25811aa35e3c74fc3a75cbd2bffa42c41abe819cfd3c616913d064864ee38f"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-51-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-51",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
              "description": "Engineering Feature definition source.",
              "item_id": "AEROSIM-FT-51",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-51-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-51",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-51-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-51.yml",
              "item_id": "AEROSIM-FT-51",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-51-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "74844a5d3f03474eeb6d6765c128af8af579ad70e50acc98dafbc05eaff5225c"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-51-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-51.yml",
            "item_id": "AEROSIM-FT-51",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-51-PORTFOLIO-0001"
          }
        ],
        "hash": "2b25811aa35e3c74fc3a75cbd2bffa42c41abe819cfd3c616913d064864ee38f"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-52",
      "title": "Introduce the Delivery Runtime",
      "epic_id": "AEROSIM-EP-1",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-52/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-52.yml",
      "user_story": {
        "actor": "The AeroSim delivery team",
        "capability": "Establish Docker, Helm, Harbor, Gitea Actions, and Argo CD GitOps",
        "benefit": "The capability becomes an explicit, testable project boundary."
      },
      "summary": "Establish Docker, Helm, Harbor, Gitea Actions, and Argo CD GitOps",
      "user_problem_statement": "The delivery team needs the AeroSim solution to establish Docker, Helm, Harbor, Gitea Actions, and Argo CD GitOps.",
      "value": "The capability becomes an explicit, testable project boundary.",
      "scope": "Establish Docker, Helm, Harbor, Gitea Actions, and Argo CD GitOps",
      "acceptance_outcomes": [
        "Nebula and Singularity produce versioned container images and lintable Helm charts.",
        "Harbor publication and Argo CD GitOps deployment use governed automation without direct CI runtime mutation."
      ],
      "risks": [
        "Partial introduction could leave an ungoverned or duplicated technical boundary."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-51"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0059",
        "NFR-0007"
      ],
      "task_ids": [
        "TASK-0047",
        "TASK-0048",
        "TASK-0049",
        "TASK-0050",
        "TASK-0051",
        "TASK-0052"
      ],
      "adr_ids": [
        "ADR-0004"
      ],
      "task_status_counts": {
        "Done": 6
      },
      "design_linked_task_count": 0,
      "non_visual_task_count": 6,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
          "description": "Engineering Features grounded in the selected AeroSim technology stack."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639545730994267",
          "description": "Engineering Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-52-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-52",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-52.yml",
              "item_id": "AEROSIM-FT-52",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-52-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "2981aaf8bab2b131f8b1086cd964214b4f40bdbb4c28d69f351a10c942e6aec0"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-52-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-52",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
              "description": "Engineering Feature definition source.",
              "item_id": "AEROSIM-FT-52",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-52-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-52",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-52-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-52.yml",
              "item_id": "AEROSIM-FT-52",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-52-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "7b54808b2340895dd80a0b3b7a36ed59ead26159fff712c282bd8cb24b2e44a7"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-52-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-52.yml",
            "item_id": "AEROSIM-FT-52",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-52-PORTFOLIO-0001"
          }
        ],
        "hash": "2981aaf8bab2b131f8b1086cd964214b4f40bdbb4c28d69f351a10c942e6aec0"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-30",
      "title": "Access AeroSim Through Keycloak SSO",
      "epic_id": "AEROSIM-EP-2",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-30/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-30.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Authenticate through Keycloak without registration or local credentials",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Authenticate through Keycloak without registration or local credentials",
      "user_problem_statement": "The player needs AeroSim to authenticate through Keycloak without registration or local credentials.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Authenticate through Keycloak without registration or local credentials",
      "acceptance_outcomes": [
        "Unauthenticated access uses the approved Keycloak SSO flow.",
        "Successful SSO establishes one AeroSim pilot identity without registration or local credentials."
      ],
      "risks": [
        "Representative browser or input configurations may expose an unmet outcome."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-50"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0037",
        "NFR-0008"
      ],
      "task_ids": [
        "TASK-0053",
        "TASK-0054",
        "TASK-0055",
        "TASK-0056",
        "TASK-0118"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 5
      },
      "design_linked_task_count": 1,
      "non_visual_task_count": 4,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542622539572838430",
          "description": "Keycloak SSO direction without registration or local sign-in."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-30-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-30",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-30.yml",
              "item_id": "AEROSIM-FT-30",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-30-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "1bf320e377c0ea34d68fba07155fc90bb25144521f349085687415cbe7318683"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-30-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-30",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-30",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-30-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-30",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-30-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-30.yml",
              "item_id": "AEROSIM-FT-30",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-30-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "e6fc0b4252158215bfaefc48a5049727873e64beb88e0b3966d2bc2e9247552d"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-30-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-30.yml",
            "item_id": "AEROSIM-FT-30",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-30-PORTFOLIO-0001"
          }
        ],
        "hash": "1bf320e377c0ea34d68fba07155fc90bb25144521f349085687415cbe7318683"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-31",
      "title": "Create a Pilot Profile From the Authenticated Identity",
      "epic_id": "AEROSIM-EP-2",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-31/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-31.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Resolve one AeroSim pilot profile for the Keycloak subject",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Resolve one AeroSim pilot profile for the Keycloak subject",
      "user_problem_statement": "The player needs AeroSim to resolve one AeroSim pilot profile for the Keycloak subject.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Resolve one AeroSim pilot profile for the Keycloak subject",
      "acceptance_outcomes": [
        "The first authorized Keycloak subject creates one linked pilot profile.",
        "Later sessions resolve the same profile without duplication."
      ],
      "risks": [
        "Representative browser or input configurations may expose an unmet outcome."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-30",
        "AEROSIM-FT-43"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0038",
        "NFR-0008"
      ],
      "task_ids": [
        "TASK-0057",
        "TASK-0058",
        "TASK-0059",
        "TASK-0060",
        "TASK-0119"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 5
      },
      "design_linked_task_count": 1,
      "non_visual_task_count": 4,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-31-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-31",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-31.yml",
              "item_id": "AEROSIM-FT-31",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-31-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "2e64aa8ec70c2e76513887ac3f574698744652fb19a9db38a18dc92da8ad9f34"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-31-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-31",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-31",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-31-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-31",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-31-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-31.yml",
              "item_id": "AEROSIM-FT-31",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-31-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "065bb110f915f49006845ece496122cadda16643e7c5ae4c5ea036931c2f2c87"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-31-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-31.yml",
            "item_id": "AEROSIM-FT-31",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-31-PORTFOLIO-0001"
          }
        ],
        "hash": "2e64aa8ec70c2e76513887ac3f574698744652fb19a9db38a18dc92da8ad9f34"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-32",
      "title": "Preserve Pilot Preferences and Settings",
      "epic_id": "AEROSIM-EP-2",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-32/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-32.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Store and restore supported personal preferences",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Store and restore supported personal preferences",
      "user_problem_statement": "The player needs AeroSim to store and restore supported personal preferences.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Store and restore supported personal preferences",
      "acceptance_outcomes": [
        "Saving a supported preference associates it with the active pilot.",
        "A later authenticated session restores the last valid supported value."
      ],
      "risks": [
        "Representative browser or input configurations may expose an unmet outcome."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-31"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0039",
        "NFR-0008"
      ],
      "task_ids": [
        "TASK-0061",
        "TASK-0062",
        "TASK-0063",
        "TASK-0064",
        "TASK-0120"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 5
      },
      "design_linked_task_count": 1,
      "non_visual_task_count": 4,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-32-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-32",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-32.yml",
              "item_id": "AEROSIM-FT-32",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-32-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "3ad287c0dfafc7c8c3ecb248f7bb2ae7f6278b8539dde308fcb12c618de45461"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-32-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-32",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-32",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-32-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-32",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-32-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-32.yml",
              "item_id": "AEROSIM-FT-32",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-32-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "c7804813c4d1e075489342f6ef2eefedd0c50bf7a88e66febf9e2fdf364e4aa9"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-32-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-32.yml",
            "item_id": "AEROSIM-FT-32",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-32-PORTFOLIO-0001"
          }
        ],
        "hash": "3ad287c0dfafc7c8c3ecb248f7bb2ae7f6278b8539dde308fcb12c618de45461"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-33",
      "title": "Save Flight and Training Progress",
      "epic_id": "AEROSIM-EP-2",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-33/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-33.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Persist governed flight, lesson, and progression state",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Persist governed flight, lesson, and progression state",
      "user_problem_statement": "The player needs AeroSim to persist governed flight, lesson, and progression state.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Persist governed flight, lesson, and progression state",
      "acceptance_outcomes": [
        "Governed flight and training progress is persisted against the active pilot.",
        "A later session retrieves the same canonical progress state."
      ],
      "risks": [
        "Representative browser or input configurations may expose an unmet outcome."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-31",
        "AEROSIM-FT-43"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0040",
        "NFR-0008"
      ],
      "task_ids": [
        "TASK-0065",
        "TASK-0066",
        "TASK-0067",
        "TASK-0068",
        "TASK-0143"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 5
      },
      "design_linked_task_count": 1,
      "non_visual_task_count": 4,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-33-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-33",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-33.yml",
              "item_id": "AEROSIM-FT-33",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-33-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "a9e35a7bc8f86d0ddf70c4b3ae7f252904d65cc398315f3ac387e93cf3291eb1"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-33-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-33",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-33",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-33-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-33",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-33-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-33.yml",
              "item_id": "AEROSIM-FT-33",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-33-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "8e86bacf857523a8d6ddabc0aa8faa5914d0558f56a3b9bfa58030e623f82d03"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-33-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-33.yml",
            "item_id": "AEROSIM-FT-33",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-33-PORTFOLIO-0001"
          }
        ],
        "hash": "a9e35a7bc8f86d0ddf70c4b3ae7f252904d65cc398315f3ac387e93cf3291eb1"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-34",
      "title": "Resume the Player’s Most Recent Activity",
      "epic_id": "AEROSIM-EP-2",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-34/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-34.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Continue from the most recent valid resumable state",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Continue from the most recent valid resumable state",
      "user_problem_statement": "The player needs AeroSim to continue from the most recent valid resumable state.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Continue from the most recent valid resumable state",
      "acceptance_outcomes": [
        "Home identifies only an activity that is actually resumable.",
        "Resume restores its recorded context or explains why continuation is unavailable."
      ],
      "risks": [
        "Representative browser or input configurations may expose an unmet outcome."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-33"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0041",
        "NFR-0008"
      ],
      "task_ids": [
        "TASK-0069",
        "TASK-0070",
        "TASK-0071",
        "TASK-0072",
        "TASK-0121",
        "TASK-0144"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 6
      },
      "design_linked_task_count": 2,
      "non_visual_task_count": 4,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-34-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-34",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-34.yml",
              "item_id": "AEROSIM-FT-34",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-34-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "56da50045ffbfc0291af4e9bc71d201af13b5f221a37b18f718711f92c986b2d"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-34-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-34",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-34",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-34-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-34",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-34-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-34.yml",
              "item_id": "AEROSIM-FT-34",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-34-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "ae2542aeb5ac1374989f7f32e17e10b81f5651e1f1126f3516893b02498a6c2e"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-34-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-34.yml",
            "item_id": "AEROSIM-FT-34",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-34-PORTFOLIO-0001"
          }
        ],
        "hash": "56da50045ffbfc0291af4e9bc71d201af13b5f221a37b18f718711f92c986b2d"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-1",
      "title": "Experience Aircraft Motion Produced by Flight Forces",
      "epic_id": "AEROSIM-EP-3",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-1/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-1.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Translate controls and aircraft state into continuous force-driven motion",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Translate controls and aircraft state into continuous force-driven motion",
      "user_problem_statement": "The player needs AeroSim to translate controls and aircraft state into continuous force-driven motion.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Translate controls and aircraft state into continuous force-driven motion",
      "acceptance_outcomes": [
        "Aircraft motion changes continuously with modeled lift, drag, thrust, gravity, attitude, and player input.",
        "The same initial state and timed input sequence produces the same motion trace within the defined tolerance."
      ],
      "risks": [
        "Prototype behaviour may not meet the current acceptance outcomes."
      ],
      "exclusions": [],
      "dependencies": [],
      "question_ids": [
        "Q-0001",
        "Q-0002",
        "Q-0018"
      ],
      "requirement_ids": [
        "FR-0001",
        "FR-0002",
        "NFR-0001",
        "NFR-0002",
        "NFR-0005",
        "NFR-0006",
        "NFR-0009"
      ],
      "task_ids": [
        "TASK-0001",
        "TASK-0073",
        "TASK-0074",
        "TASK-0075",
        "TASK-0154",
        "TASK-0158"
      ],
      "adr_ids": [
        "ADR-0001"
      ],
      "task_status_counts": {
        "Done": 6
      },
      "design_linked_task_count": 2,
      "non_visual_task_count": 4,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-1-CLEAN-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-1",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-1.yml",
              "item_id": "AEROSIM-FT-1",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-1-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "53e484b4264580e6e38cc4e4b46b618a3431b71cc268ea7ac06244a9d9057057"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-1-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-1",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-1",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-1-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-1",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-1-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-1.yml",
              "item_id": "AEROSIM-FT-1",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-1-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "262940a219e9805315258f5a24ee47ed9152f68a864b4f57d18e710b994882d9"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-1-CLEAN-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-24T15:06:15.606Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-1.yml",
            "item_id": "AEROSIM-FT-1",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-1-CLEAN-0001"
          }
        ],
        "hash": "53e484b4264580e6e38cc4e4b46b618a3431b71cc268ea7ac06244a9d9057057"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-2",
      "title": "Interact with Terrain and World Boundaries",
      "epic_id": "AEROSIM-EP-3",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-2/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-2.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Respond predictably to terrain, collision surfaces, altitude limits, and world boundaries",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Respond predictably to terrain, collision surfaces, altitude limits, and world boundaries",
      "user_problem_statement": "The player needs AeroSim to respond predictably to terrain, collision surfaces, altitude limits, and world boundaries.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Respond predictably to terrain, collision surfaces, altitude limits, and world boundaries",
      "acceptance_outcomes": [
        "Contact with terrain or a configured world boundary produces a visible governed response.",
        "A boundary violation ends or recovers the session without leaving an unexplained aircraft state."
      ],
      "risks": [
        "Prototype behaviour may not meet the current acceptance outcomes."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-47"
      ],
      "question_ids": [
        "Q-0003",
        "Q-0004",
        "Q-0018"
      ],
      "requirement_ids": [
        "FR-0003",
        "FR-0004",
        "NFR-0001",
        "NFR-0002",
        "NFR-0005",
        "NFR-0006",
        "NFR-0009"
      ],
      "task_ids": [
        "TASK-0002",
        "TASK-0083",
        "TASK-0084",
        "TASK-0085",
        "TASK-0141",
        "TASK-0148"
      ],
      "adr_ids": [
        "ADR-0001"
      ],
      "task_status_counts": {
        "Done": 6
      },
      "design_linked_task_count": 2,
      "non_visual_task_count": 4,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-2-CLEAN-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-2",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-2.yml",
              "item_id": "AEROSIM-FT-2",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-2-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "b34dd0bb7443da4ee3dbe696bccc01a009e1e6f4ec69faaa82a73a72a484db13"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-2-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-2",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-2",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-2-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-2",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-2-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-2.yml",
              "item_id": "AEROSIM-FT-2",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-2-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "4010f2f6142dc866f98524df9735e27d28e06983e879f14e73be7e124d0c61d0"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-2-CLEAN-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-24T15:06:15.606Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-2.yml",
            "item_id": "AEROSIM-FT-2",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-2-CLEAN-0001"
          }
        ],
        "hash": "b34dd0bb7443da4ee3dbe696bccc01a009e1e6f4ec69faaa82a73a72a484db13"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-9",
      "title": "Experience Different Aircraft Handling Characteristics",
      "epic_id": "AEROSIM-EP-3",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-9/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-9.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Represent meaningful differences in stability, responsiveness, speed, and control authority",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Represent meaningful differences in stability, responsiveness, speed, and control authority",
      "user_problem_statement": "The player needs AeroSim to represent meaningful differences in stability, responsiveness, speed, and control authority.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Represent meaningful differences in stability, responsiveness, speed, and control authority",
      "acceptance_outcomes": [
        "Supported aircraft produce observably different stability, responsiveness, speed, or control authority under equivalent conditions.",
        "Displayed handling characteristics match the configuration used by flight physics."
      ],
      "risks": [
        "Representative browser or input configurations may expose an unmet outcome."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-1"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0016",
        "NFR-0009"
      ],
      "task_ids": [
        "TASK-0086",
        "TASK-0087",
        "TASK-0088"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 3
      },
      "design_linked_task_count": 2,
      "non_visual_task_count": 1,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-9-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-9",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-9.yml",
              "item_id": "AEROSIM-FT-9",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-9-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "a69ae03f989f6147c263d8d9cb1408cb6426375a1de04115150f4b7a03387327"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-9-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-9",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-9",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-9-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-9",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-9-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-9.yml",
              "item_id": "AEROSIM-FT-9",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-9-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "e26b991cd6b1432c1ed3b1d7b8211f7decfe8bbe84e96f45dfdfb99f6ad78a27"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-9-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-9.yml",
            "item_id": "AEROSIM-FT-9",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-9-PORTFOLIO-0001"
          }
        ],
        "hash": "a69ae03f989f6147c263d8d9cb1408cb6426375a1de04115150f4b7a03387327"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-10",
      "title": "Experience Environmental Conditions Affecting Flight",
      "epic_id": "AEROSIM-EP-3",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-10/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-10.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Apply selected wind, visibility, and environmental conditions to aircraft and world",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Apply selected wind, visibility, and environmental conditions to aircraft and world",
      "user_problem_statement": "The player needs AeroSim to apply selected wind, visibility, and environmental conditions to aircraft and world.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Apply selected wind, visibility, and environmental conditions to aircraft and world",
      "acceptance_outcomes": [
        "Selected environmental conditions produce visible world and aircraft effects.",
        "The confirmed condition set remains consistent for the complete session."
      ],
      "risks": [
        "Representative browser or input configurations may expose an unmet outcome."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-1",
        "AEROSIM-FT-47"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0017",
        "NFR-0009"
      ],
      "task_ids": [
        "TASK-0076",
        "TASK-0077",
        "TASK-0078",
        "TASK-0079"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 4
      },
      "design_linked_task_count": 2,
      "non_visual_task_count": 2,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-10-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-10",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-10.yml",
              "item_id": "AEROSIM-FT-10",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-10-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "3528103dfe50aae33f0cdef21c75dcc3cc1c08a199c83edf2831cc8176d292ae"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-10-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-10",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-10",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-10-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-10",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-10-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-10.yml",
              "item_id": "AEROSIM-FT-10",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-10-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "a0cb76b8af10271e77a0fb557f3536f0486b61026d7f0d886ea0d5b5196afa8e"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-10-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-10.yml",
            "item_id": "AEROSIM-FT-10",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-10-PORTFOLIO-0001"
          }
        ],
        "hash": "3528103dfe50aae33f0cdef21c75dcc3cc1c08a199c83edf2831cc8176d292ae"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-11",
      "title": "Recover From or Conclude Invalid Flight States",
      "epic_id": "AEROSIM-EP-3",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-11/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-11.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Handle crashes, out-of-bounds states, and unrecoverable conditions clearly",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Handle crashes, out-of-bounds states, and unrecoverable conditions clearly",
      "user_problem_statement": "The player needs AeroSim to handle crashes, out-of-bounds states, and unrecoverable conditions clearly.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Handle crashes, out-of-bounds states, and unrecoverable conditions clearly",
      "acceptance_outcomes": [
        "Each governed crash, out-of-bounds, or unrecoverable state produces a clear outcome.",
        "Every invalid-state outcome offers only valid recovery, retry, or exit actions."
      ],
      "risks": [
        "Representative browser or input configurations may expose an unmet outcome."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-1",
        "AEROSIM-FT-2"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0018",
        "NFR-0009"
      ],
      "task_ids": [
        "TASK-0080",
        "TASK-0081",
        "TASK-0082"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 3
      },
      "design_linked_task_count": 2,
      "non_visual_task_count": 1,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-11-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-11",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-11.yml",
              "item_id": "AEROSIM-FT-11",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-11-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "0db78e6e443f5d5a436f1474bba752c4b47941211b784792c21d6fdf451f6d8f"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-11-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-11",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-11",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-11-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-11",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-11-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-11.yml",
              "item_id": "AEROSIM-FT-11",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-11-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "a2fa7c20791337eb27153e473943bf2a1211cea0de6faaf64e1c6f1431dcc1e3"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-11-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-11.yml",
            "item_id": "AEROSIM-FT-11",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-11-PORTFOLIO-0001"
          }
        ],
        "hash": "0db78e6e443f5d5a436f1474bba752c4b47941211b784792c21d6fdf451f6d8f"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-3",
      "title": "Control an Aircraft Continuously",
      "epic_id": "AEROSIM-EP-4",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-3/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-3.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Accept continuous player input throughout free flight",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Accept continuous player input throughout free flight",
      "user_problem_statement": "The player needs AeroSim to accept continuous player input throughout free flight.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Accept continuous player input throughout free flight",
      "acceptance_outcomes": [
        "Supported control inputs update the active aircraft continuously during free flight.",
        "Loss or change of input is shown and handled without silently transferring control."
      ],
      "risks": [
        "Prototype behaviour may not meet the current acceptance outcomes."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-1",
        "AEROSIM-FT-11"
      ],
      "question_ids": [
        "Q-0005",
        "Q-0006",
        "Q-0017"
      ],
      "requirement_ids": [
        "FR-0005",
        "FR-0006",
        "NFR-0001",
        "NFR-0003",
        "NFR-0005",
        "NFR-0006",
        "NFR-0010"
      ],
      "task_ids": [
        "TASK-0003",
        "TASK-0096"
      ],
      "adr_ids": [
        "ADR-0001"
      ],
      "task_status_counts": {
        "Done": 2
      },
      "design_linked_task_count": 2,
      "non_visual_task_count": 0,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-3-CLEAN-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-3",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-3.yml",
              "item_id": "AEROSIM-FT-3",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-3-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "e0cf8c38609ddfc142f833fbba4449c45d0ebef03c69d2823bac631bd184f6a8"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-3-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-3",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-3",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-3-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-3",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-3-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-3.yml",
              "item_id": "AEROSIM-FT-3",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-3-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "bf34811d9732efdc229d9f2d8a5ac6804664d63786f81454b0237e152579a78d"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-3-CLEAN-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-24T15:06:15.606Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-3.yml",
            "item_id": "AEROSIM-FT-3",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-3-CLEAN-0001"
          }
        ],
        "hash": "e0cf8c38609ddfc142f833fbba4449c45d0ebef03c69d2823bac631bd184f6a8"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-4",
      "title": "Understand Aircraft State and Control Response",
      "epic_id": "AEROSIM-EP-4",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-4/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-4.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Show the feedback needed to understand aircraft response",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Show the feedback needed to understand aircraft response",
      "user_problem_statement": "The player needs AeroSim to show the feedback needed to understand aircraft response.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Show the feedback needed to understand aircraft response",
      "acceptance_outcomes": [
        "Critical aircraft state and control response remain visible and update from authoritative flight state.",
        "The player can distinguish normal, warning, and invalid aircraft states during flight."
      ],
      "risks": [
        "Prototype behaviour may not meet the current acceptance outcomes."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-3"
      ],
      "question_ids": [
        "Q-0007",
        "Q-0008",
        "Q-0017"
      ],
      "requirement_ids": [
        "FR-0007",
        "FR-0008",
        "NFR-0001",
        "NFR-0003",
        "NFR-0005",
        "NFR-0006",
        "NFR-0010"
      ],
      "task_ids": [
        "TASK-0004",
        "TASK-0005",
        "TASK-0125"
      ],
      "adr_ids": [
        "ADR-0001"
      ],
      "task_status_counts": {
        "Done": 3
      },
      "design_linked_task_count": 1,
      "non_visual_task_count": 2,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-4-CLEAN-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-4",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-4.yml",
              "item_id": "AEROSIM-FT-4",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-4-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "81703a3b7311153861d939db4429d12e4203daf194563553a519a9fea9cc81fa"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-4-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-4",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-4",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-4-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-4",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-4-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-4.yml",
              "item_id": "AEROSIM-FT-4",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-4-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "961482504753d197b45e0be36aa91ee052c472750fc0180b2af71b6dc44bd40a"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-4-CLEAN-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-24T15:06:15.606Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-4.yml",
            "item_id": "AEROSIM-FT-4",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-4-CLEAN-0001"
          }
        ],
        "hash": "81703a3b7311153861d939db4429d12e4203daf194563553a519a9fea9cc81fa"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-5",
      "title": "End, Retry, or Restart a Flight Session",
      "epic_id": "AEROSIM-EP-4",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-5/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-5.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Conclude free flight and establish a known retry or restart state",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Conclude free flight and establish a known retry or restart state",
      "user_problem_statement": "The player needs AeroSim to conclude free flight and establish a known retry or restart state.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Conclude free flight and establish a known retry or restart state",
      "acceptance_outcomes": [
        "The player can deliberately end a flight and see its recorded outcome.",
        "Retry and restart each establish the documented known starting state."
      ],
      "risks": [
        "Prototype behaviour may not meet the current acceptance outcomes."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-3"
      ],
      "question_ids": [
        "Q-0009",
        "Q-0010"
      ],
      "requirement_ids": [
        "FR-0009",
        "NFR-0001",
        "NFR-0002",
        "NFR-0005",
        "NFR-0006",
        "NFR-0010"
      ],
      "task_ids": [
        "TASK-0006",
        "TASK-0097",
        "TASK-0142",
        "TASK-0156",
        "TASK-0159"
      ],
      "adr_ids": [
        "ADR-0001"
      ],
      "task_status_counts": {
        "Done": 5
      },
      "design_linked_task_count": 4,
      "non_visual_task_count": 1,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-5-CLEAN-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-5",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-5.yml",
              "item_id": "AEROSIM-FT-5",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-5-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "8363e5c9610f157c23f0b28ea9bbc26fa9c2c91e8c6db05d9a7863ec9af0cbc9"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-5-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-5",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-5",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-5-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-5",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-5-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-5.yml",
              "item_id": "AEROSIM-FT-5",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-5-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "1a810778113a0870716598ba20539b6734920fbb23d6aa12557a5e145e8907a1"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-5-CLEAN-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-24T15:06:15.606Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-5.yml",
            "item_id": "AEROSIM-FT-5",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-5-CLEAN-0001"
          }
        ],
        "hash": "8363e5c9610f157c23f0b28ea9bbc26fa9c2c91e8c6db05d9a7863ec9af0cbc9"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-12",
      "title": "Fly Using the Primary Chase Camera",
      "epic_id": "AEROSIM-EP-4",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-12/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-12.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Provide the primary full-screen chase-view flight experience",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Provide the primary full-screen chase-view flight experience",
      "user_problem_statement": "The player needs AeroSim to provide the primary full-screen chase-view flight experience.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Provide the primary full-screen chase-view flight experience",
      "acceptance_outcomes": [
        "The initial active-flight view is the chase camera and follows the controlled aircraft continuously.",
        "Aircraft, flight direction, and nearby hazards remain legible in the representative viewport."
      ],
      "risks": [
        "Representative browser or input configurations may expose an unmet outcome."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-3",
        "AEROSIM-FT-45"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0019",
        "NFR-0010"
      ],
      "task_ids": [
        "TASK-0089",
        "TASK-0090",
        "TASK-0126",
        "TASK-0140",
        "TASK-0155"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 5
      },
      "design_linked_task_count": 3,
      "non_visual_task_count": 2,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-12-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-12",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-12.yml",
              "item_id": "AEROSIM-FT-12",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-12-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "5de5af068d72ac87212c6aff7e7ae759ee151362192bbee4fe0fdd749440e90d"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-12-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-12",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-12",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-12-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-12",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-12-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-12.yml",
              "item_id": "AEROSIM-FT-12",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-12-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "632def2539c889f3185e3751ec395a9dd927645c4921ad727f8cf59f0d50cdb7"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-12-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-12.yml",
            "item_id": "AEROSIM-FT-12",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-12-PORTFOLIO-0001"
          }
        ],
        "hash": "5de5af068d72ac87212c6aff7e7ae759ee151362192bbee4fe0fdd749440e90d"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-13",
      "title": "Pause and Resume a Flight",
      "epic_id": "AEROSIM-EP-4",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-13/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-13.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Suspend active simulation and resume without losing context",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Suspend active simulation and resume without losing context",
      "user_problem_statement": "The player needs AeroSim to suspend active simulation and resume without losing context.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Suspend active simulation and resume without losing context",
      "acceptance_outcomes": [
        "Pause visibly suspends governed simulation progression.",
        "Resume continues from the preserved paused state without an implicit restart."
      ],
      "risks": [
        "Representative browser or input configurations may expose an unmet outcome."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-3"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0020",
        "NFR-0010"
      ],
      "task_ids": [
        "TASK-0091",
        "TASK-0092"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 2
      },
      "design_linked_task_count": 1,
      "non_visual_task_count": 1,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-13-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-13",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-13.yml",
              "item_id": "AEROSIM-FT-13",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-13-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "48fa88771c490e74bc8f28870599c7adee89d07a3779e956c1f3bca9354e95f3"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-13-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-13",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-13",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-13-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-13",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-13-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-13.yml",
              "item_id": "AEROSIM-FT-13",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-13-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "ffe65adc4097b6545273d52592e793d0252327e9019eedd00e88dc5aab5b18ea"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-13-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-13.yml",
            "item_id": "AEROSIM-FT-13",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-13-PORTFOLIO-0001"
          }
        ],
        "hash": "48fa88771c490e74bc8f28870599c7adee89d07a3779e956c1f3bca9354e95f3"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-14",
      "title": "Change to Secondary Camera Views",
      "epic_id": "AEROSIM-EP-4",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-14/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-14.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Change supported camera views without losing control continuity",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Change supported camera views without losing control continuity",
      "user_problem_statement": "The player needs AeroSim to change supported camera views without losing control continuity.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Change supported camera views without losing control continuity",
      "acceptance_outcomes": [
        "Each supported secondary camera is deliberately selectable during flight.",
        "Changing camera does not alter aircraft state or control ownership."
      ],
      "risks": [
        "Representative browser or input configurations may expose an unmet outcome."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-12"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0021",
        "NFR-0010"
      ],
      "task_ids": [
        "TASK-0093",
        "TASK-0094",
        "TASK-0095",
        "TASK-0151",
        "TASK-0161",
        "TASK-0163"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 6
      },
      "design_linked_task_count": 6,
      "non_visual_task_count": 0,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-14-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-14",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-14.yml",
              "item_id": "AEROSIM-FT-14",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-14-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "222c3d1c09e69d2d405ba11e29da2c4c5f2549e0e0582fdc598afee5bf5496c0"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-14-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-14",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-14",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-14-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-14",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-14-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-14.yml",
              "item_id": "AEROSIM-FT-14",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-14-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "c8495d6313f781ad06eb2b59dab423964df8b2affdfaa41ee4845376eba7fa6e"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-14-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-14.yml",
            "item_id": "AEROSIM-FT-14",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-14-PORTFOLIO-0001"
          }
        ],
        "hash": "222c3d1c09e69d2d405ba11e29da2c4c5f2549e0e0582fdc598afee5bf5496c0"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-6",
      "title": "Choose the Flying World",
      "epic_id": "AEROSIM-EP-5",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-6/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-6.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Select one supported world or terrain before flight",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Select one supported world or terrain before flight",
      "user_problem_statement": "The player needs AeroSim to select one supported world or terrain before flight.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Select one supported world or terrain before flight",
      "acceptance_outcomes": [
        "Each available world is identifiable before selection and resolves to one canonical terrain configuration.",
        "Launch loads exactly the world confirmed in pre-flight."
      ],
      "risks": [
        "Prototype behaviour may not meet the current acceptance outcomes."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-47"
      ],
      "question_ids": [
        "Q-0011"
      ],
      "requirement_ids": [
        "FR-0010",
        "FR-0011",
        "NFR-0001",
        "NFR-0005",
        "NFR-0006",
        "NFR-0011"
      ],
      "task_ids": [
        "TASK-0007",
        "TASK-0111",
        "TASK-0112",
        "TASK-0113",
        "TASK-0123",
        "TASK-0134"
      ],
      "adr_ids": [
        "ADR-0002"
      ],
      "task_status_counts": {
        "Done": 6
      },
      "design_linked_task_count": 2,
      "non_visual_task_count": 4,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-6-CLEAN-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-6",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-6.yml",
              "item_id": "AEROSIM-FT-6",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-6-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "268d5ac2acc8fc314f834a7420e8853de3057508c104fd62ccc2a8f08757821a"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-6-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-6",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-6",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-6-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-6",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-6-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-6.yml",
              "item_id": "AEROSIM-FT-6",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-6-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "15b5071f67f392a1c55e5048c977ca402dc29bb59e1bea57d6e1de140dfecaab"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-6-CLEAN-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-24T15:06:15.606Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-6.yml",
            "item_id": "AEROSIM-FT-6",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-6-CLEAN-0001"
          }
        ],
        "hash": "268d5ac2acc8fc314f834a7420e8853de3057508c104fd62ccc2a8f08757821a"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-7",
      "title": "Choose and Confirm the Aircraft for This Flight",
      "epic_id": "AEROSIM-EP-5",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-7/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-7.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Choose a supported aircraft for the planned flight and confirm its model and flight parameters.",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Choose a supported aircraft for the planned flight and confirm its model and flight parameters.",
      "user_problem_statement": "The player needs AeroSim to list supported aircraft, accept one flight selection, and apply its confirmed model and flight parameters.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Choose a supported aircraft for the planned flight and confirm its model and flight parameters.",
      "acceptance_outcomes": [
        "The player can list, choose, and confirm a supported aircraft for the planned flight.",
        "Launch applies the confirmed aircraft model and flight parameters."
      ],
      "risks": [
        "Prototype behaviour may not meet the current acceptance outcomes."
      ],
      "exclusions": [],
      "dependencies": [],
      "question_ids": [
        "Q-0012"
      ],
      "requirement_ids": [
        "FR-0012",
        "FR-0013",
        "NFR-0001",
        "NFR-0005",
        "NFR-0006",
        "NFR-0011"
      ],
      "task_ids": [
        "TASK-0008",
        "TASK-0114",
        "TASK-0115",
        "TASK-0116",
        "TASK-0122",
        "TASK-0133"
      ],
      "adr_ids": [
        "ADR-0002"
      ],
      "task_status_counts": {
        "Done": 6
      },
      "design_linked_task_count": 2,
      "non_visual_task_count": 4,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-7-CLEAN-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-7",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-7.yml",
              "item_id": "AEROSIM-FT-7",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-7-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "da4b177b245da1ebc0da296a8ad91398aea9df16a430bdd5010019f51fa633b7"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-7-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-7",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-7",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-7-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-7",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-7-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-7.yml",
              "item_id": "AEROSIM-FT-7",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-7-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "8238db4aee6f727910509075e84e226f8f05903154f99df9eab0367bba6e227e"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-7-CLEAN-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-24T15:06:15.606Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-7.yml",
            "item_id": "AEROSIM-FT-7",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-7-CLEAN-0001"
          }
        ],
        "hash": "da4b177b245da1ebc0da296a8ad91398aea9df16a430bdd5010019f51fa633b7"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-15",
      "title": "Choose Flight and Environmental Conditions",
      "epic_id": "AEROSIM-EP-5",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-15/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-15.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Select supported flight presets and environmental conditions",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Select supported flight presets and environmental conditions",
      "user_problem_statement": "The player needs AeroSim to select supported flight presets and environmental conditions.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Select supported flight presets and environmental conditions",
      "acceptance_outcomes": [
        "Supported flight and environmental conditions are distinguishable and selectable before launch.",
        "The launched session receives exactly the confirmed condition values."
      ],
      "risks": [
        "Representative browser or input configurations may expose an unmet outcome."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-10"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0022",
        "NFR-0011"
      ],
      "task_ids": [
        "TASK-0098",
        "TASK-0099",
        "TASK-0100",
        "TASK-0124",
        "TASK-0135"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 5
      },
      "design_linked_task_count": 2,
      "non_visual_task_count": 3,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-15-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-15",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-15.yml",
              "item_id": "AEROSIM-FT-15",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-15-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "437b2548fc8cf1bcdf826ba61990ca15e845c31cd406af0e5efb54763875b5f9"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-15-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-15",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-15",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-15-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-15",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-15-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-15.yml",
              "item_id": "AEROSIM-FT-15",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-15-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "dc33d25fa11ff22b767384a67defe2af8e0b6f8dba886856a1c249794235c177"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-15-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-15.yml",
            "item_id": "AEROSIM-FT-15",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-15-PORTFOLIO-0001"
          }
        ],
        "hash": "437b2548fc8cf1bcdf826ba61990ca15e845c31cd406af0e5efb54763875b5f9"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-16",
      "title": "Configure and Verify Flight Controls",
      "epic_id": "AEROSIM-EP-5",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-16/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-16.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Choose an input method and verify essential controls before launch",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Choose an input method and verify essential controls before launch",
      "user_problem_statement": "The player needs AeroSim to choose an input method and verify essential controls before launch.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Choose an input method and verify essential controls before launch",
      "acceptance_outcomes": [
        "The chosen input method exposes its required control mapping before launch.",
        "The player can verify essential input and receives a visible result for missing or invalid controls."
      ],
      "risks": [
        "Representative browser or input configurations may expose an unmet outcome."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-3"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0023",
        "NFR-0011"
      ],
      "task_ids": [
        "TASK-0101",
        "TASK-0102",
        "TASK-0103",
        "TASK-0104",
        "TASK-0153"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 5
      },
      "design_linked_task_count": 4,
      "non_visual_task_count": 1,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-16-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-16",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-16.yml",
              "item_id": "AEROSIM-FT-16",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-16-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "2e5b9b08fba70ed9b29843e64e7e5e9c2c7a437c4a6dc78c2be5f34b8e041e9e"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-16-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-16",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-16",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-16-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-16",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-16-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-16.yml",
              "item_id": "AEROSIM-FT-16",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-16-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "a99fe7010dc6cd035859eb5c93641bf903e6f7a8dd0e2d0d8ef02ea48297e928"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-16-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-16.yml",
            "item_id": "AEROSIM-FT-16",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-16-PORTFOLIO-0001"
          }
        ],
        "hash": "2e5b9b08fba70ed9b29843e64e7e5e9c2c7a437c4a6dc78c2be5f34b8e041e9e"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-17",
      "title": "Select the Initial Camera",
      "epic_id": "AEROSIM-EP-5",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-17/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-17.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Choose the supported camera active when flight begins",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Choose the supported camera active when flight begins",
      "user_problem_statement": "The player needs AeroSim to choose the supported camera active when flight begins.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Choose the supported camera active when flight begins",
      "acceptance_outcomes": [
        "Every supported initial camera is selectable in pre-flight.",
        "The launched session starts with the confirmed camera."
      ],
      "risks": [
        "Representative browser or input configurations may expose an unmet outcome."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-12"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0024",
        "NFR-0011"
      ],
      "task_ids": [
        "TASK-0105",
        "TASK-0106",
        "TASK-0107",
        "TASK-0136",
        "TASK-0147",
        "TASK-0149",
        "TASK-0171"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 6,
        "ToBeReleased": 1
      },
      "design_linked_task_count": 7,
      "non_visual_task_count": 0,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-17-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-17",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-17.yml",
              "item_id": "AEROSIM-FT-17",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-17-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "184627c4a697ffc721dd8c8ec22485a1690b372344e6b7512c342163a8845dbe"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-17-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-17",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-17",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-17-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-17",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-17-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-17.yml",
              "item_id": "AEROSIM-FT-17",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-17-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "8f58f39e14934f0090b3cb045e54b05753a3d6fbcbfa8fd74514458e61fb33b8"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-17-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-17.yml",
            "item_id": "AEROSIM-FT-17",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-17-PORTFOLIO-0001"
          }
        ],
        "hash": "184627c4a697ffc721dd8c8ec22485a1690b372344e6b7512c342163a8845dbe"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-18",
      "title": "Review the Pre-Flight Summary and Launch",
      "epic_id": "AEROSIM-EP-5",
      "status": "Proposed",
      "owner": "AeroSim Scope",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-18/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-18.yml",
      "user_story": {
        "actor": "An AeroSim player",
        "capability": "Review the complete setup and deliberately launch one session",
        "benefit": "The player receives one coherent, observable capability."
      },
      "summary": "Review the complete setup and deliberately launch one session",
      "user_problem_statement": "The player needs AeroSim to review the complete setup and deliberately launch one session.",
      "value": "The player receives one coherent, observable capability.",
      "scope": "Review the complete setup and deliberately launch one session",
      "acceptance_outcomes": [
        "The summary shows aircraft, world, conditions, controls, and initial camera from canonical selections.",
        "One deliberate launch action creates one session from that displayed configuration."
      ],
      "risks": [
        "Representative browser or input configurations may expose an unmet outcome."
      ],
      "exclusions": [],
      "dependencies": [
        "AEROSIM-FT-6",
        "AEROSIM-FT-7",
        "AEROSIM-FT-15",
        "AEROSIM-FT-16",
        "AEROSIM-FT-17"
      ],
      "question_ids": [],
      "requirement_ids": [
        "FR-0025",
        "NFR-0011"
      ],
      "task_ids": [
        "TASK-0108",
        "TASK-0109",
        "TASK-0110",
        "TASK-0127",
        "TASK-0137",
        "TASK-0138"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 6
      },
      "design_linked_task_count": 6,
      "non_visual_task_count": 0,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
          "description": "Agreed eight-Epic portfolio and Feature decomposition."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
          "description": "Agreed eight-Epic portfolio and Feature decomposition continuation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
          "description": "RootAtSkic directed publication of the agreed Scope update."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-18-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-18",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-18.yml",
              "item_id": "AEROSIM-FT-18",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-18-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "00c9fd3fc9ebea4092b0048356afb4ada76e9a1ca14a7f0e33c845f88c0f2744"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-18-PORTFOLIO-0001",
          "sequence": 1,
          "item_id": "AEROSIM-FT-18",
          "label": "Scope definition revised",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-28T06:00:47.327Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
              "description": "Eight-Epic portfolio and Feature definition source.",
              "item_id": "AEROSIM-FT-18",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-18-PORTFOLIO-0001"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
              "description": "RootAtSkic publication direction.",
              "item_id": "AEROSIM-FT-18",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-18-PORTFOLIO-0001"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-18.yml",
              "item_id": "AEROSIM-FT-18",
              "state": "Proposed",
              "event_id": "DEF-AEROSIM-FT-18-PORTFOLIO-0001"
            }
          ],
          "previous_hash": null,
          "hash": "6babe966c2c5b6902c7fa03de01e735be2a4cd5e9c60d6086ab0d80e62fc6ce0"
        }
      ],
      "approval": null,
      "implementation_approval": null,
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-18-PORTFOLIO-0001",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-08-28T06:00:47.327Z",
        "state": "Proposed",
        "conditions": [],
        "evidence": [
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-18.yml",
            "item_id": "AEROSIM-FT-18",
            "state": "Proposed",
            "event_id": "EVT-AEROSIM-FT-18-PORTFOLIO-0001"
          }
        ],
        "hash": "00c9fd3fc9ebea4092b0048356afb4ada76e9a1ca14a7f0e33c845f88c0f2744"
      },
      "simulated_panel_recommendation": "RETURN for exact-item human scope and architecture disposition."
    },
    {
      "id": "AEROSIM-FT-53",
      "title": "Promote and verify AeroSim Release 1.0.0",
      "epic_id": "AEROSIM-EP-9",
      "status": "Approved for Solution",
      "owner": "AeroSim Releases",
      "documentation_url": "/scope/epics/aerosim-ep-9/aerosim-ft-53/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/features/AEROSIM-FT-53.yml",
      "user_story": {
        "actor": "The AeroSim release team",
        "capability": "Promote one immutable, reviewed Release 1.0.0 candidate and verify its production result.",
        "benefit": "Release execution is exact, approval-gated, observable, and reversible."
      },
      "summary": "Freeze the exact Release 1.0.0 candidate, publish the operational plan, prepare the reviewed GitOps change, and execute approval-gated deployment and closure.",
      "user_problem_statement": "Release operators need one governed package that joins immutable candidate identity, accurate release notes, review-only GitOps preparation, separate deployment approval, runtime acceptance, rollback evidence, and canonical closure.",
      "value": "One exact release package prevents unreviewed artifact drift, inferred deployment, and premature lifecycle closure.",
      "scope": "Release-management work for AeroSim 1.0.0 from immutable-candidate freeze through approval-gated production verification and canonical Task closure; no deployment occurs from this documentation change.",
      "acceptance_outcomes": [
        "One immutable candidate binds application source, Harbor digests, chart, template, rendered GitOps revision, and mismatch rejection.",
        "Release notes and the operational plan reconcile all 162 Tasks in the governed Release 1.0.0 Feature inventory, readiness, migration, compatibility, rollback, capacity, risk, owners, and acceptance criteria.",
        "A reviewed GitOps deployment change binds exact candidate references and passes authoritative render, repository, pull-request, and check gates without merge or deployment.",
        "Separate exact-head approval precedes GitOps reconciliation, runtime acceptance, rollback evidence, and append-only Task and parent closure."
      ],
      "risks": [
        "Mutable or mismatched source, image, chart, template, or rendered references could deploy a candidate that was not reviewed.",
        "Treating documentation, CI, artifact publication, PR creation, or merge as deployment evidence could close the release prematurely."
      ],
      "exclusions": [],
      "dependencies": [],
      "question_ids": [],
      "requirement_ids": [
        "FR-0059",
        "NFR-0007"
      ],
      "task_ids": [
        "TASK-0129",
        "TASK-0130",
        "TASK-0131",
        "TASK-0132",
        "TASK-0145"
      ],
      "adr_ids": [],
      "task_status_counts": {
        "Done": 5
      },
      "design_linked_task_count": 1,
      "non_visual_task_count": 0,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337",
          "description": "RootAtSkic approved the dedicated release hierarchy, implementation planning, and exact Wave 30 admission."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-AEROSIM-FT-53-PROPOSED-20260914",
          "sequence": 1,
          "item_id": "AEROSIM-FT-53",
          "from_state": null,
          "to_state": "Proposed",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-14T07:59:57.086Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337",
              "item_id": "AEROSIM-FT-53",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-53-PROPOSED-20260914"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-53.yml",
              "item_id": "AEROSIM-FT-53",
              "state": "Proposed",
              "event_id": "EVT-AEROSIM-FT-53-PROPOSED-20260914"
            }
          ],
          "previous_hash": null,
          "hash": "71315c34b1a7c987ff281791e925a91a29822d77a5fd95e507ded53ede20f976"
        },
        {
          "event_id": "EVT-AEROSIM-FT-53-APPROVED-20260914",
          "sequence": 2,
          "item_id": "AEROSIM-FT-53",
          "from_state": "Proposed",
          "to_state": "Approved for Solution",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-14T07:59:57.086Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337",
              "item_id": "AEROSIM-FT-53",
              "state": "Approved for Solution",
              "event_id": "EVT-AEROSIM-FT-53-APPROVED-20260914"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-53.yml",
              "item_id": "AEROSIM-FT-53",
              "state": "Approved for Solution",
              "event_id": "EVT-AEROSIM-FT-53-APPROVED-20260914"
            }
          ],
          "previous_hash": "71315c34b1a7c987ff281791e925a91a29822d77a5fd95e507ded53ede20f976",
          "hash": "dcac88ed884a30ce5098acd8405a00593dd2f78e2f2ebc79e0cbd7b51de06da1"
        }
      ],
      "definition_history": [
        {
          "event_id": "DEF-AEROSIM-FT-53-RELEASE-20260914",
          "sequence": 1,
          "item_id": "AEROSIM-FT-53",
          "label": "Complete Release 1.0.0 promotion and verification solution approved",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-14T07:59:57.086Z",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337",
              "description": "RootAtSkic required the dedicated release Feature, implementation plan, and four Wave 30 Tasks.",
              "item_id": "AEROSIM-FT-53",
              "state": "Approved for Solution",
              "event_id": "DEF-AEROSIM-FT-53-RELEASE-20260914"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/features/AEROSIM-FT-53.yml",
              "item_id": "AEROSIM-FT-53",
              "state": "Approved for Solution",
              "event_id": "DEF-AEROSIM-FT-53-RELEASE-20260914"
            }
          ],
          "previous_hash": null,
          "hash": "ea54ec7ab7e0257945e6b75099d9e4fb6063e0f87b1a5656d80d5d733dbafbdf"
        }
      ],
      "approval": {
        "item_id": "AEROSIM-FT-53",
        "state": "Approved for Solution",
        "event_id": "APPROVAL-AEROSIM-FT-53-SOLUTION-20260914",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-14T07:59:57.086Z",
        "conditions": [],
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337",
            "item_id": "AEROSIM-FT-53",
            "state": "Approved for Solution",
            "event_id": "EVT-AEROSIM-FT-53-APPROVED-20260914"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-53.yml",
            "item_id": "AEROSIM-FT-53",
            "state": "Approved for Solution",
            "event_id": "EVT-AEROSIM-FT-53-APPROVED-20260914"
          }
        ],
        "hash": "6a2b8a2dfe1801e1afadc52311af3752d50fd3a23064fc263ce42266b12495ee"
      },
      "implementation_approval": {
        "item_id": "AEROSIM-FT-53",
        "state": "Approved for Implementation",
        "event_id": "APPROVAL-AEROSIM-FT-53-IMPLEMENTATION-20260914",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-14T07:59:57.086Z",
        "conditions": [
          "Add exactly TASK-0129 through TASK-0132 as sibling Wave 30 Tasks.",
          "Do not merge a GitOps pull request or deploy from the documentation change."
        ],
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337",
            "item_id": "AEROSIM-FT-53",
            "state": "Approved for Implementation",
            "event_id": "APPROVAL-AEROSIM-FT-53-IMPLEMENTATION-20260914"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-53.yml",
            "item_id": "AEROSIM-FT-53",
            "state": "Approved for Implementation",
            "event_id": "APPROVAL-AEROSIM-FT-53-IMPLEMENTATION-20260914"
          }
        ],
        "hash": "a59daa033843e6c8e4fe433c9e0172843dbcceacedf750ec6518c60aba7fc43d"
      },
      "latest_decision": {
        "event_id": "EVT-AEROSIM-FT-53-APPROVED-20260914",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority": "Human",
        "date": "2026-09-14T07:59:57.086Z",
        "state": "Approved for Solution",
        "conditions": [],
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337",
            "item_id": "AEROSIM-FT-53",
            "state": "Approved for Solution",
            "event_id": "EVT-AEROSIM-FT-53-APPROVED-20260914"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/features/AEROSIM-FT-53.yml",
            "item_id": "AEROSIM-FT-53",
            "state": "Approved for Solution",
            "event_id": "EVT-AEROSIM-FT-53-APPROVED-20260914"
          }
        ],
        "hash": "dcac88ed884a30ce5098acd8405a00593dd2f78e2f2ebc79e0cbd7b51de06da1"
      },
      "simulated_panel_recommendation": "CONDITIONALLY ACKNOWLEDGE recorded solution approval; retain release gates."
    }
  ],
  "questions": [
    {
      "id": "Q-0016",
      "title": "Supported desktop browsers",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-1",
      "documentation_url": "/scope/epics/aerosim-ep-1/questions/q-0016/",
      "question": "Which desktop browsers and version window should AeroSim 1.0.0 certify?",
      "answer": "AeroSim 1.0.0 supports the current and previous major desktop releases of Chrome, Edge, Firefox, Brave, and Vivaldi. Brave and Vivaldi are explicitly certified rather than inferred from Chromium compatibility. Safari certification is deferred from 1.0.0. The architecture must publish the exact operating-system, browser-version, WebGL, audio, input, identity, and performance verification matrix before solution approval.",
      "affects_ids": [
        "AEROSIM-EP-1",
        "AEROSIM-FT-41",
        "AEROSIM-FT-45",
        "AEROSIM-FT-50",
        "AEROSIM-FT-51"
      ],
      "blocks": "The answer constrains frontend, rendering, identity, input, compatibility, and validation architecture.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
          "description": "Engineering foundation source for the frontend, rendering, identity, and validation Features."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0016-BROWSERS-OPEN-0001",
          "sequence": 1,
          "item_id": "Q-0016",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T19:42:44.000Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0016.yml",
              "item_id": "Q-0016",
              "state": "Open",
              "event_id": "EVT-Q-0016-BROWSERS-OPEN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "cda3bf46c09de99f64db10796c3eef8162bdad2847a0199276c4acd99d3986f2"
        },
        {
          "event_id": "EVT-Q-0016-BROWSERS-ANSWERED-0002",
          "sequence": 2,
          "item_id": "Q-0016",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T19:42:44.000Z",
          "answer": "AeroSim 1.0.0 supports the current and previous major desktop releases of Chrome, Edge, Firefox, Brave, and Vivaldi. Brave and Vivaldi are explicitly certified rather than inferred from Chromium compatibility. Safari certification is deferred from 1.0.0. The architecture must publish the exact operating-system, browser-version, WebGL, audio, input, identity, and performance verification matrix before solution approval.",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0016.yml",
              "item_id": "Q-0016",
              "state": "Answered",
              "event_id": "EVT-Q-0016-BROWSERS-ANSWERED-0002"
            }
          ],
          "previous_hash": "cda3bf46c09de99f64db10796c3eef8162bdad2847a0199276c4acd99d3986f2",
          "hash": "5a05739f1eb83457e4571d5f8231d1d685b9efa51b54a31ede416beb1b745455"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0016.yml"
    },
    {
      "id": "Q-0015",
      "title": "Release performance baseline",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-1",
      "documentation_url": "/scope/epics/aerosim-ep-1/questions/q-0015/",
      "question": "Which desktop resolution, frame-rate target, bounded minimum, and quality-control strategy should govern AeroSim 1.0.0?",
      "answer": "AeroSim 1.0.0 targets 60 frames per second at 1920×1080 on a declared mid-range desktop reference baseline during ordinary flight. Bounded heavy-scene intervals may fall to a 30 frames per second minimum. The product provides quality presets. The architecture must define exact reference hardware, supported browser versions, scene workloads, sampling windows, and percentile/pass criteria before solution approval.",
      "affects_ids": [
        "AEROSIM-EP-1",
        "AEROSIM-FT-45",
        "AEROSIM-FT-47",
        "AEROSIM-FT-48",
        "AEROSIM-FT-51"
      ],
      "blocks": "The answer constrains rendering, terrain, asset-budget, validation, and measurable performance architecture.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
          "description": "Engineering foundation source for the runtime, terrain, asset, and validation Features."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0015-PERFORMANCE-OPEN-0001",
          "sequence": 1,
          "item_id": "Q-0015",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T19:30:35.000Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0015.yml",
              "item_id": "Q-0015",
              "state": "Open",
              "event_id": "EVT-Q-0015-PERFORMANCE-OPEN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "62be6d03a1d5a9336b36e9d7996c6248eb8a0f1fc5a91d96673227df782ccb59"
        },
        {
          "event_id": "EVT-Q-0015-PERFORMANCE-ANSWERED-0002",
          "sequence": 2,
          "item_id": "Q-0015",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T19:30:35.000Z",
          "answer": "AeroSim 1.0.0 targets 60 frames per second at 1920×1080 on a declared mid-range desktop reference baseline during ordinary flight. Bounded heavy-scene intervals may fall to a 30 frames per second minimum. The product provides quality presets. The architecture must define exact reference hardware, supported browser versions, scene workloads, sampling windows, and percentile/pass criteria before solution approval.",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0015.yml",
              "item_id": "Q-0015",
              "state": "Answered",
              "event_id": "EVT-Q-0015-PERFORMANCE-ANSWERED-0002"
            }
          ],
          "previous_hash": "62be6d03a1d5a9336b36e9d7996c6248eb8a0f1fc5a91d96673227df782ccb59",
          "hash": "bf343fc46a2535a059c6a2b6673f286ef69a5222406aa1d1614d75511c39761e"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0015.yml"
    },
    {
      "id": "Q-0014",
      "title": "Initial 3D asset sourcing strategy",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-1",
      "documentation_url": "/scope/epics/aerosim-ep-1/questions/q-0014/",
      "question": "Which source and licensing strategy should govern the initial aircraft, terrain, and scene assets while preserving a path for original AeroSim-authored assets?",
      "answer": "AeroSim 1.0.0 sources the majority of runtime aircraft, terrain, and scene assets from CC0 or otherwise permissively licensed sources, with mandatory source, licence, attribution, and provenance metadata. The asset pipeline also accepts AeroSim-authored assets through the same glTF/GLB import, optimisation, budget, validation, and runtime contracts so original assets can be introduced incrementally. Release 1.0.0 does not require the majority of assets to be created from scratch.",
      "affects_ids": [
        "AEROSIM-EP-1",
        "AEROSIM-FT-48"
      ],
      "blocks": "The answer constrains 3D asset pipeline architecture, acceptance, sourcing, and delivery decomposition.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
          "description": "Engineering foundation source for the governed 3D asset pipeline Feature."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0014-ASSET-SOURCING-OPEN-0001",
          "sequence": 1,
          "item_id": "Q-0014",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T19:14:46.000Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0014.yml",
              "item_id": "Q-0014",
              "state": "Open",
              "event_id": "EVT-Q-0014-ASSET-SOURCING-OPEN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "4ac5a39518f2eb913f2692a0377cf8fd70a4546812f0ce1b30604012ed569588"
        },
        {
          "event_id": "EVT-Q-0014-ASSET-SOURCING-ANSWERED-0002",
          "sequence": 2,
          "item_id": "Q-0014",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T19:14:46.000Z",
          "answer": "AeroSim 1.0.0 sources the majority of runtime aircraft, terrain, and scene assets from CC0 or otherwise permissively licensed sources, with mandatory source, licence, attribution, and provenance metadata. The asset pipeline also accepts AeroSim-authored assets through the same glTF/GLB import, optimisation, budget, validation, and runtime contracts so original assets can be introduced incrementally. Release 1.0.0 does not require the majority of assets to be created from scratch.",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0014.yml",
              "item_id": "Q-0014",
              "state": "Answered",
              "event_id": "EVT-Q-0014-ASSET-SOURCING-ANSWERED-0002"
            }
          ],
          "previous_hash": "4ac5a39518f2eb913f2692a0377cf8fd70a4546812f0ce1b30604012ed569588",
          "hash": "db9bfd8af57993153a275c94046c29369f6f313a036e0d120447ab43d8d8fb26"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0014.yml"
    },
    {
      "id": "Q-0001",
      "title": "Flight-force fidelity",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-3",
      "documentation_url": "/scope/epics/aerosim-ep-3/questions/q-0001/",
      "question": "What measurable force-model fidelity makes aircraft motion believable?",
      "answer": "AeroSim 1.0.0 uses arcade fidelity: lift, drag, thrust, and gravity must produce qualitatively correct, continuous, stable, and deterministic aircraft responses, without real-aircraft performance-envelope or training-grade claims.",
      "affects_ids": [
        "AEROSIM-EP-3",
        "AEROSIM-FT-1"
      ],
      "blocks": "The answer constrains current acceptance outcomes or Architecture derivation.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0001-CLEAN-0001",
          "sequence": 1,
          "item_id": "Q-0001",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0001.yml",
              "item_id": "Q-0001",
              "state": "Open",
              "event_id": "EVT-Q-0001-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "983972524d03ea25ae9db06e87ec8f2c6e9b262e44c6488316372d11c529e9a7"
        },
        {
          "event_id": "EVT-Q-0001-ARCADE-0002",
          "sequence": 2,
          "item_id": "Q-0001",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T09:26:36.000Z",
          "answer": "AeroSim 1.0.0 uses arcade fidelity: lift, drag, thrust, and gravity must produce qualitatively correct, continuous, stable, and deterministic aircraft responses, without real-aircraft performance-envelope or training-grade claims.",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544275687672651827",
              "description": "RootAtSkic selected arcade fidelity for AeroSim 1.0.0.",
              "item_id": "Q-0001",
              "state": "Answered",
              "event_id": "EVT-Q-0001-ARCADE-0002"
            }
          ],
          "previous_hash": "983972524d03ea25ae9db06e87ec8f2c6e9b262e44c6488316372d11c529e9a7",
          "hash": "7c52a45855b5ff6ec4a6c87bb38d171237f826fb8c92de79516d82d2f787dddd"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0001.yml"
    },
    {
      "id": "Q-0002",
      "title": "Force and aircraft parameter boundaries",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-3",
      "documentation_url": "/scope/epics/aerosim-ep-3/questions/q-0002/",
      "question": "Which lift, drag, thrust, gravity, mass, and inertia ranges are supported?",
      "answer": "AeroSim 1.0.0 uses bounded normalized gameplay parameters and named tuning ranges per supported aircraft archetype, rather than SI or aircraft-specific physical envelopes. Configurability per Pilot Profile and Flight session is tracked separately by AEROSIM-IDEA-4.",
      "affects_ids": [
        "AEROSIM-EP-3",
        "AEROSIM-FT-1"
      ],
      "blocks": "The answer constrains current acceptance outcomes or Architecture derivation.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0002-CLEAN-0001",
          "sequence": 1,
          "item_id": "Q-0002",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0002.yml",
              "item_id": "Q-0002",
              "state": "Open",
              "event_id": "EVT-Q-0002-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "401cb02da82cd2c46d8c5f493b75708c17520b0cc49db27a14977b81abc4ec94"
        },
        {
          "event_id": "EVT-Q-0002-NORMALIZED-0002",
          "sequence": 2,
          "item_id": "Q-0002",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T09:26:36.000Z",
          "answer": "AeroSim 1.0.0 uses bounded normalized gameplay parameters and named tuning ranges per supported aircraft archetype, rather than SI or aircraft-specific physical envelopes. Configurability per Pilot Profile and Flight session is tracked separately by AEROSIM-IDEA-4.",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544278466243854398",
              "description": "RootAtSkic selected normalized gameplay parameters and requested a separate Idea for per-pilot and per-session configurability.",
              "item_id": "Q-0002",
              "state": "Answered",
              "event_id": "EVT-Q-0002-NORMALIZED-0002"
            }
          ],
          "previous_hash": "401cb02da82cd2c46d8c5f493b75708c17520b0cc49db27a14977b81abc4ec94",
          "hash": "e01be4837dac44843511c419a34115db139747159935b05a46936389bff0a76d"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0002.yml"
    },
    {
      "id": "Q-0018",
      "title": "Cross-browser simulation determinism",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-3",
      "documentation_url": "/scope/epics/aerosim-ep-3/questions/q-0018/",
      "question": "Which simulation-determinism contract should govern AeroSim 1.0.0 across certified browsers?",
      "answer": "AeroSim 1.0.0 requires equivalent outcomes and state traces within architecture-defined numeric tolerances across all certified browsers when the application build, initial state, timed input sequence, fixed simulation timestep, and random seed are identical. Bit-for-bit identity is not required. The architecture must define tolerances for governed state variables, maximum accumulated drift, comparison duration, trace sampling, and pass/fail criteria before solution approval.",
      "affects_ids": [
        "AEROSIM-EP-3",
        "AEROSIM-FT-1",
        "AEROSIM-FT-2"
      ],
      "blocks": "The answer constrains flight physics, world interaction, replayable traces, and cross-browser verification architecture.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544456037006835753",
          "description": "RootAtSkic selected tolerance-based determinism across all certified browsers."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0018-DETERMINISM-OPEN-0001",
          "sequence": 1,
          "item_id": "Q-0018",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T21:17:53.000Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0018.yml",
              "item_id": "Q-0018",
              "state": "Open",
              "event_id": "EVT-Q-0018-DETERMINISM-OPEN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "03cdc90b53e0c109f3045be9284a5695860aaa130b640a3b24d62087da4da96b"
        },
        {
          "event_id": "EVT-Q-0018-DETERMINISM-ANSWERED-0002",
          "sequence": 2,
          "item_id": "Q-0018",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T21:17:53.000Z",
          "answer": "AeroSim 1.0.0 requires equivalent outcomes and state traces within architecture-defined numeric tolerances across all certified browsers when the application build, initial state, timed input sequence, fixed simulation timestep, and random seed are identical. Bit-for-bit identity is not required. The architecture must define tolerances for governed state variables, maximum accumulated drift, comparison duration, trace sampling, and pass/fail criteria before solution approval.",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0018.yml",
              "item_id": "Q-0018",
              "state": "Answered",
              "event_id": "EVT-Q-0018-DETERMINISM-ANSWERED-0002"
            }
          ],
          "previous_hash": "03cdc90b53e0c109f3045be9284a5695860aaa130b640a3b24d62087da4da96b",
          "hash": "3ea6f9e2d137c0480ffd67b5680c85eb2b12651e584fb444c800b0f48518e75f"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0018.yml"
    },
    {
      "id": "Q-0003",
      "title": "Ground and collision response",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-3",
      "documentation_url": "/scope/epics/aerosim-ep-3/questions/q-0003/",
      "question": "What ground-contact and collision responses are required?",
      "answer": "AeroSim 1.0.0 uses threshold-based outcomes: controlled terrain contact within configured bounded arcade limits permits landing or ground roll; unsafe terrain contact or collision with a solid world object ends the Flight session. Component damage, deformation, and persistent aircraft damage are excluded.",
      "affects_ids": [
        "AEROSIM-EP-3",
        "AEROSIM-FT-2"
      ],
      "blocks": "The answer constrains current acceptance outcomes or Architecture derivation.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0003-CLEAN-0001",
          "sequence": 1,
          "item_id": "Q-0003",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0003.yml",
              "item_id": "Q-0003",
              "state": "Open",
              "event_id": "EVT-Q-0003-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "c8aa186f560f9fdac226dbefb98790502b34cc9be65137c14745dc83382624bc"
        },
        {
          "event_id": "EVT-Q-0003-THRESHOLD-0002",
          "sequence": 2,
          "item_id": "Q-0003",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T12:40:00.000Z",
          "answer": "AeroSim 1.0.0 uses threshold-based outcomes: controlled terrain contact within configured bounded arcade limits permits landing or ground roll; unsafe terrain contact or collision with a solid world object ends the Flight session. Component damage, deformation, and persistent aircraft damage are excluded.",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544326308786344027",
              "description": "RootAtSkic selected threshold-based ground-contact and collision outcomes for AeroSim 1.0.0.",
              "item_id": "Q-0003",
              "state": "Answered",
              "event_id": "EVT-Q-0003-THRESHOLD-0002"
            }
          ],
          "previous_hash": "c8aa186f560f9fdac226dbefb98790502b34cc9be65137c14745dc83382624bc",
          "hash": "4aca332963eefaa028c61bb4a9e27b621028cb9f9fb698043d306ea2e6894e2a"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0003.yml"
    },
    {
      "id": "Q-0004",
      "title": "World limits and recovery",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-3",
      "documentation_url": "/scope/epics/aerosim-ep-3/questions/q-0004/",
      "question": "What world boundaries apply and how can a pilot recover?",
      "answer": "AeroSim 1.0.0 uses a warning zone and recovery reset: each Flight session defines bounded horizontal and altitude limits; approaching a limit shows a clear warning, a grace zone allows return, and crossing the hard limit resets the aircraft to its last safe state or configured recovery point. Repeated or unrecoverable violations may end the session. Endless-world streaming is excluded.",
      "affects_ids": [
        "AEROSIM-EP-3",
        "AEROSIM-FT-2"
      ],
      "blocks": "The answer constrains current acceptance outcomes or Architecture derivation.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0004-CLEAN-0001",
          "sequence": 1,
          "item_id": "Q-0004",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0004.yml",
              "item_id": "Q-0004",
              "state": "Open",
              "event_id": "EVT-Q-0004-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "4bd389c42310daf1909542fed9ecaf9b247f75f378f6ea25e740c6b86cd07586"
        },
        {
          "event_id": "EVT-Q-0004-RECOVERY-0002",
          "sequence": 2,
          "item_id": "Q-0004",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T12:42:34.000Z",
          "answer": "AeroSim 1.0.0 uses a warning zone and recovery reset: each Flight session defines bounded horizontal and altitude limits; approaching a limit shows a clear warning, a grace zone allows return, and crossing the hard limit resets the aircraft to its last safe state or configured recovery point. Repeated or unrecoverable violations may end the session. Endless-world streaming is excluded.",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544326925747626035",
              "description": "RootAtSkic selected warning, grace-zone, and recovery-reset behaviour for AeroSim 1.0.0 world limits.",
              "item_id": "Q-0004",
              "state": "Answered",
              "event_id": "EVT-Q-0004-RECOVERY-0002"
            }
          ],
          "previous_hash": "4bd389c42310daf1909542fed9ecaf9b247f75f378f6ea25e740c6b86cd07586",
          "hash": "0968c2a00cfd8bc85d893735b4fc3989c3bb42f53fcadcb909c882da15a5ddbc"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0004.yml"
    },
    {
      "id": "Q-0005",
      "title": "Supported control inputs",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-4",
      "documentation_url": "/scope/epics/aerosim-ep-4/questions/q-0005/",
      "question": "Which keyboard, pointer, touch, and controller inputs are supported?",
      "answer": "AeroSim 1.0.0 is desktop-first with gamepad support: keyboard input is required for aircraft actions and essential commands; mouse or trackpad input supports menus, camera/look, and pointer interaction; standard controllers use the browser Gamepad API with dead-zone and sensitivity configuration; keyboard remains the fallback after controller disconnect. Touch flight controls are deferred.",
      "affects_ids": [
        "AEROSIM-EP-4",
        "AEROSIM-FT-3"
      ],
      "blocks": "The answer constrains current acceptance outcomes or Architecture derivation.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0005-CLEAN-0001",
          "sequence": 1,
          "item_id": "Q-0005",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0005.yml",
              "item_id": "Q-0005",
              "state": "Open",
              "event_id": "EVT-Q-0005-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "81b04dda006c6ab721704a541042363e1237a92c88bc6eaea3b6414fa62e762d"
        },
        {
          "event_id": "EVT-Q-0005-DESKTOP-GAMEPAD-0002",
          "sequence": 2,
          "item_id": "Q-0005",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T12:44:24.000Z",
          "answer": "AeroSim 1.0.0 is desktop-first with gamepad support: keyboard input is required for aircraft actions and essential commands; mouse or trackpad input supports menus, camera/look, and pointer interaction; standard controllers use the browser Gamepad API with dead-zone and sensitivity configuration; keyboard remains the fallback after controller disconnect. Touch flight controls are deferred.",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544327376945545237",
              "description": "RootAtSkic selected desktop keyboard/pointer plus standard Gamepad API controller support, with touch deferred.",
              "item_id": "Q-0005",
              "state": "Answered",
              "event_id": "EVT-Q-0005-DESKTOP-GAMEPAD-0002"
            }
          ],
          "previous_hash": "81b04dda006c6ab721704a541042363e1237a92c88bc6eaea3b6414fa62e762d",
          "hash": "bf7530e5a79a488d6ebdaa0c2e5099fad1682d576553c9ff0c6ea90330858d6f"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0005.yml"
    },
    {
      "id": "Q-0006",
      "title": "Control sensitivity and assistance",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-4",
      "documentation_url": "/scope/epics/aerosim-ep-4/questions/q-0006/",
      "question": "What sensitivity, dead-zone, and assistance settings are required?",
      "answer": "AeroSim 1.0.0 provides configurable essentials with limited assistance: per-device sensitivity, relevant per-axis inversion, controller dead zones, and input smoothing, with Off and Assisted modes. Assisted mode may provide gentle wings-level recovery after neutral input, but does not fly the route or prevent deliberate manoeuvres. Pilot Profile values are defaults that a Flight session may override without changing the stored defaults.",
      "affects_ids": [
        "AEROSIM-EP-4",
        "AEROSIM-FT-3"
      ],
      "blocks": "The answer constrains current acceptance outcomes or Architecture derivation.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0006-CLEAN-0001",
          "sequence": 1,
          "item_id": "Q-0006",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0006.yml",
              "item_id": "Q-0006",
              "state": "Open",
              "event_id": "EVT-Q-0006-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "7b0cc90760027fc9e4576eed2baa8d42a1760b33dda85ca84bae126b0bf7efc4"
        },
        {
          "event_id": "EVT-Q-0006-ESSENTIALS-ASSIST-0002",
          "sequence": 2,
          "item_id": "Q-0006",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T12:46:41.000Z",
          "answer": "AeroSim 1.0.0 provides configurable essentials with limited assistance: per-device sensitivity, relevant per-axis inversion, controller dead zones, and input smoothing, with Off and Assisted modes. Assisted mode may provide gentle wings-level recovery after neutral input, but does not fly the route or prevent deliberate manoeuvres. Pilot Profile values are defaults that a Flight session may override without changing the stored defaults.",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544327969340657724",
              "description": "RootAtSkic selected configurable essential control tuning with limited Off and Assisted modes.",
              "item_id": "Q-0006",
              "state": "Answered",
              "event_id": "EVT-Q-0006-ESSENTIALS-ASSIST-0002"
            }
          ],
          "previous_hash": "7b0cc90760027fc9e4576eed2baa8d42a1760b33dda85ca84bae126b0bf7efc4",
          "hash": "4dd5da051924a68a4cdfbf62bf3cd501c3510038dc13ed6a7a0dd3a844bb0765"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0006.yml"
    },
    {
      "id": "Q-0017",
      "title": "Control response latency budget",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-4",
      "documentation_url": "/scope/epics/aerosim-ep-4/questions/q-0017/",
      "question": "Which measurable input-to-visible-response latency budget should govern AeroSim 1.0.0?",
      "answer": "AeroSim 1.0.0 requires p95 input-to-visible-response latency of no more than 100 milliseconds during ordinary flight and no more than 150 milliseconds during bounded heavy scenes on the governed reference baseline. Measurements cover supported player input through authoritative flight-state update to visible rendered response across the certified browser matrix. The architecture must define the workload, instrumentation, sampling window, warm-up, and pass/fail procedure before solution approval.",
      "affects_ids": [
        "AEROSIM-EP-4",
        "AEROSIM-FT-3",
        "AEROSIM-FT-4"
      ],
      "blocks": "The answer constrains continuous control, state feedback, rendering, and measurable responsiveness architecture.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544451547021312030",
          "description": "RootAtSkic accepted the recommended control-response budget."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0017-CONTROL-RESPONSE-OPEN-0001",
          "sequence": 1,
          "item_id": "Q-0017",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T20:59:24.000Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0017.yml",
              "item_id": "Q-0017",
              "state": "Open",
              "event_id": "EVT-Q-0017-CONTROL-RESPONSE-OPEN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "1129ed706e14527668e45a0b5bd143e0fc53b6cece6506c8be3e4fd4fc0a7e3a"
        },
        {
          "event_id": "EVT-Q-0017-CONTROL-RESPONSE-ANSWERED-0002",
          "sequence": 2,
          "item_id": "Q-0017",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T20:59:24.000Z",
          "answer": "AeroSim 1.0.0 requires p95 input-to-visible-response latency of no more than 100 milliseconds during ordinary flight and no more than 150 milliseconds during bounded heavy scenes on the governed reference baseline. Measurements cover supported player input through authoritative flight-state update to visible rendered response across the certified browser matrix. The architecture must define the workload, instrumentation, sampling window, warm-up, and pass/fail procedure before solution approval.",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0017.yml",
              "item_id": "Q-0017",
              "state": "Answered",
              "event_id": "EVT-Q-0017-CONTROL-RESPONSE-ANSWERED-0002"
            }
          ],
          "previous_hash": "1129ed706e14527668e45a0b5bd143e0fc53b6cece6506c8be3e4fd4fc0a7e3a",
          "hash": "7d38ca5acc8b824a673397dff85f0fa70d867d8f2e4e954c3983220cb643d73d"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0017.yml"
    },
    {
      "id": "Q-0007",
      "title": "Essential aircraft-state display",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-4",
      "documentation_url": "/scope/epics/aerosim-ep-4/questions/q-0007/",
      "question": "Which state values must remain visible during free flight?",
      "answer": "AeroSim 1.0.0 uses a compact essential HUD that continuously shows speed, altitude, vertical speed, heading, attitude, throttle or power setting, and current assistance mode. Stall, collision, and world-boundary conditions appear as contextual warnings. Detailed physics telemetry is excluded from the permanent flight HUD.",
      "affects_ids": [
        "AEROSIM-EP-4",
        "AEROSIM-FT-4"
      ],
      "blocks": "The answer constrains current acceptance outcomes or Architecture derivation.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0007-CLEAN-0001",
          "sequence": 1,
          "item_id": "Q-0007",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0007.yml",
              "item_id": "Q-0007",
              "state": "Open",
              "event_id": "EVT-Q-0007-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "5d8dc82ba17a1c9527dea6b52cd423ac8694618e9d7b76777459bb7f874550c9"
        },
        {
          "event_id": "EVT-Q-0007-COMPACT-HUD-0002",
          "sequence": 2,
          "item_id": "Q-0007",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T12:49:39.000Z",
          "answer": "AeroSim 1.0.0 uses a compact essential HUD that continuously shows speed, altitude, vertical speed, heading, attitude, throttle or power setting, and current assistance mode. Stall, collision, and world-boundary conditions appear as contextual warnings. Detailed physics telemetry is excluded from the permanent flight HUD.",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544328667960705049",
              "description": "RootAtSkic selected the compact essential in-flight HUD for AeroSim 1.0.0.",
              "item_id": "Q-0007",
              "state": "Answered",
              "event_id": "EVT-Q-0007-COMPACT-HUD-0002"
            }
          ],
          "previous_hash": "5d8dc82ba17a1c9527dea6b52cd423ac8694618e9d7b76777459bb7f874550c9",
          "hash": "1400ca321a063f516bc08760acc03c856c30ddf55afa5735f476922423918bab"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0007.yml"
    },
    {
      "id": "Q-0008",
      "title": "Warnings and response feedback",
      "status": "Deferred",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-4",
      "documentation_url": "/scope/epics/aerosim-ep-4/questions/q-0008/",
      "question": "Which warnings and control-response cues are required?",
      "answer": "AeroSim 1.0.0 provides tiered visual warnings with optional audio reinforcement. Advisory, caution, and critical cues cover assistance and controller changes, stall and boundary proximity, degraded input, unsafe terrain contact, hard-boundary violation, and crash. Every warning has text or icon meaning and does not rely on colour alone. Control input produces immediate visible aircraft or HUD response. Audio may be muted, and gamepad vibration is optional rather than required.",
      "affects_ids": [
        "AEROSIM-EP-4",
        "AEROSIM-FT-4"
      ],
      "blocks": "Historical warning-modality decision retained for provenance; its accessibility commitments are deferred to AEROSIM-IDEA-6 and do not constrain the active release.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0008-CLEAN-0001",
          "sequence": 1,
          "item_id": "Q-0008",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0008.yml",
              "item_id": "Q-0008",
              "state": "Open",
              "event_id": "EVT-Q-0008-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "f4fc86d5481fade32c2695467d2a4ed8e75976c2513d7f6a80fb7efc5e6cb672"
        },
        {
          "event_id": "EVT-Q-0008-TIERED-WARNINGS-0002",
          "sequence": 2,
          "item_id": "Q-0008",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T12:52:52.000Z",
          "answer": "AeroSim 1.0.0 provides tiered visual warnings with optional audio reinforcement. Advisory, caution, and critical cues cover assistance and controller changes, stall and boundary proximity, degraded input, unsafe terrain contact, hard-boundary violation, and crash. Every warning has text or icon meaning and does not rely on colour alone. Control input produces immediate visible aircraft or HUD response. Audio may be muted, and gamepad vibration is optional rather than required.",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544329498256867379",
              "description": "RootAtSkic selected tiered accessible visual warnings with optional audio reinforcement.",
              "item_id": "Q-0008",
              "state": "Answered",
              "event_id": "EVT-Q-0008-TIERED-WARNINGS-0002"
            }
          ],
          "previous_hash": "f4fc86d5481fade32c2695467d2a4ed8e75976c2513d7f6a80fb7efc5e6cb672",
          "hash": "69bb883865e12c63503d5050a4dfeb0eb87d081a25c39be539b60a03bd252e45"
        },
        {
          "event_id": "EVT-Q-0008-ACCESSIBILITY-DEFERRED-0003",
          "sequence": 3,
          "item_id": "Q-0008",
          "from_state": "Answered",
          "to_state": "Deferred",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-02T07:58:41.000Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544616510712979546",
              "description": "RootAtSkic moved accessibility-related commitments to a Proposed Idea and removed them from active Feature scope.",
              "item_id": "Q-0008",
              "state": "Deferred",
              "event_id": "EVT-Q-0008-ACCESSIBILITY-DEFERRED-0003"
            }
          ],
          "previous_hash": "69bb883865e12c63503d5050a4dfeb0eb87d081a25c39be539b60a03bd252e45",
          "hash": "337e6803716bb2378e5341a245d9ad029b2c04e666fd2152acde29f76b03b192"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0008.yml"
    },
    {
      "id": "Q-0009",
      "title": "Free-flight completion boundary",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-4",
      "documentation_url": "/scope/epics/aerosim-ep-4/questions/q-0009/",
      "question": "What constitutes completion, failure, or abort for free flight?",
      "answer": "AeroSim 1.0.0 records explicit Completed, Failed, and Aborted free-flight outcomes. Deliberate End Flight, including after a safe landing, is Completed. Crash, unrecoverable invalid aircraft state, or repeated boundary violations that terminate the session are Failed. Deliberate Abort Flight or an unrecoverable technical interruption is Aborted. Refresh or temporary disconnect attempts recovery before producing Aborted. Free flight has no waypoint, score, or duration requirement.",
      "affects_ids": [
        "AEROSIM-EP-4",
        "AEROSIM-FT-5"
      ],
      "blocks": "The answer constrains current acceptance outcomes or Architecture derivation.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0009-CLEAN-0001",
          "sequence": 1,
          "item_id": "Q-0009",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0009.yml",
              "item_id": "Q-0009",
              "state": "Open",
              "event_id": "EVT-Q-0009-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "287bf7caa2abcd4de97b8df20da00815127f38ef7dab58c1841654157076bdf2"
        },
        {
          "event_id": "EVT-Q-0009-OUTCOMES-0002",
          "sequence": 2,
          "item_id": "Q-0009",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T13:00:26.000Z",
          "answer": "AeroSim 1.0.0 records explicit Completed, Failed, and Aborted free-flight outcomes. Deliberate End Flight, including after a safe landing, is Completed. Crash, unrecoverable invalid aircraft state, or repeated boundary violations that terminate the session are Failed. Deliberate Abort Flight or an unrecoverable technical interruption is Aborted. Refresh or temporary disconnect attempts recovery before producing Aborted. Free flight has no waypoint, score, or duration requirement.",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544331390974169209",
              "description": "RootAtSkic selected explicit Completed, Failed, and Aborted outcomes for free flight.",
              "item_id": "Q-0009",
              "state": "Answered",
              "event_id": "EVT-Q-0009-OUTCOMES-0002"
            }
          ],
          "previous_hash": "287bf7caa2abcd4de97b8df20da00815127f38ef7dab58c1841654157076bdf2",
          "hash": "b91e5d563a02bdab7bb17ab4ba098bd042697c1c8d8bfce419638c18dd55d689"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0009.yml"
    },
    {
      "id": "Q-0010",
      "title": "Restart state",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-4",
      "documentation_url": "/scope/epics/aerosim-ep-4/questions/q-0010/",
      "question": "Which aircraft, scene, configuration, and simulation state must restart preserve or reset?",
      "answer": "AeroSim 1.0.0 restarts with the same setup and a clean simulation state. It preserves Pilot identity, selected aircraft and scene, Flight-session configuration, control tuning, assistance mode, and deterministic environment or seed. It resets position, orientation, velocity, angular motion, transient force state, timers, warnings, recovery counters, temporary telemetry, and prior outcome. Restart creates a new attempt and does not overwrite Pilot Profile defaults.",
      "affects_ids": [
        "AEROSIM-EP-4",
        "AEROSIM-FT-5"
      ],
      "blocks": "The answer constrains current acceptance outcomes or Architecture derivation.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0010-CLEAN-0001",
          "sequence": 1,
          "item_id": "Q-0010",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0010.yml",
              "item_id": "Q-0010",
              "state": "Open",
              "event_id": "EVT-Q-0010-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "34cd0e93827ad5ab5e64e8b8e1bd489b309bcb7f8ec9b086c86818a6b3dbaf94"
        },
        {
          "event_id": "EVT-Q-0010-CLEAN-RESTART-0002",
          "sequence": 2,
          "item_id": "Q-0010",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T13:02:25.000Z",
          "answer": "AeroSim 1.0.0 restarts with the same setup and a clean simulation state. It preserves Pilot identity, selected aircraft and scene, Flight-session configuration, control tuning, assistance mode, and deterministic environment or seed. It resets position, orientation, velocity, angular motion, transient force state, timers, warnings, recovery counters, temporary telemetry, and prior outcome. Restart creates a new attempt and does not overwrite Pilot Profile defaults.",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544331924514934795",
              "description": "RootAtSkic selected same-setup restart with clean simulation state.",
              "item_id": "Q-0010",
              "state": "Answered",
              "event_id": "EVT-Q-0010-CLEAN-RESTART-0002"
            }
          ],
          "previous_hash": "34cd0e93827ad5ab5e64e8b8e1bd489b309bcb7f8ec9b086c86818a6b3dbaf94",
          "hash": "899c95230546787ce7135eb829f4533377054dea8015a942d111328de07dc61e"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0010.yml"
    },
    {
      "id": "Q-0011",
      "title": "Initial flying scenes",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-5",
      "documentation_url": "/scope/epics/aerosim-ep-5/questions/q-0011/",
      "question": "Which scenes belong in the first selectable scene catalogue?",
      "answer": "AeroSim 1.0.0 provides three selectable scenes: Training Airfield, Coastal Range, and Mountain Valley. Training Airfield supports takeoff, landing, and forgiving open-terrain flight; Coastal Range provides mixed land-water navigation and distinct landmarks; Mountain Valley exercises terrain awareness, altitude management, and boundary recovery. Each scene uses a fixed validated environment configuration. Dynamic weather is excluded.",
      "affects_ids": [
        "AEROSIM-EP-5",
        "AEROSIM-FT-6"
      ],
      "blocks": "The answer constrains current acceptance outcomes or Architecture derivation.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0011-CLEAN-0001",
          "sequence": 1,
          "item_id": "Q-0011",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0011.yml",
              "item_id": "Q-0011",
              "state": "Open",
              "event_id": "EVT-Q-0011-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "f992068f7b93221beb6ccf2a61de289a4c80579af87ef4ab3142749e11049655"
        },
        {
          "event_id": "EVT-Q-0011-THREE-SCENES-0002",
          "sequence": 2,
          "item_id": "Q-0011",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T13:10:57.000Z",
          "answer": "AeroSim 1.0.0 provides three selectable scenes: Training Airfield, Coastal Range, and Mountain Valley. Training Airfield supports takeoff, landing, and forgiving open-terrain flight; Coastal Range provides mixed land-water navigation and distinct landmarks; Mountain Valley exercises terrain awareness, altitude management, and boundary recovery. Each scene uses a fixed validated environment configuration. Dynamic weather is excluded.",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544334135982825476",
              "description": "RootAtSkic selected the three-scene initial catalogue for AeroSim 1.0.0.",
              "item_id": "Q-0011",
              "state": "Answered",
              "event_id": "EVT-Q-0011-THREE-SCENES-0002"
            }
          ],
          "previous_hash": "f992068f7b93221beb6ccf2a61de289a4c80579af87ef4ab3142749e11049655",
          "hash": "2251452f5efbcf1b57f75fe7a04c0ac8560414f42b197643450c194e21cbd584"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0011.yml"
    },
    {
      "id": "Q-0012",
      "title": "Initial aircraft",
      "status": "Answered",
      "owner": "AeroSim Scope",
      "epic_id": "AEROSIM-EP-5",
      "documentation_url": "/scope/epics/aerosim-ep-5/questions/q-0012/",
      "question": "Which aircraft belong in the first selectable aircraft catalogue?",
      "answer": "AeroSim 1.0.0 provides three fictional selectable aircraft archetypes: Trainer Propeller, Sport Propeller, and Light Jet. Trainer Propeller is stable and forgiving; Sport Propeller is faster and more responsive; Light Jet provides the highest speed and wider turning behaviour. Each uses a distinct bounded arcade parameter profile. Real-aircraft fidelity and licensing claims are excluded.",
      "affects_ids": [
        "AEROSIM-EP-5",
        "AEROSIM-FT-7"
      ],
      "blocks": "The answer constrains current acceptance outcomes or Architecture derivation.",
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
          "description": "Authoritative clean-slate Scope recommendation."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
          "description": "Clean-slate Scope discussion 1."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
          "description": "Clean-slate Scope discussion 2."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
          "description": "Clean-slate Scope discussion 3."
        }
      ],
      "decision_history": [
        {
          "event_id": "EVT-Q-0012-CLEAN-0001",
          "sequence": 1,
          "item_id": "Q-0012",
          "from_state": null,
          "to_state": "Open",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-08-24T15:06:15.606Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "canonical-record",
              "record_path": "data/questions/Q-0012.yml",
              "item_id": "Q-0012",
              "state": "Open",
              "event_id": "EVT-Q-0012-CLEAN-0001"
            }
          ],
          "previous_hash": null,
          "hash": "04d63d7b5c039488d0debbad4b9a8889d8bd43e20b368fd7d3ea9bb9cec23146"
        },
        {
          "event_id": "EVT-Q-0012-THREE-AIRCRAFT-0002",
          "sequence": 2,
          "item_id": "Q-0012",
          "from_state": "Open",
          "to_state": "Answered",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-01T13:25:53.000Z",
          "answer": "AeroSim 1.0.0 provides three fictional selectable aircraft archetypes: Trainer Propeller, Sport Propeller, and Light Jet. Trainer Propeller is stable and forgiving; Sport Propeller is faster and more responsive; Light Jet provides the highest speed and wider turning behaviour. Each uses a distinct bounded arcade parameter profile. Real-aircraft fidelity and licensing claims are excluded.",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544337843877314680",
              "description": "RootAtSkic selected the three-aircraft fictional archetype catalogue for AeroSim 1.0.0.",
              "item_id": "Q-0012",
              "state": "Answered",
              "event_id": "EVT-Q-0012-THREE-AIRCRAFT-0002"
            }
          ],
          "previous_hash": "04d63d7b5c039488d0debbad4b9a8889d8bd43e20b368fd7d3ea9bb9cec23146",
          "hash": "94bc88a2e86a4633a39afca3faf650e2a75370ee77afadf09d4f974ab2ebc352"
        }
      ],
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/questions/Q-0012.yml"
    }
  ],
  "requirements": [
    {
      "id": "FR-0001",
      "type": "functional-requirement",
      "title": "compute flight forces",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0001.yml",
      "feature_ids": [
        "AEROSIM-FT-1"
      ],
      "statement": "The system shall calculate lift, drag, thrust, and gravity for each supported simulation step.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-1; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0001"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "a valid current Feature configuration and defined initial state",
          "when": "the relevant user action or simulation step occurs",
          "then": "the observable result must calculate lift, drag, thrust, and gravity for each supported simulation step",
          "evidence": "Future reviewed automated and browser evidence must verify this outcome against the current requirement."
        },
        {
          "given": "an invalid or unsupported input at the same boundary",
          "when": "the system evaluates the input",
          "then": "the system must reject or recover visibly without publishing a misleading result",
          "evidence": "Future negative-path tests and browser evidence must verify explicit failure or recovery behaviour."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0002",
      "type": "functional-requirement",
      "title": "advance aircraft motion",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0002.yml",
      "feature_ids": [
        "AEROSIM-FT-1"
      ],
      "statement": "The system shall advance aircraft position, velocity, and attitude from net force and moments.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-1; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0073",
        "TASK-0154",
        "TASK-0158"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "a valid current Feature configuration and defined initial state",
          "when": "the relevant user action or simulation step occurs",
          "then": "the observable result must advance aircraft position, velocity, and attitude from net force and moments",
          "evidence": "Future reviewed automated and browser evidence must verify this outcome against the current requirement."
        },
        {
          "given": "an invalid or unsupported input at the same boundary",
          "when": "the system evaluates the input",
          "then": "the system must reject or recover visibly without publishing a misleading result",
          "evidence": "Future negative-path tests and browser evidence must verify explicit failure or recovery behaviour."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0003",
      "type": "functional-requirement",
      "title": "detect world contact",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0003.yml",
      "feature_ids": [
        "AEROSIM-FT-2"
      ],
      "statement": "The system shall detect supported ground and obstacle contact.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-2; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0002"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "a valid current Feature configuration and defined initial state",
          "when": "the relevant user action or simulation step occurs",
          "then": "the observable result must detect supported ground and obstacle contact",
          "evidence": "Future reviewed automated and browser evidence must verify this outcome against the current requirement."
        },
        {
          "given": "an invalid or unsupported input at the same boundary",
          "when": "the system evaluates the input",
          "then": "the system must reject or recover visibly without publishing a misleading result",
          "evidence": "Future negative-path tests and browser evidence must verify explicit failure or recovery behaviour."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0004",
      "type": "functional-requirement",
      "title": "respond to world boundaries",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0004.yml",
      "feature_ids": [
        "AEROSIM-FT-2"
      ],
      "statement": "The system shall present a bounded, recoverable response to collision and world limits.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-2; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0083",
        "TASK-0084",
        "TASK-0141",
        "TASK-0148"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "a valid current Feature configuration and defined initial state",
          "when": "the relevant user action or simulation step occurs",
          "then": "the observable result must present a bounded, recoverable response to collision and world limits",
          "evidence": "Future reviewed automated and browser evidence must verify this outcome against the current requirement."
        },
        {
          "given": "an invalid or unsupported input at the same boundary",
          "when": "the system evaluates the input",
          "then": "the system must reject or recover visibly without publishing a misleading result",
          "evidence": "Future negative-path tests and browser evidence must verify explicit failure or recovery behaviour."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0005",
      "type": "functional-requirement",
      "title": "accept continuous controls",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0005.yml",
      "feature_ids": [
        "AEROSIM-FT-3"
      ],
      "statement": "The system shall accept continuous pitch, roll, yaw, and thrust values during flight.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-3; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0003"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "a valid current Feature configuration and defined initial state",
          "when": "the relevant user action or simulation step occurs",
          "then": "the observable result must accept continuous pitch, roll, yaw, and thrust values during flight",
          "evidence": "Future reviewed automated and browser evidence must verify this outcome against the current requirement."
        },
        {
          "given": "an invalid or unsupported input at the same boundary",
          "when": "the system evaluates the input",
          "then": "the system must reject or recover visibly without publishing a misleading result",
          "evidence": "Future negative-path tests and browser evidence must verify explicit failure or recovery behaviour."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0006",
      "type": "functional-requirement",
      "title": "apply control response",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0006.yml",
      "feature_ids": [
        "AEROSIM-FT-3"
      ],
      "statement": "The system shall apply valid control changes to subsequent aircraft motion.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-3; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0096"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "a valid current Feature configuration and defined initial state",
          "when": "the relevant user action or simulation step occurs",
          "then": "the observable result must apply valid control changes to subsequent aircraft motion",
          "evidence": "Future reviewed automated and browser evidence must verify this outcome against the current requirement."
        },
        {
          "given": "an invalid or unsupported input at the same boundary",
          "when": "the system evaluates the input",
          "then": "the system must reject or recover visibly without publishing a misleading result",
          "evidence": "Future negative-path tests and browser evidence must verify explicit failure or recovery behaviour."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0007",
      "type": "functional-requirement",
      "title": "present essential aircraft state",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0007.yml",
      "feature_ids": [
        "AEROSIM-FT-4"
      ],
      "statement": "The system shall present attitude, speed, altitude, heading, and control position.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-4; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0004",
        "TASK-0125"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "a valid current Feature configuration and defined initial state",
          "when": "the relevant user action or simulation step occurs",
          "then": "the observable result must present attitude, speed, altitude, heading, and control position",
          "evidence": "Future reviewed automated and browser evidence must verify this outcome against the current requirement."
        },
        {
          "given": "an invalid or unsupported input at the same boundary",
          "when": "the system evaluates the input",
          "then": "the system must reject or recover visibly without publishing a misleading result",
          "evidence": "Future negative-path tests and browser evidence must verify explicit failure or recovery behaviour."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0008",
      "type": "functional-requirement",
      "title": "present response and warnings",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0008.yml",
      "feature_ids": [
        "AEROSIM-FT-4"
      ],
      "statement": "The system shall present timely control-response cues and warnings.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-4; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0005",
        "TASK-0125"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "a valid current Feature configuration and defined initial state",
          "when": "the relevant user action or simulation step occurs",
          "then": "the observable result must present timely control-response cues and warnings",
          "evidence": "Future reviewed automated and browser evidence must verify this outcome against the current requirement."
        },
        {
          "given": "an invalid or unsupported input at the same boundary",
          "when": "the system evaluates the input",
          "then": "the system must reject or recover visibly without publishing a misleading result",
          "evidence": "Future negative-path tests and browser evidence must verify explicit failure or recovery behaviour."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0009",
      "type": "functional-requirement",
      "title": "complete and restart free flight",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0009.yml",
      "feature_ids": [
        "AEROSIM-FT-5"
      ],
      "statement": "The system shall produce a clear free-flight outcome or abort and restart from the initial state.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-5; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0006",
        "TASK-0097",
        "TASK-0142",
        "TASK-0156",
        "TASK-0159"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "a valid current Feature configuration and defined initial state",
          "when": "the relevant user action or simulation step occurs",
          "then": "the observable result must produce a clear free-flight outcome or abort and restart from the initial state",
          "evidence": "Future reviewed automated and browser evidence must verify this outcome against the current requirement."
        },
        {
          "given": "an invalid or unsupported input at the same boundary",
          "when": "the system evaluates the input",
          "then": "the system must reject or recover visibly without publishing a misleading result",
          "evidence": "Future negative-path tests and browser evidence must verify explicit failure or recovery behaviour."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0010",
      "type": "functional-requirement",
      "title": "list supported scenes",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0010.yml",
      "feature_ids": [
        "AEROSIM-FT-6"
      ],
      "statement": "The system shall list each supported flying scene with an identifiable name and description.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-6; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0007",
        "TASK-0123"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "a valid current Feature configuration and defined initial state",
          "when": "the relevant user action or simulation step occurs",
          "then": "the observable result must list each supported flying scene with an identifiable name and description",
          "evidence": "Future reviewed automated and browser evidence must verify this outcome against the current requirement."
        },
        {
          "given": "an invalid or unsupported input at the same boundary",
          "when": "the system evaluates the input",
          "then": "the system must reject or recover visibly without publishing a misleading result",
          "evidence": "Future negative-path tests and browser evidence must verify explicit failure or recovery behaviour."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0011",
      "type": "functional-requirement",
      "title": "apply chosen scene",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0011.yml",
      "feature_ids": [
        "AEROSIM-FT-6"
      ],
      "statement": "The system shall load the chosen scene for the next session.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-6; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0111",
        "TASK-0112",
        "TASK-0123",
        "TASK-0134"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "a valid current Feature configuration and defined initial state",
          "when": "the relevant user action or simulation step occurs",
          "then": "the observable result must load the chosen scene for the next session",
          "evidence": "Future reviewed automated and browser evidence must verify this outcome against the current requirement."
        },
        {
          "given": "an invalid or unsupported input at the same boundary",
          "when": "the system evaluates the input",
          "then": "the system must reject or recover visibly without publishing a misleading result",
          "evidence": "Future negative-path tests and browser evidence must verify explicit failure or recovery behaviour."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0012",
      "type": "functional-requirement",
      "title": "list supported aircraft",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0012.yml",
      "feature_ids": [
        "AEROSIM-FT-7"
      ],
      "statement": "The system shall list each supported aircraft with identifiable characteristics.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-7; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0008",
        "TASK-0122",
        "TASK-0133"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "a valid current Feature configuration and defined initial state",
          "when": "the relevant user action or simulation step occurs",
          "then": "the observable result must list each supported aircraft with identifiable characteristics",
          "evidence": "Future reviewed automated and browser evidence must verify this outcome against the current requirement."
        },
        {
          "given": "an invalid or unsupported input at the same boundary",
          "when": "the system evaluates the input",
          "then": "the system must reject or recover visibly without publishing a misleading result",
          "evidence": "Future negative-path tests and browser evidence must verify explicit failure or recovery behaviour."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0013",
      "type": "functional-requirement",
      "title": "apply chosen aircraft",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0013.yml",
      "feature_ids": [
        "AEROSIM-FT-7"
      ],
      "statement": "The system shall apply the chosen aircraft model and flight parameters.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-7; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0114",
        "TASK-0115",
        "TASK-0122"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "a valid current Feature configuration and defined initial state",
          "when": "the relevant user action or simulation step occurs",
          "then": "the observable result must apply the chosen aircraft model and flight parameters",
          "evidence": "Future reviewed automated and browser evidence must verify this outcome against the current requirement."
        },
        {
          "given": "an invalid or unsupported input at the same boundary",
          "when": "the system evaluates the input",
          "then": "the system must reject or recover visibly without publishing a misleading result",
          "evidence": "Future negative-path tests and browser evidence must verify explicit failure or recovery behaviour."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0016",
      "type": "functional-requirement",
      "title": "Experience Different Aircraft Handling Characteristics",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0016.yml",
      "feature_ids": [
        "AEROSIM-FT-9"
      ],
      "statement": "The system shall represent meaningful differences in stability, responsiveness, speed, and control authority.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-9; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0086",
        "TASK-0087",
        "TASK-0088"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-9 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Supported aircraft produce observably different stability, responsiveness, speed, or control authority under equivalent conditions",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-9 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Displayed handling characteristics match the configuration used by flight physics",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0017",
      "type": "functional-requirement",
      "title": "Experience Environmental Conditions Affecting Flight",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0017.yml",
      "feature_ids": [
        "AEROSIM-FT-10"
      ],
      "statement": "The system shall apply selected wind, visibility, and environmental conditions to aircraft and world.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-10; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0076",
        "TASK-0077",
        "TASK-0078",
        "TASK-0079"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-10 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Selected environmental conditions produce visible world and aircraft effects",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-10 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "The confirmed condition set remains consistent for the complete session",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0018",
      "type": "functional-requirement",
      "title": "Recover From or Conclude Invalid Flight States",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0018.yml",
      "feature_ids": [
        "AEROSIM-FT-11"
      ],
      "statement": "The system shall handle crashes, out-of-bounds states, and unrecoverable conditions clearly.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-11; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0080",
        "TASK-0081",
        "TASK-0082"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-11 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Each governed crash, out-of-bounds, or unrecoverable state produces a clear outcome",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-11 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Every invalid-state outcome offers only valid recovery, retry, or exit actions",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0019",
      "type": "functional-requirement",
      "title": "Fly Using the Primary Chase Camera",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0019.yml",
      "feature_ids": [
        "AEROSIM-FT-12"
      ],
      "statement": "The system shall provide the primary full-screen chase-view flight experience.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-12; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0089",
        "TASK-0090",
        "TASK-0126",
        "TASK-0140",
        "TASK-0155"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-12 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "The initial active-flight view is the chase camera and follows the controlled aircraft continuously",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-12 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Aircraft, flight direction, and nearby hazards remain legible in the representative viewport",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0020",
      "type": "functional-requirement",
      "title": "Pause and Resume a Flight",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0020.yml",
      "feature_ids": [
        "AEROSIM-FT-13"
      ],
      "statement": "The system shall suspend active simulation and resume without losing context.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-13; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0091",
        "TASK-0092"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-13 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Pause visibly suspends governed simulation progression",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-13 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Resume continues from the preserved paused state without an implicit restart",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0021",
      "type": "functional-requirement",
      "title": "Change to Secondary Camera Views",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0021.yml",
      "feature_ids": [
        "AEROSIM-FT-14"
      ],
      "statement": "The system shall change supported camera views without losing control continuity.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-14; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0093",
        "TASK-0094",
        "TASK-0095",
        "TASK-0151",
        "TASK-0161",
        "TASK-0163"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-14 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Each supported secondary camera is deliberately selectable during flight",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-14 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Changing camera does not alter aircraft state or control ownership",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0022",
      "type": "functional-requirement",
      "title": "Choose Flight and Environmental Conditions",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0022.yml",
      "feature_ids": [
        "AEROSIM-FT-15"
      ],
      "statement": "The system shall select supported flight presets and environmental conditions.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-15; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0098",
        "TASK-0099",
        "TASK-0100",
        "TASK-0124",
        "TASK-0135"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-15 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Supported flight and environmental conditions are distinguishable and selectable before launch",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-15 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "The launched session receives exactly the confirmed condition values",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0023",
      "type": "functional-requirement",
      "title": "Configure and Verify Flight Controls",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0023.yml",
      "feature_ids": [
        "AEROSIM-FT-16"
      ],
      "statement": "The system shall choose an input method and verify essential controls before launch.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-16; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0101",
        "TASK-0102",
        "TASK-0103",
        "TASK-0104",
        "TASK-0153"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-16 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "The chosen input method exposes its required control mapping before launch",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-16 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "The player can verify essential input and receives a visible result for missing or invalid controls",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0024",
      "type": "functional-requirement",
      "title": "Select the Initial Camera",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0024.yml",
      "feature_ids": [
        "AEROSIM-FT-17"
      ],
      "statement": "The system shall choose the supported camera active when flight begins.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-17; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0105",
        "TASK-0106",
        "TASK-0107",
        "TASK-0136",
        "TASK-0147",
        "TASK-0149",
        "TASK-0171"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-17 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Every supported initial camera is selectable in pre-flight",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-17 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "The launched session starts with the confirmed camera",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0025",
      "type": "functional-requirement",
      "title": "Review the Pre-Flight Summary and Launch",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0025.yml",
      "feature_ids": [
        "AEROSIM-FT-18"
      ],
      "statement": "The system shall review the complete setup and deliberately launch one session.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-18; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0108",
        "TASK-0109",
        "TASK-0110",
        "TASK-0127",
        "TASK-0137",
        "TASK-0138"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-18 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "The summary shows aircraft, world, conditions, controls, and initial camera from canonical selections",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-18 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "One deliberate launch action creates one session from that displayed configuration",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0037",
      "type": "functional-requirement",
      "title": "Access AeroSim Through Keycloak SSO",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0037.yml",
      "feature_ids": [
        "AEROSIM-FT-30"
      ],
      "statement": "The system shall authenticate through Keycloak without registration or local credentials.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-30; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application",
        "API Service"
      ],
      "release_task_ids": [
        "TASK-0053",
        "TASK-0054",
        "TASK-0055",
        "TASK-0056",
        "TASK-0118"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-30 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Unauthenticated access uses the approved Keycloak SSO flow",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-30 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Successful SSO establishes one AeroSim pilot identity without registration or local credentials",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0038",
      "type": "functional-requirement",
      "title": "Create a Pilot Profile From the Authenticated Identity",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0038.yml",
      "feature_ids": [
        "AEROSIM-FT-31"
      ],
      "statement": "The system shall resolve one AeroSim pilot profile for the Keycloak subject.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-31; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application",
        "API Service"
      ],
      "release_task_ids": [
        "TASK-0057",
        "TASK-0058",
        "TASK-0059",
        "TASK-0060",
        "TASK-0119"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-31 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "The first authorized Keycloak subject creates one linked pilot profile",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-31 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Later sessions resolve the same profile without duplication",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0039",
      "type": "functional-requirement",
      "title": "Preserve Pilot Preferences and Settings",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0039.yml",
      "feature_ids": [
        "AEROSIM-FT-32"
      ],
      "statement": "The system shall store and restore supported personal preferences.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-32; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application",
        "API Service"
      ],
      "release_task_ids": [
        "TASK-0061",
        "TASK-0062",
        "TASK-0063",
        "TASK-0064",
        "TASK-0120"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-32 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Saving a supported preference associates it with the active pilot",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-32 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "A later authenticated session restores the last valid supported value",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0040",
      "type": "functional-requirement",
      "title": "Save Flight and Training Progress",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0040.yml",
      "feature_ids": [
        "AEROSIM-FT-33"
      ],
      "statement": "The system shall persist governed flight, lesson, and progression state.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-33; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application",
        "API Service"
      ],
      "release_task_ids": [
        "TASK-0065",
        "TASK-0066",
        "TASK-0067",
        "TASK-0068",
        "TASK-0143"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-33 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Governed flight and training progress is persisted against the active pilot",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-33 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "A later session retrieves the same canonical progress state",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0041",
      "type": "functional-requirement",
      "title": "Resume the Player’s Most Recent Activity",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0041.yml",
      "feature_ids": [
        "AEROSIM-FT-34"
      ],
      "statement": "The system shall continue from the most recent valid resumable state.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-34; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application",
        "API Service"
      ],
      "release_task_ids": [
        "TASK-0069",
        "TASK-0070",
        "TASK-0071",
        "TASK-0072",
        "TASK-0121",
        "TASK-0144"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-34 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Home identifies only an activity that is actually resumable",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-34 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Resume restores its recorded context or explains why continuation is unavailable",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0048",
      "type": "functional-requirement",
      "title": "Introduce the Nebula Frontend Foundation",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0048.yml",
      "feature_ids": [
        "AEROSIM-FT-41"
      ],
      "statement": "The system shall establish React, Vite, TypeScript, and Stardust.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-41; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0011",
        "TASK-0012",
        "TASK-0013",
        "TASK-0117"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-41 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Nebula builds a production React/Vite application with strict TypeScript and shared Stardust primitives",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-41 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "A representative routed screen renders through the adopted foundation in automated component and production-build checks",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0049",
      "type": "functional-requirement",
      "title": "Introduce the Singularity Backend Foundation",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0049.yml",
      "feature_ids": [
        "AEROSIM-FT-42"
      ],
      "statement": "The system shall establish Fastify and TypeScript for APIs and business logic.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-42; no implementation acceptance is claimed.",
      "c4_elements": [
        "API Service"
      ],
      "release_task_ids": [
        "TASK-0014",
        "TASK-0015",
        "TASK-0016"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-42 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Singularity starts a Fastify service with typed request and response boundaries",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-42 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Automated tests verify the service health route and rejection of invalid input",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0050",
      "type": "functional-requirement",
      "title": "Introduce Persistent Data Management",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0050.yml",
      "feature_ids": [
        "AEROSIM-FT-43"
      ],
      "statement": "The system shall establish PostgreSQL and Prisma for governed persistent records.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-43; no implementation acceptance is claimed.",
      "c4_elements": [
        "API Service"
      ],
      "release_task_ids": [
        "TASK-0017",
        "TASK-0018",
        "TASK-0019",
        "TASK-0020"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-43 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "A clean PostgreSQL database can apply all committed Prisma migrations reproducibly",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-43 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Integration tests verify one governed transactional write and read without leaking data across pilots",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0051",
      "type": "functional-requirement",
      "title": "Introduce Real-Time Communication",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0051.yml",
      "feature_ids": [
        "AEROSIM-FT-44"
      ],
      "statement": "The system shall establish Socket.IO with shared typed contracts.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-44; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application",
        "API Service"
      ],
      "release_task_ids": [
        "TASK-0021",
        "TASK-0022",
        "TASK-0023",
        "TASK-0024"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-44 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Nebula and Singularity consume one shared typed Socket.IO event contract",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-44 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Tests cover connection, authorization, reconnect, ordering, and invalid-event behavior",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0052",
      "type": "functional-requirement",
      "title": "Introduce the 3D Rendering Runtime",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0052.yml",
      "feature_ids": [
        "AEROSIM-FT-45"
      ],
      "statement": "The system shall establish Three.js and React Three Fiber for browser flight rendering.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-45; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0025",
        "TASK-0026",
        "TASK-0027",
        "TASK-0139"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-45 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "A representative aircraft, terrain, environment, and camera scene renders through React Three Fiber",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-45 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Scene lifecycle and low-level Three.js ownership are explicit and production build emits no browser-runtime errors",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0053",
      "type": "functional-requirement",
      "title": "Introduce the Flight Physics Runtime",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0053.yml",
      "feature_ids": [
        "AEROSIM-FT-46"
      ],
      "statement": "The system shall establish Rapier and @react-three/rapier for deterministic physics.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-46; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0028",
        "TASK-0029",
        "TASK-0030"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-46 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Rapier advances aircraft and collision state through the documented deterministic simulation step",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-46 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Repeated fixed inputs and initial state pass motion and collision regression tests",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0054",
      "type": "functional-requirement",
      "title": "Introduce the Terrain Pipeline",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0054.yml",
      "feature_ids": [
        "AEROSIM-FT-47"
      ],
      "statement": "The system shall establish heightmap terrain and aligned Rapier collision.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-47; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application",
        "API Service"
      ],
      "release_task_ids": [
        "TASK-0031",
        "TASK-0032",
        "TASK-0033",
        "TASK-0034",
        "TASK-0152",
        "TASK-0160"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-47 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Visual terrain and Rapier collision are generated from the same normalized height data",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-47 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Representative probes keep rendered elevation and collision elevation within the defined tolerance",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0055",
      "type": "functional-requirement",
      "title": "Introduce the 3D Asset Pipeline",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0055.yml",
      "feature_ids": [
        "AEROSIM-FT-48"
      ],
      "statement": "The system shall establish governed glTF/GLB sourcing, licensing, provenance, and optimization.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-48; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application",
        "API Service"
      ],
      "release_task_ids": [
        "TASK-0035",
        "TASK-0036",
        "TASK-0037",
        "TASK-0038",
        "TASK-0146",
        "TASK-0150"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-48 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Each runtime asset is optimized to glTF/GLB and has source, license, provenance, and budget metadata",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-48 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Validation rejects an unlicensed, untraceable, unsupported, or over-budget asset",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0057",
      "type": "functional-requirement",
      "title": "Introduce Keycloak Identity Integration",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0057.yml",
      "feature_ids": [
        "AEROSIM-FT-50"
      ],
      "statement": "The system shall establish Keycloak SSO without registration or local credentials.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-50; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application",
        "API Service"
      ],
      "release_task_ids": [
        "TASK-0039",
        "TASK-0040",
        "TASK-0041",
        "TASK-0042",
        "TASK-0128"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-50 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Protected AeroSim access redirects to Keycloak and returns to the intended route after success",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-50 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "No registration, password, or local credential form exists in AeroSim",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0058",
      "type": "functional-requirement",
      "title": "Introduce Automated Engineering Validation",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0058.yml",
      "feature_ids": [
        "AEROSIM-FT-51"
      ],
      "statement": "The system shall establish tests, linting, type checking, and production builds.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-51; no implementation acceptance is claimed.",
      "c4_elements": [
        "Documentation site"
      ],
      "release_task_ids": [
        "TASK-0043",
        "TASK-0044",
        "TASK-0045",
        "TASK-0046",
        "TASK-0157",
        "TASK-0162"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-51 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "The declared local validation and Gitea Actions run the same lint, type, test, and production-build gates",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-51 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "CI reports success only for the exact immutable candidate head after every required gate passes",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "FR-0059",
      "type": "functional-requirement",
      "title": "Introduce the Delivery Runtime",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/functional/FR-0059.yml",
      "feature_ids": [
        "AEROSIM-FT-52",
        "AEROSIM-FT-53"
      ],
      "statement": "The system shall establish Docker, Helm, Harbor, Gitea Actions, and Argo CD GitOps.",
      "rationale": "Current measurable Architecture traceability for AEROSIM-FT-52; no implementation acceptance is claimed.",
      "c4_elements": [
        "Web application",
        "API Service"
      ],
      "release_task_ids": [
        "TASK-0047",
        "TASK-0048",
        "TASK-0049",
        "TASK-0050",
        "TASK-0051",
        "TASK-0052",
        "TASK-0129",
        "TASK-0130",
        "TASK-0131",
        "TASK-0132",
        "TASK-0145"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [
        {
          "given": "AEROSIM-FT-52 is exercised within its governed scope under supported conditions",
          "when": "the primary capability path is completed",
          "then": "Nebula and Singularity produce versioned container images and lintable Helm charts",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        },
        {
          "given": "AEROSIM-FT-52 is exercised within its governed scope under supported conditions",
          "when": "the continuation or repeat path is completed",
          "then": "Harbor publication and Argo CD GitOps deployment use governed automation without direct CI runtime mutation",
          "evidence": "Future reviewed automated and browser evidence must verify this exact outcome against the current requirement."
        }
      ],
      "acceptance_evidence": "Future reviewed tests must establish current evidence; prototype behaviour is not acceptance evidence."
    },
    {
      "id": "NFR-0001",
      "type": "non-functional-requirement",
      "title": "Performance",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/non-functional/NFR-0001.yml",
      "feature_ids": [
        "AEROSIM-FT-1",
        "AEROSIM-FT-2",
        "AEROSIM-FT-3",
        "AEROSIM-FT-4",
        "AEROSIM-FT-5",
        "AEROSIM-FT-6",
        "AEROSIM-FT-7"
      ],
      "statement": "Maintain responsive rendering and simulation.",
      "quality_attribute": "Performance",
      "measurable_target": "Maintain responsive rendering and simulation.",
      "scope": "AEROSIM-FT-1, AEROSIM-FT-2, AEROSIM-FT-3, AEROSIM-FT-4, AEROSIM-FT-5, AEROSIM-FT-6, AEROSIM-FT-7, AEROSIM-FT-8",
      "verification_method": "Measure frame and step timing.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0004",
        "TASK-0075",
        "TASK-0085",
        "TASK-0096",
        "TASK-0097",
        "TASK-0113",
        "TASK-0116",
        "TASK-0122",
        "TASK-0123",
        "TASK-0125"
      ],
      "cross_release_task_ids": [
        "TASK-0010"
      ],
      "acceptance_criteria": [],
      "acceptance_evidence": null
    },
    {
      "id": "NFR-0002",
      "type": "non-functional-requirement",
      "title": "Determinism",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/non-functional/NFR-0002.yml",
      "feature_ids": [
        "AEROSIM-FT-1",
        "AEROSIM-FT-2",
        "AEROSIM-FT-5"
      ],
      "statement": "Reproduce defined simulation and restart results.",
      "quality_attribute": "Determinism",
      "measurable_target": "Reproduce defined simulation and restart results.",
      "scope": "AEROSIM-FT-1, AEROSIM-FT-2, AEROSIM-FT-5, AEROSIM-FT-8",
      "verification_method": "Compare repeated state traces.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0074",
        "TASK-0085",
        "TASK-0097"
      ],
      "cross_release_task_ids": [
        "TASK-0010"
      ],
      "acceptance_criteria": [],
      "acceptance_evidence": null
    },
    {
      "id": "NFR-0003",
      "type": "non-functional-requirement",
      "title": "Responsiveness",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/non-functional/NFR-0003.yml",
      "feature_ids": [
        "AEROSIM-FT-3",
        "AEROSIM-FT-4"
      ],
      "statement": "Present control and state feedback within a measurable budget.",
      "quality_attribute": "Responsiveness",
      "measurable_target": "Present control and state feedback within a measurable budget.",
      "scope": "AEROSIM-FT-3, AEROSIM-FT-4",
      "verification_method": "Measure input-to-state and input-to-render latency.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0004",
        "TASK-0005",
        "TASK-0096",
        "TASK-0125"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [],
      "acceptance_evidence": null
    },
    {
      "id": "NFR-0005",
      "type": "non-functional-requirement",
      "title": "Resource governance",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/non-functional/NFR-0005.yml",
      "feature_ids": [
        "AEROSIM-FT-1",
        "AEROSIM-FT-2",
        "AEROSIM-FT-3",
        "AEROSIM-FT-4",
        "AEROSIM-FT-5",
        "AEROSIM-FT-6",
        "AEROSIM-FT-7"
      ],
      "statement": "Keep browser and deployed workload consumption within explicit budgets.",
      "quality_attribute": "Resource governance",
      "measurable_target": "Keep browser and deployed workload consumption within explicit budgets.",
      "scope": "AEROSIM-FT-1, AEROSIM-FT-2, AEROSIM-FT-3, AEROSIM-FT-4, AEROSIM-FT-5, AEROSIM-FT-6, AEROSIM-FT-7, AEROSIM-FT-8",
      "verification_method": "Measure browser and namespace resources.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0005",
        "TASK-0075",
        "TASK-0085",
        "TASK-0096",
        "TASK-0097",
        "TASK-0113",
        "TASK-0116",
        "TASK-0122",
        "TASK-0123",
        "TASK-0125"
      ],
      "cross_release_task_ids": [
        "TASK-0010"
      ],
      "acceptance_criteria": [],
      "acceptance_evidence": null
    },
    {
      "id": "NFR-0006",
      "type": "non-functional-requirement",
      "title": "Compatibility",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/non-functional/NFR-0006.yml",
      "feature_ids": [
        "AEROSIM-FT-1",
        "AEROSIM-FT-2",
        "AEROSIM-FT-3",
        "AEROSIM-FT-4",
        "AEROSIM-FT-5",
        "AEROSIM-FT-6",
        "AEROSIM-FT-7"
      ],
      "statement": "Support the declared browser and input compatibility matrix.",
      "quality_attribute": "Compatibility",
      "measurable_target": "Support the declared browser and input compatibility matrix.",
      "scope": "AEROSIM-FT-1, AEROSIM-FT-2, AEROSIM-FT-3, AEROSIM-FT-4, AEROSIM-FT-5, AEROSIM-FT-6, AEROSIM-FT-7, AEROSIM-FT-8",
      "verification_method": "Run the exact compatibility matrix.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0003",
        "TASK-0004",
        "TASK-0006",
        "TASK-0074",
        "TASK-0085",
        "TASK-0097",
        "TASK-0113",
        "TASK-0116",
        "TASK-0122",
        "TASK-0123",
        "TASK-0125"
      ],
      "cross_release_task_ids": [
        "TASK-0010"
      ],
      "acceptance_criteria": [],
      "acceptance_evidence": null
    },
    {
      "id": "NFR-0007",
      "type": "non-functional-requirement",
      "title": "Engineering reproducibility and supply-chain integrity",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/non-functional/NFR-0007.yml",
      "feature_ids": [
        "AEROSIM-FT-41",
        "AEROSIM-FT-42",
        "AEROSIM-FT-43",
        "AEROSIM-FT-44",
        "AEROSIM-FT-45",
        "AEROSIM-FT-46",
        "AEROSIM-FT-47",
        "AEROSIM-FT-48",
        "AEROSIM-FT-50",
        "AEROSIM-FT-51",
        "AEROSIM-FT-52",
        "AEROSIM-FT-53"
      ],
      "statement": "Keep foundation builds, schemas, contracts, assets, validation, images, and deployment artifacts reproducible and traceable to governed inputs.",
      "quality_attribute": "Reproducibility and integrity",
      "measurable_target": "Repeated validation from the same immutable inputs produces equivalent artifacts and rejects unlicensed, untraceable, invalid, or over-budget inputs.",
      "scope": "AEROSIM-FT-41, AEROSIM-FT-42, AEROSIM-FT-43, AEROSIM-FT-44, AEROSIM-FT-45, AEROSIM-FT-46, AEROSIM-FT-47, AEROSIM-FT-48, AEROSIM-FT-49, AEROSIM-FT-50, AEROSIM-FT-51, AEROSIM-FT-52, AEROSIM-FT-53, AEROSIM-FT-54, AEROSIM-FT-55",
      "verification_method": "Run clean-build, migration, contract, asset-provenance, image, chart, and exact-head delivery checks.",
      "c4_elements": [
        "Web application",
        "API Service",
        "Documentation site"
      ],
      "release_task_ids": [
        "TASK-0011",
        "TASK-0012",
        "TASK-0013",
        "TASK-0014",
        "TASK-0015",
        "TASK-0016",
        "TASK-0017",
        "TASK-0018",
        "TASK-0019",
        "TASK-0020",
        "TASK-0021",
        "TASK-0022",
        "TASK-0023",
        "TASK-0024",
        "TASK-0025",
        "TASK-0026",
        "TASK-0027",
        "TASK-0028",
        "TASK-0029",
        "TASK-0030",
        "TASK-0031",
        "TASK-0032",
        "TASK-0033",
        "TASK-0034",
        "TASK-0035",
        "TASK-0036",
        "TASK-0037",
        "TASK-0038",
        "TASK-0039",
        "TASK-0040",
        "TASK-0041",
        "TASK-0042",
        "TASK-0043",
        "TASK-0044",
        "TASK-0045",
        "TASK-0046",
        "TASK-0047",
        "TASK-0048",
        "TASK-0049",
        "TASK-0050",
        "TASK-0051",
        "TASK-0052",
        "TASK-0117",
        "TASK-0128",
        "TASK-0129",
        "TASK-0130",
        "TASK-0131",
        "TASK-0132"
      ],
      "cross_release_task_ids": [
        "TASK-0164",
        "TASK-0165",
        "TASK-0166",
        "TASK-0167"
      ],
      "acceptance_criteria": [],
      "acceptance_evidence": null
    },
    {
      "id": "NFR-0008",
      "type": "non-functional-requirement",
      "title": "Pilot identity security and data isolation",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/non-functional/NFR-0008.yml",
      "feature_ids": [
        "AEROSIM-FT-30",
        "AEROSIM-FT-31",
        "AEROSIM-FT-32",
        "AEROSIM-FT-33",
        "AEROSIM-FT-34"
      ],
      "statement": "Protect Keycloak-authenticated identity, pilot profiles, preferences, progress, and resumable activity from cross-pilot access or local-credential fallback.",
      "quality_attribute": "Security and privacy",
      "measurable_target": "Every authenticated operation resolves only the active Keycloak subject’s pilot data; AeroSim stores no local password; cross-pilot access attempts are denied and produce reviewable security evidence.",
      "scope": "AEROSIM-FT-30, AEROSIM-FT-31, AEROSIM-FT-32, AEROSIM-FT-33, AEROSIM-FT-34",
      "verification_method": "Run authentication-boundary, authorization-isolation, session-expiry, cross-pilot access, and persisted-data integrity tests.",
      "c4_elements": [
        "Web application",
        "API Service"
      ],
      "release_task_ids": [
        "TASK-0053",
        "TASK-0054",
        "TASK-0055",
        "TASK-0056",
        "TASK-0057",
        "TASK-0058",
        "TASK-0059",
        "TASK-0060",
        "TASK-0061",
        "TASK-0062",
        "TASK-0063",
        "TASK-0064",
        "TASK-0065",
        "TASK-0066",
        "TASK-0067",
        "TASK-0068",
        "TASK-0069",
        "TASK-0070",
        "TASK-0071",
        "TASK-0072",
        "TASK-0118",
        "TASK-0119",
        "TASK-0120",
        "TASK-0121"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [],
      "acceptance_evidence": null
    },
    {
      "id": "NFR-0009",
      "type": "non-functional-requirement",
      "title": "Simulation consistency and bounded recovery",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/non-functional/NFR-0009.yml",
      "feature_ids": [
        "AEROSIM-FT-1",
        "AEROSIM-FT-2",
        "AEROSIM-FT-9",
        "AEROSIM-FT-10",
        "AEROSIM-FT-11"
      ],
      "statement": "Keep aircraft, environment, collision, and invalid-state outcomes consistent for equivalent governed inputs and visibly recoverable at supported boundaries.",
      "quality_attribute": "Reliability and determinism",
      "measurable_target": "Equivalent initial state and timed inputs remain within declared motion and world-state tolerances, and every invalid terminal state exposes a valid recovery, retry, or exit action.",
      "scope": "AEROSIM-FT-1, AEROSIM-FT-2, AEROSIM-FT-9, AEROSIM-FT-10, AEROSIM-FT-11",
      "verification_method": "Compare repeated state traces and run supported boundary, crash, recovery, and invalid-state scenarios.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0074",
        "TASK-0079",
        "TASK-0082",
        "TASK-0085",
        "TASK-0088"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [],
      "acceptance_evidence": null
    },
    {
      "id": "NFR-0010",
      "type": "non-functional-requirement",
      "title": "Responsive flight interaction",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/non-functional/NFR-0010.yml",
      "feature_ids": [
        "AEROSIM-FT-3",
        "AEROSIM-FT-4",
        "AEROSIM-FT-5",
        "AEROSIM-FT-12",
        "AEROSIM-FT-13",
        "AEROSIM-FT-14"
      ],
      "statement": "Keep flight controls, aircraft state, cameras, pause, outcomes, and recovery responsive within the declared latency budget.",
      "quality_attribute": "Responsiveness",
      "measurable_target": "Supported input-to-state and state-to-render paths meet the declared latency budget across ordinary flight, bounded heavy scenes, pause, camera selection, outcomes, and recovery.",
      "scope": "AEROSIM-FT-3, AEROSIM-FT-4, AEROSIM-FT-5, AEROSIM-FT-12, AEROSIM-FT-13, AEROSIM-FT-14",
      "verification_method": "Measure input-to-state and state-to-render latency across ordinary flight, bounded heavy scenes, camera changes, pause, outcomes, and recovery.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0004",
        "TASK-0005",
        "TASK-0006",
        "TASK-0090",
        "TASK-0091",
        "TASK-0092",
        "TASK-0094",
        "TASK-0095",
        "TASK-0096",
        "TASK-0097",
        "TASK-0125",
        "TASK-0126"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [],
      "acceptance_evidence": null
    },
    {
      "id": "NFR-0011",
      "type": "non-functional-requirement",
      "title": "Faithful pre-flight configuration",
      "status": "Proposed",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/requirements/non-functional/NFR-0011.yml",
      "feature_ids": [
        "AEROSIM-FT-6",
        "AEROSIM-FT-7",
        "AEROSIM-FT-15",
        "AEROSIM-FT-16",
        "AEROSIM-FT-17",
        "AEROSIM-FT-18"
      ],
      "statement": "Ensure the launched session exactly reflects the confirmed world, aircraft, conditions, controls, and camera.",
      "quality_attribute": "Configuration integrity",
      "measurable_target": "Every launch establishes one session whose canonical configuration equals the reviewed pre-flight summary.",
      "scope": "AEROSIM-FT-6, AEROSIM-FT-7, AEROSIM-FT-15, AEROSIM-FT-16, AEROSIM-FT-17, AEROSIM-FT-18",
      "verification_method": "Run configuration-round-trip, invalid-control, and single-launch tests.",
      "c4_elements": [
        "Web application"
      ],
      "release_task_ids": [
        "TASK-0099",
        "TASK-0100",
        "TASK-0103",
        "TASK-0104",
        "TASK-0106",
        "TASK-0107",
        "TASK-0108",
        "TASK-0109",
        "TASK-0110",
        "TASK-0111",
        "TASK-0112",
        "TASK-0114",
        "TASK-0115",
        "TASK-0122",
        "TASK-0123",
        "TASK-0124",
        "TASK-0127"
      ],
      "cross_release_task_ids": [],
      "acceptance_criteria": [],
      "acceptance_evidence": null
    }
  ],
  "tasks": [
    {
      "id": "TASK-0001",
      "display_id": "AEROSIM-TS-1",
      "title": "Implement the normalized flight-force evaluator",
      "feature_id": "AEROSIM-FT-1",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-1/aerosim-ts-1/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0001.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "@corp-v1-aerosim/flight-core — flight force model",
      "outcome": "Each fixed simulation step produces lift, drag, thrust, gravity, and net force/moment values from validated bounded gameplay parameters.",
      "scope": "Implement the pure evaluateFlightForces(input: FlightForceInput): FlightForceResult function. FlightForceInput contains AircraftKinematicState, ControlAxes, AircraftHandlingConfig, EnvironmentVector, and fixedStepSeconds; FlightForceResult contains liftBodyN, dragBodyN, thrustBodyN, gravityWorldN, netForceWorldN, and netMomentBodyNm. Validate every scalar before calculation and never mutate the input state.",
      "implementation_artifacts": [
        "packages/flight-core/src/physics/evaluate-flight-forces.ts",
        "packages/flight-core/src/contracts/flight-force.ts",
        "packages/flight-core/test/physics/evaluate-flight-forces.spec.ts"
      ],
      "inputs": [
        "FlightForceInput {state:{positionM, velocityMps, attitudeQuaternion, angularVelocityRadps}, controls:{pitch,roll,yaw,throttle}, aircraft:AircraftHandlingConfig, environment:{gravityMps2,windWorldMps,airDensityKgM3}, fixedStepSeconds}; control axes and throttle are normalized to [-1,1] and [0,1]."
      ],
      "outputs": [
        "FlightForceResult {liftBodyN:Vec3, dragBodyN:Vec3, thrustBodyN:Vec3, gravityWorldN:Vec3, netForceWorldN:Vec3, netMomentBodyNm:Vec3}; all components are finite and inputs remain byte-equivalent after evaluation."
      ],
      "failure_boundaries": [
        "Throw FlightForceInputError(code='NON_FINITE_STATE') before calculation when any position, velocity, attitude, or angular-velocity component is NaN or infinite.",
        "Throw FlightForceInputError(code='CONTROL_OUT_OF_RANGE') for pitch, roll, or yaw outside [-1,1], or throttle outside [0,1].",
        "Throw FlightForceInputError(code='INVALID_AIRCRAFT_CONFIG') when mass, wing area, inertia, force coefficient, or control-authority values are non-finite, zero where positive is required, or outside schema bounds.",
        "Throw FlightForceInputError(code='INVALID_STEP') unless fixedStepSeconds is the configured positive fixed step; do not clamp or emit a partial force result."
      ],
      "exclusions": [
        "Position, velocity, and attitude integration is owned by EP3-FT1-02.",
        "Terrain contact, collision impulses, structural damage, fuel burn, engine startup, and CFD-grade aerodynamics are not implemented here."
      ],
      "verification_steps": [
        "Run packages/flight-core/test/physics/evaluate-flight-forces.spec.ts.",
        "Assert zero-throttle level-flight, full-throttle, climb, descent, bank, headwind, and tailwind fixtures against committed numeric vectors and tolerances.",
        "Inject every non-finite field, each control bound violation, zero/negative mass and inertia, and an incorrect timestep; assert the exact FlightForceInputError code and absence of output.",
        "Run the mutation guard that deep-freezes FlightForceInput and compares its serialized value before and after evaluation."
      ],
      "dependencies": [],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0001"
      ],
      "acceptance_evidence": "Verified delivery: application PR #8 reviewed head 18d5854695e31946c72242b2e26f2d9efa2f3c74, merged as 589e445bb22ea501834fd60e27bd9d2636c802e6; final Wave 1 integration head 7d43415f042123871516df10ecc18cc1c4beb034 passed Gitea Actions publish task 1735 and validate task 1736. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0001",
        "state": "InBacklog",
        "decision_date": "2026-08-24T15:06:15.606Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0001-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0001",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0001",
            "state": "Done",
            "event_id": "FLOW-TASK-0001-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0001",
            "state": "Done",
            "event_id": "FLOW-TASK-0001-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0001",
            "state": "Done",
            "event_id": "FLOW-TASK-0001-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0001.yml",
            "item_id": "TASK-0001",
            "state": "Done",
            "event_id": "FLOW-TASK-0001-DONE-20260915"
          }
        ],
        "previous_hash": "b9ec176f4dcafa15740593413fd831c7605f4ef16c0e9a45a64bb7474a90793a",
        "hash": "2b4e7dc6c6f14fb78c6da670db338b46871dfce51eda75de3e75dca9726f3808"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0001-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0001",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0001",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0001-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0001.yml",
              "item_id": "TASK-0001",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0001-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "384ab0c97523a8234a8a9745f491b42a8f692c59ef8ed8dfda10cb07c4839b47"
        },
        {
          "event_id": "FLOW-TASK-0001-IN-PROGRESS-20260903",
          "sequence": 2,
          "item_id": "TASK-0001",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T17:55:01Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/8",
              "item_id": "TASK-0001",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0001-IN-PROGRESS-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0001.yml",
              "item_id": "TASK-0001",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0001-IN-PROGRESS-20260903"
            }
          ],
          "previous_hash": "384ab0c97523a8234a8a9745f491b42a8f692c59ef8ed8dfda10cb07c4839b47",
          "hash": "acf227e562226f89ce2b0d55328a53efff0e0652dddcfb0d670a92ee6e30aaab"
        },
        {
          "event_id": "FLOW-TASK-0001-TO-BE-RELEASED-20260903",
          "sequence": 3,
          "item_id": "TASK-0001",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T17:55:02Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/8",
              "item_id": "TASK-0001",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0001-TO-BE-RELEASED-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0001.yml",
              "item_id": "TASK-0001",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0001-TO-BE-RELEASED-20260903"
            }
          ],
          "previous_hash": "acf227e562226f89ce2b0d55328a53efff0e0652dddcfb0d670a92ee6e30aaab",
          "hash": "b9ec176f4dcafa15740593413fd831c7605f4ef16c0e9a45a64bb7474a90793a"
        },
        {
          "event_id": "FLOW-TASK-0001-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0001",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0001",
              "state": "Done",
              "event_id": "FLOW-TASK-0001-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0001",
              "state": "Done",
              "event_id": "FLOW-TASK-0001-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0001",
              "state": "Done",
              "event_id": "FLOW-TASK-0001-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0001.yml",
              "item_id": "TASK-0001",
              "state": "Done",
              "event_id": "FLOW-TASK-0001-DONE-20260915"
            }
          ],
          "previous_hash": "b9ec176f4dcafa15740593413fd831c7605f4ef16c0e9a45a64bb7474a90793a",
          "hash": "2b4e7dc6c6f14fb78c6da670db338b46871dfce51eda75de3e75dca9726f3808"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0002",
      "display_id": "AEROSIM-TS-2",
      "title": "Detect and classify supported terrain and obstacle contact",
      "feature_id": "AEROSIM-FT-2",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-2/aerosim-ts-2/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0002.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web flight runtime — Rapier contact adapter and classifier",
      "outcome": "The deterministic runtime reports controlled terrain contact, unsafe terrain contact, and solid-object collision using the aligned Rapier collision world.",
      "scope": "Normalize Rapier collision events and downward terrain probes into ContactObservation, then classify them with ContactPolicyV1 as NO_CONTACT, CONTROLLED_GROUND_CONTACT, UNSAFE_TERRAIN_IMPACT, or SOLID_OBSTACLE_IMPACT. Classification uses collider category, contact normal, relativeNormalSpeedMps, aircraftUpDotNormal, landingGearContact, and policy thresholds; one eventId is classified once.",
      "implementation_artifacts": [
        "applications/web/src/flight/collision/contact-observation.ts",
        "applications/web/src/flight/collision/classify-contact.ts",
        "applications/web/test/flight/contact-classification.spec.ts"
      ],
      "inputs": [
        "ContactObservation {eventId,simulationTick,aircraftColliderId,otherColliderId,otherCategory:'terrain'|'obstacle',contactPointWorldM,normalWorld,relativeNormalSpeedMps,aircraftUpDotNormal,landingGearContact} and ContactPolicyV1 thresholds."
      ],
      "outputs": [
        "ContactClassification {eventId,simulationTick,kind,reasonCode,contactPointWorldM,normalWorld,relativeNormalSpeedMps}; duplicate eventIds return the previously recorded classification without a second transition."
      ],
      "failure_boundaries": [
        "Return CONTACT_DATA_INVALID for missing collider IDs, unsupported category, non-unit normal beyond tolerance, or non-finite point/speed/orientation fields; route the session to invalid-state handling rather than classifying safe contact.",
        "Return CONTACT_POLICY_INVALID when speed, orientation, or gear thresholds are missing, non-finite, negative, or internally contradictory.",
        "Classify threshold equality exactly as documented: speed <= maxLandingNormalSpeedMps and upDot >= minLandingUpDot may be controlled; values beyond either threshold are unsafe.",
        "Return CONTACT_TICK_STALE when simulationTick is older than the active physics tick, and CONTACT_EVENT_CONFLICT when a repeated eventId carries different bytes."
      ],
      "exclusions": [
        "Rigid-body impulse resolution, damage modelling, deformable terrain, water contact, runway scoring, boundary-distance policy, and outcome presentation are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/contact-classification.spec.ts.",
        "Test no-contact, gear-first controlled landing, fuselage terrain strike, excessive descent speed, excessive bank, and obstacle impact fixtures at below/equal/above threshold values.",
        "Inject every malformed field, invalid policy, stale tick, exact duplicate, and conflicting duplicate; assert exact kind/reasonCode and exactly-once classification.",
        "Assert ContactClassification preserves eventId, tick, point, normal, and speed from the validated observation."
      ],
      "dependencies": [
        "TASK-0034"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0003"
      ],
      "acceptance_evidence": "Verified delivery: application PR #74 reviewed head 716b07d09affcf31325bc095ca4e9063ccbddff5, merged as 3f9e7ef1137f469ca831cf5113201bc57b2e9c78; final whole-wave application head 7f26eca79eadef3171564fc60035e9866c2c848e: publication run 3914 succeeded and integration run 3915 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0002",
        "state": "InBacklog",
        "decision_date": "2026-08-24T15:06:15.606Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0002-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0002",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0002",
            "state": "Done",
            "event_id": "FLOW-TASK-0002-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0002",
            "state": "Done",
            "event_id": "FLOW-TASK-0002-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0002",
            "state": "Done",
            "event_id": "FLOW-TASK-0002-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0002.yml",
            "item_id": "TASK-0002",
            "state": "Done",
            "event_id": "FLOW-TASK-0002-DONE-20260915"
          }
        ],
        "previous_hash": "eb8056d5de6ba3274608c7f6239f2d15c826e8e04893ee37d80af174b0d1e415",
        "hash": "0e95d35c1a451b71ef9936dde46909c01f04b55ac17b39b17d701cda75575420"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0002-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0002",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0002",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0002-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0002.yml",
              "item_id": "TASK-0002",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0002-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "0b85b23dd5fe251dd711f53a522bd3553b1a15c4360870a3e60e0cdb6d8a03c8"
        },
        {
          "event_id": "FLOW-TASK-0002-IN-PROGRESS-20260906",
          "sequence": 2,
          "item_id": "TASK-0002",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T08:33:27Z",
          "conditions": [
            "Whole Wave 14 claim: TASK-0002, TASK-0007, TASK-0047, TASK-0060, and TASK-0076 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0002-contact-classification",
              "item_id": "TASK-0002",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0002-IN-PROGRESS-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/79cf7ff67a72b65a89854382e147ef9bda664cbf",
              "item_id": "TASK-0002",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0002-IN-PROGRESS-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0002.yml",
              "item_id": "TASK-0002",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0002-IN-PROGRESS-20260906"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0002-contact-classification",
          "claim_base_sha": "79cf7ff67a72b65a89854382e147ef9bda664cbf",
          "previous_hash": "0b85b23dd5fe251dd711f53a522bd3553b1a15c4360870a3e60e0cdb6d8a03c8",
          "hash": "5a7cb4696d38205fc3c8b608cf319ec999a4f486df932ca446215948884d45e3"
        },
        {
          "event_id": "FLOW-TASK-0002-TO-BE-RELEASED-20260906",
          "sequence": 3,
          "item_id": "TASK-0002",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T17:14:29Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/74",
              "item_id": "TASK-0002",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0002-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/3f9e7ef1137f469ca831cf5113201bc57b2e9c78",
              "item_id": "TASK-0002",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0002-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7f26eca79eadef3171564fc60035e9866c2c848e",
              "item_id": "TASK-0002",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0002-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3914",
              "item_id": "TASK-0002",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0002-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3915",
              "item_id": "TASK-0002",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0002-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0002.yml",
              "item_id": "TASK-0002",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0002-TO-BE-RELEASED-20260906"
            }
          ],
          "previous_hash": "5a7cb4696d38205fc3c8b608cf319ec999a4f486df932ca446215948884d45e3",
          "hash": "eb8056d5de6ba3274608c7f6239f2d15c826e8e04893ee37d80af174b0d1e415"
        },
        {
          "event_id": "FLOW-TASK-0002-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0002",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0002",
              "state": "Done",
              "event_id": "FLOW-TASK-0002-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0002",
              "state": "Done",
              "event_id": "FLOW-TASK-0002-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0002",
              "state": "Done",
              "event_id": "FLOW-TASK-0002-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0002.yml",
              "item_id": "TASK-0002",
              "state": "Done",
              "event_id": "FLOW-TASK-0002-DONE-20260915"
            }
          ],
          "previous_hash": "eb8056d5de6ba3274608c7f6239f2d15c826e8e04893ee37d80af174b0d1e415",
          "hash": "0e95d35c1a451b71ef9936dde46909c01f04b55ac17b39b17d701cda75575420"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0003",
      "display_id": "AEROSIM-TS-3",
      "title": "Capture continuous flight controls and control ownership",
      "feature_id": "AEROSIM-FT-3",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-3/aerosim-ts-3/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0003.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — browser input adapters and control-ownership state",
      "outcome": "Supported pitch, roll, yaw, and thrust inputs produce normalized authoritative control commands, while input loss or ownership changes are surfaced without silently transferring control.",
      "scope": "Implement applications/web/src/flight/input/flight-control-adapter.ts, applications/web/test/flight/flight-control-adapter.spec.ts. Consume only the inputs listed in this contract, publish only its listed outputs, enforce every failure boundary before commit, and prove the listed exclusions remain unchanged through the verification steps.",
      "implementation_artifacts": [
        "applications/web/src/flight/input/flight-control-adapter.ts",
        "applications/web/test/flight/flight-control-adapter.spec.ts"
      ],
      "inputs": [
        "Raw control samples from each declared device mapping with monotonic sampledAt, deviceId, connection state, and pitch/roll/yaw/thrust channel values.",
        "ControlOwnership { attemptId, ownerId, deviceId, epoch } for the active flight attempt.",
        "InputMappingConfig containing per-channel dead zone, inversion, scale, clamp range, and staleAfterMs."
      ],
      "outputs": [
        "FlightControlCommand { attemptId, ownerId, ownershipEpoch, sequence, sampledAt, pitch, roll, yaw, thrust } with normalized finite channels clamped to [-1,1] except thrust [0,1].",
        "ControlAvailabilityChanged for connect, disconnect, stale sample, or ownership change; no replacement owner is selected implicitly."
      ],
      "failure_boundaries": [
        "Reject samples from a device or ownership epoch that does not match ControlOwnership; publish no FlightControlCommand.",
        "Reject non-finite values, regressing timestamps/sequences, unknown mappings, and samples older than staleAfterMs; publish an explicit unavailable/invalid reason.",
        "On disconnect or ownership change, emit neutralized controls for the current owner epoch once, mark control unavailable, and wait for an explicit new ControlOwnership record."
      ],
      "exclusions": [
        "Applying commands to aircraft forces or motion.",
        "Camera, instrument, pause, completion, retry, or restart behavior."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/flight-control-adapter.spec.ts for every declared device mapping and channel boundary, dead zone, inversion, scale, and clamp case.",
        "Feed a monotonic sustained sample trace and assert ordered normalized commands with no gaps or duplicate sequence values.",
        "Inject disconnect, ownership-epoch changes, stale/out-of-order samples, unknown mappings, and NaN/Infinity; assert one neutralization where specified, explicit availability state, and no silent owner transfer."
      ],
      "dependencies": [
        "TASK-0075",
        "TASK-0082"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0005",
        "NFR-0006"
      ],
      "acceptance_evidence": "Verified delivery: application PR #134 reviewed head 65e235f52d163597c21937eb3ea909816d5a9a6a merged as 796592409609f94db3708a33e42ba677bb8ffd40. Flight-control adapter normalizes declared device mappings, publishes 200 gap-free ordered owned commands, rejects stale, invalid, mismatched and regressing input, and neutralizes exactly once on disconnect or ownership change without implicit transfer. Focused tests: 9 passed; web suite: 1,104 passed plus 11 invalid-action and 27 environment-presentation tests. Exact-head and post-merge CI runs 4322, 4323, 4327, 4328 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0003",
        "state": "InBacklog",
        "decision_date": "2026-08-24T15:06:15.606Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0003-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0003",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0003",
            "state": "Done",
            "event_id": "FLOW-TASK-0003-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0003",
            "state": "Done",
            "event_id": "FLOW-TASK-0003-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0003",
            "state": "Done",
            "event_id": "FLOW-TASK-0003-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0003.yml",
            "item_id": "TASK-0003",
            "state": "Done",
            "event_id": "FLOW-TASK-0003-DONE-20260915"
          }
        ],
        "previous_hash": "ca2b8ae5e6240f4d581068dec330eda65606cc845da192c1099984e633629224",
        "hash": "1480832aa135d6b4160f788aaaffa1ecba7b1fc94e67a228d59dc2e0387207b3"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0003-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0003",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0003",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0003-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0003.yml",
              "item_id": "TASK-0003",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0003-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "b081478b85c5f6e5a1cc08078f0c9da2ce2cb446501e11eb0ee5595cd703247b"
        },
        {
          "event_id": "FLOW-TASK-0003-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0003",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "decision_date": "2026-09-10T11:25:58Z",
          "conditions": [
            "Whole Wave 21 claim: TASK-0003 and TASK-0071 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0003-flight-control-adapter-1",
              "item_id": "TASK-0003",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0003-IN-PROGRESS-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/134",
              "item_id": "TASK-0003",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0003-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0003.yml",
              "item_id": "TASK-0003",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0003-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "b081478b85c5f6e5a1cc08078f0c9da2ce2cb446501e11eb0ee5595cd703247b",
          "hash": "b66e5825a81b3bb2bb8522b28a6e5fcd5c9aae21064b673799a52923e251ce9a",
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0003-flight-control-adapter-1",
          "claim_base_sha": "94ddb9fa3f6b12bd1e6d55e2a63bd668d3525054"
        },
        {
          "event_id": "FLOW-TASK-0003-TO-BE-RELEASED-20260910",
          "sequence": 3,
          "item_id": "TASK-0003",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T12:25:04Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/134",
              "item_id": "TASK-0003",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0003-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/796592409609f94db3708a33e42ba677bb8ffd40",
              "item_id": "TASK-0003",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0003-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4322",
              "item_id": "TASK-0003",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0003-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4323",
              "item_id": "TASK-0003",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0003-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4327",
              "item_id": "TASK-0003",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0003-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4328",
              "item_id": "TASK-0003",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0003-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim-documentation/pulls/202",
              "item_id": "TASK-0003",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0003-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0003.yml",
              "item_id": "TASK-0003",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0003-TO-BE-RELEASED-20260910"
            }
          ],
          "previous_hash": "b66e5825a81b3bb2bb8522b28a6e5fcd5c9aae21064b673799a52923e251ce9a",
          "hash": "ca2b8ae5e6240f4d581068dec330eda65606cc845da192c1099984e633629224"
        },
        {
          "event_id": "FLOW-TASK-0003-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0003",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0003",
              "state": "Done",
              "event_id": "FLOW-TASK-0003-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0003",
              "state": "Done",
              "event_id": "FLOW-TASK-0003-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0003",
              "state": "Done",
              "event_id": "FLOW-TASK-0003-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0003.yml",
              "item_id": "TASK-0003",
              "state": "Done",
              "event_id": "FLOW-TASK-0003-DONE-20260915"
            }
          ],
          "previous_hash": "ca2b8ae5e6240f4d581068dec330eda65606cc845da192c1099984e633629224",
          "hash": "1480832aa135d6b4160f788aaaffa1ecba7b1fc94e67a228d59dc2e0387207b3"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "supporting",
        "design_refs": [
          "UIUX-100-CHASE"
        ],
        "acceptance": [
          "Continuous pilot input must preserve the observable control ownership and aircraft-response consequences shown by the approved Chase flight state.",
          "Verify control behavior through the canonical Task evidence without claiming a separate product screen."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0004",
      "display_id": "AEROSIM-TS-4",
      "title": "Project authoritative aircraft state into flight instruments",
      "feature_id": "AEROSIM-FT-4",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-4/aerosim-ts-4/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0004.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — flight-state projection and instrument presentation",
      "outcome": "Attitude, speed, altitude, heading, and control position remain visible and update from the authoritative flight state.",
      "scope": "Implement applications/web/src/flight/instruments/aircraft-state-projection.ts, applications/web/src/flight/instruments/flight-instruments.tsx, applications/web/test/flight/flight-instruments.browser.spec.ts. Consume only the inputs listed in this contract, publish only its listed outputs, enforce every failure boundary before commit, and prove the listed exclusions remain unchanged through the verification steps.",
      "implementation_artifacts": [
        "applications/web/src/flight/instruments/aircraft-state-projection.ts",
        "applications/web/src/flight/instruments/flight-instruments.tsx",
        "applications/web/test/flight/flight-instruments.browser.spec.ts"
      ],
      "inputs": [
        "Committed AircraftState { attemptId, stepIndex, orientation, speedMps, altitudeM, headingDeg, appliedControls } from flight-core.",
        "InstrumentFormatConfig defining units, precision, valid ranges, staleAfterMs, and the declared update/latency limit."
      ],
      "outputs": [
        "FlightInstrumentModel { attemptId, sourceStep, attitude, speed, altitude, heading, controlPositions, validity, updatedAt } calculated without storing independent physics state.",
        "One rendered instrument frame for each accepted model, labelled with its sourceStep for test correlation."
      ],
      "failure_boundaries": [
        "Reject stale, regressing-step, mismatched-attempt, or non-finite AircraftState and render an explicit invalid-data state instead of carrying values forward as current.",
        "Clamp only display-domain formatting such as heading wrap; do not repair or overwrite authoritative aircraft values.",
        "Fail the contract when a valid model omits any required field, renders from a different sourceStep, or exceeds the configured update/latency limit."
      ],
      "exclusions": [
        "Warning severity classification and warning prioritization.",
        "Flight-control acquisition/application, camera composition, and session lifecycle changes."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/flight-instruments.browser.spec.ts with a fixed state trace and assert attitude, speed, altitude, heading, and control positions match each authoritative sourceStep and configured formatting.",
        "Assert the projection performs no writes to flight-core and contains no integrator or independently advanced aircraft values.",
        "Inject stale/regressing/mismatched and NaN/Infinity states; assert explicit invalid-data presentation, no stale value presented as current, and configured update/latency limits across every declared browser fixture."
      ],
      "dependencies": [
        "TASK-0096"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0007",
        "NFR-0001",
        "NFR-0003",
        "NFR-0006",
        "NFR-0010"
      ],
      "acceptance_evidence": "Verified delivery: application PR #138 reviewed head 542158aecd425c38861b9c9f7ea59db41178da99 merged as ebc6ab83f372c18925699f8d97bd362a3839695e. The immutable projection and rendered instrument frame preserve attempt/source-step correlation; present attitude, speed, altitude, heading, and all applied controls; reject stale, regressing, mismatched-attempt, non-finite, out-of-range, incomplete, and over-budget inputs without presenting retained values as current; and wrap rounded headings correctly. Focused tests pass 5/5; web tests pass 1,104/1,104 plus invalid-action 11/11 and environment-presentation 27/27; integration tests pass 137/137; formatting, lint, typecheck, production build, dependency audit, exact-head CI run 4365, and integration/publication runs 4366-4367 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0004",
        "state": "InBacklog",
        "decision_date": "2026-08-24T15:06:15.606Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0004-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0004",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0004",
            "state": "Done",
            "event_id": "FLOW-TASK-0004-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0004",
            "state": "Done",
            "event_id": "FLOW-TASK-0004-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0004",
            "state": "Done",
            "event_id": "FLOW-TASK-0004-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0004.yml",
            "item_id": "TASK-0004",
            "state": "Done",
            "event_id": "FLOW-TASK-0004-DONE-20260915"
          }
        ],
        "previous_hash": "6c40a9e22a80c1ef3d91a88e7b9a00a566832440c2c48e78d9f5b493d4e3a5ad",
        "hash": "768e0fb247e3157877155dbca1c8be29a72d9c827fd2d96e8e7a5cc790f9a48d"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0004-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0004",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0004",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0004-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0004.yml",
              "item_id": "TASK-0004",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0004-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "3884f9ae863ddf807590591af5f2bc8a993c8d752b7763a51bb284abf0a69331"
        },
        {
          "event_id": "FLOW-TASK-0004-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0004",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T14:40:30Z",
          "conditions": [
            "Wave 23 is the current dependency wave; TASK-0096 is TO_BE_RELEASED."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0004-flight-instruments-1",
          "claim_base_sha": "02d7db9e740bc3761613b3e5c29b126622ef8322",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/138",
              "item_id": "TASK-0004",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0004-IN-PROGRESS-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0004-flight-instruments-1",
              "item_id": "TASK-0004",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0004-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0004.yml",
              "item_id": "TASK-0004",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0004-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "3884f9ae863ddf807590591af5f2bc8a993c8d752b7763a51bb284abf0a69331",
          "hash": "6c3a778f8c63366c1e0cc7702d2eda452fd302fc6c4ce3f2a0a9bbf66987494b"
        },
        {
          "event_id": "FLOW-TASK-0004-TO-BE-RELEASED-20260910",
          "sequence": 3,
          "item_id": "TASK-0004",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T15:36:52Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/138",
              "item_id": "TASK-0004",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0004-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/ebc6ab83f372c18925699f8d97bd362a3839695e",
              "item_id": "TASK-0004",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0004-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4366",
              "item_id": "TASK-0004",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0004-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4367",
              "item_id": "TASK-0004",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0004-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0004.yml",
              "item_id": "TASK-0004",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0004-TO-BE-RELEASED-20260910"
            }
          ],
          "previous_hash": "6c3a778f8c63366c1e0cc7702d2eda452fd302fc6c4ce3f2a0a9bbf66987494b",
          "hash": "6c40a9e22a80c1ef3d91a88e7b9a00a566832440c2c48e78d9f5b493d4e3a5ad"
        },
        {
          "event_id": "FLOW-TASK-0004-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0004",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0004",
              "state": "Done",
              "event_id": "FLOW-TASK-0004-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0004",
              "state": "Done",
              "event_id": "FLOW-TASK-0004-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0004",
              "state": "Done",
              "event_id": "FLOW-TASK-0004-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0004.yml",
              "item_id": "TASK-0004",
              "state": "Done",
              "event_id": "FLOW-TASK-0004-DONE-20260915"
            }
          ],
          "previous_hash": "6c40a9e22a80c1ef3d91a88e7b9a00a566832440c2c48e78d9f5b493d4e3a5ad",
          "hash": "768e0fb247e3157877155dbca1c8be29a72d9c827fd2d96e8e7a5cc790f9a48d"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0005",
      "display_id": "AEROSIM-TS-5",
      "title": "Classify and present aircraft warnings and control feedback",
      "feature_id": "AEROSIM-FT-4",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-4/aerosim-ts-5/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0005.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — aircraft-state classification and in-flight feedback",
      "outcome": "Normal, warning, and invalid aircraft states are distinguishable through timely, prioritized control-response cues and warnings.",
      "scope": "Implement applications/web/src/flight/warnings/aircraft-warning-classifier.ts, applications/web/src/flight/warnings/flight-warning-presenter.tsx, applications/web/test/flight/flight-warnings.browser.spec.ts. Consume only the inputs listed in this contract, publish only its listed outputs, enforce every failure boundary before commit, and prove the listed exclusions remain unchanged through the verification steps.",
      "implementation_artifacts": [
        "applications/web/src/flight/warnings/aircraft-warning-classifier.ts",
        "applications/web/src/flight/warnings/flight-warning-presenter.tsx",
        "applications/web/test/flight/flight-warnings.browser.spec.ts"
      ],
      "inputs": [
        "FlightInstrumentModel from TASK-0004 with attemptId, sourceStep, validity, and unrounded aircraft/control values required by rules.",
        "Versioned WarningRuleSet containing explicit normal, warning, and invalid predicates, severity, priority, and configured presentation/latency limit."
      ],
      "outputs": [
        "WarningSet { attemptId, sourceStep, ruleSetVersion, highestSeverity, orderedWarnings } produced by pure classification.",
        "Rendered control-response cues and warning state ordered by severity then stable rule ID; invalid source data produces INVALID rather than NORMAL."
      ],
      "failure_boundaries": [
        "Reject a model with stale attempt, regressing sourceStep, or rule-set version mismatch; do not merge warnings from different steps or versions.",
        "If predicates overlap, apply declared priority deterministically and record all matched rule IDs; never publish contradictory NORMAL and WARNING/INVALID states.",
        "Fail when any classification-to-render sample exceeds the configured limit or sustained heavy-scene execution exceeds configured browser resource limits."
      ],
      "exclusions": [
        "Changing aircraft dynamics, control ownership, or authoritative instrument values.",
        "Camera selection, pause/resume, completion, retry, and restart behavior."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/flight-warnings.browser.spec.ts over boundary-value fixtures for every rule and assert normal, warning, and invalid classifications plus deterministic priority ordering.",
        "Feed step transitions and sustained bounded heavy-scene traces; assert no stale/contradictory warning, correct sourceStep, configured latency, and configured browser-resource limits.",
        "Inject invalid source models, stale attempts/steps, overlapping predicates, and mismatched rule versions; assert INVALID or rejection as specified and no flight-core writes."
      ],
      "dependencies": [
        "TASK-0004"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0008",
        "NFR-0003",
        "NFR-0005",
        "NFR-0010"
      ],
      "acceptance_evidence": "Verified delivery: application PR #143 reviewed head fbd2702e595b483b8199ab96cba3e7e5a8ae63d2 merged as b1694ae08712d3de56e53bdf273c7973a6f55dca. Versioned pure classification consumes immutable unrounded instrument measurements; deterministically orders INVALID and WARNING findings by severity, priority, and stable rule ID; suppresses contradictory NORMAL publication; rejects invalid, stale-attempt, regressing-step, mismatched-version, over-latency, and over-resource inputs; and renders prioritized control feedback without flight-core writes. Focused warning and instrument suites pass 5/5 each; canonical web suites pass 1,175/1,175; integration passes 137/137; formatting, lint, typecheck, build, production audit, exact-head CI jobs 4107-4113, integration runs 4115-4116, and immutable image publication run 4117 passed. The pre-existing TASK-0057 integration fixture now creates and cleans its own TASK-0020 baseline deterministically. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0005",
        "state": "InBacklog",
        "decision_date": "2026-08-24T15:06:15.606Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0005-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0005",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0005",
            "state": "Done",
            "event_id": "FLOW-TASK-0005-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0005",
            "state": "Done",
            "event_id": "FLOW-TASK-0005-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0005",
            "state": "Done",
            "event_id": "FLOW-TASK-0005-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0005.yml",
            "item_id": "TASK-0005",
            "state": "Done",
            "event_id": "FLOW-TASK-0005-DONE-20260915"
          }
        ],
        "previous_hash": "dd8dcd91082b43155b8ba22787a5f0cfc56d50b185f7da849c5164808cda0c40",
        "hash": "d8364556323be312bd95c514a0346546ca0e904ccdd2063cda3556d463cde79d"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0005-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0005",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0005",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0005-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0005.yml",
              "item_id": "TASK-0005",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0005-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "eae784eb152e5fddf2f991fa707f69ce02ebc9d3c9ee1096dd0b5794406465ea"
        },
        {
          "event_id": "FLOW-TASK-0005-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0005",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T20:34:31Z",
          "conditions": [
            "Wave 24 is current; TASK-0004 is TO_BE_RELEASED."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0005-aircraft-warnings-1",
          "claim_base_sha": "8b4a33ce3cd8d7265109463008f3aeaa777e0993",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/143",
              "item_id": "TASK-0005",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0005-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0005.yml",
              "item_id": "TASK-0005",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0005-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "eae784eb152e5fddf2f991fa707f69ce02ebc9d3c9ee1096dd0b5794406465ea",
          "hash": "50f82e31ea26064bba67187565b0187cc873dff7b996546d7ca84ab19d6e56d0"
        },
        {
          "event_id": "FLOW-TASK-0005-TO-BE-RELEASED-20260910",
          "sequence": 3,
          "item_id": "TASK-0005",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T21:21:34Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/143",
              "item_id": "TASK-0005",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0005-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/b1694ae08712d3de56e53bdf273c7973a6f55dca",
              "item_id": "TASK-0005",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0005-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4115",
              "item_id": "TASK-0005",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0005-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4116",
              "item_id": "TASK-0005",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0005-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4117",
              "item_id": "TASK-0005",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0005-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0005.yml",
              "item_id": "TASK-0005",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0005-TO-BE-RELEASED-20260910"
            }
          ],
          "previous_hash": "50f82e31ea26064bba67187565b0187cc873dff7b996546d7ca84ab19d6e56d0",
          "hash": "dd8dcd91082b43155b8ba22787a5f0cfc56d50b185f7da849c5164808cda0c40"
        },
        {
          "event_id": "FLOW-TASK-0005-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0005",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0005",
              "state": "Done",
              "event_id": "FLOW-TASK-0005-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0005",
              "state": "Done",
              "event_id": "FLOW-TASK-0005-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0005",
              "state": "Done",
              "event_id": "FLOW-TASK-0005-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0005.yml",
              "item_id": "TASK-0005",
              "state": "Done",
              "event_id": "FLOW-TASK-0005-DONE-20260915"
            }
          ],
          "previous_hash": "dd8dcd91082b43155b8ba22787a5f0cfc56d50b185f7da849c5164808cda0c40",
          "hash": "d8364556323be312bd95c514a0346546ca0e904ccdd2063cda3556d463cde79d"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0006",
      "display_id": "AEROSIM-TS-6",
      "title": "End a flight and record its outcome",
      "feature_id": "AEROSIM-FT-5",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-5/aerosim-ts-6/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0006.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — flight-session lifecycle and outcome presentation",
      "outcome": "The player can deliberately end or abort an active flight and receives one explicit recorded session outcome.",
      "scope": "Implement applications/web/src/flight/session/flight-completion-coordinator.ts, applications/web/test/flight/flight-completion.browser.spec.ts. Consume only the inputs listed in this contract, publish only its listed outputs, enforce every failure boundary before commit, and prove the listed exclusions remain unchanged through the verification steps.",
      "implementation_artifacts": [
        "applications/web/src/flight/session/flight-completion-coordinator.ts",
        "applications/web/test/flight/flight-completion.browser.spec.ts"
      ],
      "inputs": [
        "EndFlightRequested { attemptId, commandId, reason: COMPLETED | ABORTED } for the current ACTIVE or PAUSED attempt.",
        "Last committed SimulationSnapshot and SessionSummaryAccumulator for the same attempt."
      ],
      "outputs": [
        "Immutable FlightOutcome { attemptId, terminalState, reason, finalStep, simulationTimeMs, finalAircraftState, summary, completedAt } persisted before runtime disposal.",
        "EndFlightAccepted { attemptId, commandId, outcomeId } and one session transition to COMPLETED or ABORTED, followed by presentation of that exact outcome."
      ],
      "failure_boundaries": [
        "Reject a terminal request for a stale attempt or a session already outside ACTIVE/PAUSED; do not overwrite an existing outcome.",
        "Treat duplicate commandId or repeated terminal requests after commit as idempotent and return the original outcome reference.",
        "If outcome validation or persistence fails, keep the session in its prior state and runtime intact, emit EndFlightRejected, and allow the same command to be retried; never dispose before durable commit."
      ],
      "exclusions": [
        "Retry/restart state reconstruction and selection changes.",
        "Release analytics, camera implementation, and mutation of the final aircraft snapshot."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/flight-completion.browser.spec.ts for completion and deliberate abort from ACTIVE and PAUSED; assert outcome commit precedes runtime disposal and displayed values equal the committed record.",
        "Repeat terminal commands and send stale-attempt/invalid-state requests; assert exactly one immutable outcome and one terminal transition.",
        "Inject outcome validation and persistence failure; assert the prior session/runtime remain usable, no partial outcome appears, retry succeeds once, and completion-to-presentation timing meets the configured limit."
      ],
      "dependencies": [
        "TASK-0096"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0009",
        "NFR-0006",
        "NFR-0010"
      ],
      "acceptance_evidence": "Verified delivery: application PR #139 reviewed head abc81582eb2e9b5092fbe2786446da5d8fb9a71d merged as 28ee48de26badd56200f0496f7c010c9c3ef57f7. Completion and abort from ACTIVE/PAUSED persist one immutable outcome before disposal and present that exact record; duplicates are idempotent; stale, invalid, mismatched, and persistence-failure paths preserve runtime/state and support safe retry. Focused tests pass 8/8; web tests pass 1,104/1,104 plus invalid-action 11/11, flight-completion 8/8, flight-instruments 5/5, and environment-presentation 27/27; lint, typecheck, build, production audit, candidate runs 4376-4377, and integration/publication runs 4378-4379 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0006",
        "state": "InBacklog",
        "decision_date": "2026-08-24T15:06:15.606Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0006-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0006",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0006",
            "state": "Done",
            "event_id": "FLOW-TASK-0006-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0006",
            "state": "Done",
            "event_id": "FLOW-TASK-0006-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0006",
            "state": "Done",
            "event_id": "FLOW-TASK-0006-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0006.yml",
            "item_id": "TASK-0006",
            "state": "Done",
            "event_id": "FLOW-TASK-0006-DONE-20260915"
          }
        ],
        "previous_hash": "0a544dd6f1410fb4d023c6fe005e1c40dd7bd1cb920c97793af42399e866fc84",
        "hash": "ff929e445bd1ed587065bdf81f7eb31f736d74740fc632af550031d20d3c1e91"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0006-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0006",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0006",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0006-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0006.yml",
              "item_id": "TASK-0006",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0006-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "92a867be1e27ee921459a7a3bb10bebc79db8c0d3b41e5cbf4aaead6f64ccf5b"
        },
        {
          "event_id": "FLOW-TASK-0006-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0006",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T15:43:13Z",
          "conditions": [
            "Wave 23 remains current; TASK-0096 is TO_BE_RELEASED and TASK-0004 completed Delivery handoff."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0006-flight-completion-1",
          "claim_base_sha": "ebc6ab83f372c18925699f8d97bd362a3839695e",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/139",
              "item_id": "TASK-0006",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0006-IN-PROGRESS-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0006-flight-completion-1",
              "item_id": "TASK-0006",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0006-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0006.yml",
              "item_id": "TASK-0006",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0006-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "92a867be1e27ee921459a7a3bb10bebc79db8c0d3b41e5cbf4aaead6f64ccf5b",
          "hash": "a81b88b76fa12652cb8b2c7866180287883be58d2cea8a1ec4809779c0dab713"
        },
        {
          "event_id": "FLOW-TASK-0006-TO-BE-RELEASED-20260910",
          "sequence": 3,
          "item_id": "TASK-0006",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T16:37:14Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/139",
              "item_id": "TASK-0006",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0006-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/28ee48de26badd56200f0496f7c010c9c3ef57f7",
              "item_id": "TASK-0006",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0006-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4378",
              "item_id": "TASK-0006",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0006-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4379",
              "item_id": "TASK-0006",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0006-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0006.yml",
              "item_id": "TASK-0006",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0006-TO-BE-RELEASED-20260910"
            }
          ],
          "previous_hash": "a81b88b76fa12652cb8b2c7866180287883be58d2cea8a1ec4809779c0dab713",
          "hash": "0a544dd6f1410fb4d023c6fe005e1c40dd7bd1cb920c97793af42399e866fc84"
        },
        {
          "event_id": "FLOW-TASK-0006-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0006",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0006",
              "state": "Done",
              "event_id": "FLOW-TASK-0006-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0006",
              "state": "Done",
              "event_id": "FLOW-TASK-0006-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0006",
              "state": "Done",
              "event_id": "FLOW-TASK-0006-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0006.yml",
              "item_id": "TASK-0006",
              "state": "Done",
              "event_id": "FLOW-TASK-0006-DONE-20260915"
            }
          ],
          "previous_hash": "0a544dd6f1410fb4d023c6fe005e1c40dd7bd1cb920c97793af42399e866fc84",
          "hash": "ff929e445bd1ed587065bdf81f7eb31f736d74740fc632af550031d20d3c1e91"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0007",
      "display_id": "AEROSIM-TS-7",
      "title": "Present and select canonical flying worlds",
      "feature_id": "AEROSIM-FT-6",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-6/aerosim-ts-7/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0007.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Pre-flight configurator",
      "outcome": "Each supported flying world is shown with an identifiable name and description, and one selection resolves to its canonical terrain configuration.",
      "scope": "Define WorldCatalogueEntry with worldId, name, description, terrainAssetId, physicsProfileId, and catalogueVersion; list only supported entries in deterministic order; select one worldId; resolve it to exactly one canonical terrain configuration; and reject confirmation when the entry is absent, duplicated, disabled, or stale.",
      "implementation_artifacts": [
        "applications/web/src/world/world-catalogue.ts",
        "applications/web/src/preflight/world/WorldSelector.tsx",
        "applications/web/test/preflight/world-selector.spec.tsx"
      ],
      "inputs": [
        "The versioned world catalogue supplied after AEROSIM-FT-47 terminal tasks complete.",
        "A world selection and confirm command."
      ],
      "outputs": [
        "An ordered list of supported world summaries.",
        "An immutable WorldSnapshot with worldId, terrainAssetId, physicsProfileId, and catalogueVersion."
      ],
      "failure_boundaries": [
        "Absent, duplicate, disabled, or unknown world entries return the matching catalogue code and cannot produce WorldSnapshot.",
        "A catalogue-version change invalidates an existing confirmation."
      ],
      "exclusions": [
        "Terrain loading, session creation, world simulation, and flight rendering are excluded.",
        "The task does not create or modify world assets owned by AEROSIM-FT-47."
      ],
      "verification_steps": [
        "Run applications/web/test/preflight/world-selector.spec.tsx and assert every supported catalogue entry appears once in deterministic order.",
        "Assert each selection resolves to its own canonical terrainAssetId and physicsProfileId.",
        "Inject absent, duplicate, disabled, unknown, and stale entries; assert confirmation is rejected without replacing the prior valid selection."
      ],
      "dependencies": [
        "TASK-0034"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0010"
      ],
      "acceptance_evidence": "Verified delivery: application PR #84 reviewed head e308084873d569c9b1dbd8442341c7ccd3f58150, merged as 7f26eca79eadef3171564fc60035e9866c2c848e; final whole-wave application head 7f26eca79eadef3171564fc60035e9866c2c848e: publication run 3914 succeeded and integration run 3915 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0007",
        "state": "InBacklog",
        "decision_date": "2026-08-24T15:06:15.606Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0007-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0007",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0007",
            "state": "Done",
            "event_id": "FLOW-TASK-0007-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0007",
            "state": "Done",
            "event_id": "FLOW-TASK-0007-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0007",
            "state": "Done",
            "event_id": "FLOW-TASK-0007-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0007.yml",
            "item_id": "TASK-0007",
            "state": "Done",
            "event_id": "FLOW-TASK-0007-DONE-20260915"
          }
        ],
        "previous_hash": "1e35521670529184afb722fcb8917a83af0ec0a6cefaef07de3c7420c2b7683a",
        "hash": "8e9f76c1fb5f38fd78601e890e5f196c2398645b1698736a4a0eee2a9a942a84"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0007-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0007",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0007",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0007-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0007.yml",
              "item_id": "TASK-0007",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0007-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "fd602571494bc9f5236799ffcde9dac08cfc893a8382050811c3082e3ba91e1a"
        },
        {
          "event_id": "FLOW-TASK-0007-IN-PROGRESS-20260906",
          "sequence": 2,
          "item_id": "TASK-0007",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T08:33:27Z",
          "conditions": [
            "Whole Wave 14 claim: TASK-0002, TASK-0007, TASK-0047, TASK-0060, and TASK-0076 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0007-world-selection",
              "item_id": "TASK-0007",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0007-IN-PROGRESS-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/79cf7ff67a72b65a89854382e147ef9bda664cbf",
              "item_id": "TASK-0007",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0007-IN-PROGRESS-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0007.yml",
              "item_id": "TASK-0007",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0007-IN-PROGRESS-20260906"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0007-world-selection",
          "claim_base_sha": "79cf7ff67a72b65a89854382e147ef9bda664cbf",
          "previous_hash": "fd602571494bc9f5236799ffcde9dac08cfc893a8382050811c3082e3ba91e1a",
          "hash": "cbe0cb7d248e7cc20351d786e80022346ebcb090829a52761a09e56252164f17"
        },
        {
          "event_id": "FLOW-TASK-0007-TO-BE-RELEASED-20260906",
          "sequence": 3,
          "item_id": "TASK-0007",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T17:14:29Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/84",
              "item_id": "TASK-0007",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0007-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7f26eca79eadef3171564fc60035e9866c2c848e",
              "item_id": "TASK-0007",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0007-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7f26eca79eadef3171564fc60035e9866c2c848e",
              "item_id": "TASK-0007",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0007-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3914",
              "item_id": "TASK-0007",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0007-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3915",
              "item_id": "TASK-0007",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0007-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0007.yml",
              "item_id": "TASK-0007",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0007-TO-BE-RELEASED-20260906"
            }
          ],
          "previous_hash": "cbe0cb7d248e7cc20351d786e80022346ebcb090829a52761a09e56252164f17",
          "hash": "1e35521670529184afb722fcb8917a83af0ec0a6cefaef07de3c7420c2b7683a"
        },
        {
          "event_id": "FLOW-TASK-0007-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0007",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0007",
              "state": "Done",
              "event_id": "FLOW-TASK-0007-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0007",
              "state": "Done",
              "event_id": "FLOW-TASK-0007-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0007",
              "state": "Done",
              "event_id": "FLOW-TASK-0007-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0007.yml",
              "item_id": "TASK-0007",
              "state": "Done",
              "event_id": "FLOW-TASK-0007-DONE-20260915"
            }
          ],
          "previous_hash": "1e35521670529184afb722fcb8917a83af0ec0a6cefaef07de3c7420c2b7683a",
          "hash": "8e9f76c1fb5f38fd78601e890e5f196c2398645b1698736a4a0eee2a9a942a84"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0008",
      "display_id": "AEROSIM-TS-8",
      "title": "Present, select, and confirm a supported aircraft",
      "feature_id": "AEROSIM-FT-7",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-7/aerosim-ts-8/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0008.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Pre-flight configurator",
      "outcome": "The player can identify supported aircraft by governed characteristics, select one, and visibly confirm it for the planned flight.",
      "scope": "Define AircraftCatalogueEntry with aircraftId, name, characteristics, modelAssetId, flightParameterSetId, parameterVersion, and enabled state; list supported entries deterministically; select and confirm one current entry; and emit an immutable AircraftSnapshot without instantiating the model.",
      "implementation_artifacts": [
        "applications/web/src/aircraft/aircraft-catalogue.ts",
        "applications/web/src/preflight/aircraft/AircraftSelector.tsx",
        "applications/web/test/preflight/aircraft-selector.spec.tsx"
      ],
      "inputs": [
        "The versioned supported aircraft catalogue.",
        "An aircraft selection and confirm command."
      ],
      "outputs": [
        "An ordered list of supported aircraft with identifiable characteristics.",
        "An immutable AircraftSnapshot containing catalogue and parameter identities and versions."
      ],
      "failure_boundaries": [
        "Absent, duplicate, disabled, unknown, or incomplete catalogue entry returns the corresponding code and cannot be confirmed.",
        "A catalogue or parameterVersion change invalidates prior confirmation."
      ],
      "exclusions": [
        "Aircraft model loading, flight-parameter application, and session creation are excluded.",
        "The task does not edit aircraft or flight parameters."
      ],
      "verification_steps": [
        "Run applications/web/test/preflight/aircraft-selector.spec.tsx and assert all supported entries appear once with their declared characteristics.",
        "Confirm each aircraft and compare the snapshot identifiers and versions with its catalogue entry.",
        "Inject absent, duplicate, disabled, unknown, incomplete, and stale entries; assert no invalid snapshot is emitted."
      ],
      "dependencies": [],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0012"
      ],
      "acceptance_evidence": "Verified delivery: application PR #10 reviewed head fda53cf5fdda9a7375b9bba8027a2887a4d439ca, merged as 62ea532f13ade5b4f81a9524d68e227be0f0e669; final Wave 1 integration head 7d43415f042123871516df10ecc18cc1c4beb034 passed Gitea Actions publish task 1735 and validate task 1736. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0008",
        "state": "InBacklog",
        "decision_date": "2026-08-24T15:06:15.606Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0008-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0008",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0008",
            "state": "Done",
            "event_id": "FLOW-TASK-0008-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0008",
            "state": "Done",
            "event_id": "FLOW-TASK-0008-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0008",
            "state": "Done",
            "event_id": "FLOW-TASK-0008-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0008.yml",
            "item_id": "TASK-0008",
            "state": "Done",
            "event_id": "FLOW-TASK-0008-DONE-20260915"
          }
        ],
        "previous_hash": "0070955d65eab55adebf6307bebf4ebb289ebb23f425fb23ca960587293f64e4",
        "hash": "3cd61939acd68fad2b258ed42ece83efdc11252245892731d55aa314c00946a0"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0008-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0008",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0008",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0008-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0008.yml",
              "item_id": "TASK-0008",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0008-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "074ec805ce1c2c06ec3a38337932fd57eceab4dc487155681444fd289159997b"
        },
        {
          "event_id": "FLOW-TASK-0008-IN-PROGRESS-20260903",
          "sequence": 2,
          "item_id": "TASK-0008",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T17:55:01Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/10",
              "item_id": "TASK-0008",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0008-IN-PROGRESS-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0008.yml",
              "item_id": "TASK-0008",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0008-IN-PROGRESS-20260903"
            }
          ],
          "previous_hash": "074ec805ce1c2c06ec3a38337932fd57eceab4dc487155681444fd289159997b",
          "hash": "2ff70c32a9eb97e26b5d1b3a302cbf31b81c5bfbcc725931d24eb0ebf566521d"
        },
        {
          "event_id": "FLOW-TASK-0008-TO-BE-RELEASED-20260903",
          "sequence": 3,
          "item_id": "TASK-0008",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T17:55:02Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/10",
              "item_id": "TASK-0008",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0008-TO-BE-RELEASED-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0008.yml",
              "item_id": "TASK-0008",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0008-TO-BE-RELEASED-20260903"
            }
          ],
          "previous_hash": "2ff70c32a9eb97e26b5d1b3a302cbf31b81c5bfbcc725931d24eb0ebf566521d",
          "hash": "0070955d65eab55adebf6307bebf4ebb289ebb23f425fb23ca960587293f64e4"
        },
        {
          "event_id": "FLOW-TASK-0008-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0008",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0008",
              "state": "Done",
              "event_id": "FLOW-TASK-0008-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0008",
              "state": "Done",
              "event_id": "FLOW-TASK-0008-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0008",
              "state": "Done",
              "event_id": "FLOW-TASK-0008-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0008.yml",
              "item_id": "TASK-0008",
              "state": "Done",
              "event_id": "FLOW-TASK-0008-DONE-20260915"
            }
          ],
          "previous_hash": "0070955d65eab55adebf6307bebf4ebb289ebb23f425fb23ca960587293f64e4",
          "hash": "3cd61939acd68fad2b258ed42ece83efdc11252245892731d55aa314c00946a0"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0011",
      "display_id": "AEROSIM-TS-11",
      "title": "Bootstrap the Nebula React and Vite application",
      "feature_id": "AEROSIM-FT-41",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-41/aerosim-ts-11/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0011.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — React/Vite application shell",
      "outcome": "Nebula has a production-buildable React application with Vite entry points and strict TypeScript configuration.",
      "scope": "Create the Nebula workspace package, HTML and React entry points, Vite production configuration, strict browser TypeScript project, and bootstrap test; the task ends when a clean checkout can build the static bundle. Primary files: applications/web/package.json, applications/web/index.html, applications/web/src/main.tsx, applications/web/src/App.tsx, applications/web/vite.config.ts, applications/web/tsconfig.app.json, applications/web/tests/app-bootstrap.test.tsx.",
      "implementation_artifacts": [
        "applications/web/package.json",
        "applications/web/index.html",
        "applications/web/src/main.tsx",
        "applications/web/src/App.tsx",
        "applications/web/vite.config.ts",
        "applications/web/tsconfig.app.json",
        "applications/web/tests/app-bootstrap.test.tsx"
      ],
      "inputs": [
        "Root pnpm workspace and lockfile",
        "VITE_API_BASE_URL and VITE_SOCKET_URL browser build variables",
        "applications/web/index.html containing the #root mount element"
      ],
      "outputs": [
        "applications/web/dist static bundle with hashed JavaScript and CSS assets",
        "Mounted React App root from applications/web/src/main.tsx"
      ],
      "failure_boundaries": [
        "Fail the build when a required VITE_* URL is absent or not an absolute URL.",
        "Fail type checking on implicit any, unchecked index access, or browser/server type leakage; do not emit a production bundle after a TypeScript error."
      ],
      "exclusions": [
        "API routes, identity redirects, Socket.IO wiring, and 3D scene behavior are assigned to FT-42, FT-50, FT-44, and FT-45."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/web typecheck && pnpm --filter @aerosim/web test -- app-bootstrap.test.tsx",
        "pnpm --filter @aerosim/web build; assert applications/web/dist/index.html references emitted hashed assets."
      ],
      "dependencies": [],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0048",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #11 reviewed head b9a955c65a9566831f159a8665ea5e1cd110571e, merged as 12273cd95ce1a7c1ed2db3d427b30968445c95a2; final Wave 1 integration head 7d43415f042123871516df10ecc18cc1c4beb034 passed Gitea Actions publish task 1735 and validate task 1736. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0011",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0011-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0011",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0011",
            "state": "Done",
            "event_id": "FLOW-TASK-0011-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0011",
            "state": "Done",
            "event_id": "FLOW-TASK-0011-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0011",
            "state": "Done",
            "event_id": "FLOW-TASK-0011-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0011.yml",
            "item_id": "TASK-0011",
            "state": "Done",
            "event_id": "FLOW-TASK-0011-DONE-20260915"
          }
        ],
        "previous_hash": "027599cc3c87f1d2529255d4f3014df07ea3add7ae506c302acd5d282afeec3d",
        "hash": "fa4ea04f5151a6a51f03d1af3a804bedb83856988455dd1ef397617827938796"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0011-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0011",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0011",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0011-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0011.yml",
              "item_id": "TASK-0011",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0011-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "d15083519fa84385e546b1cf8245ae17b92420d11b43ac8fb32fe8aa5c617b60"
        },
        {
          "event_id": "FLOW-TASK-0011-IN-PROGRESS-20260903",
          "sequence": 2,
          "item_id": "TASK-0011",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T17:55:01Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/11",
              "item_id": "TASK-0011",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0011-IN-PROGRESS-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0011.yml",
              "item_id": "TASK-0011",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0011-IN-PROGRESS-20260903"
            }
          ],
          "previous_hash": "d15083519fa84385e546b1cf8245ae17b92420d11b43ac8fb32fe8aa5c617b60",
          "hash": "1546bbf1748d284b9939b5e919798929adfe630008eedfdb5580e31a581ad8f2"
        },
        {
          "event_id": "FLOW-TASK-0011-TO-BE-RELEASED-20260903",
          "sequence": 3,
          "item_id": "TASK-0011",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T17:55:02Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/11",
              "item_id": "TASK-0011",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0011-TO-BE-RELEASED-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0011.yml",
              "item_id": "TASK-0011",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0011-TO-BE-RELEASED-20260903"
            }
          ],
          "previous_hash": "1546bbf1748d284b9939b5e919798929adfe630008eedfdb5580e31a581ad8f2",
          "hash": "027599cc3c87f1d2529255d4f3014df07ea3add7ae506c302acd5d282afeec3d"
        },
        {
          "event_id": "FLOW-TASK-0011-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0011",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0011",
              "state": "Done",
              "event_id": "FLOW-TASK-0011-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0011",
              "state": "Done",
              "event_id": "FLOW-TASK-0011-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0011",
              "state": "Done",
              "event_id": "FLOW-TASK-0011-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0011.yml",
              "item_id": "TASK-0011",
              "state": "Done",
              "event_id": "FLOW-TASK-0011-DONE-20260915"
            }
          ],
          "previous_hash": "027599cc3c87f1d2529255d4f3014df07ea3add7ae506c302acd5d282afeec3d",
          "hash": "fa4ea04f5151a6a51f03d1af3a804bedb83856988455dd1ef397617827938796"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0012",
      "display_id": "AEROSIM-TS-12",
      "title": "Establish shared Stardust UI primitives",
      "feature_id": "AEROSIM-FT-41",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-41/aerosim-ts-12/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0012.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — shared Stardust primitive layer",
      "outcome": "Nebula exposes a single typed Stardust primitive layer that application screens can reuse without duplicating foundation components.",
      "scope": "Wrap the adopted Stardust package behind a Nebula-owned export barrel, declare the default theme tokens, and prove Button and Panel composition without allowing screens to import Stardust internals directly. Primary files: applications/web/src/ui/stardust/index.ts, applications/web/src/ui/stardust/theme.ts, applications/web/src/ui/stardust/Button.tsx, applications/web/src/ui/stardust/Panel.tsx, applications/web/tests/stardust-primitives.test.tsx.",
      "implementation_artifacts": [
        "applications/web/src/ui/stardust/index.ts",
        "applications/web/src/ui/stardust/theme.ts",
        "applications/web/src/ui/stardust/Button.tsx",
        "applications/web/src/ui/stardust/Panel.tsx",
        "applications/web/tests/stardust-primitives.test.tsx"
      ],
      "inputs": [
        "Stardust component package version pinned in applications/web/package.json",
        "Nebula ThemeTokens values for color, spacing, radius, and typography"
      ],
      "outputs": [
        "Public @/ui/stardust exports for Button, Panel, StardustProvider, and ThemeTokens",
        "Rendered primitive fixture using the Nebula default theme"
      ],
      "failure_boundaries": [
        "Reject a theme override containing an unknown token key at TypeScript compile time.",
        "Fail the architecture test when application code outside src/ui/stardust imports the upstream Stardust package."
      ],
      "exclusions": [
        "Feature-specific screens, route definitions, data grids, and 3D controls are not primitives in this task."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/web test -- stardust-primitives.test.tsx",
        "pnpm exec eslint applications/web/src --rule \"no-restricted-imports:error\"; verify only src/ui/stardust may import Stardust."
      ],
      "dependencies": [
        "TASK-0011"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0048",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #14 reviewed head 00bcd9fd26a09a8199841df1ca4631b88881be13, exact-head validation task 1751 succeeded, merged as 294c9b56319a8b05aaa5d3e70ec722cf0ff130ae; integrated Gitea Actions publish task 1754 and validate task 1755 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0012",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0012-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0012",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0012",
            "state": "Done",
            "event_id": "FLOW-TASK-0012-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0012",
            "state": "Done",
            "event_id": "FLOW-TASK-0012-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0012",
            "state": "Done",
            "event_id": "FLOW-TASK-0012-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0012.yml",
            "item_id": "TASK-0012",
            "state": "Done",
            "event_id": "FLOW-TASK-0012-DONE-20260915"
          }
        ],
        "previous_hash": "cc990b1e735f16b765dd36e31954b34a7780409603904e3cd3caa63af9f3a7b0",
        "hash": "607c5ddd870babc7c366cf32cfdc154cc2600bcebb85a50116411cea6318aacf"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0012-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0012",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0012",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0012-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0012.yml",
              "item_id": "TASK-0012",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0012-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "ef9b3329121d3be75915a0ce63ef8f8c8c11680c4441fb18fb83a08528663e8e"
        },
        {
          "event_id": "FLOW-TASK-0012-IN-PROGRESS-20260903",
          "sequence": 2,
          "item_id": "TASK-0012",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T19:37:26Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0012-stardust-primitives",
              "item_id": "TASK-0012",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0012-IN-PROGRESS-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0012.yml",
              "item_id": "TASK-0012",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0012-IN-PROGRESS-20260903"
            }
          ],
          "previous_hash": "ef9b3329121d3be75915a0ce63ef8f8c8c11680c4441fb18fb83a08528663e8e",
          "hash": "d96a2cc33aa3cce80949c4692812f66b8766d663e95244581dbf2ce7deeb6ac7"
        },
        {
          "event_id": "FLOW-TASK-0012-TO-BE-RELEASED-20260903",
          "sequence": 3,
          "item_id": "TASK-0012",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T20:13:20Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/14",
              "item_id": "TASK-0012",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0012-TO-BE-RELEASED-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0012.yml",
              "item_id": "TASK-0012",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0012-TO-BE-RELEASED-20260903"
            }
          ],
          "previous_hash": "d96a2cc33aa3cce80949c4692812f66b8766d663e95244581dbf2ce7deeb6ac7",
          "hash": "cc990b1e735f16b765dd36e31954b34a7780409603904e3cd3caa63af9f3a7b0"
        },
        {
          "event_id": "FLOW-TASK-0012-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0012",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0012",
              "state": "Done",
              "event_id": "FLOW-TASK-0012-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0012",
              "state": "Done",
              "event_id": "FLOW-TASK-0012-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0012",
              "state": "Done",
              "event_id": "FLOW-TASK-0012-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0012.yml",
              "item_id": "TASK-0012",
              "state": "Done",
              "event_id": "FLOW-TASK-0012-DONE-20260915"
            }
          ],
          "previous_hash": "cc990b1e735f16b765dd36e31954b34a7780409603904e3cd3caa63af9f3a7b0",
          "hash": "607c5ddd870babc7c366cf32cfdc154cc2600bcebb85a50116411cea6318aacf"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0013",
      "display_id": "AEROSIM-TS-13",
      "title": "Render and verify a representative routed screen",
      "feature_id": "AEROSIM-FT-41",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-41/aerosim-ts-13/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0013.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — routing and representative screen",
      "outcome": "A representative route renders through the Nebula application shell and shared primitives in component tests and a clean production build.",
      "scope": "Register /foundation-status in the browser router, render FoundationStatusScreen through App and the Stardust primitive layer, and support both direct URL entry and in-app navigation in the production bundle. Primary files: applications/web/src/router.tsx, applications/web/src/screens/FoundationStatusScreen.tsx, applications/web/src/App.tsx, applications/web/tests/foundation-route.test.tsx, applications/web/e2e/foundation-route.spec.ts.",
      "implementation_artifacts": [
        "applications/web/src/router.tsx",
        "applications/web/src/screens/FoundationStatusScreen.tsx",
        "applications/web/src/App.tsx",
        "applications/web/tests/foundation-route.test.tsx",
        "applications/web/e2e/foundation-route.spec.ts"
      ],
      "inputs": [
        "Browser location /foundation-status or a navigation action targeting that path",
        "App router configuration and StardustProvider from FT41-T2"
      ],
      "outputs": [
        "FoundationStatusScreen route element displaying the Nebula foundation status fixture",
        "History entry and route state for /foundation-status"
      ],
      "failure_boundaries": [
        "Render the explicit NotFound screen for an unregistered path instead of a blank React tree.",
        "Fail the browser smoke test on an uncaught exception, failed chunk request, or missing #root mount."
      ],
      "exclusions": [
        "Authentication protection and restoration of intended routes are owned by FT50-T1."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/web test -- foundation-route.test.tsx",
        "pnpm --filter @aerosim/web build && pnpm --filter @aerosim/web exec playwright test e2e/foundation-route.spec.ts"
      ],
      "dependencies": [
        "TASK-0012"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0048",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #19 reviewed head 4022d77c48c66dc8621a5157f04ad51bef314c31, exact-head validation task 1781 succeeded, merged as bd1c1659315793b743463ad919ee303de8a1b5cc; integrated Gitea Actions publish task 1782 and validate task 1783 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0013",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0013-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0013",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0013",
            "state": "Done",
            "event_id": "FLOW-TASK-0013-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0013",
            "state": "Done",
            "event_id": "FLOW-TASK-0013-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0013",
            "state": "Done",
            "event_id": "FLOW-TASK-0013-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0013.yml",
            "item_id": "TASK-0013",
            "state": "Done",
            "event_id": "FLOW-TASK-0013-DONE-20260915"
          }
        ],
        "previous_hash": "c61ec8cdf5074d25ed87519206adb3184f23b6fa55c4232091ed60e01d6d9806",
        "hash": "3b14fb0523b964bc15bf8292763c03765accf8906b905c86e5e6f21cfc3a1e79"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0013-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0013",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0013",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0013-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0013.yml",
              "item_id": "TASK-0013",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0013-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "1962e617caf25ffdfc427849f3f981ace57019229dc78c17acf47960fe481407"
        },
        {
          "event_id": "FLOW-TASK-0013-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0013",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T22:40:18Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0013-routed-screen",
              "item_id": "TASK-0013",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0013-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0013.yml",
              "item_id": "TASK-0013",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0013-IN-PROGRESS-20260904"
            }
          ],
          "previous_hash": "1962e617caf25ffdfc427849f3f981ace57019229dc78c17acf47960fe481407",
          "hash": "0261e474a6d5b66e200dd3a2e2096769f8f653b7fbf6e286fde725ed71bafe32"
        },
        {
          "event_id": "FLOW-TASK-0013-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0013",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T23:46:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/19",
              "item_id": "TASK-0013",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0013-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0013.yml",
              "item_id": "TASK-0013",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0013-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "0261e474a6d5b66e200dd3a2e2096769f8f653b7fbf6e286fde725ed71bafe32",
          "hash": "c61ec8cdf5074d25ed87519206adb3184f23b6fa55c4232091ed60e01d6d9806"
        },
        {
          "event_id": "FLOW-TASK-0013-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0013",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0013",
              "state": "Done",
              "event_id": "FLOW-TASK-0013-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0013",
              "state": "Done",
              "event_id": "FLOW-TASK-0013-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0013",
              "state": "Done",
              "event_id": "FLOW-TASK-0013-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0013.yml",
              "item_id": "TASK-0013",
              "state": "Done",
              "event_id": "FLOW-TASK-0013-DONE-20260915"
            }
          ],
          "previous_hash": "c61ec8cdf5074d25ed87519206adb3184f23b6fa55c4232091ed60e01d6d9806",
          "hash": "3b14fb0523b964bc15bf8292763c03765accf8906b905c86e5e6f21cfc3a1e79"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0014",
      "display_id": "AEROSIM-TS-14",
      "title": "Bootstrap the typed Singularity Fastify service",
      "feature_id": "AEROSIM-FT-42",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-42/aerosim-ts-14/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0014.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "API Service — Fastify HTTP boundary",
      "outcome": "Singularity starts as a production-buildable Fastify service with strict TypeScript and typed request, response, and error boundaries.",
      "scope": "Create the Singularity Fastify composition root, parse process configuration once, register JSON-schema serialization and RFC 9457 problem responses, and separate app construction from the listening process for injection tests and clean shutdown. Primary files: applications/api/package.json, applications/api/src/config.ts, applications/api/src/app.ts, applications/api/src/server.ts, applications/api/src/http/problem-details.ts, applications/api/tests/app-bootstrap.test.ts.",
      "implementation_artifacts": [
        "applications/api/package.json",
        "applications/api/src/config.ts",
        "applications/api/src/app.ts",
        "applications/api/src/server.ts",
        "applications/api/src/http/problem-details.ts",
        "applications/api/tests/app-bootstrap.test.ts"
      ],
      "inputs": [
        "API_HOST, API_PORT, LOG_LEVEL, and DATABASE_URL process variables parsed by ApiConfigSchema",
        "Fastify Request objects with JSON content negotiated through route schemas"
      ],
      "outputs": [
        "buildApp(config) FastifyInstance and startServer(config) listener",
        "application/problem+json ErrorResponse containing type, title, status, detail, and requestId"
      ],
      "failure_boundaries": [
        "Abort startup before listen when API_PORT is outside 1..65535, LOG_LEVEL is unknown, or DATABASE_URL is invalid.",
        "Map unexpected handler exceptions to status 500 without returning stack traces or environment values."
      ],
      "exclusions": [
        "Business endpoints, Prisma models, Keycloak validation, and Socket.IO events are implemented by later tasks."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/api typecheck && pnpm --filter @aerosim/api test -- app-bootstrap.test.ts",
        "API_PORT=70000 pnpm --filter @aerosim/api start; assert non-zero exit and no listening socket."
      ],
      "dependencies": [],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0049",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #12 reviewed head a798eb333aa5008f654ebc7cc242f65105708b43, merged as 7d43415f042123871516df10ecc18cc1c4beb034; final Wave 1 integration head 7d43415f042123871516df10ecc18cc1c4beb034 passed Gitea Actions publish task 1735 and validate task 1736. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0014",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0014-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0014",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0014",
            "state": "Done",
            "event_id": "FLOW-TASK-0014-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0014",
            "state": "Done",
            "event_id": "FLOW-TASK-0014-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0014",
            "state": "Done",
            "event_id": "FLOW-TASK-0014-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0014.yml",
            "item_id": "TASK-0014",
            "state": "Done",
            "event_id": "FLOW-TASK-0014-DONE-20260915"
          }
        ],
        "previous_hash": "09e1fec314612e9aafdebdec38398523f74908fb4e63bbfff4e7805abbfc7a38",
        "hash": "4a79b674880b7412ad2850a07c6ec260613c4ed1f3f2df88546c76de94ec2fb1"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0014-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0014",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0014",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0014-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0014.yml",
              "item_id": "TASK-0014",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0014-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "bb995f72a940e20fda9fb47e132e7925ca6aa507a960b660d46f4eff92e9959f"
        },
        {
          "event_id": "FLOW-TASK-0014-IN-PROGRESS-20260903",
          "sequence": 2,
          "item_id": "TASK-0014",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T17:55:01Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/12",
              "item_id": "TASK-0014",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0014-IN-PROGRESS-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0014.yml",
              "item_id": "TASK-0014",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0014-IN-PROGRESS-20260903"
            }
          ],
          "previous_hash": "bb995f72a940e20fda9fb47e132e7925ca6aa507a960b660d46f4eff92e9959f",
          "hash": "af0125fce90169233377127f3edde90e96a171cc84b59dad4babcd37be6f2203"
        },
        {
          "event_id": "FLOW-TASK-0014-TO-BE-RELEASED-20260903",
          "sequence": 3,
          "item_id": "TASK-0014",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T17:55:02Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/12",
              "item_id": "TASK-0014",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0014-TO-BE-RELEASED-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0014.yml",
              "item_id": "TASK-0014",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0014-TO-BE-RELEASED-20260903"
            }
          ],
          "previous_hash": "af0125fce90169233377127f3edde90e96a171cc84b59dad4babcd37be6f2203",
          "hash": "09e1fec314612e9aafdebdec38398523f74908fb4e63bbfff4e7805abbfc7a38"
        },
        {
          "event_id": "FLOW-TASK-0014-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0014",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0014",
              "state": "Done",
              "event_id": "FLOW-TASK-0014-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0014",
              "state": "Done",
              "event_id": "FLOW-TASK-0014-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0014",
              "state": "Done",
              "event_id": "FLOW-TASK-0014-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0014.yml",
              "item_id": "TASK-0014",
              "state": "Done",
              "event_id": "FLOW-TASK-0014-DONE-20260915"
            }
          ],
          "previous_hash": "09e1fec314612e9aafdebdec38398523f74908fb4e63bbfff4e7805abbfc7a38",
          "hash": "4a79b674880b7412ad2850a07c6ec260613c4ed1f3f2df88546c76de94ec2fb1"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0015",
      "display_id": "AEROSIM-TS-15",
      "title": "Implement Singularity liveness and readiness routes",
      "feature_id": "AEROSIM-FT-42",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-42/aerosim-ts-15/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0015.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "API Service — Health service",
      "outcome": "The API exposes non-sensitive typed liveness and readiness endpoints suitable for Gondor probes.",
      "scope": "Add GET /health/live for process liveness and GET /health/ready for dependency readiness, with fixed response schemas and a ReadinessCheck interface that reports the database check without exposing connection strings. Primary files: applications/api/src/routes/health.ts, applications/api/src/services/readiness.ts, applications/api/tests/health-routes.test.ts.",
      "implementation_artifacts": [
        "applications/api/src/routes/health.ts",
        "applications/api/src/services/readiness.ts",
        "applications/api/tests/health-routes.test.ts"
      ],
      "inputs": [
        "GET request to /health/live or /health/ready",
        "ReadinessCheck result {database: up|down, checkedAt}"
      ],
      "outputs": [
        "200 HealthResponse {status:\"ok\"} from /health/live",
        "200 ReadinessResponse {status:\"ready\"} or 503 {status:\"not-ready\", dependencies:{database:\"down\"}}"
      ],
      "failure_boundaries": [
        "Return 503 when the database readiness check times out or throws; liveness remains 200 while the process event loop responds.",
        "Never include DATABASE_URL, exception stacks, SQL text, or credentials in either health payload."
      ],
      "exclusions": [
        "Kubernetes probe manifests and external monitoring alerts are owned by FT52-T2 and operations work."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/api test -- health-routes.test.ts",
        "Inject a timed-out ReadinessCheck; assert /health/ready=503, /health/live=200, and serialized bodies contain no postgres URL."
      ],
      "dependencies": [
        "TASK-0014"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0049",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #13 reviewed head 6c4882f49852a4728e8603186762828eb5c15f43, exact-head validation task 1741 succeeded, merged as 58d33ffbd3ca21ffdc5882a75de8fe71c25188b6; integrated Gitea Actions publish task 1742 and validate task 1743 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0015",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0015-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0015",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0015",
            "state": "Done",
            "event_id": "FLOW-TASK-0015-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0015",
            "state": "Done",
            "event_id": "FLOW-TASK-0015-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0015",
            "state": "Done",
            "event_id": "FLOW-TASK-0015-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0015.yml",
            "item_id": "TASK-0015",
            "state": "Done",
            "event_id": "FLOW-TASK-0015-DONE-20260915"
          }
        ],
        "previous_hash": "0e4a83813bc90a5e6f7a02e83d6f2c8cc1d6105fe2afd40f3e07d8bb051373e6",
        "hash": "cf97e16529dfd6e4cb458761cda238104e9d9b43c6db986fa02adc8f47ad4b79"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0015-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0015",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0015",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0015-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0015.yml",
              "item_id": "TASK-0015",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0015-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "ad8f5e85b219c02900f2d1cbcc9c4c85cee63ff13cf256ab94d9ce09f07f778b"
        },
        {
          "event_id": "FLOW-TASK-0015-IN-PROGRESS-20260903",
          "sequence": 2,
          "item_id": "TASK-0015",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T19:37:26Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/13",
              "item_id": "TASK-0015",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0015-IN-PROGRESS-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0015.yml",
              "item_id": "TASK-0015",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0015-IN-PROGRESS-20260903"
            }
          ],
          "previous_hash": "ad8f5e85b219c02900f2d1cbcc9c4c85cee63ff13cf256ab94d9ce09f07f778b",
          "hash": "0ba3a1caa1e00685d194bcb9a95d903ef2b7b12ec693c11cd9a4503af60b8c81"
        },
        {
          "event_id": "FLOW-TASK-0015-TO-BE-RELEASED-20260903",
          "sequence": 3,
          "item_id": "TASK-0015",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T19:37:27Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/13",
              "item_id": "TASK-0015",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0015-TO-BE-RELEASED-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0015.yml",
              "item_id": "TASK-0015",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0015-TO-BE-RELEASED-20260903"
            }
          ],
          "previous_hash": "0ba3a1caa1e00685d194bcb9a95d903ef2b7b12ec693c11cd9a4503af60b8c81",
          "hash": "0e4a83813bc90a5e6f7a02e83d6f2c8cc1d6105fe2afd40f3e07d8bb051373e6"
        },
        {
          "event_id": "FLOW-TASK-0015-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0015",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0015",
              "state": "Done",
              "event_id": "FLOW-TASK-0015-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0015",
              "state": "Done",
              "event_id": "FLOW-TASK-0015-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0015",
              "state": "Done",
              "event_id": "FLOW-TASK-0015-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0015.yml",
              "item_id": "TASK-0015",
              "state": "Done",
              "event_id": "FLOW-TASK-0015-DONE-20260915"
            }
          ],
          "previous_hash": "0e4a83813bc90a5e6f7a02e83d6f2c8cc1d6105fe2afd40f3e07d8bb051373e6",
          "hash": "cf97e16529dfd6e4cb458761cda238104e9d9b43c6db986fa02adc8f47ad4b79"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0016",
      "display_id": "AEROSIM-TS-16",
      "title": "Verify typed API input rejection",
      "feature_id": "AEROSIM-FT-42",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-42/aerosim-ts-16/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0016.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "API Service — HTTP contract test harness",
      "outcome": "Automated API tests prove valid typed requests succeed and malformed or unsupported input is rejected through the normalized error boundary.",
      "scope": "Register a testable POST /contract-fixture route accepting ContractFixtureRequest {name:string,count:integer}, normalize Fastify schema failures, and exercise valid, missing, wrong-type, additional-property, malformed-JSON, and unsupported-media-type requests. Primary files: applications/api/src/routes/contract-fixture.ts, applications/api/src/http/validation-error.ts, applications/api/tests/http-contract-rejection.test.ts.",
      "implementation_artifacts": [
        "applications/api/src/routes/contract-fixture.ts",
        "applications/api/src/http/validation-error.ts",
        "applications/api/tests/http-contract-rejection.test.ts"
      ],
      "inputs": [
        "POST /contract-fixture JSON body with name and count",
        "Content-Type request header and raw JSON bytes"
      ],
      "outputs": [
        "200 ContractFixtureResponse {acceptedName,count} for a schema-valid body",
        "400 or 415 ProblemDetails response identifying the invalid field or media type"
      ],
      "failure_boundaries": [
        "Reject count as a string, absent name, count below zero, additional keys, and malformed JSON before the handler runs.",
        "Return 415 for text/plain; do not coerce or partially process its body."
      ],
      "exclusions": [
        "This fixture does not define a production business operation or persistence behavior."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/api test -- http-contract-rejection.test.ts",
        "Assert the valid fixture invokes its handler once and the six invalid fixtures invoke it zero times."
      ],
      "dependencies": [
        "TASK-0015"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0049",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #17 reviewed head 316120fd1e1afd9a311ebaf8829580383e27df1d, exact-head validation task 1774 succeeded, merged as 746b76df3f356d68ac037bf6fda8cc7e3c9808df; integrated Gitea Actions publish task 1776 and validate task 1777 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0016",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0016-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0016",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0016",
            "state": "Done",
            "event_id": "FLOW-TASK-0016-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0016",
            "state": "Done",
            "event_id": "FLOW-TASK-0016-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0016",
            "state": "Done",
            "event_id": "FLOW-TASK-0016-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0016.yml",
            "item_id": "TASK-0016",
            "state": "Done",
            "event_id": "FLOW-TASK-0016-DONE-20260915"
          }
        ],
        "previous_hash": "4634a6e100f864050e209d00be3b820e6a4e15b94578b5ba9aaa075ebaffa0fe",
        "hash": "09e311bce8220dd2b781827268041eef9108dfa5adfe405cbbb7f1d521d8324c"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0016-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0016",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0016",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0016-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0016.yml",
              "item_id": "TASK-0016",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0016-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "62d11ed9937d78ef150d67a52f2512634197776378803276fbbf90bc83aa8d39"
        },
        {
          "event_id": "FLOW-TASK-0016-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0016",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T19:37:26Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0016-api-validation",
              "item_id": "TASK-0016",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0016-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0016.yml",
              "item_id": "TASK-0016",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0016-IN-PROGRESS-20260904"
            }
          ],
          "previous_hash": "62d11ed9937d78ef150d67a52f2512634197776378803276fbbf90bc83aa8d39",
          "hash": "6d9dc07852fe4c6a0e00d7aa45d4130cb8a2641aa0b7dc6d7d270676baed99e6"
        },
        {
          "event_id": "FLOW-TASK-0016-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0016",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T21:40:44Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/17",
              "item_id": "TASK-0016",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0016-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0016.yml",
              "item_id": "TASK-0016",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0016-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "6d9dc07852fe4c6a0e00d7aa45d4130cb8a2641aa0b7dc6d7d270676baed99e6",
          "hash": "4634a6e100f864050e209d00be3b820e6a4e15b94578b5ba9aaa075ebaffa0fe"
        },
        {
          "event_id": "FLOW-TASK-0016-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0016",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0016",
              "state": "Done",
              "event_id": "FLOW-TASK-0016-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0016",
              "state": "Done",
              "event_id": "FLOW-TASK-0016-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0016",
              "state": "Done",
              "event_id": "FLOW-TASK-0016-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0016.yml",
              "item_id": "TASK-0016",
              "state": "Done",
              "event_id": "FLOW-TASK-0016-DONE-20260915"
            }
          ],
          "previous_hash": "4634a6e100f864050e209d00be3b820e6a4e15b94578b5ba9aaa075ebaffa0fe",
          "hash": "09e311bce8220dd2b781827268041eef9108dfa5adfe405cbbb7f1d521d8324c"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0017",
      "display_id": "AEROSIM-TS-17",
      "title": "Define the pilot-owned Prisma schema",
      "feature_id": "AEROSIM-FT-43",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-43/aerosim-ts-17/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0017.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Pilot Data Store — Prisma schema",
      "outcome": "A minimal Prisma schema defines governed pilot identity linkage and one representative pilot-owned transactional record.",
      "scope": "Define PilotRecord as the representative pilot-owned entity with UUID id, Keycloak subject ownerSubject, clientRequestId, JSON payload, createdAt, and updatedAt; add uniqueness on (ownerSubject, clientRequestId) and an owner lookup index. Primary files: applications/api/prisma/schema.prisma, applications/api/src/persistence/pilot-record.ts, applications/api/tests/schema/pilot-record-schema.test.ts.",
      "implementation_artifacts": [
        "applications/api/prisma/schema.prisma",
        "applications/api/src/persistence/pilot-record.ts",
        "applications/api/tests/schema/pilot-record-schema.test.ts"
      ],
      "inputs": [
        "DATABASE_URL for PostgreSQL",
        "PilotRecordCreate {ownerSubject,clientRequestId,payload} domain shape"
      ],
      "outputs": [
        "Generated Prisma PilotRecord client types",
        "Database constraints for UUID identity, non-null owner linkage, idempotency key, and timestamps"
      ],
      "failure_boundaries": [
        "Prisma validation rejects a missing ownerSubject, clientRequestId, or payload before SQL execution.",
        "The compound unique key rejects a duplicate clientRequestId only within the same ownerSubject."
      ],
      "exclusions": [
        "User passwords, Keycloak accounts, flight telemetry streams, and generalized document storage are not database models in this task."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/api prisma validate && pnpm --filter @aerosim/api prisma generate",
        "pnpm --filter @aerosim/api test -- pilot-record-schema.test.ts"
      ],
      "dependencies": [
        "TASK-0016"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0050",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #26 reviewed head 06be8575935837f6f0f51af22763286407bd2837, exact-head validation task 1809 succeeded, merged as 9d5a55642fb6a6ed1ecbdcf6e80e1a2ce6013476; Wave 4 integrated application head e8bfe781d3295d445cbc46b297874f066cac8301 passed publish task 1832 and validate task 1833. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0017",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0017-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0017",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0017",
            "state": "Done",
            "event_id": "FLOW-TASK-0017-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0017",
            "state": "Done",
            "event_id": "FLOW-TASK-0017-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0017",
            "state": "Done",
            "event_id": "FLOW-TASK-0017-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0017.yml",
            "item_id": "TASK-0017",
            "state": "Done",
            "event_id": "FLOW-TASK-0017-DONE-20260915"
          }
        ],
        "previous_hash": "0d2f11d2f61155fa27974ea4bb9fa5aa9460469f9cb5f3ab2accfd3061529662",
        "hash": "e709aa2aecefac7ef8fb40b303851dea51abf2a5979e4d0a88c3f504fa8d7c5c"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0017-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0017",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0017",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0017-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0017.yml",
              "item_id": "TASK-0017",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0017-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "89beb769243ecb545df816f438e3b79ccc200faf18c260af36d028241fdbdcc0"
        },
        {
          "event_id": "FLOW-TASK-0017-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0017",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T04:37:32Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0017-prisma-pilot-record",
              "item_id": "TASK-0017",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0017-IN-PROGRESS-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/98e377b71d37e5606af0e35d7bb08ccf83e63e0b",
              "item_id": "TASK-0017",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0017-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0017.yml",
              "item_id": "TASK-0017",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0017-IN-PROGRESS-20260904"
            }
          ],
          "previous_hash": "89beb769243ecb545df816f438e3b79ccc200faf18c260af36d028241fdbdcc0",
          "hash": "67ea370a6adf018b93d34ba33f564340d723ffc42e7f653f9e84d0d20637025f",
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0017-prisma-pilot-record",
          "claim_base_sha": "98e377b71d37e5606af0e35d7bb08ccf83e63e0b"
        },
        {
          "event_id": "FLOW-TASK-0017-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0017",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T11:52:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/26",
              "item_id": "TASK-0017",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0017-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/9d5a55642fb6a6ed1ecbdcf6e80e1a2ce6013476",
              "item_id": "TASK-0017",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0017-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0017.yml",
              "item_id": "TASK-0017",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0017-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "67ea370a6adf018b93d34ba33f564340d723ffc42e7f653f9e84d0d20637025f",
          "hash": "0d2f11d2f61155fa27974ea4bb9fa5aa9460469f9cb5f3ab2accfd3061529662"
        },
        {
          "event_id": "FLOW-TASK-0017-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0017",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0017",
              "state": "Done",
              "event_id": "FLOW-TASK-0017-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0017",
              "state": "Done",
              "event_id": "FLOW-TASK-0017-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0017",
              "state": "Done",
              "event_id": "FLOW-TASK-0017-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0017.yml",
              "item_id": "TASK-0017",
              "state": "Done",
              "event_id": "FLOW-TASK-0017-DONE-20260915"
            }
          ],
          "previous_hash": "0d2f11d2f61155fa27974ea4bb9fa5aa9460469f9cb5f3ab2accfd3061529662",
          "hash": "e709aa2aecefac7ef8fb40b303851dea51abf2a5979e4d0a88c3f504fa8d7c5c"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0018",
      "display_id": "AEROSIM-TS-18",
      "title": "Create reproducible PostgreSQL migrations",
      "feature_id": "AEROSIM-FT-43",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-43/aerosim-ts-18/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0018.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Pilot Data Store — Prisma migrations",
      "outcome": "All committed Prisma migrations apply successfully to a clean PostgreSQL database and reproduce the expected schema.",
      "scope": "Commit the initial PostgreSQL migration for PilotRecord and a disposable PostgreSQL fixture that applies the full migration directory from an empty database, reapplies with no changes, and detects drift against schema.prisma. Primary files: applications/api/prisma/migrations/0001_create_pilot_record/migration.sql, applications/api/prisma/migrations/migration_lock.toml, applications/api/tests/integration/migrations.test.ts, compose.postgres.test.yaml.",
      "implementation_artifacts": [
        "applications/api/prisma/migrations/0001_create_pilot_record/migration.sql",
        "applications/api/prisma/migrations/migration_lock.toml",
        "applications/api/tests/integration/migrations.test.ts",
        "compose.postgres.test.yaml"
      ],
      "inputs": [
        "Empty PostgreSQL 16 database started from compose.postgres.test.yaml",
        "Ordered SQL files under applications/api/prisma/migrations and schema.prisma"
      ],
      "outputs": [
        "PilotRecord table, compound unique constraint, owner index, and _prisma_migrations history",
        "Zero-drift result from prisma migrate diff after deployment"
      ],
      "failure_boundaries": [
        "Fail when migration SQL is reordered, edited after application, or cannot run in a transaction.",
        "Fail the drift check when database columns, indexes, or constraints differ from schema.prisma."
      ],
      "exclusions": [
        "Production backup, point-in-time recovery, high availability, and data-retention policies are deployment operations outside this migration task."
      ],
      "verification_steps": [
        "docker compose -f compose.postgres.test.yaml up -d && pnpm --filter @aerosim/api prisma migrate deploy",
        "pnpm --filter @aerosim/api test:integration -- migrations.test.ts; assert a second migrate deploy reports no pending migrations."
      ],
      "dependencies": [
        "TASK-0017"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0050",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #29 reviewed head f5b0cd1e36577bbbcc6bde85042a48eb6f83fa87, exact-head validation task 1840 succeeded, merged as db116334ef1c66588377b3997fc47ad47e65304b; Wave 5 integrated application head e6212bf637045138da191634fe113285156426b3 passed publish task 1856 and validate task 1857. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0018",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0018-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0018",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0018",
            "state": "Done",
            "event_id": "FLOW-TASK-0018-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0018",
            "state": "Done",
            "event_id": "FLOW-TASK-0018-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0018",
            "state": "Done",
            "event_id": "FLOW-TASK-0018-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0018.yml",
            "item_id": "TASK-0018",
            "state": "Done",
            "event_id": "FLOW-TASK-0018-DONE-20260915"
          }
        ],
        "previous_hash": "18505ed4375e4ff13de0ea64c993433713a912a267a0c9bf02e593f66fff214a",
        "hash": "8332b120e90b12d88aa020d2b871a5b6951e9df196010a633570461580c332ac"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0018-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0018",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0018",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0018-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0018.yml",
              "item_id": "TASK-0018",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0018-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "17d4ec02bbb57b7fe179092122023d1186fbdc15568f331f5693fff6c50ed3d4"
        },
        {
          "event_id": "FLOW-TASK-0018-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0018",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T12:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0018-postgresql-migrations",
              "item_id": "TASK-0018",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0018-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0018.yml",
              "item_id": "TASK-0018",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0018-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0018-postgresql-migrations",
          "claim_base_sha": "e8bfe781d3295d445cbc46b297874f066cac8301",
          "previous_hash": "17d4ec02bbb57b7fe179092122023d1186fbdc15568f331f5693fff6c50ed3d4",
          "hash": "12d01d76310d06a1355ad3029b2e937367b495ff9e10f186ef744edb91c56fbc"
        },
        {
          "event_id": "FLOW-TASK-0018-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0018",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T13:53:07Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/29",
              "item_id": "TASK-0018",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0018-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/db116334ef1c66588377b3997fc47ad47e65304b",
              "item_id": "TASK-0018",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0018-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0018.yml",
              "item_id": "TASK-0018",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0018-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "12d01d76310d06a1355ad3029b2e937367b495ff9e10f186ef744edb91c56fbc",
          "hash": "18505ed4375e4ff13de0ea64c993433713a912a267a0c9bf02e593f66fff214a"
        },
        {
          "event_id": "FLOW-TASK-0018-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0018",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0018",
              "state": "Done",
              "event_id": "FLOW-TASK-0018-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0018",
              "state": "Done",
              "event_id": "FLOW-TASK-0018-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0018",
              "state": "Done",
              "event_id": "FLOW-TASK-0018-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0018.yml",
              "item_id": "TASK-0018",
              "state": "Done",
              "event_id": "FLOW-TASK-0018-DONE-20260915"
            }
          ],
          "previous_hash": "18505ed4375e4ff13de0ea64c993433713a912a267a0c9bf02e593f66fff214a",
          "hash": "8332b120e90b12d88aa020d2b871a5b6951e9df196010a633570461580c332ac"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0019",
      "display_id": "AEROSIM-TS-19",
      "title": "Implement the pilot-scoped Prisma transaction adapter",
      "feature_id": "AEROSIM-FT-43",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-43/aerosim-ts-19/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0019.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "API Service — Prisma data adapter",
      "outcome": "The API can perform one governed transactional write and read while enforcing authenticated pilot ownership.",
      "scope": "Implement PilotRecordRepository.createAndReadBack in one Prisma transaction and require AuthenticatedSubject.sub on every create and find operation; all queries include ownerSubject so identifiers alone cannot cross the pilot boundary. Primary files: applications/api/src/persistence/prisma-client.ts, applications/api/src/persistence/pilot-record-repository.ts, applications/api/src/services/save-pilot-record.ts, applications/api/tests/integration/pilot-record-repository.test.ts.",
      "implementation_artifacts": [
        "applications/api/src/persistence/prisma-client.ts",
        "applications/api/src/persistence/pilot-record-repository.ts",
        "applications/api/src/services/save-pilot-record.ts",
        "applications/api/tests/integration/pilot-record-repository.test.ts"
      ],
      "inputs": [
        "AuthenticatedSubject {sub:string} supplied by the API identity context",
        "SavePilotRecordCommand {clientRequestId:string,payload:JsonValue}"
      ],
      "outputs": [
        "PilotRecordView {id,clientRequestId,payload,createdAt} scoped to the authenticated subject",
        "DuplicateRequest result for reuse of (ownerSubject,clientRequestId)"
      ],
      "failure_boundaries": [
        "Roll back the insert when read-back or payload validation fails; no partial PilotRecord remains.",
        "Return NotFound for a record ID owned by another subject and do not reveal that the ID exists."
      ],
      "exclusions": [
        "Cross-pilot sharing, administrator queries, record updates, bulk import, and browser-side Prisma access are not supported."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/api test:integration -- pilot-record-repository.test.ts",
        "Inject a read-back failure after insert; query PilotRecord directly and assert the transaction persisted zero rows."
      ],
      "dependencies": [
        "TASK-0018"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0050",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #34 reviewed head 95330e0fef0305ffc726e87d4d33ccb6b08c043d, exact-head validation task 1865 succeeded, merged as c983d6c943f5cde96986d59e4b116aac7ab83556; Wave 6 integrated application head 5e7babdbc9d3749c062995a48da78cc12a43ef1a passed publish task 1879 and validate task 1880. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0019",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0019-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0019",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0019",
            "state": "Done",
            "event_id": "FLOW-TASK-0019-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0019",
            "state": "Done",
            "event_id": "FLOW-TASK-0019-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0019",
            "state": "Done",
            "event_id": "FLOW-TASK-0019-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0019.yml",
            "item_id": "TASK-0019",
            "state": "Done",
            "event_id": "FLOW-TASK-0019-DONE-20260915"
          }
        ],
        "previous_hash": "993081752904875037efa31afee040e5a80b1671c3f66cdca836f2471bdd9e14",
        "hash": "1588898997c0eba68ae1ffaba548ae86c7ea7ee967de807547987b911b185dd9"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0019-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0019",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0019",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0019-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0019.yml",
              "item_id": "TASK-0019",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0019-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "daa0cec491d22813d6938fdb09b2d2e5909002a723d994436c87159b0a4c5963"
        },
        {
          "event_id": "FLOW-TASK-0019-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0019",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T14:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0019-prisma-transaction-adapter",
              "item_id": "TASK-0019",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0019-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0019.yml",
              "item_id": "TASK-0019",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0019-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0019-prisma-transaction-adapter",
          "claim_base_sha": "e6212bf637045138da191634fe113285156426b3",
          "previous_hash": "daa0cec491d22813d6938fdb09b2d2e5909002a723d994436c87159b0a4c5963",
          "hash": "484d73198dddedb9eb12fb0ee49e91c6fe97c3d65a746a73a59f73976c086291"
        },
        {
          "event_id": "FLOW-TASK-0019-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0019",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T17:41:17Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/34",
              "item_id": "TASK-0019",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0019-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/c983d6c943f5cde96986d59e4b116aac7ab83556",
              "item_id": "TASK-0019",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0019-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0019.yml",
              "item_id": "TASK-0019",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0019-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "484d73198dddedb9eb12fb0ee49e91c6fe97c3d65a746a73a59f73976c086291",
          "hash": "993081752904875037efa31afee040e5a80b1671c3f66cdca836f2471bdd9e14"
        },
        {
          "event_id": "FLOW-TASK-0019-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0019",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0019",
              "state": "Done",
              "event_id": "FLOW-TASK-0019-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0019",
              "state": "Done",
              "event_id": "FLOW-TASK-0019-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0019",
              "state": "Done",
              "event_id": "FLOW-TASK-0019-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0019.yml",
              "item_id": "TASK-0019",
              "state": "Done",
              "event_id": "FLOW-TASK-0019-DONE-20260915"
            }
          ],
          "previous_hash": "993081752904875037efa31afee040e5a80b1671c3f66cdca836f2471bdd9e14",
          "hash": "1588898997c0eba68ae1ffaba548ae86c7ea7ee967de807547987b911b185dd9"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0020",
      "display_id": "AEROSIM-TS-20",
      "title": "Verify transactional persistence and pilot isolation",
      "feature_id": "AEROSIM-FT-43",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-43/aerosim-ts-20/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0020.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "API Service and Pilot Data Store — persistence integration tests",
      "outcome": "Real PostgreSQL integration tests prove committed transactions survive reads, failed transactions roll back, duplicate commands do not overwrite data, and one pilot cannot read another pilot’s records.",
      "scope": "Exercise the real Prisma adapter on migrated PostgreSQL with subjects pilot-alpha and pilot-bravo, including successful writes and reads, duplicate idempotency keys, rollback injection, invalid JSON, and attempted cross-subject lookup. Primary files: applications/api/tests/integration/pilot-isolation.test.ts, applications/api/tests/fixtures/pilot-records.ts, applications/api/tests/helpers/postgres.ts.",
      "implementation_artifacts": [
        "applications/api/tests/integration/pilot-isolation.test.ts",
        "applications/api/tests/fixtures/pilot-records.ts",
        "applications/api/tests/helpers/postgres.ts"
      ],
      "inputs": [
        "Migrated disposable PostgreSQL database",
        "AuthenticatedSubject fixtures pilot-alpha and pilot-bravo plus valid, duplicate, and invalid SavePilotRecordCommand fixtures"
      ],
      "outputs": [
        "Repeatable integration-test report proving committed read/write behavior and subject isolation",
        "Database row snapshot showing only successful subject-owned transactions"
      ],
      "failure_boundaries": [
        "The suite fails if pilot-bravo can read pilot-alpha by UUID or if an error discloses ownerSubject.",
        "The suite fails if duplicate or rollback cases change the row count or overwrite the original payload."
      ],
      "exclusions": [
        "Load testing, replication failover, retention erasure, and multi-tenant administration are not persistence acceptance for FT-43."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/api test:integration -- pilot-isolation.test.ts --runInBand",
        "Run the suite twice against freshly migrated databases and compare normalized row snapshots."
      ],
      "dependencies": [
        "TASK-0019"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0050",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #40 reviewed head 46dffe704e3d01a5b58e0a897890bf562b8aea63, exact-head validation task 1887 succeeded, merged as 8f87c9f6214aba3bb5ec498dd99c86cfad8c23d1; Wave 7 integrated application head b75d00b8c3864752bf5b1ea0298097add346f0aa passed publish task 1899 and validate task 1900. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0020",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0020-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0020",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0020",
            "state": "Done",
            "event_id": "FLOW-TASK-0020-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0020",
            "state": "Done",
            "event_id": "FLOW-TASK-0020-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0020",
            "state": "Done",
            "event_id": "FLOW-TASK-0020-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0020.yml",
            "item_id": "TASK-0020",
            "state": "Done",
            "event_id": "FLOW-TASK-0020-DONE-20260915"
          }
        ],
        "previous_hash": "470746c96edd3026e345c581fe071150adcced5d8acbca3650544bafe5cdedd7",
        "hash": "793822c1e91491059ab36bfb19fb31d474c43d91c1db8a75b37b2421fd714b60"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0020-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0020",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0020",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0020-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0020.yml",
              "item_id": "TASK-0020",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0020-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "637a0abd1ee382b45f6b22b522a63e0a5fe833621a5f7209d51abfe1c29935dd"
        },
        {
          "event_id": "FLOW-TASK-0020-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0020",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T20:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0020-pilot-isolation-tests",
              "item_id": "TASK-0020",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0020-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0020.yml",
              "item_id": "TASK-0020",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0020-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0020-pilot-isolation-tests",
          "claim_base_sha": "5e7babdbc9d3749c062995a48da78cc12a43ef1a",
          "previous_hash": "637a0abd1ee382b45f6b22b522a63e0a5fe833621a5f7209d51abfe1c29935dd",
          "hash": "a4843cd7d54183d2a7d0ee85b12f84c165c617c489597fb1d8fcf6fdf6ad7fae"
        },
        {
          "event_id": "FLOW-TASK-0020-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0020",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T22:26:36Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/40",
              "item_id": "TASK-0020",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0020-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/8f87c9f6214aba3bb5ec498dd99c86cfad8c23d1",
              "item_id": "TASK-0020",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0020-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0020.yml",
              "item_id": "TASK-0020",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0020-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "a4843cd7d54183d2a7d0ee85b12f84c165c617c489597fb1d8fcf6fdf6ad7fae",
          "hash": "470746c96edd3026e345c581fe071150adcced5d8acbca3650544bafe5cdedd7"
        },
        {
          "event_id": "FLOW-TASK-0020-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0020",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0020",
              "state": "Done",
              "event_id": "FLOW-TASK-0020-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0020",
              "state": "Done",
              "event_id": "FLOW-TASK-0020-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0020",
              "state": "Done",
              "event_id": "FLOW-TASK-0020-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0020.yml",
              "item_id": "TASK-0020",
              "state": "Done",
              "event_id": "FLOW-TASK-0020-DONE-20260915"
            }
          ],
          "previous_hash": "470746c96edd3026e345c581fe071150adcced5d8acbca3650544bafe5cdedd7",
          "hash": "793822c1e91491059ab36bfb19fb31d474c43d91c1db8a75b37b2421fd714b60"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0021",
      "display_id": "AEROSIM-TS-21",
      "title": "Define the shared typed Socket.IO contract",
      "feature_id": "AEROSIM-FT-44",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-44/aerosim-ts-21/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0021.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application / Socket.IO client and API Service / Socket.IO gateway — Shared typed application-event contract",
      "outcome": "Nebula and Singularity compile against one versioned event map with explicit payload, acknowledgement, ordering, and error contracts.",
      "scope": "Publish one shared Socket.IO event map defining client event flight:command, server event flight:state, acknowledgement CommandAck, monotonic sequence, protocolVersion, and ProblemEvent schemas for both Nebula and Singularity. Primary files: packages/realtime-contract/src/events.ts, packages/realtime-contract/src/schemas.ts, packages/realtime-contract/src/index.ts, packages/realtime-contract/tests/event-contract.test.ts.",
      "implementation_artifacts": [
        "packages/realtime-contract/src/events.ts",
        "packages/realtime-contract/src/schemas.ts",
        "packages/realtime-contract/src/index.ts",
        "packages/realtime-contract/tests/event-contract.test.ts"
      ],
      "inputs": [
        "FlightCommand {commandId,sequence,axes:{pitch,roll,yaw,throttle}}",
        "FlightState {sequence,position,rotation,velocity,serverTime} and protocol version constant"
      ],
      "outputs": [
        "ClientToServerEvents, ServerToClientEvents, InterServerEvents, and SocketData TypeScript interfaces",
        "Runtime schema parsers for FlightCommand, FlightState, CommandAck, and ProblemEvent"
      ],
      "failure_boundaries": [
        "Reject non-finite axis values, throttle outside 0..1, missing commandId, and protocolVersion mismatch.",
        "Fail compile-time contract tests if Web or API declares a same-named event with a divergent payload."
      ],
      "exclusions": [
        "Transport connection handling, flight-physics calculation, telemetry history, and arbitrary user-defined events are outside the contract package."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/realtime-contract typecheck && pnpm --filter @aerosim/realtime-contract test",
        "Run the duplicate-event import boundary test and assert applications/web and applications/api import event types only from @aerosim/realtime-contract."
      ],
      "dependencies": [
        "TASK-0013",
        "TASK-0016"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0051",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #21 reviewed head de6830e6001c5c2dd400c15f06637e767f5f6d6b, exact-head validation task 1800 succeeded, merged as b549ca321ea5d3a8a13b9b792a67c77497f6773b; Wave 4 integrated application head e8bfe781d3295d445cbc46b297874f066cac8301 passed publish task 1832 and validate task 1833. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0021",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0021-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0021",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0021",
            "state": "Done",
            "event_id": "FLOW-TASK-0021-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0021",
            "state": "Done",
            "event_id": "FLOW-TASK-0021-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0021",
            "state": "Done",
            "event_id": "FLOW-TASK-0021-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0021.yml",
            "item_id": "TASK-0021",
            "state": "Done",
            "event_id": "FLOW-TASK-0021-DONE-20260915"
          }
        ],
        "previous_hash": "e6d48dfea2802a7037452384d2e3d877439dd2b28ba2668fcc9202d132d1f90c",
        "hash": "24d30d63ed54f6668553e85d10f558317194ba56d7804b885feab8db48f7f176"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0021-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0021",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0021",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0021-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0021.yml",
              "item_id": "TASK-0021",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0021-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "eecb672bdc4f2fb81dbdeb5be8c7be65f4259519f7b08ef670dcd5fabc227d90"
        },
        {
          "event_id": "FLOW-TASK-0021-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0021",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T04:37:32Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0021-realtime-contract",
              "item_id": "TASK-0021",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0021-IN-PROGRESS-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/98e377b71d37e5606af0e35d7bb08ccf83e63e0b",
              "item_id": "TASK-0021",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0021-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0021.yml",
              "item_id": "TASK-0021",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0021-IN-PROGRESS-20260904"
            }
          ],
          "previous_hash": "eecb672bdc4f2fb81dbdeb5be8c7be65f4259519f7b08ef670dcd5fabc227d90",
          "hash": "38b0e20de66b2aa8fd55da14f9e196d23694c28aaa3a83aa87748859fd645399",
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0021-realtime-contract",
          "claim_base_sha": "98e377b71d37e5606af0e35d7bb08ccf83e63e0b"
        },
        {
          "event_id": "FLOW-TASK-0021-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0021",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T11:52:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/21",
              "item_id": "TASK-0021",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0021-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/b549ca321ea5d3a8a13b9b792a67c77497f6773b",
              "item_id": "TASK-0021",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0021-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0021.yml",
              "item_id": "TASK-0021",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0021-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "38b0e20de66b2aa8fd55da14f9e196d23694c28aaa3a83aa87748859fd645399",
          "hash": "e6d48dfea2802a7037452384d2e3d877439dd2b28ba2668fcc9202d132d1f90c"
        },
        {
          "event_id": "FLOW-TASK-0021-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0021",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0021",
              "state": "Done",
              "event_id": "FLOW-TASK-0021-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0021",
              "state": "Done",
              "event_id": "FLOW-TASK-0021-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0021",
              "state": "Done",
              "event_id": "FLOW-TASK-0021-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0021.yml",
              "item_id": "TASK-0021",
              "state": "Done",
              "event_id": "FLOW-TASK-0021-DONE-20260915"
            }
          ],
          "previous_hash": "e6d48dfea2802a7037452384d2e3d877439dd2b28ba2668fcc9202d132d1f90c",
          "hash": "24d30d63ed54f6668553e85d10f558317194ba56d7804b885feab8db48f7f176"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0022",
      "display_id": "AEROSIM-TS-22",
      "title": "Implement the authenticated Socket.IO gateway",
      "feature_id": "AEROSIM-FT-44",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-44/aerosim-ts-22/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0022.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "API Service — Socket.IO gateway",
      "outcome": "Singularity accepts authorized typed Socket.IO connections, rejects invalid identities and events, and preserves declared event ordering.",
      "scope": "Attach Socket.IO to the Fastify HTTP server, authenticate the handshake bearer token, validate flight:command, reject non-increasing sequence numbers per connection, return CommandAck, emit flight:state in accepted order, and clear connection state on disconnect. Primary files: applications/api/src/realtime/socket-gateway.ts, applications/api/src/realtime/authenticate-socket.ts, applications/api/src/realtime/flight-command-handler.ts, applications/api/tests/realtime/socket-gateway.test.ts.",
      "implementation_artifacts": [
        "applications/api/src/realtime/socket-gateway.ts",
        "applications/api/src/realtime/authenticate-socket.ts",
        "applications/api/src/realtime/flight-command-handler.ts",
        "applications/api/tests/realtime/socket-gateway.test.ts"
      ],
      "inputs": [
        "Socket.IO handshake auth {token} resolving to AuthenticatedSubject",
        "FlightCommand messages defined by @aerosim/realtime-contract"
      ],
      "outputs": [
        "CommandAck {commandId,accepted,sequence,error?}",
        "Ordered flight:state emissions and released per-socket sequence state after disconnect"
      ],
      "failure_boundaries": [
        "Reject the handshake with AUTH_REQUIRED or TOKEN_INVALID before joining a namespace.",
        "A malformed command receives INVALID_PAYLOAD; a repeated or decreasing sequence receives OUT_OF_ORDER and is not forwarded."
      ],
      "exclusions": [
        "The gateway transports commands and state but does not calculate aerodynamics, own authoritative flight state, or persist event history."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/api test -- socket-gateway.test.ts",
        "Connect with invalid token, malformed axes, and sequences 2,1,2; assert rejection codes, one accepted forward, and cleanup after disconnect."
      ],
      "dependencies": [
        "TASK-0021"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0051",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #32 reviewed head db2f0ece14edaf6606c6099cb6eb58ab6c1bb01f, exact-head validation task 1847 succeeded, merged as fe25ca085e5cd90f41081259dd95c0ef3a0bc3e9; Wave 5 integrated application head e6212bf637045138da191634fe113285156426b3 passed publish task 1856 and validate task 1857. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0022",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0022-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0022",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0022",
            "state": "Done",
            "event_id": "FLOW-TASK-0022-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0022",
            "state": "Done",
            "event_id": "FLOW-TASK-0022-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0022",
            "state": "Done",
            "event_id": "FLOW-TASK-0022-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0022.yml",
            "item_id": "TASK-0022",
            "state": "Done",
            "event_id": "FLOW-TASK-0022-DONE-20260915"
          }
        ],
        "previous_hash": "a6c7e7b9c7a990d9182424fe50e1f7cbf88dc157b60c6ece9567197bfbf111d3",
        "hash": "365d2b607455dd7ad556569d28e03ce88bf84ca91426bd0084995ecfae3677c1"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0022-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0022",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0022",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0022-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0022.yml",
              "item_id": "TASK-0022",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0022-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "87256f2cc931241089975c33eee373ec702816ce584c74b642efacb4eb2debe2"
        },
        {
          "event_id": "FLOW-TASK-0022-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0022",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T12:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0022-socket-gateway",
              "item_id": "TASK-0022",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0022-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0022.yml",
              "item_id": "TASK-0022",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0022-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0022-socket-gateway",
          "claim_base_sha": "e8bfe781d3295d445cbc46b297874f066cac8301",
          "previous_hash": "87256f2cc931241089975c33eee373ec702816ce584c74b642efacb4eb2debe2",
          "hash": "65113f81cd7f7e6ac1750da5de02b2e6736b105a6691ec4040a5e26f7569251f"
        },
        {
          "event_id": "FLOW-TASK-0022-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0022",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T13:53:07Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/32",
              "item_id": "TASK-0022",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0022-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/fe25ca085e5cd90f41081259dd95c0ef3a0bc3e9",
              "item_id": "TASK-0022",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0022-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0022.yml",
              "item_id": "TASK-0022",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0022-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "65113f81cd7f7e6ac1750da5de02b2e6736b105a6691ec4040a5e26f7569251f",
          "hash": "a6c7e7b9c7a990d9182424fe50e1f7cbf88dc157b60c6ece9567197bfbf111d3"
        },
        {
          "event_id": "FLOW-TASK-0022-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0022",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0022",
              "state": "Done",
              "event_id": "FLOW-TASK-0022-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0022",
              "state": "Done",
              "event_id": "FLOW-TASK-0022-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0022",
              "state": "Done",
              "event_id": "FLOW-TASK-0022-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0022.yml",
              "item_id": "TASK-0022",
              "state": "Done",
              "event_id": "FLOW-TASK-0022-DONE-20260915"
            }
          ],
          "previous_hash": "a6c7e7b9c7a990d9182424fe50e1f7cbf88dc157b60c6ece9567197bfbf111d3",
          "hash": "365d2b607455dd7ad556569d28e03ce88bf84ca91426bd0084995ecfae3677c1"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0023",
      "display_id": "AEROSIM-TS-23",
      "title": "Implement the typed Nebula Socket.IO client",
      "feature_id": "AEROSIM-FT-44",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-44/aerosim-ts-23/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0023.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Socket.IO client",
      "outcome": "Nebula connects through the shared contract, reconnects with bounded behavior, and surfaces terminal connection failures without duplicating events.",
      "scope": "Create a Nebula SocketClient that supplies the current access token at connect time, validates FlightState, dispatches only increasing sequences, retries transport loss at 250 ms, 500 ms, and 1000 ms, and removes all listeners on dispose. Primary files: applications/web/src/realtime/socket-client.ts, applications/web/src/realtime/flight-event-store.ts, applications/web/tests/socket-client.test.ts.",
      "implementation_artifacts": [
        "applications/web/src/realtime/socket-client.ts",
        "applications/web/src/realtime/flight-event-store.ts",
        "applications/web/tests/socket-client.test.ts"
      ],
      "inputs": [
        "SocketClientConfig {url,getAccessToken,maxReconnectAttempts:3}",
        "FlightCommand dispatches and incoming FlightState or ProblemEvent messages"
      ],
      "outputs": [
        "ConnectionState union disconnected|connecting|connected|terminal-error",
        "Deduplicated ordered FlightState updates in FlightEventStore"
      ],
      "failure_boundaries": [
        "Enter terminal-error after three failed reconnect attempts and expose the final transport reason.",
        "Drop duplicate, decreasing, malformed, or wrong-protocol FlightState without updating the store."
      ],
      "exclusions": [
        "Offline command queues, unbounded retry, background synchronization, and physics prediction are not client responsibilities."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/web test -- socket-client.test.ts",
        "Advance fake timers through 250/500/1000 ms and assert exactly three reconnects, one terminal error, and no listener after dispose."
      ],
      "dependencies": [
        "TASK-0022"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0051",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #33 reviewed head 8a2d612a84a0c66376a02d0f265493e3c889b793, exact-head validation task 1870 succeeded, merged as 7a67bef84c5d02354e877c6bcde1c34bb3d3c497; Wave 6 integrated application head 5e7babdbc9d3749c062995a48da78cc12a43ef1a passed publish task 1879 and validate task 1880. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0023",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0023-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0023",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0023",
            "state": "Done",
            "event_id": "FLOW-TASK-0023-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0023",
            "state": "Done",
            "event_id": "FLOW-TASK-0023-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0023",
            "state": "Done",
            "event_id": "FLOW-TASK-0023-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0023.yml",
            "item_id": "TASK-0023",
            "state": "Done",
            "event_id": "FLOW-TASK-0023-DONE-20260915"
          }
        ],
        "previous_hash": "bdbf1e145bed1c255f565253d5d13dd9ac3fb23e584922c3f5ecb1ed1e2693a3",
        "hash": "a5044086c836319fae19c450cd2a4a2395a855d4b576f79e91f4c6e072974166"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0023-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0023",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0023",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0023-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0023.yml",
              "item_id": "TASK-0023",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0023-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "c1f19d4f37c7acac1eac7d40161e457fc04b9fb0d0eccbd424a21138f49a4acf"
        },
        {
          "event_id": "FLOW-TASK-0023-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0023",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T14:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0023-socket-client",
              "item_id": "TASK-0023",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0023-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0023.yml",
              "item_id": "TASK-0023",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0023-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0023-socket-client",
          "claim_base_sha": "e6212bf637045138da191634fe113285156426b3",
          "previous_hash": "c1f19d4f37c7acac1eac7d40161e457fc04b9fb0d0eccbd424a21138f49a4acf",
          "hash": "cce6bd89603f597889b4b4413e18c32fcbfed161ef8c6ea72a5eec110329c0a1"
        },
        {
          "event_id": "FLOW-TASK-0023-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0023",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T17:41:17Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/33",
              "item_id": "TASK-0023",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0023-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7a67bef84c5d02354e877c6bcde1c34bb3d3c497",
              "item_id": "TASK-0023",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0023-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0023.yml",
              "item_id": "TASK-0023",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0023-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "cce6bd89603f597889b4b4413e18c32fcbfed161ef8c6ea72a5eec110329c0a1",
          "hash": "bdbf1e145bed1c255f565253d5d13dd9ac3fb23e584922c3f5ecb1ed1e2693a3"
        },
        {
          "event_id": "FLOW-TASK-0023-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0023",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0023",
              "state": "Done",
              "event_id": "FLOW-TASK-0023-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0023",
              "state": "Done",
              "event_id": "FLOW-TASK-0023-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0023",
              "state": "Done",
              "event_id": "FLOW-TASK-0023-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0023.yml",
              "item_id": "TASK-0023",
              "state": "Done",
              "event_id": "FLOW-TASK-0023-DONE-20260915"
            }
          ],
          "previous_hash": "bdbf1e145bed1c255f565253d5d13dd9ac3fb23e584922c3f5ecb1ed1e2693a3",
          "hash": "a5044086c836319fae19c450cd2a4a2395a855d4b576f79e91f4c6e072974166"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0024",
      "display_id": "AEROSIM-TS-24",
      "title": "Verify real-time connection and failure behavior",
      "feature_id": "AEROSIM-FT-44",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-44/aerosim-ts-24/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0024.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application and API Service — Socket.IO integration tests",
      "outcome": "Integration tests cover connection, authorization rejection, reconnect, ordered delivery, invalid events, and disconnect cleanup across Nebula and Singularity.",
      "scope": "Run the real Nebula client against the Fastify Socket.IO gateway and prove authenticated round trip, acknowledgement correlation, ordered delivery, rejection paths, bounded reconnect, deduplication, and disconnect cleanup using the shared runtime schemas. Primary files: tests/integration/realtime/socket-roundtrip.test.ts, tests/integration/realtime/fixtures.ts, tests/helpers/test-socket-server.ts.",
      "implementation_artifacts": [
        "tests/integration/realtime/socket-roundtrip.test.ts",
        "tests/integration/realtime/fixtures.ts",
        "tests/helpers/test-socket-server.ts"
      ],
      "inputs": [
        "Test JWTs for valid, missing, invalid-signature, and expired subjects",
        "FlightCommand fixtures with valid, malformed, duplicate, and out-of-order sequences"
      ],
      "outputs": [
        "Round-trip trace correlating commandId, acknowledgement, and FlightState sequence",
        "Connection cleanup assertion showing zero gateway sessions and zero client listeners"
      ],
      "failure_boundaries": [
        "No state event may be delivered for an unauthorized handshake or invalid command.",
        "A reconnect must not replay an acknowledged command or deliver the same FlightState sequence twice."
      ],
      "exclusions": [
        "Latency SLO measurement, horizontal Socket.IO fan-out, Redis adapter deployment, and long-lived telemetry archival are not covered."
      ],
      "verification_steps": [
        "pnpm test:integration -- socket-roundtrip.test.ts",
        "Terminate transport after sequence 3, reconnect, emit sequences 4 and 4, and assert the store contains 1..4 exactly once."
      ],
      "dependencies": [
        "TASK-0023"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0051",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #41 reviewed head 2dd1ae540d9952a0c532602bcbd483d8a5cdfd1a, exact-head validation task 1895 succeeded, merged as 9ad375be00ff8d9d5253dfd1092c6db6d8913893; Wave 7 integrated application head b75d00b8c3864752bf5b1ea0298097add346f0aa passed publish task 1899 and validate task 1900. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0024",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0024-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0024",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0024",
            "state": "Done",
            "event_id": "FLOW-TASK-0024-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0024",
            "state": "Done",
            "event_id": "FLOW-TASK-0024-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0024",
            "state": "Done",
            "event_id": "FLOW-TASK-0024-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0024.yml",
            "item_id": "TASK-0024",
            "state": "Done",
            "event_id": "FLOW-TASK-0024-DONE-20260915"
          }
        ],
        "previous_hash": "8cdbb5d11e1c9aabf9a8e1df7a07b5c1b1089efbaf7ea1cd04641682b199d8d8",
        "hash": "76a11fa874714f1657bb182e6c92a84e0643a1e294a466ed4548609588ff4bed"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0024-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0024",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0024",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0024-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0024.yml",
              "item_id": "TASK-0024",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0024-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "dd9c214b2836783e181db72e878c20f1749e602cdd7f319ec6bd49634e9fbea8"
        },
        {
          "event_id": "FLOW-TASK-0024-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0024",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T20:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0024-socket-roundtrip-integration",
              "item_id": "TASK-0024",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0024-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0024.yml",
              "item_id": "TASK-0024",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0024-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0024-socket-roundtrip-integration",
          "claim_base_sha": "5e7babdbc9d3749c062995a48da78cc12a43ef1a",
          "previous_hash": "dd9c214b2836783e181db72e878c20f1749e602cdd7f319ec6bd49634e9fbea8",
          "hash": "5dc6c2c4bc73c6deaca961e42efde829ee878c0a73097e7398ebf962d305aaf7"
        },
        {
          "event_id": "FLOW-TASK-0024-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0024",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T22:26:36Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/41",
              "item_id": "TASK-0024",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0024-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/9ad375be00ff8d9d5253dfd1092c6db6d8913893",
              "item_id": "TASK-0024",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0024-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0024.yml",
              "item_id": "TASK-0024",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0024-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "5dc6c2c4bc73c6deaca961e42efde829ee878c0a73097e7398ebf962d305aaf7",
          "hash": "8cdbb5d11e1c9aabf9a8e1df7a07b5c1b1089efbaf7ea1cd04641682b199d8d8"
        },
        {
          "event_id": "FLOW-TASK-0024-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0024",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0024",
              "state": "Done",
              "event_id": "FLOW-TASK-0024-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0024",
              "state": "Done",
              "event_id": "FLOW-TASK-0024-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0024",
              "state": "Done",
              "event_id": "FLOW-TASK-0024-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0024.yml",
              "item_id": "TASK-0024",
              "state": "Done",
              "event_id": "FLOW-TASK-0024-DONE-20260915"
            }
          ],
          "previous_hash": "8cdbb5d11e1c9aabf9a8e1df7a07b5c1b1089efbaf7ea1cd04641682b199d8d8",
          "hash": "76a11fa874714f1657bb182e6c92a84e0643a1e294a466ed4548609588ff4bed"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0025",
      "display_id": "AEROSIM-TS-25",
      "title": "Establish the React Three Fiber scene lifecycle",
      "feature_id": "AEROSIM-FT-45",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-45/aerosim-ts-25/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0025.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — R3F flight scene",
      "outcome": "The Web Application owns one explicit React Three Fiber canvas and scene lifecycle with isolated low-level Three.js access.",
      "scope": "Create the single R3F Canvas host for the flight route, own mount/resize/frame/unmount behavior in SceneRoot, and isolate manual Three.js renderer or resource operations in three-adapter with explicit dispose calls. Primary files: applications/web/src/flight/FlightCanvas.tsx, applications/web/src/flight/SceneRoot.tsx, applications/web/src/flight/three-adapter.ts, applications/web/tests/flight-scene-lifecycle.test.tsx.",
      "implementation_artifacts": [
        "applications/web/src/flight/FlightCanvas.tsx",
        "applications/web/src/flight/SceneRoot.tsx",
        "applications/web/src/flight/three-adapter.ts",
        "applications/web/tests/flight-scene-lifecycle.test.tsx"
      ],
      "inputs": [
        "FlightCanvasProps {cameraId,onCreated,onFrameError}",
        "Container ResizeObserver entries and R3F RootState lifecycle callbacks"
      ],
      "outputs": [
        "One mounted WebGL canvas and SceneRoot for the active flight route",
        "Disposed geometries, materials, textures, controls, and animation subscriptions on unmount"
      ],
      "failure_boundaries": [
        "Render FlightRenderError when WebGL context creation fails; do not start a frame subscription.",
        "Treat a zero-sized container as suspended rendering and avoid invalid camera aspect or renderer size."
      ],
      "exclusions": [
        "Aircraft physics, generated terrain, production asset loading, and post-processing effects belong to FT-46 through FT-48 or later work."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/web test -- flight-scene-lifecycle.test.tsx",
        "Mount and unmount FlightCanvas ten times; assert one canvas per mount and one dispose call per allocated fixture resource."
      ],
      "dependencies": [
        "TASK-0013"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0052",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #24 reviewed head f6f4f753f855fbdf5fc276ab13030954510e715b, exact-head validation task 1807 succeeded, merged as 2513379d67f8d848786e220baf092e0c046373ff; Wave 4 integrated application head e8bfe781d3295d445cbc46b297874f066cac8301 passed publish task 1832 and validate task 1833. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0025",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0025-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0025",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0025",
            "state": "Done",
            "event_id": "FLOW-TASK-0025-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0025",
            "state": "Done",
            "event_id": "FLOW-TASK-0025-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0025",
            "state": "Done",
            "event_id": "FLOW-TASK-0025-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0025.yml",
            "item_id": "TASK-0025",
            "state": "Done",
            "event_id": "FLOW-TASK-0025-DONE-20260915"
          }
        ],
        "previous_hash": "e3014949b38656ce9f3f0f0d344fa2095d73d85aad0d1244ce80323319e9b47d",
        "hash": "953b5958e20f7d5c27f1b8acf549ec4f0174d7235164ce26b362cb63e1680a2c"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0025-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0025",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0025",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0025-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0025.yml",
              "item_id": "TASK-0025",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0025-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "0a12941b1ab773f08022595b6756c920e91a5ebb77b556537221780ddc878458"
        },
        {
          "event_id": "FLOW-TASK-0025-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0025",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T04:37:32Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0025-r3f-scene-lifecycle",
              "item_id": "TASK-0025",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0025-IN-PROGRESS-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/98e377b71d37e5606af0e35d7bb08ccf83e63e0b",
              "item_id": "TASK-0025",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0025-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0025.yml",
              "item_id": "TASK-0025",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0025-IN-PROGRESS-20260904"
            }
          ],
          "previous_hash": "0a12941b1ab773f08022595b6756c920e91a5ebb77b556537221780ddc878458",
          "hash": "d34abbb24a45e862ae87163b0a7474b73a95fd8c75c3b4555e0be4547da966ce",
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0025-r3f-scene-lifecycle",
          "claim_base_sha": "98e377b71d37e5606af0e35d7bb08ccf83e63e0b"
        },
        {
          "event_id": "FLOW-TASK-0025-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0025",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T11:52:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/24",
              "item_id": "TASK-0025",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0025-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/2513379d67f8d848786e220baf092e0c046373ff",
              "item_id": "TASK-0025",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0025-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0025.yml",
              "item_id": "TASK-0025",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0025-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "d34abbb24a45e862ae87163b0a7474b73a95fd8c75c3b4555e0be4547da966ce",
          "hash": "e3014949b38656ce9f3f0f0d344fa2095d73d85aad0d1244ce80323319e9b47d"
        },
        {
          "event_id": "FLOW-TASK-0025-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0025",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0025",
              "state": "Done",
              "event_id": "FLOW-TASK-0025-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0025",
              "state": "Done",
              "event_id": "FLOW-TASK-0025-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0025",
              "state": "Done",
              "event_id": "FLOW-TASK-0025-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0025.yml",
              "item_id": "TASK-0025",
              "state": "Done",
              "event_id": "FLOW-TASK-0025-DONE-20260915"
            }
          ],
          "previous_hash": "e3014949b38656ce9f3f0f0d344fa2095d73d85aad0d1244ce80323319e9b47d",
          "hash": "953b5958e20f7d5c27f1b8acf549ec4f0174d7235164ce26b362cb63e1680a2c"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0026",
      "display_id": "AEROSIM-TS-26",
      "title": "Render the representative flight scene",
      "feature_id": "AEROSIM-FT-45",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-45/aerosim-ts-26/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0026.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — R3F scene composition",
      "outcome": "A representative aircraft, terrain surface, environment, primary camera, and secondary camera render through React Three Fiber.",
      "scope": "Compose a deterministic placeholder aircraft mesh, plane terrain, hemisphere and directional lights, sky color, chase camera, and cockpit camera in R3F; switch active camera by CameraId without bypassing SceneRoot ownership. Primary files: applications/web/src/flight/RepresentativeFlightScene.tsx, applications/web/src/flight/cameras.ts, applications/web/src/flight/fixtures/representative-scene.ts, applications/web/tests/representative-flight-scene.test.tsx.",
      "implementation_artifacts": [
        "applications/web/src/flight/RepresentativeFlightScene.tsx",
        "applications/web/src/flight/cameras.ts",
        "applications/web/src/flight/fixtures/representative-scene.ts",
        "applications/web/tests/representative-flight-scene.test.tsx"
      ],
      "inputs": [
        "RepresentativeSceneFixture with aircraft transform, plane dimensions, light values, and two CameraPose records",
        "CameraSelection {activeCameraId:\"chase\"|\"cockpit\"}"
      ],
      "outputs": [
        "R3F scene graph containing named aircraft, terrain, environment lights, chase camera, and cockpit camera",
        "Active Three.js camera matching CameraSelection"
      ],
      "failure_boundaries": [
        "Reject an unknown camera ID and retain the last valid camera.",
        "Do not mount the scene when a fixture transform contains NaN or Infinity."
      ],
      "exclusions": [
        "Placeholder primitives do not satisfy governed glTF asset ingestion, terrain heightmaps, or Rapier collision."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/web test -- representative-flight-scene.test.tsx",
        "Assert scene graph object names and world transforms, switch chase→cockpit→chase, and verify the selected camera identity each time."
      ],
      "dependencies": [
        "TASK-0025"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0052",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #31 reviewed head f9740f81ba264640e2cbd1b2909a8da1273b5f8d, exact-head validation task 1846 succeeded, merged as 7e909c17137f72ae52c162c0ba2f6232be59f382; Wave 5 integrated application head e6212bf637045138da191634fe113285156426b3 passed publish task 1856 and validate task 1857. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0026",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0026-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0026",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0026",
            "state": "Done",
            "event_id": "FLOW-TASK-0026-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0026",
            "state": "Done",
            "event_id": "FLOW-TASK-0026-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0026",
            "state": "Done",
            "event_id": "FLOW-TASK-0026-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0026.yml",
            "item_id": "TASK-0026",
            "state": "Done",
            "event_id": "FLOW-TASK-0026-DONE-20260915"
          }
        ],
        "previous_hash": "b382b39477b78e26462b9c14d3d1eabf977a4a8131a3d76e148dbc0e9ced97f0",
        "hash": "c7fe8161613d1bbc8d074fbaf0a2c43f912a844ed2f395936237c1596b9bb4f5"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0026-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0026",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0026",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0026-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0026.yml",
              "item_id": "TASK-0026",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0026-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "6afa3e5d4cd45004b6b023961c5cb934189ae768da387a3a724bc3a4b0df225f"
        },
        {
          "event_id": "FLOW-TASK-0026-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0026",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T12:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0026-flight-scene",
              "item_id": "TASK-0026",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0026-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0026.yml",
              "item_id": "TASK-0026",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0026-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0026-flight-scene",
          "claim_base_sha": "e8bfe781d3295d445cbc46b297874f066cac8301",
          "previous_hash": "6afa3e5d4cd45004b6b023961c5cb934189ae768da387a3a724bc3a4b0df225f",
          "hash": "f1fdb85b74687045d3f7b2000d3667c78ce553b0bbe3ba80dbfe4cc7eea4b9bd"
        },
        {
          "event_id": "FLOW-TASK-0026-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0026",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T13:53:07Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/31",
              "item_id": "TASK-0026",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0026-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7e909c17137f72ae52c162c0ba2f6232be59f382",
              "item_id": "TASK-0026",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0026-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0026.yml",
              "item_id": "TASK-0026",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0026-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "f1fdb85b74687045d3f7b2000d3667c78ce553b0bbe3ba80dbfe4cc7eea4b9bd",
          "hash": "b382b39477b78e26462b9c14d3d1eabf977a4a8131a3d76e148dbc0e9ced97f0"
        },
        {
          "event_id": "FLOW-TASK-0026-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0026",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0026",
              "state": "Done",
              "event_id": "FLOW-TASK-0026-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0026",
              "state": "Done",
              "event_id": "FLOW-TASK-0026-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0026",
              "state": "Done",
              "event_id": "FLOW-TASK-0026-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0026.yml",
              "item_id": "TASK-0026",
              "state": "Done",
              "event_id": "FLOW-TASK-0026-DONE-20260915"
            }
          ],
          "previous_hash": "b382b39477b78e26462b9c14d3d1eabf977a4a8131a3d76e148dbc0e9ced97f0",
          "hash": "c7fe8161613d1bbc8d074fbaf0a2c43f912a844ed2f395936237c1596b9bb4f5"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0027",
      "display_id": "AEROSIM-TS-27",
      "title": "Verify rendering lifecycle and browser runtime health",
      "feature_id": "AEROSIM-FT-45",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-45/aerosim-ts-27/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0027.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — rendering verification harness",
      "outcome": "Automated rendering and browser smoke tests prove the representative scene mounts, updates, switches cameras, disposes resources, and emits no runtime errors in the production build.",
      "scope": "Verify the production-built flight route in Chromium, instrument console/page/WebGL failures, exercise camera switching and repeated route entry, and assert R3F resources and animation subscriptions return to baseline after disposal. Primary files: applications/web/e2e/flight-scene.smoke.spec.ts, applications/web/tests/flight-resource-disposal.test.tsx, applications/web/tests/helpers/webgl-instrumentation.ts.",
      "implementation_artifacts": [
        "applications/web/e2e/flight-scene.smoke.spec.ts",
        "applications/web/tests/flight-resource-disposal.test.tsx",
        "applications/web/tests/helpers/webgl-instrumentation.ts"
      ],
      "inputs": [
        "Production Nebula bundle served by Vite preview",
        "WebGL instrumentation counters for contexts, geometries, materials, textures, and requestAnimationFrame subscriptions"
      ],
      "outputs": [
        "Playwright smoke report with flight canvas and both camera modes rendered",
        "Resource counter report returning to baseline after five route leave/re-enter cycles"
      ],
      "failure_boundaries": [
        "Fail on console.error, pageerror, WebGL context loss, failed asset request, or unhandled promise rejection.",
        "Fail when any instrumented resource or animation subscription grows across repeated mount/unmount cycles."
      ],
      "exclusions": [
        "Visual-fidelity approval, GPU benchmarking across device classes, and usability evaluation are not part of rendering-runtime health."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/web build && pnpm --filter @aerosim/web exec playwright test e2e/flight-scene.smoke.spec.ts",
        "pnpm --filter @aerosim/web test -- flight-resource-disposal.test.tsx"
      ],
      "dependencies": [
        "TASK-0026"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0052",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #36 reviewed head 367e833ebd511a16ac9003f150027e1b8cc9fa2a, exact-head validation task 1864 succeeded, merged as 123d1825cd201b0a2a8767c4d63cdc1bfcc7a46f; Wave 6 integrated application head 5e7babdbc9d3749c062995a48da78cc12a43ef1a passed publish task 1879 and validate task 1880. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0027",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0027-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0027",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0027",
            "state": "Done",
            "event_id": "FLOW-TASK-0027-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0027",
            "state": "Done",
            "event_id": "FLOW-TASK-0027-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0027",
            "state": "Done",
            "event_id": "FLOW-TASK-0027-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0027.yml",
            "item_id": "TASK-0027",
            "state": "Done",
            "event_id": "FLOW-TASK-0027-DONE-20260915"
          }
        ],
        "previous_hash": "4cc54de54f090f08704e0b88bc848e12fd44881bb7a1216e67147382756adc5e",
        "hash": "3a5e7067782c8ced0ecfc5286c1810523cb7b22cd2934f6d53d25be8e54c9871"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0027-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0027",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0027",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0027-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0027.yml",
              "item_id": "TASK-0027",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0027-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "30e4bb080b0df5f050a5bd5598f7782f680168295e2fedebc99f2dc68abfb46e"
        },
        {
          "event_id": "FLOW-TASK-0027-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0027",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T14:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0027-rendering-runtime-health",
              "item_id": "TASK-0027",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0027-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0027.yml",
              "item_id": "TASK-0027",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0027-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0027-rendering-runtime-health",
          "claim_base_sha": "e6212bf637045138da191634fe113285156426b3",
          "previous_hash": "30e4bb080b0df5f050a5bd5598f7782f680168295e2fedebc99f2dc68abfb46e",
          "hash": "48f2bcd9063814ffa11e863c4bde4d54bac16d402d527bfb4937396404c05377"
        },
        {
          "event_id": "FLOW-TASK-0027-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0027",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T17:41:17Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/36",
              "item_id": "TASK-0027",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0027-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/123d1825cd201b0a2a8767c4d63cdc1bfcc7a46f",
              "item_id": "TASK-0027",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0027-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0027.yml",
              "item_id": "TASK-0027",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0027-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "48f2bcd9063814ffa11e863c4bde4d54bac16d402d527bfb4937396404c05377",
          "hash": "4cc54de54f090f08704e0b88bc848e12fd44881bb7a1216e67147382756adc5e"
        },
        {
          "event_id": "FLOW-TASK-0027-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0027",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0027",
              "state": "Done",
              "event_id": "FLOW-TASK-0027-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0027",
              "state": "Done",
              "event_id": "FLOW-TASK-0027-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0027",
              "state": "Done",
              "event_id": "FLOW-TASK-0027-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0027.yml",
              "item_id": "TASK-0027",
              "state": "Done",
              "event_id": "FLOW-TASK-0027-DONE-20260915"
            }
          ],
          "previous_hash": "4cc54de54f090f08704e0b88bc848e12fd44881bb7a1216e67147382756adc5e",
          "hash": "3a5e7067782c8ced0ecfc5286c1810523cb7b22cd2934f6d53d25be8e54c9871"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0028",
      "display_id": "AEROSIM-TS-28",
      "title": "Define the deterministic fixed-step simulation boundary",
      "feature_id": "AEROSIM-FT-46",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-46/aerosim-ts-28/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0028.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — deterministic flight runtime",
      "outcome": "The browser flight runtime advances simulation through one documented fixed-step clock with explicit input, initial-state, and output contracts.",
      "scope": "Define SimulationInput, AircraftState, SimulationSnapshot, and FixedStepClock with a 1/60-second authoritative step, bounded frame accumulator, maximum five catch-up steps, and render-only interpolation alpha. Primary files: packages/flight-core/src/simulation-clock.ts, packages/flight-core/src/simulation-types.ts, packages/flight-core/tests/simulation-clock.test.ts.",
      "implementation_artifacts": [
        "packages/flight-core/src/simulation-clock.ts",
        "packages/flight-core/src/simulation-types.ts",
        "packages/flight-core/tests/simulation-clock.test.ts"
      ],
      "inputs": [
        "FrameElapsedSeconds and an ordered SimulationInput sample for the current tick",
        "Initial AircraftState with finite position, rotation, linear velocity, and angular velocity"
      ],
      "outputs": [
        "Zero to five fixed SimulationTick records per render frame",
        "SimulationSnapshot {previous,current,interpolationAlpha} where interpolation never mutates current"
      ],
      "failure_boundaries": [
        "Reject negative or non-finite elapsed time and non-finite initial state before advancing.",
        "Clamp accumulated elapsed time to five steps and report droppedTimeSeconds rather than running an unbounded catch-up loop."
      ],
      "exclusions": [
        "requestAnimationFrame cadence, API time, network events, and interpolated render poses cannot become authoritative simulation state."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/flight-core test -- simulation-clock.test.ts",
        "Feed the same one-second elapsed-time partitioned as 60×1/60 and 30×1/30; assert identical authoritative tick count and state inputs."
      ],
      "dependencies": [
        "TASK-0027"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0053",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #38 reviewed head b8711a32338a54fed9190d2b3d88f11c11affdaf, exact-head validation task 1881 succeeded, merged as 859a786d1347074a3d512f5e1a86993de6a238c1; Wave 7 integrated application head b75d00b8c3864752bf5b1ea0298097add346f0aa passed publish task 1899 and validate task 1900. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0028",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0028-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0028",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0028",
            "state": "Done",
            "event_id": "FLOW-TASK-0028-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0028",
            "state": "Done",
            "event_id": "FLOW-TASK-0028-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0028",
            "state": "Done",
            "event_id": "FLOW-TASK-0028-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0028.yml",
            "item_id": "TASK-0028",
            "state": "Done",
            "event_id": "FLOW-TASK-0028-DONE-20260915"
          }
        ],
        "previous_hash": "e61e3abce9d638a0aa9aa6dd2200c75cd8864b1b97bede3000582ecac43f8f25",
        "hash": "d8ea6c4487774128afee22a0f31900f83cf8d9a73de27997ae65291e6e72c533"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0028-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0028",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0028",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0028-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0028.yml",
              "item_id": "TASK-0028",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0028-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "c2cc28c12064262526faab772cb9df86b078c2d850deec60280c24dbe1049378"
        },
        {
          "event_id": "FLOW-TASK-0028-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0028",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T20:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0028-fixed-step-clock",
              "item_id": "TASK-0028",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0028-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0028.yml",
              "item_id": "TASK-0028",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0028-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0028-fixed-step-clock",
          "claim_base_sha": "5e7babdbc9d3749c062995a48da78cc12a43ef1a",
          "previous_hash": "c2cc28c12064262526faab772cb9df86b078c2d850deec60280c24dbe1049378",
          "hash": "72568a8cdd57e6b424a1d76b95ed361ae18846931f98d2cbce1c48cd31c40872"
        },
        {
          "event_id": "FLOW-TASK-0028-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0028",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T22:26:36Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/38",
              "item_id": "TASK-0028",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0028-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/859a786d1347074a3d512f5e1a86993de6a238c1",
              "item_id": "TASK-0028",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0028-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0028.yml",
              "item_id": "TASK-0028",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0028-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "72568a8cdd57e6b424a1d76b95ed361ae18846931f98d2cbce1c48cd31c40872",
          "hash": "e61e3abce9d638a0aa9aa6dd2200c75cd8864b1b97bede3000582ecac43f8f25"
        },
        {
          "event_id": "FLOW-TASK-0028-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0028",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0028",
              "state": "Done",
              "event_id": "FLOW-TASK-0028-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0028",
              "state": "Done",
              "event_id": "FLOW-TASK-0028-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0028",
              "state": "Done",
              "event_id": "FLOW-TASK-0028-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0028.yml",
              "item_id": "TASK-0028",
              "state": "Done",
              "event_id": "FLOW-TASK-0028-DONE-20260915"
            }
          ],
          "previous_hash": "e61e3abce9d638a0aa9aa6dd2200c75cd8864b1b97bede3000582ecac43f8f25",
          "hash": "d8ea6c4487774128afee22a0f31900f83cf8d9a73de27997ae65291e6e72c533"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0029",
      "display_id": "AEROSIM-TS-29",
      "title": "Integrate Rapier aircraft motion and collision state",
      "feature_id": "AEROSIM-FT-46",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-46/aerosim-ts-29/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0029.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Rapier physics adapter",
      "outcome": "Rapier and @react-three/rapier advance representative aircraft motion and collision state through the fixed-step boundary.",
      "scope": "Create and dispose the Rapier world, instantiate the representative dynamic aircraft rigid body and cuboid collider, translate SimulationInput axes into bounded forces and torques each fixed tick, and map collision start/end to CollisionState. Primary files: applications/web/src/flight/physics/RapierFlightWorld.tsx, applications/web/src/flight/physics/aircraft-body.ts, applications/web/src/flight/physics/apply-flight-controls.ts, applications/web/src/flight/physics/collision-events.ts, applications/web/tests/rapier-aircraft.test.tsx.",
      "implementation_artifacts": [
        "applications/web/src/flight/physics/RapierFlightWorld.tsx",
        "applications/web/src/flight/physics/aircraft-body.ts",
        "applications/web/src/flight/physics/apply-flight-controls.ts",
        "applications/web/src/flight/physics/collision-events.ts",
        "applications/web/tests/rapier-aircraft.test.tsx"
      ],
      "inputs": [
        "AircraftState and SimulationInput at a fixed SimulationTick",
        "AircraftBodyConfig {mass,dimensions,linearDamping,angularDamping,maxForce,maxTorque}"
      ],
      "outputs": [
        "Next AircraftState read from Rapier after the fixed step",
        "CollisionState {activeColliderIds,lastStarted?,lastEnded?}"
      ],
      "failure_boundaries": [
        "Reject mass <=0, non-positive collider dimensions, and non-finite force coefficients before body creation.",
        "Ignore collision handles not registered in the flight world and clear all handles/events on reset."
      ],
      "exclusions": [
        "Aerodynamic fidelity, terrain heightfield construction, server-authoritative physics, and multiplayer collision are not implemented here."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/web test -- rapier-aircraft.test.tsx",
        "Apply a fixed throttle/pitch sequence for 120 ticks, assert finite transforms and expected collision start/end, then reset and compare the initial body state."
      ],
      "dependencies": [
        "TASK-0028"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0053",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #44 reviewed head b82895d1c78558795d617c2b29012df8156dc066, exact-head validation task 1901 succeeded, merged as 5d0338094663cb337675f3c0d6b8bd77af31c5aa; Wave 8 integrated application head a3e4429a9970241b278a4f64aa7c6541c74e63a8 passed publish task 1916 and validate task 1917. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0029",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0029-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0029",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0029",
            "state": "Done",
            "event_id": "FLOW-TASK-0029-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0029",
            "state": "Done",
            "event_id": "FLOW-TASK-0029-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0029",
            "state": "Done",
            "event_id": "FLOW-TASK-0029-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0029.yml",
            "item_id": "TASK-0029",
            "state": "Done",
            "event_id": "FLOW-TASK-0029-DONE-20260915"
          }
        ],
        "previous_hash": "79f59fd2ef908d01854ed1da201288ee1f3ab1cdb6acf401a54eefc018dfcbac",
        "hash": "97145c4e0f0138c1c9e4f6f44d1c5720dba116b4cac798123923709d8205514f"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0029-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0029",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0029",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0029-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0029.yml",
              "item_id": "TASK-0029",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0029-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "9084e0c0faf38c167455b3cc85e76ab0bde6a1a188d39813fadb03ec88751de0"
        },
        {
          "event_id": "FLOW-TASK-0029-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0029",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T22:35:17Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0029-rapier-flight-world",
              "item_id": "TASK-0029",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0029-IN-PROGRESS-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/b75d00b8c3864752bf5b1ea0298097add346f0aa",
              "item_id": "TASK-0029",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0029-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0029.yml",
              "item_id": "TASK-0029",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0029-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0029-rapier-flight-world",
          "claim_base_sha": "b75d00b8c3864752bf5b1ea0298097add346f0aa",
          "previous_hash": "9084e0c0faf38c167455b3cc85e76ab0bde6a1a188d39813fadb03ec88751de0",
          "hash": "6d20623756e221410b4c5523f425747c72b480d13fa0b47ce64086c8e2f325fb"
        },
        {
          "event_id": "FLOW-TASK-0029-TO-BE-RELEASED-20260905",
          "sequence": 3,
          "item_id": "TASK-0029",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-05T00:32:02Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/44",
              "item_id": "TASK-0029",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0029-TO-BE-RELEASED-20260905"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5d0338094663cb337675f3c0d6b8bd77af31c5aa",
              "item_id": "TASK-0029",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0029-TO-BE-RELEASED-20260905"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0029.yml",
              "item_id": "TASK-0029",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0029-TO-BE-RELEASED-20260905"
            }
          ],
          "previous_hash": "6d20623756e221410b4c5523f425747c72b480d13fa0b47ce64086c8e2f325fb",
          "hash": "79f59fd2ef908d01854ed1da201288ee1f3ab1cdb6acf401a54eefc018dfcbac"
        },
        {
          "event_id": "FLOW-TASK-0029-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0029",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0029",
              "state": "Done",
              "event_id": "FLOW-TASK-0029-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0029",
              "state": "Done",
              "event_id": "FLOW-TASK-0029-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0029",
              "state": "Done",
              "event_id": "FLOW-TASK-0029-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0029.yml",
              "item_id": "TASK-0029",
              "state": "Done",
              "event_id": "FLOW-TASK-0029-DONE-20260915"
            }
          ],
          "previous_hash": "79f59fd2ef908d01854ed1da201288ee1f3ab1cdb6acf401a54eefc018dfcbac",
          "hash": "97145c4e0f0138c1c9e4f6f44d1c5720dba116b4cac798123923709d8205514f"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0030",
      "display_id": "AEROSIM-TS-30",
      "title": "Add deterministic motion and collision regressions",
      "feature_id": "AEROSIM-FT-46",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-46/aerosim-ts-30/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0030.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — deterministic physics regression suite",
      "outcome": "Repeated runs from identical initial state and fixed inputs produce equivalent motion and collision results within declared tolerances.",
      "scope": "Record one immutable aircraft initial state and 240-tick control sequence, execute it repeatedly through FixedStepClock and Rapier, compare per-tick position/rotation/velocity and collision sequences, and prove render-frame partitioning cannot alter authoritative results. Primary files: packages/flight-core/tests/fixtures/fixed-flight-sequence.json, applications/web/tests/physics/deterministic-flight.test.ts, applications/web/tests/physics/variable-frame-authority.test.ts.",
      "implementation_artifacts": [
        "packages/flight-core/tests/fixtures/fixed-flight-sequence.json",
        "applications/web/tests/physics/deterministic-flight.test.ts",
        "applications/web/tests/physics/variable-frame-authority.test.ts"
      ],
      "inputs": [
        "fixed-flight-sequence.json containing initialState and indexed SimulationInput samples",
        "Frame schedules 240×1/60, 120×1/30, and jittered elapsed times summing to four seconds"
      ],
      "outputs": [
        "Normalized 240-tick trajectory and ordered collision-event snapshot",
        "Regression comparison using 1e-6 position/velocity and 1e-7 quaternion tolerances"
      ],
      "failure_boundaries": [
        "Fail at the first tick whose component exceeds its declared tolerance and print tick, field, expected, and actual.",
        "Fail if reset retains a body handle, collision pair, accumulator remainder, or prior input."
      ],
      "exclusions": [
        "Cross-browser floating-point equivalence beyond declared tolerances and certification-grade flight-model validation are excluded."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/web test -- deterministic-flight.test.ts variable-frame-authority.test.ts",
        "Run the fixture ten times and across all three frame schedules; compare normalized trajectories and collision snapshots."
      ],
      "dependencies": [
        "TASK-0029"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0053",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: original application PR #48 merged reviewed head 80f73cd83cccbd9fb1ba8f01b6f1e8b426a17b40 as b38e562d52640e11cb7e1eeb6bb8af021f09a480; the task-owned immutable 240-tick fixture and regression suites are present in current integration; focused tests pass 9/9 across ten repetitions and three frame schedules; later verification PR #125 contained no code delta and reconfirmed full validation, publication, and integration in runs 4222, 4223, 4230, and 4231. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0030",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0030-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0030",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0030",
            "state": "Done",
            "event_id": "FLOW-TASK-0030-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0030",
            "state": "Done",
            "event_id": "FLOW-TASK-0030-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0030",
            "state": "Done",
            "event_id": "FLOW-TASK-0030-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0030.yml",
            "item_id": "TASK-0030",
            "state": "Done",
            "event_id": "FLOW-TASK-0030-DONE-20260915"
          }
        ],
        "previous_hash": "c57a2b52e2af2db577c911395f9c398ed79539a614793c18ccaf7c084cb1f124",
        "hash": "5953b1ea47cb0bb576ac08e404476e4df9f1516281e50b339af0019629e7edd0"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0030-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0030",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0030",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0030-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0030.yml",
              "item_id": "TASK-0030",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0030-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "0f72128a1dc853a042538a22a92e3bc799cc89ee2bbf3c30086e8fe0543b9d2d"
        },
        {
          "event_id": "FLOW-TASK-0030-IN-PROGRESS-20260909",
          "sequence": 2,
          "item_id": "TASK-0030",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T16:29:23Z",
          "conditions": [
            "Whole Wave 9 claim: TASK-0030, TASK-0037, and TASK-0055 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1547281525928628326",
              "item_id": "TASK-0030",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0030-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0030-add-deterministic-motion-collision-regressions-1",
              "item_id": "TASK-0030",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0030-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/125",
              "item_id": "TASK-0030",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0030-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/b1d642a801896f2907354d1c81f9c964874344fc",
              "item_id": "TASK-0030",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0030-IN-PROGRESS-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0030.yml",
              "item_id": "TASK-0030",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0030-IN-PROGRESS-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0030-add-deterministic-motion-collision-regressions-1",
          "claim_base_sha": "02f55523910f1751332be3dfddc25aadb6a69ff0",
          "previous_hash": "0f72128a1dc853a042538a22a92e3bc799cc89ee2bbf3c30086e8fe0543b9d2d",
          "hash": "6c27c88908af3fe241d50f0fdb9d5ad3d01d1c796753a48b81b49df55a9f6245"
        },
        {
          "event_id": "FLOW-TASK-0030-TO-BE-RELEASED-20260909",
          "sequence": 3,
          "item_id": "TASK-0030",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T17:01:08Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/125",
              "item_id": "TASK-0030",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0030-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf",
              "item_id": "TASK-0030",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0030-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4222",
              "item_id": "TASK-0030",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0030-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4230",
              "item_id": "TASK-0030",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0030-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4231",
              "item_id": "TASK-0030",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0030-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0030.yml",
              "item_id": "TASK-0030",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0030-TO-BE-RELEASED-20260909"
            }
          ],
          "previous_hash": "6c27c88908af3fe241d50f0fdb9d5ad3d01d1c796753a48b81b49df55a9f6245",
          "hash": "c57a2b52e2af2db577c911395f9c398ed79539a614793c18ccaf7c084cb1f124"
        },
        {
          "event_id": "FLOW-TASK-0030-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0030",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0030",
              "state": "Done",
              "event_id": "FLOW-TASK-0030-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0030",
              "state": "Done",
              "event_id": "FLOW-TASK-0030-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0030",
              "state": "Done",
              "event_id": "FLOW-TASK-0030-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0030.yml",
              "item_id": "TASK-0030",
              "state": "Done",
              "event_id": "FLOW-TASK-0030-DONE-20260915"
            }
          ],
          "previous_hash": "c57a2b52e2af2db577c911395f9c398ed79539a614793c18ccaf7c084cb1f124",
          "hash": "5953b1ea47cb0bb576ac08e404476e4df9f1516281e50b339af0019629e7edd0"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0031",
      "display_id": "AEROSIM-TS-31",
      "title": "Define the normalized height-data contract",
      "feature_id": "AEROSIM-FT-47",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-47/aerosim-ts-31/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0031.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application / Deterministic flight runtime — Shared flight-core — normalized terrain data contract",
      "outcome": "Terrain rendering and collision consume one validated normalized height-data representation with explicit dimensions, scale, origin, sampling, and coordinate conventions.",
      "scope": "Define HeightData {width,height,samples,heightScale,cellSize,origin,sampling} and normalize row-major source samples into Float32Array using x-east, y-up, z-south coordinates and bilinear sampling. Primary files: packages/flight-core/src/terrain/height-data.ts, packages/flight-core/src/terrain/normalize-height-data.ts, packages/flight-core/tests/terrain/height-data.test.ts, packages/flight-core/tests/fixtures/ridge-5x5.json.",
      "implementation_artifacts": [
        "packages/flight-core/src/terrain/height-data.ts",
        "packages/flight-core/src/terrain/normalize-height-data.ts",
        "packages/flight-core/tests/terrain/height-data.test.ts",
        "packages/flight-core/tests/fixtures/ridge-5x5.json"
      ],
      "inputs": [
        "RawHeightData with integer width/height, numeric row-major samples, positive heightScale and cellSize, and Vector3 origin",
        "ridge-5x5.json deterministic source fixture"
      ],
      "outputs": [
        "NormalizedHeightData with samples.length=width*height and sampleHeight(x,z) function",
        "Stable terrain bounds and grid-to-world/world-to-grid transforms"
      ],
      "failure_boundaries": [
        "Reject width or height below 2, sample-count mismatch, non-finite samples, non-positive scales, and unsupported sampling modes.",
        "Return OutOfTerrainBounds for sample coordinates outside the closed grid extent; do not clamp silently."
      ],
      "exclusions": [
        "GeoTIFF decoding, coordinate-reference-system reprojection, streaming terrain tiles, and procedural terrain generation are not included."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/flight-core test -- terrain/height-data.test.ts",
        "Validate ridge-5x5, sample all vertices and cell centers, then run explicit dimension, NaN, scale, and bounds rejection fixtures."
      ],
      "dependencies": [
        "TASK-0027",
        "TASK-0030"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0054",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #51 merged the normalized HeightData contract as def0b6d662de0304d82431765ce4f080ffadbb1b; follow-up PR #52 merged fractional-transform rejection as 08ffb367a65955e32aeeb632eb805061b46fb5da; current integration retains the required artifacts; the focused terrain suite passes 46/46; exact-head integration validation and immutable image publication passed remotely at ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0031",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0031-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0031",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0031",
            "state": "Done",
            "event_id": "FLOW-TASK-0031-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0031",
            "state": "Done",
            "event_id": "FLOW-TASK-0031-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0031",
            "state": "Done",
            "event_id": "FLOW-TASK-0031-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0031.yml",
            "item_id": "TASK-0031",
            "state": "Done",
            "event_id": "FLOW-TASK-0031-DONE-20260915"
          }
        ],
        "previous_hash": "6ba1feaa5dbf92c841dd37294016ca123536248f219b7adeff5652129eac4480",
        "hash": "799528f61a922aa959c873711ae7969a4683f3df63803838c2ee460c2c04709b"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0031-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0031",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0031",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0031-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0031.yml",
              "item_id": "TASK-0031",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0031-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "db21800611ff2c5fb9e2fd729eb32748d3e3c0f238586bbe18b1675803413b98"
        },
        {
          "event_id": "FLOW-TASK-0031-IN-PROGRESS-CORRECTION-20260909",
          "sequence": 2,
          "item_id": "TASK-0031",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T20:07:43Z",
          "conditions": [
            "Lifecycle correction: implementation was already merged before the ReadyForDelivery reset."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0031-normalized-height-data",
              "item_id": "TASK-0031",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0031-IN-PROGRESS-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/51",
              "item_id": "TASK-0031",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0031-IN-PROGRESS-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0031.yml",
              "item_id": "TASK-0031",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0031-IN-PROGRESS-CORRECTION-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0031-normalized-height-data",
          "claim_base_sha": "3dc5356fad43721ffc2d108cb6622263341e786e",
          "previous_hash": "db21800611ff2c5fb9e2fd729eb32748d3e3c0f238586bbe18b1675803413b98",
          "hash": "f2c6673b3ca6c0aa163f3c5612b2c539ecd401ed43409ad8cadff35340aabcba"
        },
        {
          "event_id": "FLOW-TASK-0031-TO-BE-RELEASED-CORRECTION-20260909",
          "sequence": 3,
          "item_id": "TASK-0031",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T20:07:43Z",
          "conditions": [
            "Forward-only lifecycle reconciliation from merged implementation and fresh current-tree verification."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/51",
              "item_id": "TASK-0031",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0031-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/52",
              "item_id": "TASK-0031",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0031-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/def0b6d662de0304d82431765ce4f080ffadbb1b",
              "item_id": "TASK-0031",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0031-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf",
              "item_id": "TASK-0031",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0031-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4230",
              "item_id": "TASK-0031",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0031-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4231",
              "item_id": "TASK-0031",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0031-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0031.yml",
              "item_id": "TASK-0031",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0031-TO-BE-RELEASED-CORRECTION-20260909"
            }
          ],
          "previous_hash": "f2c6673b3ca6c0aa163f3c5612b2c539ecd401ed43409ad8cadff35340aabcba",
          "hash": "6ba1feaa5dbf92c841dd37294016ca123536248f219b7adeff5652129eac4480"
        },
        {
          "event_id": "FLOW-TASK-0031-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0031",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0031",
              "state": "Done",
              "event_id": "FLOW-TASK-0031-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0031",
              "state": "Done",
              "event_id": "FLOW-TASK-0031-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0031",
              "state": "Done",
              "event_id": "FLOW-TASK-0031-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0031.yml",
              "item_id": "TASK-0031",
              "state": "Done",
              "event_id": "FLOW-TASK-0031-DONE-20260915"
            }
          ],
          "previous_hash": "6ba1feaa5dbf92c841dd37294016ca123536248f219b7adeff5652129eac4480",
          "hash": "799528f61a922aa959c873711ae7969a4683f3df63803838c2ee460c2c04709b"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0032",
      "display_id": "AEROSIM-TS-32",
      "title": "Generate rendered terrain from normalized heights",
      "feature_id": "AEROSIM-FT-47",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-47/aerosim-ts-32/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0032.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — R3F terrain renderer",
      "outcome": "The R3F flight scene generates its terrain geometry and elevation sampling from the normalized height-data contract.",
      "scope": "Build one indexed BufferGeometry from NormalizedHeightData, map each grid sample to a vertex, generate two triangles per cell with consistent winding, calculate normals and bounds, expose the same sampleHeight function, and dispose geometry on replacement. Primary files: applications/web/src/flight/terrain/TerrainMesh.tsx, applications/web/src/flight/terrain/build-terrain-geometry.ts, applications/web/tests/terrain/terrain-mesh.test.tsx.",
      "implementation_artifacts": [
        "applications/web/src/flight/terrain/TerrainMesh.tsx",
        "applications/web/src/flight/terrain/build-terrain-geometry.ts",
        "applications/web/tests/terrain/terrain-mesh.test.tsx"
      ],
      "inputs": [
        "NormalizedHeightData from @aerosim/flight-core",
        "TerrainMaterialConfig {color,roughness,metalness}"
      ],
      "outputs": [
        "Three.js BufferGeometry with width*height vertices and (width-1)*(height-1)*6 indices",
        "R3F TerrainMesh positioned at the HeightData origin"
      ],
      "failure_boundaries": [
        "Do not allocate geometry if index count exceeds the supported typed-index range or normalized samples are absent.",
        "Dispose the previous BufferGeometry exactly once when height data changes or the component unmounts."
      ],
      "exclusions": [
        "Textures, vegetation, level-of-detail tiles, erosion, and Rapier colliders are not produced by this renderer task."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/web test -- terrain/terrain-mesh.test.tsx",
        "For ridge-5x5 assert 25 vertices, 96 indices, expected corner/peak world positions, finite normals, and disposal after replacement."
      ],
      "dependencies": [
        "TASK-0031"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0054",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #60 merged normalized-height terrain geometry as b3d134b9a7261411b71e2fef552408c38da524eb; current integration retains the required renderer, geometry builder, and tests; the focused terrain-mesh suite passes 6/6; exact-head integration validation and immutable image publication passed remotely at ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0032",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0032-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0032",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0032",
            "state": "Done",
            "event_id": "FLOW-TASK-0032-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0032",
            "state": "Done",
            "event_id": "FLOW-TASK-0032-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0032",
            "state": "Done",
            "event_id": "FLOW-TASK-0032-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0032.yml",
            "item_id": "TASK-0032",
            "state": "Done",
            "event_id": "FLOW-TASK-0032-DONE-20260915"
          }
        ],
        "previous_hash": "c612c8492bb24dc7874f7916fd4993799841c5465f57fa53555e771200c56ea1",
        "hash": "2c245907eea662cfdc284048fa5cb99d2b27e41fe6ad2c70fc319db6d594582c"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0032-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0032",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0032",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0032-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0032.yml",
              "item_id": "TASK-0032",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0032-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "0866c6bee353901306652930e4e99d03c82b6ed6c90370de5137a0e8441fca16"
        },
        {
          "event_id": "FLOW-TASK-0032-IN-PROGRESS-CORRECTION-20260909",
          "sequence": 2,
          "item_id": "TASK-0032",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T20:25:05Z",
          "conditions": [
            "Lifecycle correction: implementation was already merged before the ReadyForDelivery reset."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0032-rendered-terrain",
              "item_id": "TASK-0032",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0032-IN-PROGRESS-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/60",
              "item_id": "TASK-0032",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0032-IN-PROGRESS-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0032.yml",
              "item_id": "TASK-0032",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0032-IN-PROGRESS-CORRECTION-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0032-rendered-terrain",
          "claim_base_sha": "a46f0bb6f8214be18d6605706168f77f0be7ddab",
          "previous_hash": "0866c6bee353901306652930e4e99d03c82b6ed6c90370de5137a0e8441fca16",
          "hash": "cc2a74c048c3832d9ac606f466adb263a44dc5443f180b7dea91eae9d5bd5df1"
        },
        {
          "event_id": "FLOW-TASK-0032-TO-BE-RELEASED-CORRECTION-20260909",
          "sequence": 3,
          "item_id": "TASK-0032",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T20:25:05Z",
          "conditions": [
            "Forward-only lifecycle reconciliation from merged implementation and current exact-head evidence."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/60",
              "item_id": "TASK-0032",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0032-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/b3d134b9a7261411b71e2fef552408c38da524eb",
              "item_id": "TASK-0032",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0032-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf",
              "item_id": "TASK-0032",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0032-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4230",
              "item_id": "TASK-0032",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0032-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4231",
              "item_id": "TASK-0032",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0032-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0032.yml",
              "item_id": "TASK-0032",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0032-TO-BE-RELEASED-CORRECTION-20260909"
            }
          ],
          "previous_hash": "cc2a74c048c3832d9ac606f466adb263a44dc5443f180b7dea91eae9d5bd5df1",
          "hash": "c612c8492bb24dc7874f7916fd4993799841c5465f57fa53555e771200c56ea1"
        },
        {
          "event_id": "FLOW-TASK-0032-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0032",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0032",
              "state": "Done",
              "event_id": "FLOW-TASK-0032-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0032",
              "state": "Done",
              "event_id": "FLOW-TASK-0032-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0032",
              "state": "Done",
              "event_id": "FLOW-TASK-0032-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0032.yml",
              "item_id": "TASK-0032",
              "state": "Done",
              "event_id": "FLOW-TASK-0032-DONE-20260915"
            }
          ],
          "previous_hash": "c612c8492bb24dc7874f7916fd4993799841c5465f57fa53555e771200c56ea1",
          "hash": "2c245907eea662cfdc284048fa5cb99d2b27e41fe6ad2c70fc319db6d594582c"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0033",
      "display_id": "AEROSIM-TS-33",
      "title": "Generate Rapier terrain collision from normalized heights",
      "feature_id": "AEROSIM-FT-47",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-47/aerosim-ts-33/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0033.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Rapier terrain collider",
      "outcome": "The physics runtime generates the terrain collider from the same normalized height data used by the renderer.",
      "scope": "Convert the same NormalizedHeightData samples into a fixed Rapier heightfield collider, apply the grid cell scale and origin transform once, expose collisionHeightAt(x,z), and remove the collider when data changes or the world resets. Primary files: applications/web/src/flight/terrain/TerrainCollider.tsx, applications/web/src/flight/terrain/build-heightfield-collider.ts, applications/web/tests/terrain/terrain-collider.test.tsx.",
      "implementation_artifacts": [
        "applications/web/src/flight/terrain/TerrainCollider.tsx",
        "applications/web/src/flight/terrain/build-heightfield-collider.ts",
        "applications/web/tests/terrain/terrain-collider.test.tsx"
      ],
      "inputs": [
        "NormalizedHeightData instance also passed to TerrainMesh",
        "Rapier World and terrain collision group configuration"
      ],
      "outputs": [
        "Fixed Rapier heightfield ColliderHandle covering the normalized grid",
        "collisionHeightAt result produced by the active collider coordinate transform"
      ],
      "failure_boundaries": [
        "Reject a detached Rapier world, invalid scale transform, or heightfield dimension mismatch before collider creation.",
        "Remove the old collider and references before installing replacement data; stale handles cannot answer elevation queries."
      ],
      "exclusions": [
        "Mesh colliders from arbitrary glTF assets, deformable terrain, vehicles, and terrain streaming are not supported."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/web test -- terrain/terrain-collider.test.tsx",
        "Create ridge-5x5, drop a probe body over peak and slope points, assert contact, replace data, and verify the old collider handle is invalid."
      ],
      "dependencies": [
        "TASK-0032"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0054",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #66 reviewed head c0cdcb260e944ee170e6dffa0bbd8a5152b01753, exact-head required validation task 2134 succeeded, merged as 7de1a447a7aa95c20ec69a66c9713e8e4474b895; current integrated application head 7de1a447a7aa95c20ec69a66c9713e8e4474b895 passed required validation task 2142, publish task 2140, and validate task 2141. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0033",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0033-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0033",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0033",
            "state": "Done",
            "event_id": "FLOW-TASK-0033-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0033",
            "state": "Done",
            "event_id": "FLOW-TASK-0033-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0033",
            "state": "Done",
            "event_id": "FLOW-TASK-0033-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0033.yml",
            "item_id": "TASK-0033",
            "state": "Done",
            "event_id": "FLOW-TASK-0033-DONE-20260915"
          }
        ],
        "previous_hash": "0afcea76496b0c4b4b575385b4dd71faa0088411d749775fa15a099efcb9080d",
        "hash": "9617f245c7414b44fd15942e02a37652a8290d0d58f963ed460e3b5a7fd54e99"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0033-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0033",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0033",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0033-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0033.yml",
              "item_id": "TASK-0033",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0033-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "9e5ac9975f3737ef20fbf1c94ffddc0f9bb6dcb397766b17dcf0fd6fd31653ac"
        },
        {
          "event_id": "FLOW-TASK-0033-IN-PROGRESS-20260905",
          "sequence": 2,
          "item_id": "TASK-0033",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-05T14:56:45Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0033-terrain-collider",
              "item_id": "TASK-0033",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0033-IN-PROGRESS-20260905"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/4e4d103b9c9ad4c04b85cb7ba07c3b5adcf4fe6c",
              "item_id": "TASK-0033",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0033-IN-PROGRESS-20260905"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0033.yml",
              "item_id": "TASK-0033",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0033-IN-PROGRESS-20260905"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0033-terrain-collider",
          "claim_base_sha": "4e4d103b9c9ad4c04b85cb7ba07c3b5adcf4fe6c",
          "previous_hash": "9e5ac9975f3737ef20fbf1c94ffddc0f9bb6dcb397766b17dcf0fd6fd31653ac",
          "hash": "467a06d899d0bc1ab2e7f39b84013fe62455d5ab281217bd55bcbbc84542d1d4"
        },
        {
          "event_id": "FLOW-TASK-0033-TO-BE-RELEASED-20260905",
          "sequence": 3,
          "item_id": "TASK-0033",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-05T16:41:25Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/66",
              "item_id": "TASK-0033",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0033-TO-BE-RELEASED-20260905"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7de1a447a7aa95c20ec69a66c9713e8e4474b895",
              "item_id": "TASK-0033",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0033-TO-BE-RELEASED-20260905"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0033.yml",
              "item_id": "TASK-0033",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0033-TO-BE-RELEASED-20260905"
            }
          ],
          "previous_hash": "467a06d899d0bc1ab2e7f39b84013fe62455d5ab281217bd55bcbbc84542d1d4",
          "hash": "0afcea76496b0c4b4b575385b4dd71faa0088411d749775fa15a099efcb9080d"
        },
        {
          "event_id": "FLOW-TASK-0033-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0033",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0033",
              "state": "Done",
              "event_id": "FLOW-TASK-0033-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0033",
              "state": "Done",
              "event_id": "FLOW-TASK-0033-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0033",
              "state": "Done",
              "event_id": "FLOW-TASK-0033-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0033.yml",
              "item_id": "TASK-0033",
              "state": "Done",
              "event_id": "FLOW-TASK-0033-DONE-20260915"
            }
          ],
          "previous_hash": "0afcea76496b0c4b4b575385b4dd71faa0088411d749775fa15a099efcb9080d",
          "hash": "9617f245c7414b44fd15942e02a37652a8290d0d58f963ed460e3b5a7fd54e99"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0034",
      "display_id": "AEROSIM-TS-34",
      "title": "Verify rendered and collision elevation parity",
      "feature_id": "AEROSIM-FT-47",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-47/aerosim-ts-34/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0034.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application and shared flight-core — terrain parity tests",
      "outcome": "Representative probes demonstrate that rendered and collision elevations remain within the documented tolerance across the terrain fixture.",
      "scope": "Compare the renderer sampleHeight and Rapier collisionHeightAt functions at named flat, slope, peak, valley, edge, and bilinear interior probes on ridge-5x5, using an explicit 1e-4 world-unit elevation tolerance. Primary files: tests/integration/terrain/elevation-parity.test.ts, tests/integration/terrain/terrain-probes.ts, packages/flight-core/tests/fixtures/ridge-5x5.json.",
      "implementation_artifacts": [
        "tests/integration/terrain/elevation-parity.test.ts",
        "tests/integration/terrain/terrain-probes.ts",
        "packages/flight-core/tests/fixtures/ridge-5x5.json"
      ],
      "inputs": [
        "Named TerrainProbe records {name,x,z,expectedClass} over ridge-5x5",
        "Rendered and collision elevation samplers created from the identical NormalizedHeightData object"
      ],
      "outputs": [
        "Per-probe ElevationParityResult {visual,collision,delta,withinTolerance}",
        "Repeatable parity summary with maximum delta and probe name"
      ],
      "failure_boundaries": [
        "Fail if either sampler returns non-finite or out-of-bounds data for an in-bounds probe.",
        "Fail when delta exceeds 1e-4 and report coordinate plus both coordinate transforms."
      ],
      "exclusions": [
        "Pixel comparison, artistic terrain appearance, geospatial accuracy, and contact dynamics beyond surface elevation are excluded."
      ],
      "verification_steps": [
        "pnpm test:integration -- elevation-parity.test.ts",
        "Run probes in forward and reversed order three times; assert the same maximum delta and no mutation of normalized samples."
      ],
      "dependencies": [
        "TASK-0033"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0054",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: initial application PR #68 reviewed head 28da6592ab66f6e27c48cbc0a06c2b43042dd9ba, exact-head required validation tasks 2191 and 2193 succeeded, and merged as 16845882557025df3bf4abfaadf5dd9761c7cab6. Updated-gate repair PR #111 reviewed head f971228348865cc2e103f937c8d182e920dfe1fd passed exact-head pull-request tasks 3004, 3005, 3006, 3007, 3008, 3009, and 3010; merged as db4c92a68c157b7bbca7bbd9cb3fe51ae1a16f61; integrated application head db4c92a68c157b7bbca7bbd9cb3fe51ae1a16f61 passed required-validation task 3011, validate task 3012, build-images task 3013, and publish-images task 3014. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0034",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0034-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0034",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0034",
            "state": "Done",
            "event_id": "FLOW-TASK-0034-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0034",
            "state": "Done",
            "event_id": "FLOW-TASK-0034-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0034",
            "state": "Done",
            "event_id": "FLOW-TASK-0034-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0034.yml",
            "item_id": "TASK-0034",
            "state": "Done",
            "event_id": "FLOW-TASK-0034-DONE-20260915"
          }
        ],
        "previous_hash": "ccef1bd6fb23b15b37abe5999292259acb90af222b4afa43fd9efcf58a8b7d51",
        "hash": "970c7cd6448a450a07310b5b9442c301902916553c6c6ddbbc8efe90e2976726"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0034-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0034",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0034",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0034-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0034.yml",
              "item_id": "TASK-0034",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0034-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "5625f13fe74df92167b6aef2c4ddde948b614e56a9ea0fe7ae8d754caab02d0b"
        },
        {
          "event_id": "FLOW-TASK-0034-IN-PROGRESS-20260905-2",
          "sequence": 2,
          "item_id": "TASK-0034",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-05T19:33:18Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0034-terrain-parity",
              "item_id": "TASK-0034",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0034-IN-PROGRESS-20260905-2"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7de1a447a7aa95c20ec69a66c9713e8e4474b895",
              "item_id": "TASK-0034",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0034-IN-PROGRESS-20260905-2"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0034.yml",
              "item_id": "TASK-0034",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0034-IN-PROGRESS-20260905-2"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0034-terrain-parity",
          "claim_base_sha": "7de1a447a7aa95c20ec69a66c9713e8e4474b895",
          "previous_hash": "5625f13fe74df92167b6aef2c4ddde948b614e56a9ea0fe7ae8d754caab02d0b",
          "hash": "b3e3eea91e600fbf9e51b364810ad6932421f166e131e9a00d2d94a5f89915e5"
        },
        {
          "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906",
          "sequence": 3,
          "item_id": "TASK-0034",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T08:32:55Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/68",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/16845882557025df3bf4abfaadf5dd9761c7cab6",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/111",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/f971228348865cc2e103f937c8d182e920dfe1fd",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/db4c92a68c157b7bbca7bbd9cb3fe51ae1a16f61",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3004",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3005",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3006",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3007",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3008",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3009",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3010",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3011",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3012",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3013",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3014",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0034.yml",
              "item_id": "TASK-0034",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0034-TO-BE-RELEASED-20260906"
            }
          ],
          "previous_hash": "b3e3eea91e600fbf9e51b364810ad6932421f166e131e9a00d2d94a5f89915e5",
          "hash": "ccef1bd6fb23b15b37abe5999292259acb90af222b4afa43fd9efcf58a8b7d51"
        },
        {
          "event_id": "FLOW-TASK-0034-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0034",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0034",
              "state": "Done",
              "event_id": "FLOW-TASK-0034-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0034",
              "state": "Done",
              "event_id": "FLOW-TASK-0034-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0034",
              "state": "Done",
              "event_id": "FLOW-TASK-0034-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0034.yml",
              "item_id": "TASK-0034",
              "state": "Done",
              "event_id": "FLOW-TASK-0034-DONE-20260915"
            }
          ],
          "previous_hash": "ccef1bd6fb23b15b37abe5999292259acb90af222b4afa43fd9efcf58a8b7d51",
          "hash": "970c7cd6448a450a07310b5b9442c301902916553c6c6ddbbc8efe90e2976726"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0035",
      "display_id": "AEROSIM-TS-35",
      "title": "Define the governed 3D asset manifest",
      "feature_id": "AEROSIM-FT-48",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-48/aerosim-ts-35/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0035.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application / R3F flight scene — Shared asset pipeline — provenance and budget manifest",
      "outcome": "Every runtime 3D asset can be described by a validated manifest containing source, license, provenance, format, optimization, and budget metadata.",
      "scope": "Define AssetManifestV1 for each runtime model with assetId, sourceUrl, sourceSha256, licenseSpdx, attribution, provenanceDate, sourceFormat, runtimePath, runtimeSha256, optimization tool/version/options, bytes, triangles, vertices, textures, and approved budgets. Primary files: packages/assets/src/asset-manifest.schema.json, packages/assets/src/asset-manifest.ts, packages/assets/tests/asset-manifest.test.ts, assets/manifests/representative-aircraft.json.",
      "implementation_artifacts": [
        "packages/assets/src/asset-manifest.schema.json",
        "packages/assets/src/asset-manifest.ts",
        "packages/assets/tests/asset-manifest.test.ts",
        "assets/manifests/representative-aircraft.json"
      ],
      "inputs": [
        "JSON AssetManifestV1 document and referenced source/runtime files",
        "Allowed SPDX license identifiers and AssetBudget thresholds"
      ],
      "outputs": [
        "Parsed AssetManifestV1 with canonical assetId and normalized relative runtimePath",
        "representative-aircraft manifest fixture linked to its source and optimized GLB hashes"
      ],
      "failure_boundaries": [
        "Reject absent provenance fields, unknown schemaVersion, non-SPDX license, absolute/path-traversal runtimePath, invalid SHA-256, and negative metrics.",
        "Reject duplicate assetId or runtimePath across the manifest registry."
      ],
      "exclusions": [
        "Legal interpretation of a license, purchasing assets, authoring models, and runtime scene loading are outside manifest definition."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/assets test -- asset-manifest.test.ts",
        "Validate representative-aircraft.json, then mutate each required field, hash, path, license, and duplicate identifier and assert a field-specific error."
      ],
      "dependencies": [
        "TASK-0027"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0055",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #39 reviewed head 950db54a7de52c9a11a76106d6a097bbe55a62e3, exact-head validation task 1882 succeeded, merged as ca77b98960dcc29ff02eeb1daa5592bda8bba4d6; Wave 7 integrated application head b75d00b8c3864752bf5b1ea0298097add346f0aa passed publish task 1899 and validate task 1900. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0035",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0035-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0035",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0035",
            "state": "Done",
            "event_id": "FLOW-TASK-0035-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0035",
            "state": "Done",
            "event_id": "FLOW-TASK-0035-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0035",
            "state": "Done",
            "event_id": "FLOW-TASK-0035-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0035.yml",
            "item_id": "TASK-0035",
            "state": "Done",
            "event_id": "FLOW-TASK-0035-DONE-20260915"
          }
        ],
        "previous_hash": "2a0833b7d41e257475e495a4f82d40778596a2c96aa1b5bc4bc58ff07164c57f",
        "hash": "0c9ed59683f5b0f59ea64ce89ba0085ed0b7fdf2ee9121dc2630a2f32fc42f40"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0035-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0035",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0035",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0035-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0035.yml",
              "item_id": "TASK-0035",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0035-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "d5855244603f0e5b22dac6c4e7ff60c00efc41488dcbb28953ad520ed8d66932"
        },
        {
          "event_id": "FLOW-TASK-0035-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0035",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T20:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0035-asset-manifest",
              "item_id": "TASK-0035",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0035-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0035.yml",
              "item_id": "TASK-0035",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0035-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0035-asset-manifest",
          "claim_base_sha": "5e7babdbc9d3749c062995a48da78cc12a43ef1a",
          "previous_hash": "d5855244603f0e5b22dac6c4e7ff60c00efc41488dcbb28953ad520ed8d66932",
          "hash": "b2b7de2bb3c0e0d3dede34d97999c84bb3c3ccd9915b035880318dd2d6476e7a"
        },
        {
          "event_id": "FLOW-TASK-0035-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0035",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T22:26:36Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/39",
              "item_id": "TASK-0035",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0035-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/ca77b98960dcc29ff02eeb1daa5592bda8bba4d6",
              "item_id": "TASK-0035",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0035-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0035.yml",
              "item_id": "TASK-0035",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0035-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "b2b7de2bb3c0e0d3dede34d97999c84bb3c3ccd9915b035880318dd2d6476e7a",
          "hash": "2a0833b7d41e257475e495a4f82d40778596a2c96aa1b5bc4bc58ff07164c57f"
        },
        {
          "event_id": "FLOW-TASK-0035-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0035",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0035",
              "state": "Done",
              "event_id": "FLOW-TASK-0035-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0035",
              "state": "Done",
              "event_id": "FLOW-TASK-0035-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0035",
              "state": "Done",
              "event_id": "FLOW-TASK-0035-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0035.yml",
              "item_id": "TASK-0035",
              "state": "Done",
              "event_id": "FLOW-TASK-0035-DONE-20260915"
            }
          ],
          "previous_hash": "2a0833b7d41e257475e495a4f82d40778596a2c96aa1b5bc4bc58ff07164c57f",
          "hash": "0c9ed59683f5b0f59ea64ce89ba0085ed0b7fdf2ee9121dc2630a2f32fc42f40"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0036",
      "display_id": "AEROSIM-TS-36",
      "title": "Implement reproducible glTF and GLB optimization",
      "feature_id": "AEROSIM-FT-48",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-48/aerosim-ts-36/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0036.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application / R3F flight scene — Shared asset pipeline — glTF/GLB optimizer",
      "outcome": "Supported source assets are converted or optimized to deterministic runtime glTF/GLB artifacts with measured budget metadata.",
      "scope": "Run a pinned glTF-Transform pipeline for registered .gltf and .glb sources, applying dedup, prune, quantize, and texture resize settings, write a canonical GLB path, calculate SHA-256/byte/triangle/vertex/texture metrics, and update only generated manifest fields. Primary files: packages/assets/src/optimize-gltf.ts, packages/assets/gltf-transform.config.mjs, packages/assets/scripts/optimize-assets.mjs, packages/assets/tests/optimize-gltf.test.ts.",
      "implementation_artifacts": [
        "packages/assets/src/optimize-gltf.ts",
        "packages/assets/gltf-transform.config.mjs",
        "packages/assets/scripts/optimize-assets.mjs",
        "packages/assets/tests/optimize-gltf.test.ts"
      ],
      "inputs": [
        "Manifest sourcePath/sourceSha256 and immutable source .gltf or .glb bytes",
        "Pinned glTF-Transform version and optimization options from gltf-transform.config.mjs"
      ],
      "outputs": [
        "assets/runtime/<assetId>.glb and its SHA-256 digest",
        "Generated optimization and measured metric fields in the asset manifest"
      ],
      "failure_boundaries": [
        "Abort without replacing the prior runtime artifact when source hash mismatches, parsing fails, external resources are missing, or optimizer exits non-zero.",
        "Reject source extensions other than .gltf and .glb and any output containing unresolved external buffers or textures."
      ],
      "exclusions": [
        "FBX/OBJ conversion, manual mesh repair, animation retargeting, and lossy changes outside the pinned profile are excluded."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/assets optimize -- representative-aircraft",
        "Run optimization twice from the same source; compare runtime SHA-256 and generated manifest fields byte-for-byte."
      ],
      "dependencies": [
        "TASK-0035"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0055",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #45 reviewed head 9dde201f4bf353fe07c76de1d15a6a0f8f6e862a, exact-head validation task 1906 succeeded, merged as 85ffbab3c00f0b5c5896e3ffec0e6d6c4f61aed1; Wave 8 integrated application head a3e4429a9970241b278a4f64aa7c6541c74e63a8 passed publish task 1916 and validate task 1917. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0036",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0036-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0036",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0036",
            "state": "Done",
            "event_id": "FLOW-TASK-0036-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0036",
            "state": "Done",
            "event_id": "FLOW-TASK-0036-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0036",
            "state": "Done",
            "event_id": "FLOW-TASK-0036-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0036.yml",
            "item_id": "TASK-0036",
            "state": "Done",
            "event_id": "FLOW-TASK-0036-DONE-20260915"
          }
        ],
        "previous_hash": "0dac5ff2977268a3254d1c2d7cd96f69a00bb50d47114d3ee997be899c6258c1",
        "hash": "57a7802cb24a79cd7c092ce0796011cb9be7ef6002b3c73d11510ef58877b9d4"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0036-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0036",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0036",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0036-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0036.yml",
              "item_id": "TASK-0036",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0036-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "9c21cbb7ecaae4c77b35cb1dcdf99c51d6781ea673fd938045b30cddc5727095"
        },
        {
          "event_id": "FLOW-TASK-0036-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0036",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T22:35:17Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0036-gltf-optimization",
              "item_id": "TASK-0036",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0036-IN-PROGRESS-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/b75d00b8c3864752bf5b1ea0298097add346f0aa",
              "item_id": "TASK-0036",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0036-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0036.yml",
              "item_id": "TASK-0036",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0036-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0036-gltf-optimization",
          "claim_base_sha": "b75d00b8c3864752bf5b1ea0298097add346f0aa",
          "previous_hash": "9c21cbb7ecaae4c77b35cb1dcdf99c51d6781ea673fd938045b30cddc5727095",
          "hash": "5b6c0db8c795175456f32c56d8b62700be160b62d52cb15b85d7e0ef12ad733e"
        },
        {
          "event_id": "FLOW-TASK-0036-TO-BE-RELEASED-20260905",
          "sequence": 3,
          "item_id": "TASK-0036",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-05T00:32:02Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/45",
              "item_id": "TASK-0036",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0036-TO-BE-RELEASED-20260905"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/85ffbab3c00f0b5c5896e3ffec0e6d6c4f61aed1",
              "item_id": "TASK-0036",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0036-TO-BE-RELEASED-20260905"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0036.yml",
              "item_id": "TASK-0036",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0036-TO-BE-RELEASED-20260905"
            }
          ],
          "previous_hash": "5b6c0db8c795175456f32c56d8b62700be160b62d52cb15b85d7e0ef12ad733e",
          "hash": "0dac5ff2977268a3254d1c2d7cd96f69a00bb50d47114d3ee997be899c6258c1"
        },
        {
          "event_id": "FLOW-TASK-0036-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0036",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0036",
              "state": "Done",
              "event_id": "FLOW-TASK-0036-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0036",
              "state": "Done",
              "event_id": "FLOW-TASK-0036-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0036",
              "state": "Done",
              "event_id": "FLOW-TASK-0036-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0036.yml",
              "item_id": "TASK-0036",
              "state": "Done",
              "event_id": "FLOW-TASK-0036-DONE-20260915"
            }
          ],
          "previous_hash": "0dac5ff2977268a3254d1c2d7cd96f69a00bb50d47114d3ee997be899c6258c1",
          "hash": "57a7802cb24a79cd7c092ce0796011cb9be7ef6002b3c73d11510ef58877b9d4"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0037",
      "display_id": "AEROSIM-TS-37",
      "title": "Enforce asset provenance, format, and budgets",
      "feature_id": "AEROSIM-FT-48",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-48/aerosim-ts-37/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0037.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application / R3F flight scene — Shared asset pipeline — policy validator",
      "outcome": "Automated validation admits only licensed, traceable, supported, and within-budget runtime assets.",
      "scope": "Validate every manifest/runtime pair: source and runtime hashes match, license and provenance are present, runtime is a self-contained GLB, and measured bytes, triangles, vertices, texture count, and maximum texture dimension do not exceed that manifest’s approved budget. Primary files: packages/assets/src/validate-asset-registry.ts, packages/assets/src/asset-policy.ts, packages/assets/tests/asset-policy.test.ts, packages/assets/scripts/validate-assets.mjs.",
      "implementation_artifacts": [
        "packages/assets/src/validate-asset-registry.ts",
        "packages/assets/src/asset-policy.ts",
        "packages/assets/tests/asset-policy.test.ts",
        "packages/assets/scripts/validate-assets.mjs"
      ],
      "inputs": [
        "All files under assets/manifests and assets/runtime",
        "AssetPolicy with supported schema versions, formats, licenses, and metric ceilings"
      ],
      "outputs": [
        "AssetValidationReport listing each assetId, measured metrics, and pass status",
        "Non-zero validator exit with assetId, policy rule, expected limit, and observed value for each violation"
      ],
      "failure_boundaries": [
        "Fail on an unregistered runtime GLB, manifest without a runtime file, stale hash, disallowed license, external URI, unsupported extension, or any exceeded budget.",
        "An unreadable or partially parsed asset is a validation failure, not a skipped warning."
      ],
      "exclusions": [
        "Rendering performance budgets, CDN delivery, malware scanning, and legal license approval are separate controls."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/assets validate",
        "pnpm --filter @aerosim/assets test -- asset-policy.test.ts; inject unlicensed, orphan, stale-hash, external-URI, and each over-budget fixture."
      ],
      "dependencies": [
        "TASK-0036"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0055",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: original application PR #49 merged reviewed head 2bf685a5fe1c0d92bc315f602db20acc65d8d514 as 0bb14a6de214b52b36566fff04fa1ca7e3921648; 115 asset tests and current validator/lint/typecheck passed on current integration; duplicate verification PR #126 was closed unmerged after exact-head CI run 4235 passed; current integrated publication and validation runs 4230 and 4231 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0037",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0037-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0037",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0037",
            "state": "Done",
            "event_id": "FLOW-TASK-0037-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0037",
            "state": "Done",
            "event_id": "FLOW-TASK-0037-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0037",
            "state": "Done",
            "event_id": "FLOW-TASK-0037-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0037.yml",
            "item_id": "TASK-0037",
            "state": "Done",
            "event_id": "FLOW-TASK-0037-DONE-20260915"
          }
        ],
        "previous_hash": "0a4160784e7a35bb8b71172b79cd84e7c0e2c3dfc0b4a01e2f42fdef30d759ca",
        "hash": "52d11f30ad399d66ade1c32b37cb5e1c7d9233565ac6d2a93e651d436a5d0a45"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0037-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0037",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0037",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0037-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0037.yml",
              "item_id": "TASK-0037",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0037-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "a5fdae0d0d37155331cd41fae9f099e71d2ade48c400d47ad678457225aad921"
        },
        {
          "event_id": "FLOW-TASK-0037-IN-PROGRESS-20260909",
          "sequence": 2,
          "item_id": "TASK-0037",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T16:29:23Z",
          "conditions": [
            "Whole Wave 9 claim: TASK-0030, TASK-0037, and TASK-0055 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1547281525928628326",
              "item_id": "TASK-0037",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0037-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0037-enforce-asset-provenance-format-budgets-1",
              "item_id": "TASK-0037",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0037-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/126",
              "item_id": "TASK-0037",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0037-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/e235fbb4b87c361600714b1d51fdf75a08520474",
              "item_id": "TASK-0037",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0037-IN-PROGRESS-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0037.yml",
              "item_id": "TASK-0037",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0037-IN-PROGRESS-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0037-enforce-asset-provenance-format-budgets-1",
          "claim_base_sha": "02f55523910f1751332be3dfddc25aadb6a69ff0",
          "previous_hash": "a5fdae0d0d37155331cd41fae9f099e71d2ade48c400d47ad678457225aad921",
          "hash": "0843a8d96cef44af1228cea7a03d42fc7a202943113618471af85eeeb48d39c8"
        },
        {
          "event_id": "FLOW-TASK-0037-TO-BE-RELEASED-CORRECTION-20260909",
          "sequence": 3,
          "item_id": "TASK-0037",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T19:23:44Z",
          "conditions": [
            "Lifecycle correction: implementation was already merged before the ReadyForDelivery reset."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/49",
              "item_id": "TASK-0037",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0037-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/0bb14a6de214b52b36566fff04fa1ca7e3921648",
              "item_id": "TASK-0037",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0037-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4235",
              "item_id": "TASK-0037",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0037-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4230",
              "item_id": "TASK-0037",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0037-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4231",
              "item_id": "TASK-0037",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0037-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0037.yml",
              "item_id": "TASK-0037",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0037-TO-BE-RELEASED-CORRECTION-20260909"
            }
          ],
          "previous_hash": "0843a8d96cef44af1228cea7a03d42fc7a202943113618471af85eeeb48d39c8",
          "hash": "0a4160784e7a35bb8b71172b79cd84e7c0e2c3dfc0b4a01e2f42fdef30d759ca"
        },
        {
          "event_id": "FLOW-TASK-0037-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0037",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0037",
              "state": "Done",
              "event_id": "FLOW-TASK-0037-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0037",
              "state": "Done",
              "event_id": "FLOW-TASK-0037-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0037",
              "state": "Done",
              "event_id": "FLOW-TASK-0037-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0037.yml",
              "item_id": "TASK-0037",
              "state": "Done",
              "event_id": "FLOW-TASK-0037-DONE-20260915"
            }
          ],
          "previous_hash": "0a4160784e7a35bb8b71172b79cd84e7c0e2c3dfc0b4a01e2f42fdef30d759ca",
          "hash": "52d11f30ad399d66ade1c32b37cb5e1c7d9233565ac6d2a93e651d436a5d0a45"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0038",
      "display_id": "AEROSIM-TS-38",
      "title": "Verify governed asset loading in the flight scene",
      "feature_id": "AEROSIM-FT-48",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-48/aerosim-ts-38/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0038.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — governed runtime asset loader",
      "outcome": "The Web Application loads a validated optimized asset through the governed manifest and cannot import an unregistered runtime asset.",
      "scope": "Resolve representative-aircraft only through the compiled validated manifest registry, fetch its runtime GLB, verify the expected runtime SHA-256 before parsing, render AircraftModel in the R3F scene, and release GLTF resources on unmount. Primary files: applications/web/src/flight/assets/governed-asset-loader.ts, applications/web/src/flight/assets/AircraftModel.tsx, applications/web/tests/flight/governed-asset-loader.test.tsx.",
      "implementation_artifacts": [
        "applications/web/src/flight/assets/governed-asset-loader.ts",
        "applications/web/src/flight/assets/AircraftModel.tsx",
        "applications/web/tests/flight/governed-asset-loader.test.tsx"
      ],
      "inputs": [
        "AssetId representative-aircraft and compiled AssetManifestV1 registry entry",
        "Fetched GLB ArrayBuffer from manifest.runtimePath"
      ],
      "outputs": [
        "Loaded GovernedAsset {assetId,scene,animations,manifest} for AircraftModel",
        "AssetLoadProblem with assetId and reason for a refused load"
      ],
      "failure_boundaries": [
        "Refuse unknown assetId, path not present in the registry, hash mismatch, fetch failure, invalid GLB, or manifest marked invalid.",
        "Do not add an unverified scene to R3F and dispose any partially created parser resources."
      ],
      "exclusions": [
        "Dynamic user uploads, remote URL loading, asset editing, and fallback to unregistered placeholder files are not allowed."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/web test -- flight/governed-asset-loader.test.tsx",
        "Load representative-aircraft successfully, then exercise unknown ID, tampered bytes, 404, and malformed GLB; assert no scene node remains for failures."
      ],
      "dependencies": [
        "TASK-0037"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0055",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #54 merged the governed asset loader as 96d00db489b131560772b878306332e5130b0c75; current integration retains manifest-only resolution, runtime SHA-256 validation, failure refusal, and resource cleanup; the focused loader suite passes 28/28; exact-head integration validation and immutable image publication passed remotely at ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0038",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0038-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0038",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0038",
            "state": "Done",
            "event_id": "FLOW-TASK-0038-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0038",
            "state": "Done",
            "event_id": "FLOW-TASK-0038-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0038",
            "state": "Done",
            "event_id": "FLOW-TASK-0038-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0038.yml",
            "item_id": "TASK-0038",
            "state": "Done",
            "event_id": "FLOW-TASK-0038-DONE-20260915"
          }
        ],
        "previous_hash": "1c22c1d931dbc350c4c0d705c45e32321f1cbc4feac9ad886bd3b943d2aa3b3b",
        "hash": "299d9a892ecc508ee74fbe67b40d738dded1f2f3c361d0163c5ab9da2dc15a24"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0038-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0038",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0038",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0038-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0038.yml",
              "item_id": "TASK-0038",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0038-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "7a879b382688253fdc6ee619bade8e80e8990e0f4473a471e5ddf2e089307314"
        },
        {
          "event_id": "FLOW-TASK-0038-IN-PROGRESS-CORRECTION-20260909",
          "sequence": 2,
          "item_id": "TASK-0038",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T20:07:43Z",
          "conditions": [
            "Lifecycle correction: implementation was already merged before the ReadyForDelivery reset."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0038-governed-asset-loader",
              "item_id": "TASK-0038",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0038-IN-PROGRESS-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/54",
              "item_id": "TASK-0038",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0038-IN-PROGRESS-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0038.yml",
              "item_id": "TASK-0038",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0038-IN-PROGRESS-CORRECTION-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0038-governed-asset-loader",
          "claim_base_sha": "08ffb367a65955e32aeeb632eb805061b46fb5da",
          "previous_hash": "7a879b382688253fdc6ee619bade8e80e8990e0f4473a471e5ddf2e089307314",
          "hash": "df9e85453221c560343a419828a977ce5524e9f5e4a8e73556a9783d2719fff8"
        },
        {
          "event_id": "FLOW-TASK-0038-TO-BE-RELEASED-CORRECTION-20260909",
          "sequence": 3,
          "item_id": "TASK-0038",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T20:07:43Z",
          "conditions": [
            "Forward-only lifecycle reconciliation from merged implementation and fresh current-tree verification."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/54",
              "item_id": "TASK-0038",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0038-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/96d00db489b131560772b878306332e5130b0c75",
              "item_id": "TASK-0038",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0038-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf",
              "item_id": "TASK-0038",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0038-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4230",
              "item_id": "TASK-0038",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0038-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4231",
              "item_id": "TASK-0038",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0038-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0038.yml",
              "item_id": "TASK-0038",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0038-TO-BE-RELEASED-CORRECTION-20260909"
            }
          ],
          "previous_hash": "df9e85453221c560343a419828a977ce5524e9f5e4a8e73556a9783d2719fff8",
          "hash": "1c22c1d931dbc350c4c0d705c45e32321f1cbc4feac9ad886bd3b943d2aa3b3b"
        },
        {
          "event_id": "FLOW-TASK-0038-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0038",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0038",
              "state": "Done",
              "event_id": "FLOW-TASK-0038-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0038",
              "state": "Done",
              "event_id": "FLOW-TASK-0038-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0038",
              "state": "Done",
              "event_id": "FLOW-TASK-0038-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0038.yml",
              "item_id": "TASK-0038",
              "state": "Done",
              "event_id": "FLOW-TASK-0038-DONE-20260915"
            }
          ],
          "previous_hash": "1c22c1d931dbc350c4c0d705c45e32321f1cbc4feac9ad886bd3b943d2aa3b3b",
          "hash": "299d9a892ecc508ee74fbe67b40d738dded1f2f3c361d0163c5ab9da2dc15a24"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0039",
      "display_id": "AEROSIM-TS-39",
      "title": "Implement the Nebula Keycloak PKCE session client",
      "feature_id": "AEROSIM-FT-50",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-50/aerosim-ts-39/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0039.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Keycloak session client",
      "outcome": "A protected Nebula route redirects an unauthenticated user to Keycloak and restores the originally intended route after successful Authorization Code with PKCE sign-in.",
      "scope": "Implement Keycloak OIDC discovery and Authorization Code with S256 PKCE for protected Nebula routes, bind state and nonce to one session transaction, preserve an internal intended pathname, process the callback once, renew before expiry, and perform provider logout. Primary files: applications/web/src/auth/oidc-config.ts, applications/web/src/auth/session-client.ts, applications/web/src/auth/ProtectedRoute.tsx, applications/web/src/auth/callback.tsx, applications/web/tests/auth/session-client.test.tsx.",
      "implementation_artifacts": [
        "applications/web/src/auth/oidc-config.ts",
        "applications/web/src/auth/session-client.ts",
        "applications/web/src/auth/ProtectedRoute.tsx",
        "applications/web/src/auth/callback.tsx",
        "applications/web/tests/auth/session-client.test.tsx"
      ],
      "inputs": [
        "OidcConfig {issuer,clientId,redirectUri,postLogoutRedirectUri,scopes}",
        "Protected-route location and Keycloak authorization response {code,state}"
      ],
      "outputs": [
        "Redirect URL containing response_type=code, code_challenge_method=S256, state, nonce, and allowed redirect_uri",
        "SessionState authenticated with access-token expiry and restored internal intended route"
      ],
      "failure_boundaries": [
        "Reject state/nonce mismatch, reused callback, missing code, discovery issuer mismatch, and callback error; clear the pending transaction.",
        "Reject intended routes with an origin, protocol-relative path, or control characters and restore / instead."
      ],
      "exclusions": [
        "AeroSim account registration, password capture, social-provider brokering, Keycloak realm administration, and durable browser token storage are excluded."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/web test -- auth/session-client.test.tsx",
        "Start at /foundation-status?tab=build, complete a valid callback, then test mismatched state, replay, external intended URL, and expired renewal token."
      ],
      "dependencies": [
        "TASK-0013",
        "TASK-0016"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0057",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #22 reviewed head 2fb70c85a33341f8f9acd93f6681460f6d0cf960, exact-head validation task 1821 succeeded, merged as 39e9b71b6c00b5152fa02bc17a17a0ed1372b864; Wave 4 integrated application head e8bfe781d3295d445cbc46b297874f066cac8301 passed publish task 1832 and validate task 1833. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0039",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0039-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0039",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0039",
            "state": "Done",
            "event_id": "FLOW-TASK-0039-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0039",
            "state": "Done",
            "event_id": "FLOW-TASK-0039-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0039",
            "state": "Done",
            "event_id": "FLOW-TASK-0039-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0039.yml",
            "item_id": "TASK-0039",
            "state": "Done",
            "event_id": "FLOW-TASK-0039-DONE-20260915"
          }
        ],
        "previous_hash": "cd12229b6a28dc2f5a16518ba42edea19d03df4781a217521ab91495d8678779",
        "hash": "d5b93bfc9c30b25d945d1e3bce59866ace0cf325282ff43fbc25f8b9a0138597"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0039-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0039",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0039",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0039-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0039.yml",
              "item_id": "TASK-0039",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0039-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "8bda7afaa8c2a1d3728c75380aabe7e11dbe8a54861a579bedee33b6ce3dc86d"
        },
        {
          "event_id": "FLOW-TASK-0039-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0039",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T04:37:32Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0039-keycloak-pkce-session",
              "item_id": "TASK-0039",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0039-IN-PROGRESS-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/98e377b71d37e5606af0e35d7bb08ccf83e63e0b",
              "item_id": "TASK-0039",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0039-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0039.yml",
              "item_id": "TASK-0039",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0039-IN-PROGRESS-20260904"
            }
          ],
          "previous_hash": "8bda7afaa8c2a1d3728c75380aabe7e11dbe8a54861a579bedee33b6ce3dc86d",
          "hash": "33c12545871e931b761f48195855aa1873238be79215a675430fafd77b3a1fd6",
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0039-keycloak-pkce-session",
          "claim_base_sha": "98e377b71d37e5606af0e35d7bb08ccf83e63e0b"
        },
        {
          "event_id": "FLOW-TASK-0039-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0039",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T11:52:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/22",
              "item_id": "TASK-0039",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0039-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/39e9b71b6c00b5152fa02bc17a17a0ed1372b864",
              "item_id": "TASK-0039",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0039-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0039.yml",
              "item_id": "TASK-0039",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0039-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "33c12545871e931b761f48195855aa1873238be79215a675430fafd77b3a1fd6",
          "hash": "cd12229b6a28dc2f5a16518ba42edea19d03df4781a217521ab91495d8678779"
        },
        {
          "event_id": "FLOW-TASK-0039-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0039",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0039",
              "state": "Done",
              "event_id": "FLOW-TASK-0039-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0039",
              "state": "Done",
              "event_id": "FLOW-TASK-0039-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0039",
              "state": "Done",
              "event_id": "FLOW-TASK-0039-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0039.yml",
              "item_id": "TASK-0039",
              "state": "Done",
              "event_id": "FLOW-TASK-0039-DONE-20260915"
            }
          ],
          "previous_hash": "cd12229b6a28dc2f5a16518ba42edea19d03df4781a217521ab91495d8678779",
          "hash": "d5b93bfc9c30b25d945d1e3bce59866ace0cf325282ff43fbc25f8b9a0138597"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0040",
      "display_id": "AEROSIM-TS-40",
      "title": "Implement the Singularity Keycloak identity guard",
      "feature_id": "AEROSIM-FT-50",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-50/aerosim-ts-40/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0040.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "API Service — Keycloak identity guard",
      "outcome": "Protected API routes validate Keycloak JWT signatures and claims and expose a trusted authenticated-subject context.",
      "scope": "Protect non-health Fastify routes with bearer JWT verification against cached Keycloak JWKS, require RS256 signature, exact issuer, configured audience, exp/nbf validity, and non-empty sub, then attach immutable AuthenticatedSubject to the request. Primary files: applications/api/src/auth/keycloak-config.ts, applications/api/src/auth/jwks-client.ts, applications/api/src/auth/identity-guard.ts, applications/api/src/types/fastify-auth.d.ts, applications/api/tests/auth/identity-guard.test.ts.",
      "implementation_artifacts": [
        "applications/api/src/auth/keycloak-config.ts",
        "applications/api/src/auth/jwks-client.ts",
        "applications/api/src/auth/identity-guard.ts",
        "applications/api/src/types/fastify-auth.d.ts",
        "applications/api/tests/auth/identity-guard.test.ts"
      ],
      "inputs": [
        "Authorization: Bearer <JWT> header",
        "KeycloakConfig {issuer,jwksUri,audience,clockToleranceSeconds} and JWKS responses"
      ],
      "outputs": [
        "AuthenticatedSubject {sub,preferredUsername?,roles,tokenId?} on accepted requests",
        "401 ProblemDetails with code AUTH_REQUIRED or TOKEN_INVALID; 503 IDENTITY_PROVIDER_UNAVAILABLE only when no usable cached key exists"
      ],
      "failure_boundaries": [
        "Reject missing bearer token, unsupported alg, unknown kid after one JWKS refresh, bad signature, wrong iss/aud, empty sub, expired token, and future nbf.",
        "Never accept decoded claims before signature verification or return token contents/JWKS errors in responses."
      ],
      "exclusions": [
        "Fine-grained role authorization, token issuance, refresh-token handling, and Keycloak user lifecycle are outside the identity guard."
      ],
      "verification_steps": [
        "pnpm --filter @aerosim/api test -- auth/identity-guard.test.ts",
        "Inject valid and each invalid JWT fixture; assert /health/live remains public and protected handlers run only for the valid token."
      ],
      "dependencies": [
        "TASK-0039"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0057",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #30 reviewed head 5fc3452d04ca96d4d18455563c3b59b18fffabbf, exact-head validation task 1844 succeeded, merged as 7e6bb0a39ace683d2bf501a6c9a2313be0e188fe; Wave 5 integrated application head e6212bf637045138da191634fe113285156426b3 passed publish task 1856 and validate task 1857. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0040",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0040-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0040",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0040",
            "state": "Done",
            "event_id": "FLOW-TASK-0040-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0040",
            "state": "Done",
            "event_id": "FLOW-TASK-0040-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0040",
            "state": "Done",
            "event_id": "FLOW-TASK-0040-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0040.yml",
            "item_id": "TASK-0040",
            "state": "Done",
            "event_id": "FLOW-TASK-0040-DONE-20260915"
          }
        ],
        "previous_hash": "9afcc55fda022a375af46c8ec214a639099b5cd898df9fd1567671c0dc5ca4d5",
        "hash": "4ec2e4ccaa4548693583349f1aa659482a9f6c225cd2de8c3cf97f5b4fb381b6"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0040-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0040",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0040",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0040-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0040.yml",
              "item_id": "TASK-0040",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0040-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "c82d1d2c96b480e37da79950474d10e06c3e9c005b07dba93b6b1355bf5d64bc"
        },
        {
          "event_id": "FLOW-TASK-0040-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0040",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T12:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0040-keycloak-guard",
              "item_id": "TASK-0040",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0040-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0040.yml",
              "item_id": "TASK-0040",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0040-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0040-keycloak-guard",
          "claim_base_sha": "e8bfe781d3295d445cbc46b297874f066cac8301",
          "previous_hash": "c82d1d2c96b480e37da79950474d10e06c3e9c005b07dba93b6b1355bf5d64bc",
          "hash": "facc519135973457e8f28b8fad25e97e8b3079ac7e00e0eb58b4e67f1c243492"
        },
        {
          "event_id": "FLOW-TASK-0040-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0040",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T13:53:07Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/30",
              "item_id": "TASK-0040",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0040-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7e6bb0a39ace683d2bf501a6c9a2313be0e188fe",
              "item_id": "TASK-0040",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0040-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0040.yml",
              "item_id": "TASK-0040",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0040-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "facc519135973457e8f28b8fad25e97e8b3079ac7e00e0eb58b4e67f1c243492",
          "hash": "9afcc55fda022a375af46c8ec214a639099b5cd898df9fd1567671c0dc5ca4d5"
        },
        {
          "event_id": "FLOW-TASK-0040-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0040",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0040",
              "state": "Done",
              "event_id": "FLOW-TASK-0040-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0040",
              "state": "Done",
              "event_id": "FLOW-TASK-0040-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0040",
              "state": "Done",
              "event_id": "FLOW-TASK-0040-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0040.yml",
              "item_id": "TASK-0040",
              "state": "Done",
              "event_id": "FLOW-TASK-0040-DONE-20260915"
            }
          ],
          "previous_hash": "9afcc55fda022a375af46c8ec214a639099b5cd898df9fd1567671c0dc5ca4d5",
          "hash": "4ec2e4ccaa4548693583349f1aa659482a9f6c225cd2de8c3cf97f5b4fb381b6"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0041",
      "display_id": "AEROSIM-TS-41",
      "title": "Remove and prohibit local credential surfaces",
      "feature_id": "AEROSIM-FT-50",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-50/aerosim-ts-41/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0041.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application and API Service — identity boundary",
      "outcome": "AeroSim contains no registration, password-entry, password-reset, or local-credential persistence path.",
      "scope": "Add a repository control that inventories Nebula routes, Fastify routes, Prisma fields, browser forms, and persistence calls and rejects AeroSim-owned registration, password login/reset, password fields, credential hashes, or local token issuance. Primary files: tests/security/no-local-credentials.test.mjs, tests/security/prohibited-credential-patterns.json, applications/api/prisma/schema.prisma, applications/web/src/router.tsx.",
      "implementation_artifacts": [
        "tests/security/no-local-credentials.test.mjs",
        "tests/security/prohibited-credential-patterns.json",
        "applications/api/prisma/schema.prisma",
        "applications/web/src/router.tsx"
      ],
      "inputs": [
        "Tracked Web/API source paths, generated route inventories, and Prisma schema",
        "ProhibitedCredentialPatterns for password, passwordHash, register, reset-password, local-login, and token-signing code"
      ],
      "outputs": [
        "NoLocalCredentialsReport listing scanned paths and zero prohibited credential surfaces",
        "Non-zero test result naming the file, route, model, or field that violates the identity boundary"
      ],
      "failure_boundaries": [
        "Fail if a scan root is missing, excluded unexpectedly, or cannot be parsed; an incomplete inventory cannot pass.",
        "Fail on any password-type input, local registration/reset route, credential column, argon/bcrypt dependency, or API JWT signing key."
      ],
      "exclusions": [
        "Keycloak-hosted login, password reset, MFA, account administration, and provider session cookies remain Keycloak responsibilities and are not scanned as AeroSim credential features."
      ],
      "verification_steps": [
        "node --test tests/security/no-local-credentials.test.mjs",
        "Inject fixtures containing /register, input type=password, passwordHash in Prisma, and sign(jwt); assert each fails with its exact path."
      ],
      "dependencies": [
        "TASK-0040"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0057",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #37 reviewed head a1b426e0ce39162cf0789fe576b3f68521ef5662, exact-head validation task 1869 succeeded, merged as 98f7786d77e97d1431b9bfbd48d0fa082a50c128; Wave 6 integrated application head 5e7babdbc9d3749c062995a48da78cc12a43ef1a passed publish task 1879 and validate task 1880. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0041",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0041-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0041",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0041",
            "state": "Done",
            "event_id": "FLOW-TASK-0041-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0041",
            "state": "Done",
            "event_id": "FLOW-TASK-0041-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0041",
            "state": "Done",
            "event_id": "FLOW-TASK-0041-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0041.yml",
            "item_id": "TASK-0041",
            "state": "Done",
            "event_id": "FLOW-TASK-0041-DONE-20260915"
          }
        ],
        "previous_hash": "c79b13ffa5ad95a54a489ade08fa9fd66641b9609f552abed323030c914a56d2",
        "hash": "09d4a3d59a0ceab1658e8c136e2ffab7481be88e4978edda153ff193a2d14ec4"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0041-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0041",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0041",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0041-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0041.yml",
              "item_id": "TASK-0041",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0041-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "4ae40d2dc52cb68d66123eadff3ca60f6e7880041a1f89f2e877c487d6b4306f"
        },
        {
          "event_id": "FLOW-TASK-0041-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0041",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T14:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/fix/task-0041-prohibit-local-credentials",
              "item_id": "TASK-0041",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0041-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0041.yml",
              "item_id": "TASK-0041",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0041-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "fix/task-0041-prohibit-local-credentials",
          "claim_base_sha": "e6212bf637045138da191634fe113285156426b3",
          "previous_hash": "4ae40d2dc52cb68d66123eadff3ca60f6e7880041a1f89f2e877c487d6b4306f",
          "hash": "418ba01c1bc11a3ef5097789d47b56b6d381e70df79e2e857c6828e56667ef60"
        },
        {
          "event_id": "FLOW-TASK-0041-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0041",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T17:41:17Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/37",
              "item_id": "TASK-0041",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0041-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/98f7786d77e97d1431b9bfbd48d0fa082a50c128",
              "item_id": "TASK-0041",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0041-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0041.yml",
              "item_id": "TASK-0041",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0041-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "418ba01c1bc11a3ef5097789d47b56b6d381e70df79e2e857c6828e56667ef60",
          "hash": "c79b13ffa5ad95a54a489ade08fa9fd66641b9609f552abed323030c914a56d2"
        },
        {
          "event_id": "FLOW-TASK-0041-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0041",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0041",
              "state": "Done",
              "event_id": "FLOW-TASK-0041-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0041",
              "state": "Done",
              "event_id": "FLOW-TASK-0041-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0041",
              "state": "Done",
              "event_id": "FLOW-TASK-0041-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0041.yml",
              "item_id": "TASK-0041",
              "state": "Done",
              "event_id": "FLOW-TASK-0041-DONE-20260915"
            }
          ],
          "previous_hash": "c79b13ffa5ad95a54a489ade08fa9fd66641b9609f552abed323030c914a56d2",
          "hash": "09d4a3d59a0ceab1658e8c136e2ffab7481be88e4978edda153ff193a2d14ec4"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0042",
      "display_id": "AEROSIM-TS-42",
      "title": "Verify Keycloak redirect, return, and rejection flows",
      "feature_id": "AEROSIM-FT-50",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-50/aerosim-ts-42/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0042.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application and API Service — Keycloak integration tests",
      "outcome": "Automated integration tests prove intended-route restoration, authenticated API access, and rejection of missing, invalid, expired, or incorrectly scoped tokens.",
      "scope": "Exercise Nebula and Singularity against a controlled OIDC fixture: redirect from a protected deep link, valid callback and route restoration, authorized API request, logout, and rejection of missing, malformed, bad-signature, expired, wrong-issuer, and wrong-audience tokens. Primary files: tests/integration/auth/keycloak-flow.spec.ts, tests/integration/auth/keycloak-fixture.ts, tests/integration/auth/jwt-fixtures.ts.",
      "implementation_artifacts": [
        "tests/integration/auth/keycloak-flow.spec.ts",
        "tests/integration/auth/keycloak-fixture.ts",
        "tests/integration/auth/jwt-fixtures.ts"
      ],
      "inputs": [
        "Controlled Keycloak discovery/JWKS endpoints and authorization-code fixture",
        "Deep link /foundation-status?tab=build and JWT matrix for subject pilot-alpha"
      ],
      "outputs": [
        "Browser trace from protected route through Keycloak callback back to the exact internal deep link",
        "API status matrix proving valid=200 and every invalid token=401 while health=200"
      ],
      "failure_boundaries": [
        "No invalid callback may establish SessionState or send a bearer token to Singularity.",
        "No rejected API token may invoke the protected handler or disclose claim, signature, or key material."
      ],
      "exclusions": [
        "Production realm provisioning, federation, MFA policy, and identity-provider uptime testing are excluded."
      ],
      "verification_steps": [
        "pnpm test:integration -- keycloak-flow.spec.ts",
        "After the valid flow, replay callback state and run the seven token cases; assert session/handler counters remain unchanged on rejection."
      ],
      "dependencies": [
        "TASK-0041"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0057",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #42 reviewed head e9ecbe42d6c46c5f48ad0f2d9b02db89d26a4ae7, exact-head validation task 1896 succeeded, merged as b75d00b8c3864752bf5b1ea0298097add346f0aa; Wave 7 integrated application head b75d00b8c3864752bf5b1ea0298097add346f0aa passed publish task 1899 and validate task 1900. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0042",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0042-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0042",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0042",
            "state": "Done",
            "event_id": "FLOW-TASK-0042-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0042",
            "state": "Done",
            "event_id": "FLOW-TASK-0042-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0042",
            "state": "Done",
            "event_id": "FLOW-TASK-0042-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0042.yml",
            "item_id": "TASK-0042",
            "state": "Done",
            "event_id": "FLOW-TASK-0042-DONE-20260915"
          }
        ],
        "previous_hash": "d5a53c15074bb2b202d5a295e9888c43dc76a8922ce13458d38665ba9ff003fa",
        "hash": "26a39adaebf1f6767f441eec4421a9b6176a6de1371a1a695735221bf86bb603"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0042-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0042",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0042",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0042-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0042.yml",
              "item_id": "TASK-0042",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0042-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "91acd8fe789282f5e8bc3a7438b47c00e7e36a815e6f9865e04e16e675cb3703"
        },
        {
          "event_id": "FLOW-TASK-0042-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0042",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T20:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0042-keycloak-flow-integration",
              "item_id": "TASK-0042",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0042-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0042.yml",
              "item_id": "TASK-0042",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0042-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0042-keycloak-flow-integration",
          "claim_base_sha": "5e7babdbc9d3749c062995a48da78cc12a43ef1a",
          "previous_hash": "91acd8fe789282f5e8bc3a7438b47c00e7e36a815e6f9865e04e16e675cb3703",
          "hash": "fe2128cdda687a86c68ad7b81bf29f98c06d910246cf81f2d6425373ec030009"
        },
        {
          "event_id": "FLOW-TASK-0042-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0042",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T22:26:36Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/42",
              "item_id": "TASK-0042",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0042-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/b75d00b8c3864752bf5b1ea0298097add346f0aa",
              "item_id": "TASK-0042",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0042-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0042.yml",
              "item_id": "TASK-0042",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0042-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "fe2128cdda687a86c68ad7b81bf29f98c06d910246cf81f2d6425373ec030009",
          "hash": "d5a53c15074bb2b202d5a295e9888c43dc76a8922ce13458d38665ba9ff003fa"
        },
        {
          "event_id": "FLOW-TASK-0042-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0042",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0042",
              "state": "Done",
              "event_id": "FLOW-TASK-0042-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0042",
              "state": "Done",
              "event_id": "FLOW-TASK-0042-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0042",
              "state": "Done",
              "event_id": "FLOW-TASK-0042-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0042.yml",
              "item_id": "TASK-0042",
              "state": "Done",
              "event_id": "FLOW-TASK-0042-DONE-20260915"
            }
          ],
          "previous_hash": "d5a53c15074bb2b202d5a295e9888c43dc76a8922ce13458d38665ba9ff003fa",
          "hash": "26a39adaebf1f6767f441eec4421a9b6176a6de1371a1a695735221bf86bb603"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0043",
      "display_id": "AEROSIM-TS-43",
      "title": "Standardize local lint, type, test, and build commands",
      "feature_id": "AEROSIM-FT-51",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-51/aerosim-ts-43/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0043.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application and API Service build boundaries — Application monorepo — validation toolchain",
      "outcome": "The application monorepo exposes deterministic root commands for linting, type checking, testing, and production builds across Nebula, Singularity, persistence, rendering, and physics packages.",
      "scope": "Define root lint, typecheck, test, build, and validate scripts over every declared workspace package; validate runs all four gates, records each result, and exits non-zero if a required package or gate is absent, skipped, or failed. Primary files: package.json, pnpm-workspace.yaml, eslint.config.mjs, tsconfig.json, vitest.workspace.ts, scripts/validate.mjs, tests/ci/local-validation-contract.test.mjs.",
      "implementation_artifacts": [
        "package.json",
        "pnpm-workspace.yaml",
        "eslint.config.mjs",
        "tsconfig.json",
        "vitest.workspace.ts",
        "scripts/validate.mjs",
        "tests/ci/local-validation-contract.test.mjs"
      ],
      "inputs": [
        "pnpm-lock.yaml and workspace package manifests",
        "RequiredGate list lint,typecheck,test,build and discovered workspace package names"
      ],
      "outputs": [
        "Deterministic root commands pnpm lint, pnpm typecheck, pnpm test, pnpm build, and pnpm validate",
        "ValidationSummary mapping every package and gate to passed or failed"
      ],
      "failure_boundaries": [
        "Fail before success when a workspace package lacks a required script or is omitted from task selection.",
        "Run all gates for diagnostics but return non-zero if any gate fails; no continue-on-error can convert failure to success."
      ],
      "exclusions": [
        "Deployment publication, release approval, browser matrix expansion, and performance benchmarking are outside the local validation contract."
      ],
      "verification_steps": [
        "node --test tests/ci/local-validation-contract.test.mjs && pnpm validate",
        "Delete one fixture package build script and force each gate to fail in turn; assert aggregate status is non-zero and names the package/gate."
      ],
      "dependencies": [
        "TASK-0013",
        "TASK-0016",
        "TASK-0020",
        "TASK-0027",
        "TASK-0030"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0058",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #55 merged deterministic root validation gates as e2df1e859172068c04858bc22f9c7223cfae8394; current integration retains all five canonical commands and fail-closed package/gate coverage; the focused validation-contract suite passes 15/15; exact-head integration validation and immutable image publication passed remotely at ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0043",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0043-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0043",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0043",
            "state": "Done",
            "event_id": "FLOW-TASK-0043-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0043",
            "state": "Done",
            "event_id": "FLOW-TASK-0043-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0043",
            "state": "Done",
            "event_id": "FLOW-TASK-0043-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0043.yml",
            "item_id": "TASK-0043",
            "state": "Done",
            "event_id": "FLOW-TASK-0043-DONE-20260915"
          }
        ],
        "previous_hash": "f428ef70547624b6c98a6ca3e51bde73b2d6a0f2ad9a4947cf238663878f0cba",
        "hash": "cdc13756c5e0f71b31554a96518605a5ba97f7c2b802007a9d8b419c3980d7dc"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0043-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0043",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0043",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0043-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0043.yml",
              "item_id": "TASK-0043",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0043-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "f10bbcd6e58fb76ed6fd02976a49460d40383817b8cfe35ec811d4755ea9d4a3"
        },
        {
          "event_id": "FLOW-TASK-0043-IN-PROGRESS-CORRECTION-20260909",
          "sequence": 2,
          "item_id": "TASK-0043",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T20:07:43Z",
          "conditions": [
            "Lifecycle correction: implementation was already merged before the ReadyForDelivery reset."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0043-local-validation-contract",
              "item_id": "TASK-0043",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0043-IN-PROGRESS-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/55",
              "item_id": "TASK-0043",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0043-IN-PROGRESS-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0043.yml",
              "item_id": "TASK-0043",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0043-IN-PROGRESS-CORRECTION-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0043-local-validation-contract",
          "claim_base_sha": "96d00db489b131560772b878306332e5130b0c75",
          "previous_hash": "f10bbcd6e58fb76ed6fd02976a49460d40383817b8cfe35ec811d4755ea9d4a3",
          "hash": "8be3fe2520056f5eae4b120cf1df01147ed4c29bb3397b4165df4d0b06981bd6"
        },
        {
          "event_id": "FLOW-TASK-0043-TO-BE-RELEASED-CORRECTION-20260909",
          "sequence": 3,
          "item_id": "TASK-0043",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T20:07:43Z",
          "conditions": [
            "Forward-only lifecycle reconciliation from merged implementation and fresh current-tree verification."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/55",
              "item_id": "TASK-0043",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0043-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/e2df1e859172068c04858bc22f9c7223cfae8394",
              "item_id": "TASK-0043",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0043-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf",
              "item_id": "TASK-0043",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0043-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4230",
              "item_id": "TASK-0043",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0043-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4231",
              "item_id": "TASK-0043",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0043-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0043.yml",
              "item_id": "TASK-0043",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0043-TO-BE-RELEASED-CORRECTION-20260909"
            }
          ],
          "previous_hash": "8be3fe2520056f5eae4b120cf1df01147ed4c29bb3397b4165df4d0b06981bd6",
          "hash": "f428ef70547624b6c98a6ca3e51bde73b2d6a0f2ad9a4947cf238663878f0cba"
        },
        {
          "event_id": "FLOW-TASK-0043-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0043",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0043",
              "state": "Done",
              "event_id": "FLOW-TASK-0043-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0043",
              "state": "Done",
              "event_id": "FLOW-TASK-0043-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0043",
              "state": "Done",
              "event_id": "FLOW-TASK-0043-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0043.yml",
              "item_id": "TASK-0043",
              "state": "Done",
              "event_id": "FLOW-TASK-0043-DONE-20260915"
            }
          ],
          "previous_hash": "f428ef70547624b6c98a6ca3e51bde73b2d6a0f2ad9a4947cf238663878f0cba",
          "hash": "cdc13756c5e0f71b31554a96518605a5ba97f7c2b802007a9d8b419c3980d7dc"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0044",
      "display_id": "AEROSIM-TS-44",
      "title": "Run the local validation contract in Gitea Actions",
      "feature_id": "AEROSIM-FT-51",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-51/aerosim-ts-44/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0044.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Gitea Actions — application validation workflow",
      "outcome": "Gitea Actions invokes the same lint, type, test, and production-build entry points used locally and fails when any required gate fails.",
      "scope": "Create the Gitea pull_request and push validation workflow that checks out the event commit, installs the pinned pnpm version, uses a frozen lockfile, and calls the same root lint, typecheck, test, and build scripts with separate visible jobs and a required aggregate job. Primary files: .gitea/workflows/application-validation.yaml, tests/ci/application-validation-workflow.test.mjs.",
      "implementation_artifacts": [
        ".gitea/workflows/application-validation.yaml",
        "tests/ci/application-validation-workflow.test.mjs"
      ],
      "inputs": [
        "Gitea pull_request/push event containing immutable commit SHA",
        "Repository package.json scripts and pnpm-lock.yaml"
      ],
      "outputs": [
        "Four Gitea job results plus validation-required aggregate result",
        "Uploaded test reports and build logs labeled with the event commit SHA"
      ],
      "failure_boundaries": [
        "The aggregate job fails when any required job is failed, cancelled, skipped, or absent.",
        "Dependency installation fails on lockfile drift; workflow must not regenerate or commit the lockfile."
      ],
      "exclusions": [
        "Container publication, GitOps repository changes, and deployment credentials are not present in this validation workflow."
      ],
      "verification_steps": [
        "node --test tests/ci/application-validation-workflow.test.mjs",
        "Run act-compatible workflow fixtures for all-pass and each single-gate failure; compare invoked commands with package.json."
      ],
      "dependencies": [
        "TASK-0043"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0058",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #58 merged the Gitea application-validation workflow as 2501231e1852f888f65e7d3a9f6c355c18f23e78; current integration retains exact-event checkout, pinned frozen installation, separate visible gates, aggregate failure handling, and bounded validation-only permissions; the focused workflow suite passes 10/10; exact-head integration validation and immutable image publication passed remotely at ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0044",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0044-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0044",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0044",
            "state": "Done",
            "event_id": "FLOW-TASK-0044-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0044",
            "state": "Done",
            "event_id": "FLOW-TASK-0044-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0044",
            "state": "Done",
            "event_id": "FLOW-TASK-0044-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0044.yml",
            "item_id": "TASK-0044",
            "state": "Done",
            "event_id": "FLOW-TASK-0044-DONE-20260915"
          }
        ],
        "previous_hash": "d9f1753f667a4d93e43ba82cccd23adf7582187c9c1f45c5f77f8255f0ca6a38",
        "hash": "d844adad828a795ce95a7d86eae22d5b72fae85e3e31c7fd18ac10e2bb4727e3"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0044-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0044",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0044",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0044-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0044.yml",
              "item_id": "TASK-0044",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0044-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "8f56698e6da8ad2f357e9ced0de2487e884d6fd2faa872fb3d71453103eb2a1a"
        },
        {
          "event_id": "FLOW-TASK-0044-IN-PROGRESS-CORRECTION-20260909",
          "sequence": 2,
          "item_id": "TASK-0044",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T20:25:05Z",
          "conditions": [
            "Lifecycle correction: implementation was already merged before the ReadyForDelivery reset."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/ci/task-0044-application-validation",
              "item_id": "TASK-0044",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0044-IN-PROGRESS-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/58",
              "item_id": "TASK-0044",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0044-IN-PROGRESS-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0044.yml",
              "item_id": "TASK-0044",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0044-IN-PROGRESS-CORRECTION-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "ci/task-0044-application-validation",
          "claim_base_sha": "b065bea3a34d9157d80e007f6f4bf9f8352b69e4",
          "previous_hash": "8f56698e6da8ad2f357e9ced0de2487e884d6fd2faa872fb3d71453103eb2a1a",
          "hash": "ac96955267bfb533990b4d83d53385f0d26ac6327d0173b7802694ff107a6c9e"
        },
        {
          "event_id": "FLOW-TASK-0044-TO-BE-RELEASED-CORRECTION-20260909",
          "sequence": 3,
          "item_id": "TASK-0044",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T20:25:05Z",
          "conditions": [
            "Forward-only lifecycle reconciliation from merged implementation and current exact-head evidence."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/58",
              "item_id": "TASK-0044",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0044-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/2501231e1852f888f65e7d3a9f6c355c18f23e78",
              "item_id": "TASK-0044",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0044-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf",
              "item_id": "TASK-0044",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0044-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4230",
              "item_id": "TASK-0044",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0044-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4231",
              "item_id": "TASK-0044",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0044-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0044.yml",
              "item_id": "TASK-0044",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0044-TO-BE-RELEASED-CORRECTION-20260909"
            }
          ],
          "previous_hash": "ac96955267bfb533990b4d83d53385f0d26ac6327d0173b7802694ff107a6c9e",
          "hash": "d9f1753f667a4d93e43ba82cccd23adf7582187c9c1f45c5f77f8255f0ca6a38"
        },
        {
          "event_id": "FLOW-TASK-0044-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0044",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0044",
              "state": "Done",
              "event_id": "FLOW-TASK-0044-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0044",
              "state": "Done",
              "event_id": "FLOW-TASK-0044-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0044",
              "state": "Done",
              "event_id": "FLOW-TASK-0044-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0044.yml",
              "item_id": "TASK-0044",
              "state": "Done",
              "event_id": "FLOW-TASK-0044-DONE-20260915"
            }
          ],
          "previous_hash": "d9f1753f667a4d93e43ba82cccd23adf7582187c9c1f45c5f77f8255f0ca6a38",
          "hash": "d844adad828a795ce95a7d86eae22d5b72fae85e3e31c7fd18ac10e2bb4727e3"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0045",
      "display_id": "AEROSIM-TS-45",
      "title": "Bind CI success to the immutable candidate head",
      "feature_id": "AEROSIM-FT-51",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-51/aerosim-ts-45/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0045.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Gitea Actions — exact-head result gate",
      "outcome": "The workflow records and reports the exact candidate commit and cannot publish a successful aggregate result until every required gate for that commit passes.",
      "scope": "Capture github.event.pull_request.head.sha or github.sha once as CANDIDATE_SHA, checkout that detached commit, verify HEAD before every gate and aggregation, and emit a machine-readable ci-result.json tied to that exact SHA. Primary files: .gitea/workflows/application-validation.yaml, scripts/verify-ci-head.mjs, tests/ci/exact-head-gate.test.mjs.",
      "implementation_artifacts": [
        ".gitea/workflows/application-validation.yaml",
        "scripts/verify-ci-head.mjs",
        "tests/ci/exact-head-gate.test.mjs"
      ],
      "inputs": [
        "Gitea event payload and checked-out git HEAD",
        "Required job conclusions for lint, typecheck, test, and build"
      ],
      "outputs": [
        "ci-result.json {candidateSha,observedHead,gates,aggregate:\"success\"}",
        "Successful exact-head status only when candidateSha equals observedHead and all four gates passed"
      ],
      "failure_boundaries": [
        "Fail on missing/malformed candidate SHA, branch-name checkout, HEAD mismatch, absent conclusion, or any non-success conclusion.",
        "A newer branch tip cannot replace the event SHA or inherit results from an earlier workflow run."
      ],
      "exclusions": [
        "Merge authorization, release tagging, artifact publication, and GitOps selection are not granted by this CI result."
      ],
      "verification_steps": [
        "node --test tests/ci/exact-head-gate.test.mjs",
        "Evaluate fixtures for matching SHA, moved branch, stale result SHA, skipped gate, and missing gate; only matching all-pass may produce aggregate success."
      ],
      "dependencies": [
        "TASK-0044"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0058",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #67 reviewed head 7ac9a7c65df6e1999b0fe1e9d5db3b4c6611b7fc passed exact-head required validation task 2171 and merged as db785b57a2c9928c893f412b5de27b21ec042652. The merged workflow binds each gate and aggregate result to one immutable candidate SHA. Recovery follow-up PR #69 reviewed head 15926e672528b730c8c83f54fce8c56653d8bfba added explicit manual dispatch, passed exact-head validation, and merged as 5a7caf344ccce1d1cf18182487bc6577139ed67b. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0045",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0045-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0045",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0045",
            "state": "Done",
            "event_id": "FLOW-TASK-0045-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0045",
            "state": "Done",
            "event_id": "FLOW-TASK-0045-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0045",
            "state": "Done",
            "event_id": "FLOW-TASK-0045-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0045.yml",
            "item_id": "TASK-0045",
            "state": "Done",
            "event_id": "FLOW-TASK-0045-DONE-20260915"
          }
        ],
        "previous_hash": "e54a5a26abf60b25abb5fe5801ffe92a1ae781b6b003cd1ea69f10e8b518a79d",
        "hash": "096f8e2105d4fddc73b401340208720ac75c77d92c9c1149409e98c679b3ce04"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0045-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0045",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0045",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0045-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0045.yml",
              "item_id": "TASK-0045",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0045-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "9dca6846a2f8254f1e335473c861fd621c7f5cca3ee3d0dbd8ef7ec2a5eb7edb"
        },
        {
          "event_id": "FLOW-TASK-0045-IN-PROGRESS-20260905",
          "sequence": 2,
          "item_id": "TASK-0045",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-05T19:34:13Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0045-exact-head-ci",
              "item_id": "TASK-0045",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0045-IN-PROGRESS-20260905"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7ac9a7c65df6e1999b0fe1e9d5db3b4c6611b7fc",
              "item_id": "TASK-0045",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0045-IN-PROGRESS-20260905"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0045.yml",
              "item_id": "TASK-0045",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0045-IN-PROGRESS-20260905"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0045-exact-head-ci",
          "claim_base_sha": "7de1a447a7aa95c20ec69a66c9713e8e4474b895",
          "previous_hash": "9dca6846a2f8254f1e335473c861fd621c7f5cca3ee3d0dbd8ef7ec2a5eb7edb",
          "hash": "6dc4c49666148fa7a36039481e99cf7ca2eeaa65cd4e7e6393d838bb8a6ace47"
        },
        {
          "event_id": "FLOW-TASK-0045-TO-BE-RELEASED-20260905",
          "sequence": 3,
          "item_id": "TASK-0045",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-05T21:29:10Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/67",
              "item_id": "TASK-0045",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0045-TO-BE-RELEASED-20260905"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/db785b57a2c9928c893f412b5de27b21ec042652",
              "item_id": "TASK-0045",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0045-TO-BE-RELEASED-20260905"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0045.yml",
              "item_id": "TASK-0045",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0045-TO-BE-RELEASED-20260905"
            }
          ],
          "previous_hash": "6dc4c49666148fa7a36039481e99cf7ca2eeaa65cd4e7e6393d838bb8a6ace47",
          "hash": "e54a5a26abf60b25abb5fe5801ffe92a1ae781b6b003cd1ea69f10e8b518a79d"
        },
        {
          "event_id": "FLOW-TASK-0045-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0045",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0045",
              "state": "Done",
              "event_id": "FLOW-TASK-0045-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0045",
              "state": "Done",
              "event_id": "FLOW-TASK-0045-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0045",
              "state": "Done",
              "event_id": "FLOW-TASK-0045-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0045.yml",
              "item_id": "TASK-0045",
              "state": "Done",
              "event_id": "FLOW-TASK-0045-DONE-20260915"
            }
          ],
          "previous_hash": "e54a5a26abf60b25abb5fe5801ffe92a1ae781b6b003cd1ea69f10e8b518a79d",
          "hash": "096f8e2105d4fddc73b401340208720ac75c77d92c9c1149409e98c679b3ce04"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0046",
      "display_id": "AEROSIM-TS-46",
      "title": "Test validation parity and fail-closed aggregation",
      "feature_id": "AEROSIM-FT-51",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-51/aerosim-ts-46/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0046.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application and API Service build boundaries — Application monorepo — CI contract tests",
      "outcome": "Automated workflow-contract tests prove local and CI gate parity, immutable-SHA binding, and failure of the aggregate result when any required gate is removed, skipped, or failed.",
      "scope": "Parse package.json and the Gitea workflow to compare exact commands and required gates, mutate each gate and SHA binding in fixtures, and prove the validator rejects removal, rename, skip, continue-on-error, permissive aggregation, and branch checkout. Primary files: tests/ci/validation-parity.test.mjs, tests/ci/fixtures/validation-workflows, scripts/validate-ci-contract.mjs.",
      "implementation_artifacts": [
        "tests/ci/validation-parity.test.mjs",
        "tests/ci/fixtures/validation-workflows",
        "scripts/validate-ci-contract.mjs"
      ],
      "inputs": [
        "Root script map and .gitea/workflows/application-validation.yaml AST",
        "Workflow mutation fixtures for lint, typecheck, test, build, checkout ref, if conditions, needs, and continue-on-error"
      ],
      "outputs": [
        "CI contract report with command-parity, required-job, aggregation, and exact-head assertions",
        "Distinct validation error code for every deliberate workflow mutation"
      ],
      "failure_boundaries": [
        "Fail closed when YAML expressions cannot be resolved or workflow structure is unknown.",
        "Fail if local and CI commands differ by flags, package selection, or gate order where order affects generated artifacts."
      ],
      "exclusions": [
        "Tests do not execute Gitea infrastructure, approve pull requests, or assess test-suite domain completeness."
      ],
      "verification_steps": [
        "node --test tests/ci/validation-parity.test.mjs",
        "Run every mutation fixture and assert zero false passes; run the unmodified workflow fixture and assert one valid pass."
      ],
      "dependencies": [
        "TASK-0045"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0058",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #71 reviewed head b30fcc4415801b7d7e0c640813709b1728e31c15, exact-head required validation task 2320 succeeded, merged as 79cf7ff67a72b65a89854382e147ef9bda664cbf; current integrated application head 79cf7ff67a72b65a89854382e147ef9bda664cbf passed required validation task 2322, publish task 2318, and validate task 2319. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0046",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0046-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0046",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0046",
            "state": "Done",
            "event_id": "FLOW-TASK-0046-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0046",
            "state": "Done",
            "event_id": "FLOW-TASK-0046-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0046",
            "state": "Done",
            "event_id": "FLOW-TASK-0046-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0046.yml",
            "item_id": "TASK-0046",
            "state": "Done",
            "event_id": "FLOW-TASK-0046-DONE-20260915"
          }
        ],
        "previous_hash": "47f54a35e28d4f767912353573c73683e05b63d9ebe2eb588b11ac9a9b06af44",
        "hash": "66a88f9c56afd791a53a32ec0af2718efc04a9cbda4f7c46a8123a361941bad7"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0046-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0046",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0046",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0046-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0046.yml",
              "item_id": "TASK-0046",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0046-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "93dbbf08346f7400216caeb812b83f4e7e08e32e72414df77b7c049f873de83e"
        },
        {
          "event_id": "FLOW-TASK-0046-IN-PROGRESS-20260905-2",
          "sequence": 2,
          "item_id": "TASK-0046",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-05T19:33:18Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0046-validation-parity",
              "item_id": "TASK-0046",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0046-IN-PROGRESS-20260905-2"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7de1a447a7aa95c20ec69a66c9713e8e4474b895",
              "item_id": "TASK-0046",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0046-IN-PROGRESS-20260905-2"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0046.yml",
              "item_id": "TASK-0046",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0046-IN-PROGRESS-20260905-2"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0046-validation-parity",
          "claim_base_sha": "7de1a447a7aa95c20ec69a66c9713e8e4474b895",
          "previous_hash": "93dbbf08346f7400216caeb812b83f4e7e08e32e72414df77b7c049f873de83e",
          "hash": "5c6b29ff74c1941e2f4583458caba18f70246c7fb0a5bca78b3bc88ee2a831f9"
        },
        {
          "event_id": "FLOW-TASK-0046-TO-BE-RELEASED-20260906",
          "sequence": 3,
          "item_id": "TASK-0046",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T08:32:55Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/71",
              "item_id": "TASK-0046",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0046-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/79cf7ff67a72b65a89854382e147ef9bda664cbf",
              "item_id": "TASK-0046",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0046-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0046.yml",
              "item_id": "TASK-0046",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0046-TO-BE-RELEASED-20260906"
            }
          ],
          "previous_hash": "5c6b29ff74c1941e2f4583458caba18f70246c7fb0a5bca78b3bc88ee2a831f9",
          "hash": "47f54a35e28d4f767912353573c73683e05b63d9ebe2eb588b11ac9a9b06af44"
        },
        {
          "event_id": "FLOW-TASK-0046-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0046",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0046",
              "state": "Done",
              "event_id": "FLOW-TASK-0046-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0046",
              "state": "Done",
              "event_id": "FLOW-TASK-0046-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0046",
              "state": "Done",
              "event_id": "FLOW-TASK-0046-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0046.yml",
              "item_id": "TASK-0046",
              "state": "Done",
              "event_id": "FLOW-TASK-0046-DONE-20260915"
            }
          ],
          "previous_hash": "47f54a35e28d4f767912353573c73683e05b63d9ebe2eb588b11ac9a9b06af44",
          "hash": "66a88f9c56afd791a53a32ec0af2718efc04a9cbda4f7c46a8123a361941bad7"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0047",
      "display_id": "AEROSIM-TS-47",
      "title": "Build versioned Nebula and Singularity container images",
      "feature_id": "AEROSIM-FT-52",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-52/aerosim-ts-47/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0047.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application and API Service — container images",
      "outcome": "Nebula and Singularity each produce reproducible runtime images labeled and tagged with the immutable application source revision.",
      "scope": "Build separate multi-stage Nebula and Singularity images from a frozen lockfile, copy only runtime artifacts, run as numeric non-root users, add OCI source/revision/version labels from SOURCE_REVISION, and smoke-test Web HTTP plus API liveness. Primary files: applications/web/Dockerfile, applications/api/Dockerfile, .dockerignore, tests/container/image-contract.test.mjs.",
      "implementation_artifacts": [
        "applications/web/Dockerfile",
        "applications/api/Dockerfile",
        ".dockerignore",
        "tests/container/image-contract.test.mjs"
      ],
      "inputs": [
        "Immutable application source at SOURCE_REVISION and pnpm-lock.yaml",
        "Build arguments SOURCE_URL, SOURCE_REVISION, and VERSION"
      ],
      "outputs": [
        "Local aerosim-nebula:<full-sha> and aerosim-singularity:<full-sha> OCI images",
        "Image labels org.opencontainers.image.source, revision, and version matching build arguments"
      ],
      "failure_boundaries": [
        "Fail build if SOURCE_REVISION is absent/not 40 hex, frozen install changes the lockfile, or production build fails.",
        "Fail contract test if runtime user is root, source files/dev dependencies are copied unnecessarily, labels mismatch, or health endpoint does not respond."
      ],
      "exclusions": [
        "Harbor push, chart rendering, vulnerability exception policy, and Kubernetes deployment are handled by later delivery tasks."
      ],
      "verification_steps": [
        "docker build --build-arg SOURCE_REVISION=$(git rev-parse HEAD) -f applications/web/Dockerfile -t aerosim-nebula:$(git rev-parse HEAD) . && docker build --build-arg SOURCE_REVISION=$(git rev-parse HEAD) -f applications/api/Dockerfile -t aerosim-singularity:$(git rev-parse HEAD) .",
        "node --test tests/container/image-contract.test.mjs; inspect labels/users and smoke-test both containers."
      ],
      "dependencies": [
        "TASK-0046"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0059",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #80 reviewed head 909f3749f76c8c0b6c28674ccb132496fc7a02ab, merged as 1585d83fa52684f66c5d16ff3421aece01c6ffe2; publication transport-repair PR #82 reviewed head c3cecd341419f2cd1f06e7731b74b12a833cd652, merged as fa7fa9a28e402076779a100084450d0ef9366b40; final whole-wave application head 7f26eca79eadef3171564fc60035e9866c2c848e: publication run 3914 succeeded and integration run 3915 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0047",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0047-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0047",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0047",
            "state": "Done",
            "event_id": "FLOW-TASK-0047-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0047",
            "state": "Done",
            "event_id": "FLOW-TASK-0047-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0047",
            "state": "Done",
            "event_id": "FLOW-TASK-0047-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0047.yml",
            "item_id": "TASK-0047",
            "state": "Done",
            "event_id": "FLOW-TASK-0047-DONE-20260915"
          }
        ],
        "previous_hash": "b0de4bc2db695e0e1e5ef37d681f817516d1ed83602471ef72d004539a5adc8c",
        "hash": "5c6773869567b6c2918d303e782b1fdfbfa99eb259a91e77a9bd81dfe1db9f2f"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0047-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0047",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0047",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0047-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0047.yml",
              "item_id": "TASK-0047",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0047-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "69c7976c3aa8c09de092efdf701790dea602133767c9fcf51cede6eeec2ff0ef"
        },
        {
          "event_id": "FLOW-TASK-0047-IN-PROGRESS-20260906",
          "sequence": 2,
          "item_id": "TASK-0047",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T08:33:27Z",
          "conditions": [
            "Whole Wave 14 claim: TASK-0002, TASK-0007, TASK-0047, TASK-0060, and TASK-0076 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0047-container-images",
              "item_id": "TASK-0047",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0047-IN-PROGRESS-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/79cf7ff67a72b65a89854382e147ef9bda664cbf",
              "item_id": "TASK-0047",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0047-IN-PROGRESS-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0047.yml",
              "item_id": "TASK-0047",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0047-IN-PROGRESS-20260906"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0047-container-images",
          "claim_base_sha": "79cf7ff67a72b65a89854382e147ef9bda664cbf",
          "previous_hash": "69c7976c3aa8c09de092efdf701790dea602133767c9fcf51cede6eeec2ff0ef",
          "hash": "0866167c9ebc3faeb7904c63754c9204745c2184185b28e6769179b8ee7676e3"
        },
        {
          "event_id": "FLOW-TASK-0047-TO-BE-RELEASED-20260906",
          "sequence": 3,
          "item_id": "TASK-0047",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T17:14:29Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/80",
              "item_id": "TASK-0047",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0047-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/1585d83fa52684f66c5d16ff3421aece01c6ffe2",
              "item_id": "TASK-0047",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0047-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/82",
              "item_id": "TASK-0047",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0047-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/fa7fa9a28e402076779a100084450d0ef9366b40",
              "item_id": "TASK-0047",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0047-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7f26eca79eadef3171564fc60035e9866c2c848e",
              "item_id": "TASK-0047",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0047-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3914",
              "item_id": "TASK-0047",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0047-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3915",
              "item_id": "TASK-0047",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0047-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0047.yml",
              "item_id": "TASK-0047",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0047-TO-BE-RELEASED-20260906"
            }
          ],
          "previous_hash": "0866167c9ebc3faeb7904c63754c9204745c2184185b28e6769179b8ee7676e3",
          "hash": "b0de4bc2db695e0e1e5ef37d681f817516d1ed83602471ef72d004539a5adc8c"
        },
        {
          "event_id": "FLOW-TASK-0047-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0047",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0047",
              "state": "Done",
              "event_id": "FLOW-TASK-0047-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0047",
              "state": "Done",
              "event_id": "FLOW-TASK-0047-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0047",
              "state": "Done",
              "event_id": "FLOW-TASK-0047-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0047.yml",
              "item_id": "TASK-0047",
              "state": "Done",
              "event_id": "FLOW-TASK-0047-DONE-20260915"
            }
          ],
          "previous_hash": "b0de4bc2db695e0e1e5ef37d681f817516d1ed83602471ef72d004539a5adc8c",
          "hash": "5c6773869567b6c2918d303e782b1fdfbfa99eb259a91e77a9bd81dfe1db9f2f"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0048",
      "display_id": "AEROSIM-TS-48",
      "title": "Package Nebula and Singularity Helm charts",
      "feature_id": "AEROSIM-FT-52",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-52/aerosim-ts-48/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0048.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Delivery packaging — Helm charts",
      "outcome": "Lintable Helm charts render Web and API workloads with explicit immutable image selection, probes, ingress paths, configuration, and secret references.",
      "scope": "Package one AeroSim chart with Nebula and Singularity Deployments/Services, immutable image repository and digest values, Web and API probes, root,/api,/socket.io ingress routing, non-secret ConfigMap values, and existing Secret references validated by values.schema.json. Primary files: charts/aerosim/Chart.yaml, charts/aerosim/values.yaml, charts/aerosim/values.schema.json, charts/aerosim/templates/web-deployment.yaml, charts/aerosim/templates/api-deployment.yaml, charts/aerosim/templates/services.yaml, charts/aerosim/templates/ingress.yaml, charts/aerosim/templates/secret-references.yaml, tests/helm/aerosim-chart.test.mjs.",
      "implementation_artifacts": [
        "charts/aerosim/Chart.yaml",
        "charts/aerosim/values.yaml",
        "charts/aerosim/values.schema.json",
        "charts/aerosim/templates/web-deployment.yaml",
        "charts/aerosim/templates/api-deployment.yaml",
        "charts/aerosim/templates/services.yaml",
        "charts/aerosim/templates/ingress.yaml",
        "charts/aerosim/templates/secret-references.yaml",
        "tests/helm/aerosim-chart.test.mjs"
      ],
      "inputs": [
        "Helm values containing web.image.digest and api.image.digest as sha256 digests",
        "Ingress host, Keycloak public settings, API URLs, and names of pre-existing Kubernetes Secrets"
      ],
      "outputs": [
        "Rendered Kubernetes manifests for Web/API Deployments, Services, Ingress, ConfigMaps, and Secret references",
        "Linted chart archive whose workloads select images by digest"
      ],
      "failure_boundaries": [
        "helm lint/template fails for mutable tags, absent digest, plaintext credential values, missing secret names, or invalid probe paths/ports.",
        "Rendered manifests fail policy tests if containers run privileged/root or omit required resource requests and limits."
      ],
      "exclusions": [
        "Secret creation, cluster issuer installation, database provisioning, autoscaling, and service-mesh policy are not included in this chart."
      ],
      "verification_steps": [
        "helm lint charts/aerosim && helm template aerosim charts/aerosim --values tests/helm/values.valid.yaml > /tmp/aerosim-rendered.yaml",
        "node --test tests/helm/aerosim-chart.test.mjs; run mutable-tag, plaintext-secret, and missing-digest fixtures."
      ],
      "dependencies": [
        "TASK-0047"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0059",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #90 reviewed head 5c19b9a849f74cef0e14ca72d16b89cee1d3b4e4 passed exact-head application validation run 3936, merged as 2aa78654d59b116ed240edec1337c1247597f210, and integration runs 3940, 3941, 3942, and 3943 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0048",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0048-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0048",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0048",
            "state": "Done",
            "event_id": "FLOW-TASK-0048-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0048",
            "state": "Done",
            "event_id": "FLOW-TASK-0048-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0048",
            "state": "Done",
            "event_id": "FLOW-TASK-0048-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0048.yml",
            "item_id": "TASK-0048",
            "state": "Done",
            "event_id": "FLOW-TASK-0048-DONE-20260915"
          }
        ],
        "previous_hash": "0ade35b4030f569cc72b5ccb85feca2bf87e7ff8f556c56450eb88236f3ddd2e",
        "hash": "82b8fd8d0dbfd834bea04fdf445a5315e1fcfe3876718df8795d5f5b996aa534"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0048-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0048",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0048",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0048-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0048.yml",
              "item_id": "TASK-0048",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0048-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "aa7dc7da2caf7113dca9c7465eb86f5c0b8d843c9d78760e8cfddf505924e2d0"
        },
        {
          "event_id": "FLOW-TASK-0048-IN-PROGRESS-20260906",
          "sequence": 2,
          "item_id": "TASK-0048",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T17:29:58Z",
          "conditions": [
            "Whole Wave 15 claim: TASK-0048, TASK-0061, TASK-0065, TASK-0077, TASK-0078, TASK-0083, and TASK-0111 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0048-package-nebula-singularity-helm-charts",
              "item_id": "TASK-0048",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0048-IN-PROGRESS-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7f26eca79eadef3171564fc60035e9866c2c848e",
              "item_id": "TASK-0048",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0048-IN-PROGRESS-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0048.yml",
              "item_id": "TASK-0048",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0048-IN-PROGRESS-20260906"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0048-package-nebula-singularity-helm-charts",
          "claim_base_sha": "7f26eca79eadef3171564fc60035e9866c2c848e",
          "previous_hash": "aa7dc7da2caf7113dca9c7465eb86f5c0b8d843c9d78760e8cfddf505924e2d0",
          "hash": "fb439078d338b8260e7fe9c5cd7b6701f5bf5cf52a5d784ecc950d049901f01b"
        },
        {
          "event_id": "FLOW-TASK-0048-TO-BE-RELEASED-20260907",
          "sequence": 3,
          "item_id": "TASK-0048",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T07:39:15Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/90",
              "item_id": "TASK-0048",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0048-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5c19b9a849f74cef0e14ca72d16b89cee1d3b4e4",
              "item_id": "TASK-0048",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0048-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/2aa78654d59b116ed240edec1337c1247597f210",
              "item_id": "TASK-0048",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0048-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3936",
              "item_id": "TASK-0048",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0048-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3940",
              "item_id": "TASK-0048",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0048-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3941",
              "item_id": "TASK-0048",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0048-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3942",
              "item_id": "TASK-0048",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0048-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3943",
              "item_id": "TASK-0048",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0048-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0048.yml",
              "item_id": "TASK-0048",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0048-TO-BE-RELEASED-20260907"
            }
          ],
          "previous_hash": "fb439078d338b8260e7fe9c5cd7b6701f5bf5cf52a5d784ecc950d049901f01b",
          "hash": "0ade35b4030f569cc72b5ccb85feca2bf87e7ff8f556c56450eb88236f3ddd2e"
        },
        {
          "event_id": "FLOW-TASK-0048-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0048",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0048",
              "state": "Done",
              "event_id": "FLOW-TASK-0048-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0048",
              "state": "Done",
              "event_id": "FLOW-TASK-0048-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0048",
              "state": "Done",
              "event_id": "FLOW-TASK-0048-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0048.yml",
              "item_id": "TASK-0048",
              "state": "Done",
              "event_id": "FLOW-TASK-0048-DONE-20260915"
            }
          ],
          "previous_hash": "0ade35b4030f569cc72b5ccb85feca2bf87e7ff8f556c56450eb88236f3ddd2e",
          "hash": "82b8fd8d0dbfd834bea04fdf445a5315e1fcfe3876718df8795d5f5b996aa534"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0049",
      "display_id": "AEROSIM-TS-49",
      "title": "Publish immutable images to Harbor",
      "feature_id": "AEROSIM-FT-52",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-52/aerosim-ts-49/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0049.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Gitea Actions — Harbor publication workflow",
      "outcome": "Gitea Actions publishes both validated source-revision images to Harbor only after required engineering gates pass.",
      "scope": "After exact-head validation succeeds on the default branch, authenticate to Harbor from Gitea secrets, build and push both images under full source-SHA tags, resolve their registry digests, and publish image-set.json correlating source SHA to both digests. Primary files: .gitea/workflows/publish-images.yaml, scripts/publish-images.mjs, tests/ci/publish-images-workflow.test.mjs.",
      "implementation_artifacts": [
        ".gitea/workflows/publish-images.yaml",
        "scripts/publish-images.mjs",
        "tests/ci/publish-images-workflow.test.mjs"
      ],
      "inputs": [
        "Successful FT51 exact-head ci-result.json for the same candidate SHA",
        "HARBOR_REGISTRY, HARBOR_PROJECT, HARBOR_USERNAME, and HARBOR_PASSWORD secret references"
      ],
      "outputs": [
        "Harbor repositories aerosim/nebula:<full-sha> and aerosim/singularity:<full-sha>",
        "image-set.json {sourceRevision,nebulaDigest,singularityDigest,publishedAt}"
      ],
      "failure_boundaries": [
        "Do not log in or push when validation is missing, failed, or references another SHA.",
        "Fail the workflow if credentials are absent, either push fails, a returned digest is malformed, or only one image is published; do not emit a complete image-set."
      ],
      "exclusions": [
        "The workflow does not use kubectl, Argo CD credentials, mutable latest tags, or direct commits to an environment branch."
      ],
      "verification_steps": [
        "node --test tests/ci/publish-images-workflow.test.mjs",
        "Run mocked Harbor cases for both success, first-push failure, second-push failure, digest mismatch, absent credential, and stale ci-result SHA."
      ],
      "dependencies": [
        "TASK-0048"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0059",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #102 implemented immutable image publication; forward fixes #107 and #108 repaired the integration database endpoint and publication browser runtime. Current integrated application test head 5f57f5b7059c47d7d2632748eeb687f3e9376a72 contains all three merge chains. Exact-head Actions runs 4080 and 4081 passed tasks 3101, 3102, 3103, and 3104: required validation, full validation, two-image build, Harbor publication, registry digest readback, and image-set upload. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0049",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0049-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0049",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0049",
            "state": "Done",
            "event_id": "FLOW-TASK-0049-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0049",
            "state": "Done",
            "event_id": "FLOW-TASK-0049-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0049",
            "state": "Done",
            "event_id": "FLOW-TASK-0049-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0049.yml",
            "item_id": "TASK-0049",
            "state": "Done",
            "event_id": "FLOW-TASK-0049-DONE-20260915"
          }
        ],
        "previous_hash": "24245fa4fed36e81da783c5fe0b8a8104e19f4b79dcb09d6a27f0b191443a525",
        "hash": "8b1ea1dd81bb57ee662d07ba02609d815128449a3708f840157002e338693677"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0049-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0049",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0049",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0049-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0049.yml",
              "item_id": "TASK-0049",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0049-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "ae3da269c9ec10d60f2fd7274a780c12a6da1d0f328f512e5185d40f3d62a319"
        },
        {
          "event_id": "FLOW-TASK-0049-IN-PROGRESS-20260907",
          "sequence": 2,
          "item_id": "TASK-0049",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T08:12:53Z",
          "conditions": [
            "Whole Wave 16 claim: TASK-0049, TASK-0062, TASK-0066, TASK-0079, TASK-0084, and TASK-0112 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0049-publish-immutable-images-harbor",
              "item_id": "TASK-0049",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0049-IN-PROGRESS-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/d624ce2960b43a4edd7babf7b668c117625e8559",
              "item_id": "TASK-0049",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0049-IN-PROGRESS-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0049.yml",
              "item_id": "TASK-0049",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0049-IN-PROGRESS-20260907"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0049-publish-immutable-images-harbor",
          "claim_base_sha": "d624ce2960b43a4edd7babf7b668c117625e8559",
          "previous_hash": "ae3da269c9ec10d60f2fd7274a780c12a6da1d0f328f512e5185d40f3d62a319",
          "hash": "8e50ac3ed6ab884dafbfad9fa6add51abf0453ac3d254d7f500ddf51ab01f836"
        },
        {
          "event_id": "FLOW-TASK-0049-TO-BE-RELEASED-20260908",
          "sequence": 3,
          "item_id": "TASK-0049",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-08T09:06:46Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/102",
              "item_id": "TASK-0049",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0049-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/107",
              "item_id": "TASK-0049",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0049-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/108",
              "item_id": "TASK-0049",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0049-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5f57f5b7059c47d7d2632748eeb687f3e9376a72",
              "item_id": "TASK-0049",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0049-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4080",
              "item_id": "TASK-0049",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0049-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4081",
              "item_id": "TASK-0049",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0049-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0049.yml",
              "item_id": "TASK-0049",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0049-TO-BE-RELEASED-20260908"
            }
          ],
          "previous_hash": "8e50ac3ed6ab884dafbfad9fa6add51abf0453ac3d254d7f500ddf51ab01f836",
          "hash": "24245fa4fed36e81da783c5fe0b8a8104e19f4b79dcb09d6a27f0b191443a525"
        },
        {
          "event_id": "FLOW-TASK-0049-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0049",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0049",
              "state": "Done",
              "event_id": "FLOW-TASK-0049-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0049",
              "state": "Done",
              "event_id": "FLOW-TASK-0049-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0049",
              "state": "Done",
              "event_id": "FLOW-TASK-0049-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0049.yml",
              "item_id": "TASK-0049",
              "state": "Done",
              "event_id": "FLOW-TASK-0049-DONE-20260915"
            }
          ],
          "previous_hash": "24245fa4fed36e81da783c5fe0b8a8104e19f4b79dcb09d6a27f0b191443a525",
          "hash": "8b1ea1dd81bb57ee662d07ba02609d815128449a3708f840157002e338693677"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0050",
      "display_id": "AEROSIM-TS-50",
      "title": "Select immutable AeroSim artifacts through GitOps",
      "feature_id": "AEROSIM-FT-52",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-52/aerosim-ts-50/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0050.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/gondor-v1-aerosim",
      "component": "Gondor GitOps — AeroSim Argo CD application configuration",
      "outcome": "The Gondor GitOps repository declaratively selects reviewed Nebula and Singularity image revisions and linted chart configuration for the AeroSim environment.",
      "scope": "In gondor-v1-aerosim, declare the Argo CD Application source and AeroSim environment values selecting reviewed Nebula and Singularity Harbor digests, chart version, ingress/config values, and existing secret names; enforce immutable selection with policy tests. Primary files: apps/aerosim/application.yaml, apps/aerosim/values-release.yaml, policies/aerosim-artifacts.rego, tests/gitops/aerosim-artifact-selection.test.mjs.",
      "implementation_artifacts": [
        "apps/aerosim/application.yaml",
        "apps/aerosim/values-release.yaml",
        "policies/aerosim-artifacts.rego",
        "tests/gitops/aerosim-artifact-selection.test.mjs"
      ],
      "inputs": [
        "Reviewed image-set.json containing sourceRevision and two Harbor digests",
        "AeroSim chart version and environment-specific non-secret values"
      ],
      "outputs": [
        "Argo CD Application aerosim targeting the governed namespace and Git revision",
        "values-release.yaml selecting the two sha256 image digests and traceable sourceRevision"
      ],
      "failure_boundaries": [
        "Reject mutable tags, non-Harbor repositories, malformed/missing digest, sourceRevision mismatch, plaintext Secret data, and Argo source revisions that are branches.",
        "Reject an image-set where Nebula and Singularity were produced from different source revisions."
      ],
      "exclusions": [
        "The GitOps record does not build images, push Harbor artifacts, execute kubectl, or hold raw credentials."
      ],
      "verification_steps": [
        "node --test tests/gitops/aerosim-artifact-selection.test.mjs",
        "conftest test apps/aerosim --policy policies; mutate each digest/repository/revision/secret rule and assert denial."
      ],
      "dependencies": [
        "TASK-0049"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0059",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: GitOps PR #7 selects application revision 5490c8fb8becd2a6cafef89f9f661baddb51b0f2, chart version 1.0.0, and independently read-back immutable Nebula and Singularity Harbor digests. Main-session exact-head review passed for the application and GitOps changes. Application PR #118 passed every required exact-head job, merged, and its integration revision passed validation, image build, immutable publication, and registry readback in runs 4119 and 4120. GitOps run 4122 passed the exact candidate and run 4123 passed the merged integration revision. Local Helm 4.2.4 lint/render and Conftest validation passed against the exact selected chart revision; policy mutation tests reject mutable tags, untrusted repositories, malformed or mismatched revisions and digests, plaintext Secret data, and in-cluster TLS behind Osgiliath. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0050",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0050-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0050",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0050",
            "state": "Done",
            "event_id": "FLOW-TASK-0050-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0050",
            "state": "Done",
            "event_id": "FLOW-TASK-0050-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0050",
            "state": "Done",
            "event_id": "FLOW-TASK-0050-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0050.yml",
            "item_id": "TASK-0050",
            "state": "Done",
            "event_id": "FLOW-TASK-0050-DONE-20260915"
          }
        ],
        "previous_hash": "c92cf2a39ec845686a28be8c6d44df886d8ff431f792e5ec130507bbbfb8b40f",
        "hash": "15081b5f131a47817a431e37a19dff08db932fd4aa30a7af1329c5c100beb165"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0050-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0050",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0050",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0050-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0050.yml",
              "item_id": "TASK-0050",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0050-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "0aec625a0a2984cc047a6bda0e72970b0e5500115a5754189db9ce36c48ae016"
        },
        {
          "event_id": "FLOW-TASK-0050-IN-PROGRESS-20260908",
          "sequence": 2,
          "item_id": "TASK-0050",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-08T10:58:19Z",
          "conditions": [
            "Whole Wave 17 claim: TASK-0050, TASK-0063, TASK-0067, TASK-0085, TASK-0098, and TASK-0113 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0050-select-gitops-artifacts-1",
              "item_id": "TASK-0050",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0050-IN-PROGRESS-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/112",
              "item_id": "TASK-0050",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0050-IN-PROGRESS-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5f57f5b7059c47d7d2632748eeb687f3e9376a72",
              "item_id": "TASK-0050",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0050-IN-PROGRESS-20260908"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0050.yml",
              "item_id": "TASK-0050",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0050-IN-PROGRESS-20260908"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0050-select-gitops-artifacts-1",
          "claim_base_sha": "5f57f5b7059c47d7d2632748eeb687f3e9376a72",
          "previous_hash": "0aec625a0a2984cc047a6bda0e72970b0e5500115a5754189db9ce36c48ae016",
          "hash": "37dc8119f06a83c5b66c1ddcf77bd64df762a7bb63157f614c2889acbfb056e9"
        },
        {
          "event_id": "FLOW-TASK-0050-TO-BE-RELEASED-20260908",
          "sequence": 3,
          "item_id": "TASK-0050",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-08T19:44:14Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/118",
              "item_id": "TASK-0050",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0050-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4119",
              "item_id": "TASK-0050",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0050-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4120",
              "item_id": "TASK-0050",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0050-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/7",
              "item_id": "TASK-0050",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0050-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/actions/runs/4122",
              "item_id": "TASK-0050",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0050-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/actions/runs/4123",
              "item_id": "TASK-0050",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0050-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim-documentation/pulls/170",
              "item_id": "TASK-0050",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0050-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0050.yml",
              "item_id": "TASK-0050",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0050-TO-BE-RELEASED-20260908"
            }
          ],
          "previous_hash": "37dc8119f06a83c5b66c1ddcf77bd64df762a7bb63157f614c2889acbfb056e9",
          "hash": "c92cf2a39ec845686a28be8c6d44df886d8ff431f792e5ec130507bbbfb8b40f"
        },
        {
          "event_id": "FLOW-TASK-0050-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0050",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0050",
              "state": "Done",
              "event_id": "FLOW-TASK-0050-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0050",
              "state": "Done",
              "event_id": "FLOW-TASK-0050-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0050",
              "state": "Done",
              "event_id": "FLOW-TASK-0050-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0050.yml",
              "item_id": "TASK-0050",
              "state": "Done",
              "event_id": "FLOW-TASK-0050-DONE-20260915"
            }
          ],
          "previous_hash": "c92cf2a39ec845686a28be8c6d44df886d8ff431f792e5ec130507bbbfb8b40f",
          "hash": "15081b5f131a47817a431e37a19dff08db932fd4aa30a7af1329c5c100beb165"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0051",
      "display_id": "AEROSIM-TS-51",
      "title": "Enforce the CI-to-GitOps deployment boundary",
      "feature_id": "AEROSIM-FT-52",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-52/aerosim-ts-51/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0051.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Gitea Actions — GitOps boundary policy checks",
      "outcome": "Automated checks prove CI can publish artifacts but cannot directly mutate Kubernetes or Argo CD runtime state.",
      "scope": "Scan application Gitea workflows, scripts, actions, secrets, and container images and reject direct Kubernetes/Argo mutation capabilities while allowing OCI build/push and creation of a reviewable image-set artifact. Primary files: tests/ci/gitops-boundary.test.mjs, tests/ci/prohibited-deployment-capabilities.json, policies/ci-capabilities.rego.",
      "implementation_artifacts": [
        "tests/ci/gitops-boundary.test.mjs",
        "tests/ci/prohibited-deployment-capabilities.json",
        "policies/ci-capabilities.rego"
      ],
      "inputs": [
        "All .gitea/workflows files plus referenced scripts/actions",
        "Prohibited capabilities kubectl, helm upgrade/install, argocd app sync/set, Kubernetes API clients, kubeconfig, cluster tokens, and service-account credentials"
      ],
      "outputs": [
        "GitOpsBoundaryReport proving publication-only CI capabilities",
        "Policy violation naming the workflow step, command/action, and prohibited capability"
      ],
      "failure_boundaries": [
        "Fail when a referenced local action/script cannot be resolved or when shell commands are dynamically assembled beyond analysis.",
        "Fail on cluster credential secret names, Kubernetes API endpoints, direct GitOps repository pushes, mutable deployment tags, or imperative runtime commands."
      ],
      "exclusions": [
        "Harbor authentication and OCI push are intentionally allowed; Argo CD reconciliation from a reviewed Git commit remains a separate runtime responsibility."
      ],
      "verification_steps": [
        "node --test tests/ci/gitops-boundary.test.mjs",
        "Inject kubectl, helm upgrade, argocd sync, kubeconfig secret, dynamic shell, and direct GitOps push fixtures; assert each is denied while publish-images passes."
      ],
      "dependencies": [
        "TASK-0050"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0059",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #120 merged reviewed head 9d9143eef9c8772f61bb7bf87380468ac715ac37 as 68a083c4ae86a87147c35fca4d0c5c37657cbee9; GitOpsBoundaryReport scanned all four workflows with immutable OCI/image-set capabilities and zero violations; 10 focused tests reject kubectl, helm upgrade, argocd sync, kubeconfig secrets, dynamic shell, direct GitOps push, mutable deployment tags, and unresolved scripts while immutable publish-images passes; full local validation, production audit, exact-head CI run 4185, integration/publication run 4186, and integration validation run 4187 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0051",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0051-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0051",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0051",
            "state": "Done",
            "event_id": "FLOW-TASK-0051-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0051",
            "state": "Done",
            "event_id": "FLOW-TASK-0051-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0051",
            "state": "Done",
            "event_id": "FLOW-TASK-0051-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0051.yml",
            "item_id": "TASK-0051",
            "state": "Done",
            "event_id": "FLOW-TASK-0051-DONE-20260915"
          }
        ],
        "previous_hash": "7606038f61a8030e7d7fafc6ac705462083ef545211df8d464efa0bc415a5940",
        "hash": "61a9fefe3f8560f7fd847add5f5d57b153b7b5c31a430a9e9ed3b1f62da26ef7"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0051-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0051",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0051",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0051-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0051.yml",
              "item_id": "TASK-0051",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0051-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "30d83cd7ca8fa84bdcc1e8f6ce49fd37a43a1a4905e4434232856f81d3fa34a4"
        },
        {
          "event_id": "FLOW-TASK-0051-IN-PROGRESS-20260909",
          "sequence": 2,
          "item_id": "TASK-0051",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T10:51:13Z",
          "conditions": [
            "Whole Wave 18 claim: TASK-0051, TASK-0064, TASK-0068, TASK-0080, and TASK-0099 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1547195762671222876",
              "item_id": "TASK-0051",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0051-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0051-enforce-ci-gitops-boundary-1",
              "item_id": "TASK-0051",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0051-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/120",
              "item_id": "TASK-0051",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0051-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/57ea18f8e7d411f93444691187b26e1d02052cc7",
              "item_id": "TASK-0051",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0051-IN-PROGRESS-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0051.yml",
              "item_id": "TASK-0051",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0051-IN-PROGRESS-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0051-enforce-ci-gitops-boundary-1",
          "claim_base_sha": "8685927ed3437eefb7a76e51fa41f27b191c48d7",
          "previous_hash": "30d83cd7ca8fa84bdcc1e8f6ce49fd37a43a1a4905e4434232856f81d3fa34a4",
          "hash": "b19be9ed558c437b7bafa2bec17ce322fcf11e76a506ebc98f15b29986f422dc"
        },
        {
          "event_id": "FLOW-TASK-0051-TO-BE-RELEASED-20260909",
          "sequence": 3,
          "item_id": "TASK-0051",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T11:45:52Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/120",
              "item_id": "TASK-0051",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0051-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/68a083c4ae86a87147c35fca4d0c5c37657cbee9",
              "item_id": "TASK-0051",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0051-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4185",
              "item_id": "TASK-0051",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0051-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4186",
              "item_id": "TASK-0051",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0051-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4187",
              "item_id": "TASK-0051",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0051-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0051.yml",
              "item_id": "TASK-0051",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0051-TO-BE-RELEASED-20260909"
            }
          ],
          "previous_hash": "b19be9ed558c437b7bafa2bec17ce322fcf11e76a506ebc98f15b29986f422dc",
          "hash": "7606038f61a8030e7d7fafc6ac705462083ef545211df8d464efa0bc415a5940"
        },
        {
          "event_id": "FLOW-TASK-0051-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0051",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0051",
              "state": "Done",
              "event_id": "FLOW-TASK-0051-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0051",
              "state": "Done",
              "event_id": "FLOW-TASK-0051-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0051",
              "state": "Done",
              "event_id": "FLOW-TASK-0051-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0051.yml",
              "item_id": "TASK-0051",
              "state": "Done",
              "event_id": "FLOW-TASK-0051-DONE-20260915"
            }
          ],
          "previous_hash": "7606038f61a8030e7d7fafc6ac705462083ef545211df8d464efa0bc415a5940",
          "hash": "61a9fefe3f8560f7fd847add5f5d57b153b7b5c31a430a9e9ed3b1f62da26ef7"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0052",
      "display_id": "AEROSIM-TS-52",
      "title": "Verify Argo CD reconciliation of the selected release artifacts",
      "feature_id": "AEROSIM-FT-52",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-52/aerosim-ts-52/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0052.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/gondor-v1-aerosim",
      "component": "Gondor runtime — Argo CD reconciliation verification",
      "outcome": "A governed GitOps change reconciles through Argo CD to healthy Web and API workloads whose running image revisions match the reviewed selection.",
      "scope": "Verify a reviewed Gondor Git commit reaches Argo CD Synced/Healthy, both workloads become Available, ingress routes /,/api,/socket.io correctly, running imageIDs equal selected digests, and a reviewed revert restores the prior digests; serialize evidence without declaring Feature acceptance. Primary files: apps/aerosim/tests/reconcile-release.sh, apps/aerosim/tests/assert-runtime-revision.sh, tests/gitops/argo-reconciliation.test.mjs, evidence/aerosim-release-evidence.schema.json.",
      "implementation_artifacts": [
        "apps/aerosim/tests/reconcile-release.sh",
        "apps/aerosim/tests/assert-runtime-revision.sh",
        "tests/gitops/argo-reconciliation.test.mjs",
        "evidence/aerosim-release-evidence.schema.json"
      ],
      "inputs": [
        "Reviewed Gondor commit SHA and Argo CD Application aerosim",
        "Expected Nebula/Singularity digests, namespace, ingress host, and previous reviewed commit for revert"
      ],
      "outputs": [
        "ReleaseEvidence document containing GitOps SHA, Argo sync revision/status/health, workload readiness, route checks, and observed imageIDs",
        "Rollback evidence tying the revert commit to restored prior image digests"
      ],
      "failure_boundaries": [
        "Fail evidence capture on Argo OutOfSync/Degraded, timeout, unavailable replica, route error, or any observed imageID mismatch.",
        "Do not mark reconciliation verified when evidence fields are missing, commands target another namespace/application, or rollback used an imperative runtime mutation."
      ],
      "exclusions": [
        "Successful reconciliation is deployment evidence only; it does not approve the Feature, allocate a release, validate business scenarios, or authorize an unreviewed rollback."
      ],
      "verification_steps": [
        "bash apps/aerosim/tests/reconcile-release.sh --app aerosim --revision \"$GITOPS_SHA\" --timeout 10m",
        "bash apps/aerosim/tests/assert-runtime-revision.sh --namespace aerosim --web-digest \"$NEBULA_DIGEST\" --api-digest \"$SINGULARITY_DIGEST\" && node --test tests/gitops/argo-reconciliation.test.mjs"
      ],
      "dependencies": [
        "TASK-0051"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0059",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: Gondor PR #8 introduced fail-closed Argo reconciliation and runtime image/route verification with ReleaseEvidence schema; PRs #9-#12 reconciled the reviewed digest-pinned release and resolved live selector, readiness, and resource-discovery compatibility; PR #13 restored the prior reviewed runtime at Synced/Healthy with both prior imageIDs and all routes verified; PR #14 reapplied the selected release. Final Argo revision 51cc5384728a804874acc75032b9a8bf5c50418c is Synced/Healthy, aerosim-web and aerosim-api are Available 1/1, /, /api/health, and /socket.io return HTTP 200, observed imageIDs exactly equal the selected Nebula and Singularity digests, local GitOps tests pass 13/13, policy checks pass 250/250, and exact-head CI passed for every reviewed PR. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0052",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0052-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0052",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0052",
            "state": "Done",
            "event_id": "FLOW-TASK-0052-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0052",
            "state": "Done",
            "event_id": "FLOW-TASK-0052-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0052",
            "state": "Done",
            "event_id": "FLOW-TASK-0052-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0052.yml",
            "item_id": "TASK-0052",
            "state": "Done",
            "event_id": "FLOW-TASK-0052-DONE-20260915"
          }
        ],
        "previous_hash": "f4546ee4d6967c3d4aaec945c3187b054f4a5c76a8ee655d2583b031cf8aee33",
        "hash": "1a3735e055a355af99e2de83d4762894ab629574d0783dc9fa529ca381ae8a44"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0052-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0052",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0052",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0052-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0052.yml",
              "item_id": "TASK-0052",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0052-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "61c3646ace8713d6d43d2ce2fdadefa364c94b0daeae4d41041986cde769a84c"
        },
        {
          "event_id": "FLOW-TASK-0052-IN-PROGRESS-20260909",
          "sequence": 2,
          "item_id": "TASK-0052",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T21:36:00Z",
          "conditions": [],
          "claim_repository": "corp-v1-aerosim/gondor-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0052-verify-argo-reconciliation-1",
          "claim_base_sha": "cf8f8ae15a90674f34ed074eebaf478b2fb7bfdd",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1547361872313843722",
              "item_id": "TASK-0052",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0052-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/src/branch/1.0.0/TASK-0052-verify-argo-reconciliation-1",
              "item_id": "TASK-0052",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0052-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/8",
              "item_id": "TASK-0052",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0052-IN-PROGRESS-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0052.yml",
              "item_id": "TASK-0052",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0052-IN-PROGRESS-20260909"
            }
          ],
          "previous_hash": "61c3646ace8713d6d43d2ce2fdadefa364c94b0daeae4d41041986cde769a84c",
          "hash": "591ebcad0d65429035406b143d502284f0e89f56139109401b85762a5ae4afae"
        },
        {
          "event_id": "FLOW-TASK-0052-TO-BE-RELEASED-20260909",
          "sequence": 3,
          "item_id": "TASK-0052",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T22:57:11Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/8",
              "item_id": "TASK-0052",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0052-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/13",
              "item_id": "TASK-0052",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0052-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/14",
              "item_id": "TASK-0052",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0052-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/51cc5384728a804874acc75032b9a8bf5c50418c",
              "item_id": "TASK-0052",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0052-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0052.yml",
              "item_id": "TASK-0052",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0052-TO-BE-RELEASED-20260909"
            }
          ],
          "previous_hash": "591ebcad0d65429035406b143d502284f0e89f56139109401b85762a5ae4afae",
          "hash": "f4546ee4d6967c3d4aaec945c3187b054f4a5c76a8ee655d2583b031cf8aee33"
        },
        {
          "event_id": "FLOW-TASK-0052-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0052",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0052",
              "state": "Done",
              "event_id": "FLOW-TASK-0052-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0052",
              "state": "Done",
              "event_id": "FLOW-TASK-0052-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0052",
              "state": "Done",
              "event_id": "FLOW-TASK-0052-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0052.yml",
              "item_id": "TASK-0052",
              "state": "Done",
              "event_id": "FLOW-TASK-0052-DONE-20260915"
            }
          ],
          "previous_hash": "f4546ee4d6967c3d4aaec945c3187b054f4a5c76a8ee655d2583b031cf8aee33",
          "hash": "1a3735e055a355af99e2de83d4762894ab629574d0783dc9fa529ca381ae8a44"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0053",
      "display_id": "AEROSIM-TS-53",
      "title": "Implement the browser Keycloak authorization-code session",
      "feature_id": "AEROSIM-FT-30",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-30/aerosim-ts-53/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0053.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Keycloak session client",
      "outcome": "Unauthenticated browser access redirects through the approved Keycloak OIDC Authorization Code with PKCE flow and returns with a usable AeroSim session.",
      "scope": "Implement route protection, PKCE authorization initiation and callback handling, token lifecycle, intended-route restoration, logout, and explicit authentication failures in the Web Application. Do not add registration, password collection, or local sign-in. Concrete artifacts are applications/web/src/auth/keycloak-session.ts and applications/web/src/auth/keycloak-session.test.ts; the module boundary owns browser OIDC session establishment and restoration.",
      "implementation_artifacts": [
        "applications/web/src/auth/keycloak-session.ts",
        "applications/web/src/auth/keycloak-session.test.ts"
      ],
      "inputs": [
        "Keycloak authorization endpoint, client identifier, redirect URI, requested scopes, and PKCE S256 challenge",
        "Protected browser route and intended return location",
        "Authorization callback carrying either an authorization code and matching state or an OIDC error"
      ],
      "outputs": [
        "Unauthenticated browser access redirects through the approved Keycloak OIDC Authorization Code with PKCE flow and returns with a usable AeroSim session."
      ],
      "failure_boundaries": [
        "Reject callbacks with missing or mismatched state, absent code, invalid nonce, or failed token exchange without creating an AeroSim session",
        "When refresh fails or the token expires, clear the browser session and require a new Keycloak authorization flow rather than continuing with stale credentials"
      ],
      "exclusions": [
        "AeroSim registration, password collection, local sign-in, and storage of Keycloak credentials",
        "Identity-provider administration, account recovery, and MFA enrollment"
      ],
      "verification_steps": [
        "Run applications/web/src/auth/keycloak-session.test.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with keycloak authorization endpoint, client identifier, redirect uri, requested scopes, and pkce s256 challenge, then assert: Unauthenticated browser access redirects through the approved Keycloak OIDC Authorization Code with PKCE flow and returns with a usable AeroSim session.",
        "Exercise every negative boundary: Reject callbacks with missing or mismatched state, absent code, invalid nonce, or failed token exchange without creating an AeroSim session; When refresh fails or the token expires, clear the browser session and require a new Keycloak authorization flow rather than continuing with stale credentials"
      ],
      "dependencies": [
        "TASK-0042"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0037",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #46 reviewed head 98f240453d08fa48d828a113e9ff1db4c708624f, exact-head validation task 1911 succeeded, merged as e57de97282209c5e7dce5f4784fc108e4f44696b; Wave 8 integrated application head a3e4429a9970241b278a4f64aa7c6541c74e63a8 passed publish task 1916 and validate task 1917. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0053",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0053-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0053",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0053",
            "state": "Done",
            "event_id": "FLOW-TASK-0053-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0053",
            "state": "Done",
            "event_id": "FLOW-TASK-0053-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0053",
            "state": "Done",
            "event_id": "FLOW-TASK-0053-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0053.yml",
            "item_id": "TASK-0053",
            "state": "Done",
            "event_id": "FLOW-TASK-0053-DONE-20260915"
          }
        ],
        "previous_hash": "0520256b6a4c58a8b4357ee2d0b0c583843b8131d134d7fab724e7d7f846d05b",
        "hash": "2553a5dd94e8000f937ad4d869fa6be980601ea1c71a90057e260c9036365109"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0053-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0053",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0053",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0053-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0053.yml",
              "item_id": "TASK-0053",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0053-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "64c8d36f0e6e3f8889e961b51f5b152274af1d690a089697cd0e939c2cafd1bf"
        },
        {
          "event_id": "FLOW-TASK-0053-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0053",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T22:35:17Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0053-browser-keycloak-session",
              "item_id": "TASK-0053",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0053-IN-PROGRESS-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/b75d00b8c3864752bf5b1ea0298097add346f0aa",
              "item_id": "TASK-0053",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0053-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0053.yml",
              "item_id": "TASK-0053",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0053-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0053-browser-keycloak-session",
          "claim_base_sha": "b75d00b8c3864752bf5b1ea0298097add346f0aa",
          "previous_hash": "64c8d36f0e6e3f8889e961b51f5b152274af1d690a089697cd0e939c2cafd1bf",
          "hash": "cb15c62f03d13460d3f2364ff0a1f49900e4eb621436d6938650ff6d2556525f"
        },
        {
          "event_id": "FLOW-TASK-0053-TO-BE-RELEASED-20260905",
          "sequence": 3,
          "item_id": "TASK-0053",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-05T00:32:02Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/46",
              "item_id": "TASK-0053",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0053-TO-BE-RELEASED-20260905"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/e57de97282209c5e7dce5f4784fc108e4f44696b",
              "item_id": "TASK-0053",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0053-TO-BE-RELEASED-20260905"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0053.yml",
              "item_id": "TASK-0053",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0053-TO-BE-RELEASED-20260905"
            }
          ],
          "previous_hash": "cb15c62f03d13460d3f2364ff0a1f49900e4eb621436d6938650ff6d2556525f",
          "hash": "0520256b6a4c58a8b4357ee2d0b0c583843b8131d134d7fab724e7d7f846d05b"
        },
        {
          "event_id": "FLOW-TASK-0053-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0053",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0053",
              "state": "Done",
              "event_id": "FLOW-TASK-0053-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0053",
              "state": "Done",
              "event_id": "FLOW-TASK-0053-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0053",
              "state": "Done",
              "event_id": "FLOW-TASK-0053-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0053.yml",
              "item_id": "TASK-0053",
              "state": "Done",
              "event_id": "FLOW-TASK-0053-DONE-20260915"
            }
          ],
          "previous_hash": "0520256b6a4c58a8b4357ee2d0b0c583843b8131d134d7fab724e7d7f846d05b",
          "hash": "2553a5dd94e8000f937ad4d869fa6be980601ea1c71a90057e260c9036365109"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0054",
      "display_id": "AEROSIM-TS-54",
      "title": "Enforce Keycloak JWT validation at the API boundary",
      "feature_id": "AEROSIM-FT-30",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-30/aerosim-ts-54/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0054.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "API Service — Keycloak identity guard and Socket.IO gateway",
      "outcome": "The API accepts only valid Keycloak access tokens and derives one immutable authenticated-subject context for protected HTTP and Socket.IO operations.",
      "scope": "Implement JWKS retrieval and caching, issuer and audience checks, signature and expiry validation, normalized subject context, protected-route and socket guards, and credential-safe error responses. Health probes remain unauthenticated and disclose no pilot data. Concrete artifacts are applications/api/src/enforce-keycloak-jwt-validation-at-the-api-boundary.ts and applications/api/test/enforce-keycloak-jwt-validation-at-the-api-boundary.spec.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "applications/api/src/enforce-keycloak-jwt-validation-at-the-api-boundary.ts",
        "applications/api/test/enforce-keycloak-jwt-validation-at-the-api-boundary.spec.ts"
      ],
      "inputs": [
        "Bearer access token from a protected HTTPS request or Socket.IO handshake",
        "Configured Keycloak issuer, AeroSim audience, and JWKS endpoint",
        "Cached signing key identified by the token kid and its cache lifetime"
      ],
      "outputs": [
        "The API accepts only valid Keycloak access tokens and derives one immutable authenticated-subject context for protected HTTP and Socket.IO operations."
      ],
      "failure_boundaries": [
        "Deny missing, malformed, expired, wrong-issuer, wrong-audience, or unverifiable tokens before protected handlers run",
        "If JWKS retrieval fails or a signing key is unknown after refresh, return a stable authorization failure and disclose neither token contents nor pilot data"
      ],
      "exclusions": [
        "Issuing or refreshing browser tokens",
        "Authorizing unauthenticated health probes to read profile, preference, progress, or resume data"
      ],
      "verification_steps": [
        "Run applications/api/test/enforce-keycloak-jwt-validation-at-the-api-boundary.spec.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with bearer access token from a protected https request or socket.io handshake, then assert: The API accepts only valid Keycloak access tokens and derives one immutable authenticated-subject context for protected HTTP and Socket.IO operations.",
        "Exercise every negative boundary: Deny missing, malformed, expired, wrong-issuer, wrong-audience, or unverifiable tokens before protected handlers run; If JWKS retrieval fails or a signing key is unknown after refresh, return a stable authorization failure and disclose neither token contents nor pilot data"
      ],
      "dependencies": [
        "TASK-0042"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0037",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #47 reviewed head cfc97aa948faacc2a88446cf563827528b6577a2, exact-head validation task 1915 succeeded, merged as a3e4429a9970241b278a4f64aa7c6541c74e63a8; Wave 8 integrated application head a3e4429a9970241b278a4f64aa7c6541c74e63a8 passed publish task 1916 and validate task 1917. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0054",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0054-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0054",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0054",
            "state": "Done",
            "event_id": "FLOW-TASK-0054-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0054",
            "state": "Done",
            "event_id": "FLOW-TASK-0054-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0054",
            "state": "Done",
            "event_id": "FLOW-TASK-0054-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0054.yml",
            "item_id": "TASK-0054",
            "state": "Done",
            "event_id": "FLOW-TASK-0054-DONE-20260915"
          }
        ],
        "previous_hash": "723b2242acb876d18f5019087685d3df160648ec299e077d18860683ab55e5c9",
        "hash": "520250602b7d80714e15b5c3e53f2abde9f43f369025059f2331077042479f63"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0054-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0054",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0054",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0054-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0054.yml",
              "item_id": "TASK-0054",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0054-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "22debbf4972a4aedc883deab75bddddb453ca8047451a844001d0c1680327bf3"
        },
        {
          "event_id": "FLOW-TASK-0054-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0054",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T22:35:17Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0054-api-keycloak-jwt-validation",
              "item_id": "TASK-0054",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0054-IN-PROGRESS-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/b75d00b8c3864752bf5b1ea0298097add346f0aa",
              "item_id": "TASK-0054",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0054-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0054.yml",
              "item_id": "TASK-0054",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0054-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0054-api-keycloak-jwt-validation",
          "claim_base_sha": "b75d00b8c3864752bf5b1ea0298097add346f0aa",
          "previous_hash": "22debbf4972a4aedc883deab75bddddb453ca8047451a844001d0c1680327bf3",
          "hash": "a5d59e75e824c1eb9317545671536e1f35a51b81b239908d8e4e5b39d09fc042"
        },
        {
          "event_id": "FLOW-TASK-0054-TO-BE-RELEASED-20260905",
          "sequence": 3,
          "item_id": "TASK-0054",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-05T00:32:02Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/47",
              "item_id": "TASK-0054",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0054-TO-BE-RELEASED-20260905"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/a3e4429a9970241b278a4f64aa7c6541c74e63a8",
              "item_id": "TASK-0054",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0054-TO-BE-RELEASED-20260905"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0054.yml",
              "item_id": "TASK-0054",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0054-TO-BE-RELEASED-20260905"
            }
          ],
          "previous_hash": "a5d59e75e824c1eb9317545671536e1f35a51b81b239908d8e4e5b39d09fc042",
          "hash": "723b2242acb876d18f5019087685d3df160648ec299e077d18860683ab55e5c9"
        },
        {
          "event_id": "FLOW-TASK-0054-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0054",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0054",
              "state": "Done",
              "event_id": "FLOW-TASK-0054-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0054",
              "state": "Done",
              "event_id": "FLOW-TASK-0054-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0054",
              "state": "Done",
              "event_id": "FLOW-TASK-0054-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0054.yml",
              "item_id": "TASK-0054",
              "state": "Done",
              "event_id": "FLOW-TASK-0054-DONE-20260915"
            }
          ],
          "previous_hash": "723b2242acb876d18f5019087685d3df160648ec299e077d18860683ab55e5c9",
          "hash": "520250602b7d80714e15b5c3e53f2abde9f43f369025059f2331077042479f63"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0055",
      "display_id": "AEROSIM-TS-55",
      "title": "Connect the authenticated browser session to AeroSim APIs",
      "feature_id": "AEROSIM-FT-30",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-30/aerosim-ts-55/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0055.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Profile and catalogue API client and Socket.IO client",
      "outcome": "A successful SSO session supplies the same Keycloak subject identity to protected AeroSim HTTP and Socket.IO requests without creating or using local credentials.",
      "scope": "Attach bearer tokens to HTTPS/JSON requests and authenticated Socket.IO connections, handle refresh and expiry consistently, reject subject-free application state, and clear authenticated clients on logout. Concrete artifacts are applications/web/src/auth/aerosim-api-client.ts and applications/web/src/auth/aerosim-api-client.test.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "applications/web/src/auth/aerosim-api-client.ts",
        "applications/web/src/auth/aerosim-api-client.test.ts"
      ],
      "inputs": [
        "Usable Keycloak access token and immutable subject from the established browser session",
        "Protected AeroSim HTTPS request or Socket.IO connection request",
        "Token refresh, expiry, and logout events from the session client"
      ],
      "outputs": [
        "A successful SSO session supplies the same Keycloak subject identity to protected AeroSim HTTP and Socket.IO requests without creating or using local credentials."
      ],
      "failure_boundaries": [
        "Do not issue a protected request or open a socket when no usable token or subject is present",
        "On refresh failure, expiry, subject change, or logout, disconnect sockets, clear protected clients, and discard pilot-bound browser state"
      ],
      "exclusions": [
        "Sending a subject identifier supplied by page state as proof of identity",
        "Persisting bearer or refresh tokens as local pilot credentials"
      ],
      "verification_steps": [
        "Run applications/web/src/auth/aerosim-api-client.test.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with usable keycloak access token and immutable subject from the established browser session, then assert: A successful SSO session supplies the same Keycloak subject identity to protected AeroSim HTTP and Socket.IO requests without creating or using local credentials.",
        "Exercise every negative boundary: Do not issue a protected request or open a socket when no usable token or subject is present; On refresh failure, expiry, subject change, or logout, disconnect sockets, clear protected clients, and discard pilot-bound browser state"
      ],
      "dependencies": [
        "TASK-0053",
        "TASK-0054"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0037",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: original application PR #50 merged reviewed head e0251eb3a6095bd2e2236254f361411e0841fab7 as 3dc5356fad43721ffc2d108cb6622263341e786e; 72 authenticated-client tests and current lint/typecheck passed on current integration; duplicate verification PR #127 was closed unmerged after exact-head CI run 4226 passed; current integrated publication and validation runs 4230 and 4231 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0055",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0055-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0055",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0055",
            "state": "Done",
            "event_id": "FLOW-TASK-0055-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0055",
            "state": "Done",
            "event_id": "FLOW-TASK-0055-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0055",
            "state": "Done",
            "event_id": "FLOW-TASK-0055-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0055.yml",
            "item_id": "TASK-0055",
            "state": "Done",
            "event_id": "FLOW-TASK-0055-DONE-20260915"
          }
        ],
        "previous_hash": "ef2f6d5ec2b404a2993d9e97ab7cbf659229e0a1f0a2c05be13b4068741ae8eb",
        "hash": "500117b3d88df0795fd7923c671cfba217a1b6b6c01889215a4bc05896051ca5"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0055-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0055",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0055",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0055-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0055.yml",
              "item_id": "TASK-0055",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0055-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "ebb2342fda26b482a462c6b535f0bb615a91c5c6f8c226564a0319ad24e08ba8"
        },
        {
          "event_id": "FLOW-TASK-0055-IN-PROGRESS-20260909",
          "sequence": 2,
          "item_id": "TASK-0055",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T16:29:23Z",
          "conditions": [
            "Whole Wave 9 claim: TASK-0030, TASK-0037, and TASK-0055 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1547281525928628326",
              "item_id": "TASK-0055",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0055-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0055-connect-authenticated-browser-session-1",
              "item_id": "TASK-0055",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0055-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/127",
              "item_id": "TASK-0055",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0055-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/02f24b4d312bc8be03fa1bb5c7e6d17b4c005b3d",
              "item_id": "TASK-0055",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0055-IN-PROGRESS-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0055.yml",
              "item_id": "TASK-0055",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0055-IN-PROGRESS-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0055-connect-authenticated-browser-session-1",
          "claim_base_sha": "02f55523910f1751332be3dfddc25aadb6a69ff0",
          "previous_hash": "ebb2342fda26b482a462c6b535f0bb615a91c5c6f8c226564a0319ad24e08ba8",
          "hash": "6c436abca34e4e278c7cd3e2554dde38bfe656c1171085937442f2d467a14054"
        },
        {
          "event_id": "FLOW-TASK-0055-TO-BE-RELEASED-CORRECTION-20260909",
          "sequence": 3,
          "item_id": "TASK-0055",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T19:23:44Z",
          "conditions": [
            "Lifecycle correction: implementation was already merged before the ReadyForDelivery reset."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/50",
              "item_id": "TASK-0055",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0055-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/3dc5356fad43721ffc2d108cb6622263341e786e",
              "item_id": "TASK-0055",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0055-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4226",
              "item_id": "TASK-0055",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0055-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4230",
              "item_id": "TASK-0055",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0055-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4231",
              "item_id": "TASK-0055",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0055-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0055.yml",
              "item_id": "TASK-0055",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0055-TO-BE-RELEASED-CORRECTION-20260909"
            }
          ],
          "previous_hash": "6c436abca34e4e278c7cd3e2554dde38bfe656c1171085937442f2d467a14054",
          "hash": "ef2f6d5ec2b404a2993d9e97ab7cbf659229e0a1f0a2c05be13b4068741ae8eb"
        },
        {
          "event_id": "FLOW-TASK-0055-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0055",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0055",
              "state": "Done",
              "event_id": "FLOW-TASK-0055-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0055",
              "state": "Done",
              "event_id": "FLOW-TASK-0055-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0055",
              "state": "Done",
              "event_id": "FLOW-TASK-0055-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0055.yml",
              "item_id": "TASK-0055",
              "state": "Done",
              "event_id": "FLOW-TASK-0055-DONE-20260915"
            }
          ],
          "previous_hash": "ef2f6d5ec2b404a2993d9e97ab7cbf659229e0a1f0a2c05be13b4068741ae8eb",
          "hash": "500117b3d88df0795fd7923c671cfba217a1b6b6c01889215a4bc05896051ca5"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0056",
      "display_id": "AEROSIM-TS-56",
      "title": "Verify the SSO boundary and absence of local credentials",
      "feature_id": "AEROSIM-FT-30",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-30/aerosim-ts-56/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0056.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application and API Service — authentication test suites",
      "outcome": "Reviewed automated and browser evidence demonstrates the approved Keycloak flow, stable subject propagation, denial of invalid or expired sessions, and absence of AeroSim registration or local-password fallback.",
      "scope": "Add unit, integration, browser, and adversarial tests for unauthenticated redirects, callback success and failure, token refresh and expiry, logout, forged or wrong-issuer tokens, HTTP and socket authorization, route restoration, and absence of password fields, password persistence, registration endpoints, and local sign-in paths. Concrete artifacts are tests/security/sso-boundary.test.ts and tests/browser/sso-boundary.spec.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "tests/security/sso-boundary.test.ts",
        "tests/browser/sso-boundary.spec.ts"
      ],
      "inputs": [
        "Configured Keycloak test realm or deterministic OIDC fixture with approved issuer and audience",
        "Protected browser routes, HTTPS endpoints, and Socket.IO handshake fixtures",
        "Forged, expired, wrong-issuer, wrong-audience, callback-error, and logout test cases"
      ],
      "outputs": [
        "Reviewed automated and browser evidence demonstrates the approved Keycloak flow, stable subject propagation, denial of invalid or expired sessions, and absence of AeroSim registration or local-password fallback."
      ],
      "failure_boundaries": [
        "The suite fails if any invalid session reaches a protected HTTP or socket handler or if route restoration succeeds from an invalid callback",
        "The suite fails if a registration endpoint, password field, password column, local sign-in route, or credential persistence path is detected"
      ],
      "exclusions": [
        "Testing Keycloak account provisioning, password reset, or MFA policy",
        "Treating a mocked redirect alone as proof of the complete browser-to-API identity boundary"
      ],
      "verification_steps": [
        "Run tests/browser/sso-boundary.spec.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with configured keycloak test realm or deterministic oidc fixture with approved issuer and audience, then assert: Reviewed automated and browser evidence demonstrates the approved Keycloak flow, stable subject propagation, denial of invalid or expired sessions, and absence of AeroSim registration or local-password fallback.",
        "Exercise every negative boundary: The suite fails if any invalid session reaches a protected HTTP or socket handler or if route restoration succeeds from an invalid callback; The suite fails if a registration endpoint, password field, password column, local sign-in route, or credential persistence path is detected"
      ],
      "dependencies": [
        "TASK-0055"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0037",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #57 merged the complete SSO boundary as b065bea3a34d9157d80e007f6f4bf9f8352b69e4; current integration retains Keycloak-only HTTP, Socket.IO, callback, refresh, expiry, logout, invalid-token, and no-local-credential coverage; focused security tests pass 15/15, browser-artifact tests pass 7/7, and browser boundary tests pass 12/12; exact-head integration validation and immutable image publication passed remotely at ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0056",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0056-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0056",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0056",
            "state": "Done",
            "event_id": "FLOW-TASK-0056-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0056",
            "state": "Done",
            "event_id": "FLOW-TASK-0056-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0056",
            "state": "Done",
            "event_id": "FLOW-TASK-0056-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0056.yml",
            "item_id": "TASK-0056",
            "state": "Done",
            "event_id": "FLOW-TASK-0056-DONE-20260915"
          }
        ],
        "previous_hash": "dcb7586bc5d7200ba015d29eb45460c8239e611476aeca5bd33326b83ca27f93",
        "hash": "c11de66c8a2717bab6bd8b883cccf604861d704fed695f77f4a2cd317ff44d3f"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0056-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0056",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0056",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0056-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0056.yml",
              "item_id": "TASK-0056",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0056-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "c35967ae274d786ccbf61a0c049c377cb5054da2a1a83a11072cbabac326eee6"
        },
        {
          "event_id": "FLOW-TASK-0056-IN-PROGRESS-CORRECTION-20260909",
          "sequence": 2,
          "item_id": "TASK-0056",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T20:07:43Z",
          "conditions": [
            "Lifecycle correction: implementation was already merged before the ReadyForDelivery reset."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0056-sso-boundary-v3",
              "item_id": "TASK-0056",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0056-IN-PROGRESS-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/57",
              "item_id": "TASK-0056",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0056-IN-PROGRESS-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0056.yml",
              "item_id": "TASK-0056",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0056-IN-PROGRESS-CORRECTION-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0056-sso-boundary-v3",
          "claim_base_sha": "e2df1e859172068c04858bc22f9c7223cfae8394",
          "previous_hash": "c35967ae274d786ccbf61a0c049c377cb5054da2a1a83a11072cbabac326eee6",
          "hash": "059b8a5265c3d6ea5968bd06e15a924774c45ff7bb358f6e4d1bc8c3ff069ba3"
        },
        {
          "event_id": "FLOW-TASK-0056-TO-BE-RELEASED-CORRECTION-20260909",
          "sequence": 3,
          "item_id": "TASK-0056",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T20:07:43Z",
          "conditions": [
            "Forward-only lifecycle reconciliation from merged implementation and fresh current-tree verification."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/57",
              "item_id": "TASK-0056",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0056-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/b065bea3a34d9157d80e007f6f4bf9f8352b69e4",
              "item_id": "TASK-0056",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0056-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf",
              "item_id": "TASK-0056",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0056-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4230",
              "item_id": "TASK-0056",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0056-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4231",
              "item_id": "TASK-0056",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0056-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0056.yml",
              "item_id": "TASK-0056",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0056-TO-BE-RELEASED-CORRECTION-20260909"
            }
          ],
          "previous_hash": "059b8a5265c3d6ea5968bd06e15a924774c45ff7bb358f6e4d1bc8c3ff069ba3",
          "hash": "dcb7586bc5d7200ba015d29eb45460c8239e611476aeca5bd33326b83ca27f93"
        },
        {
          "event_id": "FLOW-TASK-0056-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0056",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0056",
              "state": "Done",
              "event_id": "FLOW-TASK-0056-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0056",
              "state": "Done",
              "event_id": "FLOW-TASK-0056-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0056",
              "state": "Done",
              "event_id": "FLOW-TASK-0056-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0056.yml",
              "item_id": "TASK-0056",
              "state": "Done",
              "event_id": "FLOW-TASK-0056-DONE-20260915"
            }
          ],
          "previous_hash": "dcb7586bc5d7200ba015d29eb45460c8239e611476aeca5bd33326b83ca27f93",
          "hash": "c11de66c8a2717bab6bd8b883cccf604861d704fed695f77f4a2cd317ff44d3f"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0057",
      "display_id": "AEROSIM-TS-57",
      "title": "Add the unique Keycloak-subject pilot linkage",
      "feature_id": "AEROSIM-FT-31",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-31/aerosim-ts-57/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0057.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Pilot Data Store — Pilot identity linkage and Prisma schema/migrations",
      "outcome": "The data model can store exactly one AeroSim pilot profile for each Keycloak subject without storing identity-provider credentials.",
      "scope": "Define the Pilot profile and identity-linkage Prisma schema, require a unique non-null Keycloak subject identifier, add timestamps and safe profile defaults, create a reversible migration, and prohibit password or local-credential columns. Concrete artifacts are prisma/schema.prisma and tests/integration/add-the-unique-keycloak-subject-pilot-linkage.spec.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "prisma/schema.prisma",
        "prisma/migrations/add-the-unique-keycloak-subject-pilot-linkage/migration.sql",
        "tests/integration/add-the-unique-keycloak-subject-pilot-linkage.spec.ts"
      ],
      "inputs": [
        "Authenticated Keycloak subject identifier used as the external identity key",
        "Pilot profile defaults and timestamp policy",
        "Current Prisma schema and migration baseline"
      ],
      "outputs": [
        "The data model can store exactly one AeroSim pilot profile for each Keycloak subject without storing identity-provider credentials."
      ],
      "failure_boundaries": [
        "Reject null, empty, or duplicate subject identifiers and roll back migrations that cannot preserve the one-subject-to-one-profile invariant",
        "Prevent schema changes that add password hashes, local credentials, or identity-provider tokens to pilot records"
      ],
      "exclusions": [
        "Copying Keycloak account credentials or complete identity-provider profiles into AeroSim",
        "Supporting multiple pilot profiles for one Keycloak subject"
      ],
      "verification_steps": [
        "Run tests/integration/add-the-unique-keycloak-subject-pilot-linkage.spec.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with authenticated keycloak subject identifier used as the external identity key, then assert: The data model can store exactly one AeroSim pilot profile for each Keycloak subject without storing identity-provider credentials.",
        "Exercise every negative boundary: Reject null, empty, or duplicate subject identifiers and roll back migrations that cannot preserve the one-subject-to-one-profile invariant; Prevent schema changes that add password hashes, local credentials, or identity-provider tokens to pilot records"
      ],
      "dependencies": [
        "TASK-0020",
        "TASK-0056"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0038",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #59 merged the unique Keycloak-subject pilot linkage as a46f0bb6f8214be18d6605706168f77f0be7ddab; current integration retains the non-null unique subject, safe defaults, reversible migration, and no-local-credential boundary; the focused PostgreSQL integration suite passes 11/11 against a disposable migrated database; exact-head integration validation and immutable image publication passed remotely at ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0057",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0057-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0057",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0057",
            "state": "Done",
            "event_id": "FLOW-TASK-0057-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0057",
            "state": "Done",
            "event_id": "FLOW-TASK-0057-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0057",
            "state": "Done",
            "event_id": "FLOW-TASK-0057-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0057.yml",
            "item_id": "TASK-0057",
            "state": "Done",
            "event_id": "FLOW-TASK-0057-DONE-20260915"
          }
        ],
        "previous_hash": "c483d84865e49c6ed729a27c150e845777226c6ff6cbe073bcf12492e69aab80",
        "hash": "97b0f55e747da24909fff3564439fc46992eeb5d9be6b8031ce10f48606f6a8e"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0057-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0057",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0057",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0057-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0057.yml",
              "item_id": "TASK-0057",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0057-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "1a59ffb3f12e0dc4ad76f6103b358fb7ca67630fbc11aeb618a0cbbc9566ac16"
        },
        {
          "event_id": "FLOW-TASK-0057-IN-PROGRESS-CORRECTION-20260909",
          "sequence": 2,
          "item_id": "TASK-0057",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T20:25:05Z",
          "conditions": [
            "Lifecycle correction: implementation was already merged before the ReadyForDelivery reset."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0057-keycloak-pilot-link",
              "item_id": "TASK-0057",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0057-IN-PROGRESS-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/59",
              "item_id": "TASK-0057",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0057-IN-PROGRESS-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0057.yml",
              "item_id": "TASK-0057",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0057-IN-PROGRESS-CORRECTION-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0057-keycloak-pilot-link",
          "claim_base_sha": "2501231e1852f888f65e7d3a9f6c355c18f23e78",
          "previous_hash": "1a59ffb3f12e0dc4ad76f6103b358fb7ca67630fbc11aeb618a0cbbc9566ac16",
          "hash": "01f56d0a053c11a522424bcc854df9c9c3c5c0aea9d8b6a16143c8618812d0b8"
        },
        {
          "event_id": "FLOW-TASK-0057-TO-BE-RELEASED-CORRECTION-20260909",
          "sequence": 3,
          "item_id": "TASK-0057",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T20:25:05Z",
          "conditions": [
            "Forward-only lifecycle reconciliation from merged implementation and current exact-head evidence."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/59",
              "item_id": "TASK-0057",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0057-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/a46f0bb6f8214be18d6605706168f77f0be7ddab",
              "item_id": "TASK-0057",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0057-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf",
              "item_id": "TASK-0057",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0057-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4230",
              "item_id": "TASK-0057",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0057-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4231",
              "item_id": "TASK-0057",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0057-TO-BE-RELEASED-CORRECTION-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0057.yml",
              "item_id": "TASK-0057",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0057-TO-BE-RELEASED-CORRECTION-20260909"
            }
          ],
          "previous_hash": "01f56d0a053c11a522424bcc854df9c9c3c5c0aea9d8b6a16143c8618812d0b8",
          "hash": "c483d84865e49c6ed729a27c150e845777226c6ff6cbe073bcf12492e69aab80"
        },
        {
          "event_id": "FLOW-TASK-0057-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0057",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0057",
              "state": "Done",
              "event_id": "FLOW-TASK-0057-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0057",
              "state": "Done",
              "event_id": "FLOW-TASK-0057-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0057",
              "state": "Done",
              "event_id": "FLOW-TASK-0057-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0057.yml",
              "item_id": "TASK-0057",
              "state": "Done",
              "event_id": "FLOW-TASK-0057-DONE-20260915"
            }
          ],
          "previous_hash": "c483d84865e49c6ed729a27c150e845777226c6ff6cbe073bcf12492e69aab80",
          "hash": "97b0f55e747da24909fff3564439fc46992eeb5d9be6b8031ce10f48606f6a8e"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0058",
      "display_id": "AEROSIM-TS-58",
      "title": "Implement idempotent pilot-profile resolution",
      "feature_id": "AEROSIM-FT-31",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-31/aerosim-ts-58/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0058.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "API Service — Pilot profile service, Fastify HTTP boundary, and Prisma data adapter",
      "outcome": "The first authorized request creates one linked pilot profile, while concurrent or later requests for the same Keycloak subject return that same profile.",
      "scope": "Implement a transaction-safe find-or-create operation in the Pilot profile service, resolve ownership exclusively from the authenticated subject context, handle uniqueness races idempotently, and expose a typed current-profile endpoint without accepting a caller-supplied subject. Concrete artifacts are prisma/schema.prisma and tests/integration/implement-idempotent-pilot-profile-resolution.spec.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "prisma/schema.prisma",
        "prisma/migrations/implement-idempotent-pilot-profile-resolution/migration.sql",
        "tests/integration/implement-idempotent-pilot-profile-resolution.spec.ts"
      ],
      "inputs": [
        "Validated authenticated-subject context produced by the API identity guard",
        "Current-profile request with no caller-selected subject",
        "Pilot profile repository operating inside a database transaction"
      ],
      "outputs": [
        "The first authorized request creates one linked pilot profile, while concurrent or later requests for the same Keycloak subject return that same profile."
      ],
      "failure_boundaries": [
        "Reject subject-free requests and ignore or reject any caller-supplied subject selector",
        "Resolve uniqueness races by reading the winning profile after conflict; never return two profile identities for one subject"
      ],
      "exclusions": [
        "Profile lookup by arbitrary subject, email address, or display name",
        "Profile editing beyond the safe defaults needed to establish the current pilot"
      ],
      "verification_steps": [
        "Run tests/integration/implement-idempotent-pilot-profile-resolution.spec.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with validated authenticated-subject context produced by the api identity guard, then assert: The first authorized request creates one linked pilot profile, while concurrent or later requests for the same Keycloak subject return that same profile.",
        "Exercise every negative boundary: Reject subject-free requests and ignore or reject any caller-supplied subject selector; Resolve uniqueness races by reading the winning profile after conflict; never return two profile identities for one subject"
      ],
      "dependencies": [
        "TASK-0057"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0038",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #65 reviewed head 19b8ae57a1193272b40be2be29a361819adff645, exact-head required validation task 2125 succeeded, merged as 15449bdcfccc4b38538f88d9192bb745395bb0ef; current integrated application head 7de1a447a7aa95c20ec69a66c9713e8e4474b895 passed required validation task 2142, publish task 2140, and validate task 2141. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0058",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0058-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0058",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0058",
            "state": "Done",
            "event_id": "FLOW-TASK-0058-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0058",
            "state": "Done",
            "event_id": "FLOW-TASK-0058-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0058",
            "state": "Done",
            "event_id": "FLOW-TASK-0058-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0058.yml",
            "item_id": "TASK-0058",
            "state": "Done",
            "event_id": "FLOW-TASK-0058-DONE-20260915"
          }
        ],
        "previous_hash": "9d50262d3c68cda7e95d9913a8ca37ddc25f5f643011a237fe1549fb879a548d",
        "hash": "eb7f682c05474ee70445116db80bc9390b975d0fec6b7336bd3842455d13d9ba"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0058-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0058",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0058",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0058-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0058.yml",
              "item_id": "TASK-0058",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0058-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "3b76f9df18a40fd81385ec70b5b2e8ef2d984d99f8e16ac891fda5efe53777b8"
        },
        {
          "event_id": "FLOW-TASK-0058-IN-PROGRESS-20260905",
          "sequence": 2,
          "item_id": "TASK-0058",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-05T14:49:32Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0058-pilot-profile-resolution",
              "item_id": "TASK-0058",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0058-IN-PROGRESS-20260905"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/4e4d103b9c9ad4c04b85cb7ba07c3b5adcf4fe6c",
              "item_id": "TASK-0058",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0058-IN-PROGRESS-20260905"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0058.yml",
              "item_id": "TASK-0058",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0058-IN-PROGRESS-20260905"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0058-pilot-profile-resolution",
          "claim_base_sha": "4e4d103b9c9ad4c04b85cb7ba07c3b5adcf4fe6c",
          "previous_hash": "3b76f9df18a40fd81385ec70b5b2e8ef2d984d99f8e16ac891fda5efe53777b8",
          "hash": "e29884113cb97e203940d703097c928be7289b8e8789905af05f77cf3cb03495"
        },
        {
          "event_id": "FLOW-TASK-0058-TO-BE-RELEASED-20260905",
          "sequence": 3,
          "item_id": "TASK-0058",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-05T15:44:07Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/65",
              "item_id": "TASK-0058",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0058-TO-BE-RELEASED-20260905"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/15449bdcfccc4b38538f88d9192bb745395bb0ef",
              "item_id": "TASK-0058",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0058-TO-BE-RELEASED-20260905"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0058.yml",
              "item_id": "TASK-0058",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0058-TO-BE-RELEASED-20260905"
            }
          ],
          "previous_hash": "e29884113cb97e203940d703097c928be7289b8e8789905af05f77cf3cb03495",
          "hash": "9d50262d3c68cda7e95d9913a8ca37ddc25f5f643011a237fe1549fb879a548d"
        },
        {
          "event_id": "FLOW-TASK-0058-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0058",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0058",
              "state": "Done",
              "event_id": "FLOW-TASK-0058-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0058",
              "state": "Done",
              "event_id": "FLOW-TASK-0058-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0058",
              "state": "Done",
              "event_id": "FLOW-TASK-0058-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0058.yml",
              "item_id": "TASK-0058",
              "state": "Done",
              "event_id": "FLOW-TASK-0058-DONE-20260915"
            }
          ],
          "previous_hash": "9d50262d3c68cda7e95d9913a8ca37ddc25f5f643011a237fe1549fb879a548d",
          "hash": "eb7f682c05474ee70445116db80bc9390b975d0fec6b7336bd3842455d13d9ba"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0059",
      "display_id": "AEROSIM-TS-59",
      "title": "Bootstrap the active pilot profile in the browser",
      "feature_id": "AEROSIM-FT-31",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-31/aerosim-ts-59/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0059.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Profile and catalogue API client and pilot-session state",
      "outcome": "After authentication, the Web Application loads and retains the profile linked to the active Keycloak subject and reuses it in later sessions.",
      "scope": "Add the typed current-profile client, authenticated startup state, loading and recoverable-error handling, logout cleanup, and session restoration. The browser must not send or select a Keycloak subject or persist another pilot's profile as authoritative state. Concrete artifacts are applications/web/src/bootstrap-the-active-pilot-profile-in-the-browser.ts and applications/web/test/bootstrap-the-active-pilot-profile-in-the-browser.spec.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "applications/web/src/bootstrap-the-active-pilot-profile-in-the-browser.ts",
        "applications/web/test/bootstrap-the-active-pilot-profile-in-the-browser.spec.ts"
      ],
      "inputs": [
        "Established authenticated browser session and current-profile API response",
        "Pilot-profile startup states: loading, ready, recoverable failure, signed out",
        "Session restoration and logout events"
      ],
      "outputs": [
        "After authentication, the Web Application loads and retains the profile linked to the active Keycloak subject and reuses it in later sessions."
      ],
      "failure_boundaries": [
        "Do not mark startup ready when the profile response is absent, malformed, or bound to a different session subject",
        "Clear the in-memory pilot profile on logout or session replacement; a cached profile cannot authorize later activity"
      ],
      "exclusions": [
        "Allowing the browser to choose or submit a Keycloak subject",
        "Using browser storage as the authoritative pilot-profile record"
      ],
      "verification_steps": [
        "Run applications/web/test/bootstrap-the-active-pilot-profile-in-the-browser.spec.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with established authenticated browser session and current-profile api response, then assert: After authentication, the Web Application loads and retains the profile linked to the active Keycloak subject and reuses it in later sessions.",
        "Exercise every negative boundary: Do not mark startup ready when the profile response is absent, malformed, or bound to a different session subject; Clear the in-memory pilot profile on logout or session replacement; a cached profile cannot authorize later activity"
      ],
      "dependencies": [
        "TASK-0058"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0038",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #70 reviewed head dd8cb326718e005c2c049aa1b73350c12a8d5917, exact-head required validation tasks 2273, 2274, and 2275 succeeded, merged as df17a52206a85c87627c2fc2290b0bc786bc116f; current integrated application head 79cf7ff67a72b65a89854382e147ef9bda664cbf passed required validation task 2322, publish task 2318, and validate task 2319. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0059",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0059-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0059",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0059",
            "state": "Done",
            "event_id": "FLOW-TASK-0059-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0059",
            "state": "Done",
            "event_id": "FLOW-TASK-0059-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0059",
            "state": "Done",
            "event_id": "FLOW-TASK-0059-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0059.yml",
            "item_id": "TASK-0059",
            "state": "Done",
            "event_id": "FLOW-TASK-0059-DONE-20260915"
          }
        ],
        "previous_hash": "d6b6b3a6bdfc48ece1c549a27f662a206894c49a40c24b083a5e8c171a5def8b",
        "hash": "2228b1a116ba40c93820475eed61709dcd99bd27bd93dabb1434b170ce0002d1"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0059-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0059",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0059",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0059-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0059.yml",
              "item_id": "TASK-0059",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0059-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "3fa5e599d59dedbfc36a6007c7d983a40af6a1c9c5c7e9480d962ebfe22bc1c4"
        },
        {
          "event_id": "FLOW-TASK-0059-IN-PROGRESS-20260905-2",
          "sequence": 2,
          "item_id": "TASK-0059",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-05T19:33:18Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0059-pilot-browser-bootstrap",
              "item_id": "TASK-0059",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0059-IN-PROGRESS-20260905-2"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7de1a447a7aa95c20ec69a66c9713e8e4474b895",
              "item_id": "TASK-0059",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0059-IN-PROGRESS-20260905-2"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0059.yml",
              "item_id": "TASK-0059",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0059-IN-PROGRESS-20260905-2"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0059-pilot-browser-bootstrap",
          "claim_base_sha": "7de1a447a7aa95c20ec69a66c9713e8e4474b895",
          "previous_hash": "3fa5e599d59dedbfc36a6007c7d983a40af6a1c9c5c7e9480d962ebfe22bc1c4",
          "hash": "5561a68f56f6c02190cd545f881b957e92e9340748c4220c9c918f9502f2b04d"
        },
        {
          "event_id": "FLOW-TASK-0059-TO-BE-RELEASED-20260906",
          "sequence": 3,
          "item_id": "TASK-0059",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T08:32:55Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/70",
              "item_id": "TASK-0059",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0059-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/df17a52206a85c87627c2fc2290b0bc786bc116f",
              "item_id": "TASK-0059",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0059-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0059.yml",
              "item_id": "TASK-0059",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0059-TO-BE-RELEASED-20260906"
            }
          ],
          "previous_hash": "5561a68f56f6c02190cd545f881b957e92e9340748c4220c9c918f9502f2b04d",
          "hash": "d6b6b3a6bdfc48ece1c549a27f662a206894c49a40c24b083a5e8c171a5def8b"
        },
        {
          "event_id": "FLOW-TASK-0059-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0059",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0059",
              "state": "Done",
              "event_id": "FLOW-TASK-0059-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0059",
              "state": "Done",
              "event_id": "FLOW-TASK-0059-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0059",
              "state": "Done",
              "event_id": "FLOW-TASK-0059-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0059.yml",
              "item_id": "TASK-0059",
              "state": "Done",
              "event_id": "FLOW-TASK-0059-DONE-20260915"
            }
          ],
          "previous_hash": "d6b6b3a6bdfc48ece1c549a27f662a206894c49a40c24b083a5e8c171a5def8b",
          "hash": "2228b1a116ba40c93820475eed61709dcd99bd27bd93dabb1434b170ce0002d1"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0060",
      "display_id": "AEROSIM-TS-60",
      "title": "Verify profile idempotency and cross-pilot isolation",
      "feature_id": "AEROSIM-FT-31",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-31/aerosim-ts-60/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0060.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Pilot Data Store, API Service, and Web Application — pilot-profile test suites",
      "outcome": "Reviewed evidence demonstrates first-session creation, repeated-session reuse, concurrency-safe non-duplication, and denial of access to another subject's pilot profile.",
      "scope": "Add migration, service, API, concurrency, and browser tests using at least two Keycloak subjects; prove one profile per subject, stable profile identity across sessions, no duplicate creation under simultaneous requests, rejection of caller-supplied subject substitution, and no stored local credentials. Concrete artifacts are prisma/schema.prisma and tests/integration/verify-profile-idempotency-and-cross-pilot-isolation.spec.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "prisma/schema.prisma",
        "prisma/migrations/verify-profile-idempotency-and-cross-pilot-isolation/migration.sql",
        "tests/integration/verify-profile-idempotency-and-cross-pilot-isolation.spec.ts"
      ],
      "inputs": [
        "Two distinct Keycloak-subject fixtures plus repeated and concurrent current-profile requests",
        "Fresh and migrated Pilot schema instances",
        "Browser login, logout, and later-login scenarios"
      ],
      "outputs": [
        "Reviewed evidence demonstrates first-session creation, repeated-session reuse, concurrency-safe non-duplication, and denial of access to another subject's pilot profile."
      ],
      "failure_boundaries": [
        "Fail if concurrent requests create duplicate profiles or later sessions resolve a different profile identifier for the same subject",
        "Fail on any cross-subject profile disclosure, caller-supplied subject substitution, or stored local credential field"
      ],
      "exclusions": [
        "Load testing unrelated profile endpoints",
        "Validating identity-provider account management outside AeroSim"
      ],
      "verification_steps": [
        "Run tests/integration/verify-profile-idempotency-and-cross-pilot-isolation.spec.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with two distinct keycloak-subject fixtures plus repeated and concurrent current-profile requests, then assert: Reviewed evidence demonstrates first-session creation, repeated-session reuse, concurrency-safe non-duplication, and denial of access to another subject's pilot profile.",
        "Exercise every negative boundary: Fail if concurrent requests create duplicate profiles or later sessions resolve a different profile identifier for the same subject; Fail on any cross-subject profile disclosure, caller-supplied subject substitution, or stored local credential field"
      ],
      "dependencies": [
        "TASK-0059"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0038",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #83 reviewed head 731c5a8a29b1552da5d6527c110b2047ce811ee5, merged as 2dcc2edb615fb952bbc57dc4313f26f603407267; final whole-wave application head 7f26eca79eadef3171564fc60035e9866c2c848e: publication run 3914 succeeded and integration run 3915 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0060",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0060-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0060",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0060",
            "state": "Done",
            "event_id": "FLOW-TASK-0060-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0060",
            "state": "Done",
            "event_id": "FLOW-TASK-0060-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0060",
            "state": "Done",
            "event_id": "FLOW-TASK-0060-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0060.yml",
            "item_id": "TASK-0060",
            "state": "Done",
            "event_id": "FLOW-TASK-0060-DONE-20260915"
          }
        ],
        "previous_hash": "7c758d1d978a0304569130a77cd6e28b54a318a09f8fd59b59be6842c4aa9321",
        "hash": "731161f8fcd27ab140a4d70fc78d657b5f9129cc6c91329ef8996e5b2e979646"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0060-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0060",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0060",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0060-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0060.yml",
              "item_id": "TASK-0060",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0060-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "0a343a714188b0741b38384892b345f5571075457c74aed8f0cc6fe3e037ee50"
        },
        {
          "event_id": "FLOW-TASK-0060-IN-PROGRESS-20260906",
          "sequence": 2,
          "item_id": "TASK-0060",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T08:33:27Z",
          "conditions": [
            "Whole Wave 14 claim: TASK-0002, TASK-0007, TASK-0047, TASK-0060, and TASK-0076 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0060-profile-isolation",
              "item_id": "TASK-0060",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0060-IN-PROGRESS-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/79cf7ff67a72b65a89854382e147ef9bda664cbf",
              "item_id": "TASK-0060",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0060-IN-PROGRESS-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0060.yml",
              "item_id": "TASK-0060",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0060-IN-PROGRESS-20260906"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0060-profile-isolation",
          "claim_base_sha": "79cf7ff67a72b65a89854382e147ef9bda664cbf",
          "previous_hash": "0a343a714188b0741b38384892b345f5571075457c74aed8f0cc6fe3e037ee50",
          "hash": "7e0c57fe5fd5ec166cc442d3363f5cd475880ed46cac33dd53fc4989fdd32aef"
        },
        {
          "event_id": "FLOW-TASK-0060-TO-BE-RELEASED-20260906",
          "sequence": 3,
          "item_id": "TASK-0060",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T17:14:29Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/83",
              "item_id": "TASK-0060",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0060-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/2dcc2edb615fb952bbc57dc4313f26f603407267",
              "item_id": "TASK-0060",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0060-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7f26eca79eadef3171564fc60035e9866c2c848e",
              "item_id": "TASK-0060",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0060-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3914",
              "item_id": "TASK-0060",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0060-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3915",
              "item_id": "TASK-0060",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0060-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0060.yml",
              "item_id": "TASK-0060",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0060-TO-BE-RELEASED-20260906"
            }
          ],
          "previous_hash": "7e0c57fe5fd5ec166cc442d3363f5cd475880ed46cac33dd53fc4989fdd32aef",
          "hash": "7c758d1d978a0304569130a77cd6e28b54a318a09f8fd59b59be6842c4aa9321"
        },
        {
          "event_id": "FLOW-TASK-0060-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0060",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0060",
              "state": "Done",
              "event_id": "FLOW-TASK-0060-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0060",
              "state": "Done",
              "event_id": "FLOW-TASK-0060-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0060",
              "state": "Done",
              "event_id": "FLOW-TASK-0060-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0060.yml",
              "item_id": "TASK-0060",
              "state": "Done",
              "event_id": "FLOW-TASK-0060-DONE-20260915"
            }
          ],
          "previous_hash": "7c758d1d978a0304569130a77cd6e28b54a318a09f8fd59b59be6842c4aa9321",
          "hash": "731161f8fcd27ab140a4d70fc78d657b5f9129cc6c91329ef8996e5b2e979646"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0061",
      "display_id": "AEROSIM-TS-61",
      "title": "Define the supported preference persistence model",
      "feature_id": "AEROSIM-FT-32",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-32/aerosim-ts-61/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0061.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Pilot Data Store — Preferences and Prisma schema/migrations",
      "outcome": "Supported preference values can be stored against one pilot with deterministic defaults and validation while unsupported or malformed values cannot become canonical state.",
      "scope": "Define a normalized pilot-preference Prisma model with one row per supported key and pilot, typed value constraints, defaults, update timestamps, a unique pilot/key constraint, and a reversible migration. Concrete artifacts are prisma/schema.prisma, prisma/migrations/define-the-supported-preference-persistence-model/migration.sql, and tests/integration/define-the-supported-preference-persistence-model.spec.ts.",
      "implementation_artifacts": [
        "prisma/schema.prisma",
        "prisma/migrations/define-the-supported-preference-persistence-model/migration.sql",
        "tests/integration/define-the-supported-preference-persistence-model.spec.ts"
      ],
      "inputs": [
        "Approved preference-key allowlist with value type, allowed values or bounds, and default for each key",
        "Pilot foreign-key relationship and current Prisma migration baseline",
        "Timestamp and last-valid-value semantics for preference updates"
      ],
      "outputs": [
        "Supported preference values can be stored against one pilot with deterministic defaults and validation while unsupported or malformed values cannot become canonical state."
      ],
      "failure_boundaries": [
        "Reject unknown keys, values outside the declared type or bounds, and records without a valid pilot owner",
        "Migration failure must leave the prior schema usable and must not create duplicate key records for one pilot"
      ],
      "exclusions": [
        "Arbitrary user-defined settings, secrets, tokens, and browser-only transient state",
        "Global or shared preferences that are not owned by one pilot"
      ],
      "verification_steps": [
        "Run tests/integration/define-the-supported-preference-persistence-model.spec.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with approved preference-key allowlist with value type, allowed values or bounds, and default for each key, then assert: Supported preference values can be stored against one pilot with deterministic defaults and validation while unsupported or malformed values cannot become canonical state.",
        "Exercise every negative boundary: Reject unknown keys, values outside the declared type or bounds, and records without a valid pilot owner; Migration failure must leave the prior schema usable and must not create duplicate key records for one pilot"
      ],
      "dependencies": [
        "TASK-0060"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0039",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #85 reviewed head 816bb4dafa3125082cbe5bc9fa56ed1797b108da passed exact-head application validation run 3922, merged as 594656e7e7e7b732f04fdd97de7667e915340c9d, and integration runs 3924 and 3925 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0061",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0061-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0061",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0061",
            "state": "Done",
            "event_id": "FLOW-TASK-0061-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0061",
            "state": "Done",
            "event_id": "FLOW-TASK-0061-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0061",
            "state": "Done",
            "event_id": "FLOW-TASK-0061-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0061.yml",
            "item_id": "TASK-0061",
            "state": "Done",
            "event_id": "FLOW-TASK-0061-DONE-20260915"
          }
        ],
        "previous_hash": "b50b99f8acea0c5c89a3aa2a98c685d49d42a5229ae06f82ab0052b385c9e948",
        "hash": "204381729e42b05dc8b3643404b4bee5a4cbc0d666eabfd75a008670c49ffdba"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0061-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0061",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0061",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0061-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0061.yml",
              "item_id": "TASK-0061",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0061-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "8429876b04e0ebd257ac2a4b4098260fb3cefa2b8444e658fa863580896ceefc"
        },
        {
          "event_id": "FLOW-TASK-0061-IN-PROGRESS-20260906",
          "sequence": 2,
          "item_id": "TASK-0061",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T17:29:58Z",
          "conditions": [
            "Whole Wave 15 claim: TASK-0048, TASK-0061, TASK-0065, TASK-0077, TASK-0078, TASK-0083, and TASK-0111 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0061-define-supported-preference-persistence-model",
              "item_id": "TASK-0061",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0061-IN-PROGRESS-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7f26eca79eadef3171564fc60035e9866c2c848e",
              "item_id": "TASK-0061",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0061-IN-PROGRESS-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0061.yml",
              "item_id": "TASK-0061",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0061-IN-PROGRESS-20260906"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0061-define-supported-preference-persistence-model",
          "claim_base_sha": "7f26eca79eadef3171564fc60035e9866c2c848e",
          "previous_hash": "8429876b04e0ebd257ac2a4b4098260fb3cefa2b8444e658fa863580896ceefc",
          "hash": "17dc4429846b8d636f94e5818faab6d085976170d9769b04b930680222075a63"
        },
        {
          "event_id": "FLOW-TASK-0061-TO-BE-RELEASED-20260907",
          "sequence": 3,
          "item_id": "TASK-0061",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T07:39:15Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/85",
              "item_id": "TASK-0061",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0061-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/816bb4dafa3125082cbe5bc9fa56ed1797b108da",
              "item_id": "TASK-0061",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0061-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/594656e7e7e7b732f04fdd97de7667e915340c9d",
              "item_id": "TASK-0061",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0061-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3922",
              "item_id": "TASK-0061",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0061-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3924",
              "item_id": "TASK-0061",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0061-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3925",
              "item_id": "TASK-0061",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0061-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0061.yml",
              "item_id": "TASK-0061",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0061-TO-BE-RELEASED-20260907"
            }
          ],
          "previous_hash": "17dc4429846b8d636f94e5818faab6d085976170d9769b04b930680222075a63",
          "hash": "b50b99f8acea0c5c89a3aa2a98c685d49d42a5229ae06f82ab0052b385c9e948"
        },
        {
          "event_id": "FLOW-TASK-0061-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0061",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0061",
              "state": "Done",
              "event_id": "FLOW-TASK-0061-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0061",
              "state": "Done",
              "event_id": "FLOW-TASK-0061-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0061",
              "state": "Done",
              "event_id": "FLOW-TASK-0061-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0061.yml",
              "item_id": "TASK-0061",
              "state": "Done",
              "event_id": "FLOW-TASK-0061-DONE-20260915"
            }
          ],
          "previous_hash": "b50b99f8acea0c5c89a3aa2a98c685d49d42a5229ae06f82ab0052b385c9e948",
          "hash": "204381729e42b05dc8b3643404b4bee5a4cbc0d666eabfd75a008670c49ffdba"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0062",
      "display_id": "AEROSIM-TS-62",
      "title": "Implement pilot-scoped preference read and update operations",
      "feature_id": "AEROSIM-FT-32",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-32/aerosim-ts-62/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0062.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "API Service — Pilot profile service, Fastify HTTP boundary, and Prisma data adapter",
      "outcome": "An authenticated pilot can save supported preference values and retrieve only that pilot's last valid values.",
      "scope": "Implement typed preference read and update routes through the Pilot profile service and Prisma adapter, derive ownership only from authenticated context, validate an allowlist of supported keys and values, apply updates transactionally, and return stable validation and authorization errors. Concrete artifacts are prisma/schema.prisma and tests/integration/pilot-preferences-api.test.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "prisma/schema.prisma",
        "prisma/migrations/implement-pilot-scoped-preference-read-and-update-oper/migration.sql",
        "tests/integration/pilot-preferences-api.test.ts"
      ],
      "inputs": [
        "Authenticated pilot context resolved by the profile service",
        "Typed preference read request or key/value update from the supported allowlist",
        "Current persisted preference set and application defaults"
      ],
      "outputs": [
        "An authenticated pilot can save supported preference values and retrieve only that pilot's last valid values."
      ],
      "failure_boundaries": [
        "Reject unsupported keys, malformed values, subject substitution, and updates without an authenticated pilot before opening a write transaction",
        "On transaction failure, retain the prior valid value and return a stable validation or persistence error"
      ],
      "exclusions": [
        "Bulk replacement of another pilot’s settings",
        "Persisting unsupported UI state or accepting arbitrary JSON preference payloads"
      ],
      "verification_steps": [
        "Run tests/integration/pilot-preferences-api.test.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with authenticated pilot context resolved by the profile service, then assert: An authenticated pilot can save supported preference values and retrieve only that pilot's last valid values.",
        "Exercise every negative boundary: Reject unsupported keys, malformed values, subject substitution, and updates without an authenticated pilot before opening a write transaction; On transaction failure, retain the prior valid value and return a stable validation or persistence error"
      ],
      "dependencies": [
        "TASK-0061"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0039",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #106 implemented pilot-scoped preference read and update operations; forward fixes #109 and #110 repaired exact-head validation artifact transfer. Current integrated application test head 5f57f5b7059c47d7d2632748eeb687f3e9376a72 contains all three merge chains. tests/integration/pilot-preferences-api.test.ts passed 20 tests within the exact-head integration suite. Actions runs 4080 and 4081 passed tasks 3101, 3102, 3103, and 3104 for required validation, full validation, image build, publication, and registry readback. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0062",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0062-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0062",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0062",
            "state": "Done",
            "event_id": "FLOW-TASK-0062-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0062",
            "state": "Done",
            "event_id": "FLOW-TASK-0062-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0062",
            "state": "Done",
            "event_id": "FLOW-TASK-0062-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0062.yml",
            "item_id": "TASK-0062",
            "state": "Done",
            "event_id": "FLOW-TASK-0062-DONE-20260915"
          }
        ],
        "previous_hash": "95f16e37507564cb61b4e686fe5f2175100af8d5c029366ddcb6ea6535b39796",
        "hash": "1ef3ef18a8a2b1b4cf1150ede6590225c822bec05e6ce329f8bfb7b4d2c70e94"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0062-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0062",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0062",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0062-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0062.yml",
              "item_id": "TASK-0062",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0062-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "345e54ad72633cf144e50cd44242dbdb66e1839591469e24d9a027b07d5a356e"
        },
        {
          "event_id": "FLOW-TASK-0062-IN-PROGRESS-20260907",
          "sequence": 2,
          "item_id": "TASK-0062",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T08:12:53Z",
          "conditions": [
            "Whole Wave 16 claim: TASK-0049, TASK-0062, TASK-0066, TASK-0079, TASK-0084, and TASK-0112 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0062-implement-pilot-scoped-preference-read-update",
              "item_id": "TASK-0062",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0062-IN-PROGRESS-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/d624ce2960b43a4edd7babf7b668c117625e8559",
              "item_id": "TASK-0062",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0062-IN-PROGRESS-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0062.yml",
              "item_id": "TASK-0062",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0062-IN-PROGRESS-20260907"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0062-implement-pilot-scoped-preference-read-update",
          "claim_base_sha": "d624ce2960b43a4edd7babf7b668c117625e8559",
          "previous_hash": "345e54ad72633cf144e50cd44242dbdb66e1839591469e24d9a027b07d5a356e",
          "hash": "d85268296afe765b5f9f61d68397cb61e8b4dccc25eaeba389c47e4a3bffe9a2"
        },
        {
          "event_id": "FLOW-TASK-0062-TO-BE-RELEASED-20260908",
          "sequence": 3,
          "item_id": "TASK-0062",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-08T09:28:38Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/106",
              "item_id": "TASK-0062",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0062-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/109",
              "item_id": "TASK-0062",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0062-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/110",
              "item_id": "TASK-0062",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0062-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5f57f5b7059c47d7d2632748eeb687f3e9376a72",
              "item_id": "TASK-0062",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0062-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4080",
              "item_id": "TASK-0062",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0062-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4081",
              "item_id": "TASK-0062",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0062-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0062.yml",
              "item_id": "TASK-0062",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0062-TO-BE-RELEASED-20260908"
            }
          ],
          "previous_hash": "d85268296afe765b5f9f61d68397cb61e8b4dccc25eaeba389c47e4a3bffe9a2",
          "hash": "95f16e37507564cb61b4e686fe5f2175100af8d5c029366ddcb6ea6535b39796"
        },
        {
          "event_id": "FLOW-TASK-0062-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0062",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0062",
              "state": "Done",
              "event_id": "FLOW-TASK-0062-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0062",
              "state": "Done",
              "event_id": "FLOW-TASK-0062-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0062",
              "state": "Done",
              "event_id": "FLOW-TASK-0062-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0062.yml",
              "item_id": "TASK-0062",
              "state": "Done",
              "event_id": "FLOW-TASK-0062-DONE-20260915"
            }
          ],
          "previous_hash": "95f16e37507564cb61b4e686fe5f2175100af8d5c029366ddcb6ea6535b39796",
          "hash": "1ef3ef18a8a2b1b4cf1150ede6590225c822bec05e6ce329f8bfb7b4d2c70e94"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0063",
      "display_id": "AEROSIM-TS-63",
      "title": "Save and restore supported preferences in the Web Application",
      "feature_id": "AEROSIM-FT-32",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-32/aerosim-ts-63/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0063.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Persistence API client and preference state",
      "outcome": "Preference changes are saved for the active pilot and the last valid supported values are restored and applied after a later authenticated session.",
      "scope": "Add typed preference client calls, explicit save-state and failure feedback, authenticated startup retrieval, deterministic merge with defaults, and application of restored current settings. Concrete artifacts are applications/web/src/preferences/pilot-preferences.ts and applications/web/src/preferences/pilot-preferences.test.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "applications/web/src/preferences/pilot-preferences.ts",
        "applications/web/src/preferences/pilot-preferences.test.ts"
      ],
      "inputs": [
        "Authenticated current-pilot profile and typed preference API client",
        "Supported local defaults and the persisted preference response",
        "User change to one supported setting plus save, logout, and later-login events"
      ],
      "outputs": [
        "Preference changes are saved for the active pilot and the last valid supported values are restored and applied after a later authenticated session."
      ],
      "failure_boundaries": [
        "Keep the last applied valid value when a save fails and show that persistence did not succeed",
        "Discard malformed server values, do not apply another pilot’s values, and clear pilot-bound settings on logout before defaults are restored"
      ],
      "exclusions": [
        "Treating unsaved browser state as the persisted preference source",
        "Synchronizing unsupported settings or preferences between pilots"
      ],
      "verification_steps": [
        "Run applications/web/src/preferences/pilot-preferences.test.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with authenticated current-pilot profile and typed preference api client, then assert: Preference changes are saved for the active pilot and the last valid supported values are restored and applied after a later authenticated session.",
        "Exercise every negative boundary: Keep the last applied valid value when a save fails and show that persistence did not succeed; Discard malformed server values, do not apply another pilot’s values, and clear pilot-bound settings on logout before defaults are restored"
      ],
      "dependencies": [
        "TASK-0062"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0039",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #113 exact head 0843b1e005ebbd5c624324f4b0b891f0bf7b7a08 passed main-session review and all eight exact-head jobs in run 4129 attempt 2. Ten focused TASK-0063 tests passed, including save/restore across authenticated sessions, malformed response rejection, explicit save failure feedback, no unauthenticated writes, logout/default restoration, stale cross-pilot result rejection, and concurrent unsaved-change preservation. Merge revision 4988d3c83417a79fab28e9674a71798a1e48b88f passed integration, publication, and exact-revision validation in runs 4130 and 4131 attempt 2. Immutable Harbor tags for that revision were independently read back for Nebula and Singularity. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0063",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0063-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0063",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0063",
            "state": "Done",
            "event_id": "FLOW-TASK-0063-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0063",
            "state": "Done",
            "event_id": "FLOW-TASK-0063-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0063",
            "state": "Done",
            "event_id": "FLOW-TASK-0063-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0063.yml",
            "item_id": "TASK-0063",
            "state": "Done",
            "event_id": "FLOW-TASK-0063-DONE-20260915"
          }
        ],
        "previous_hash": "66253b6a87271f62fcb11da910859ed798d83d82c223f6c64b06cccadc46722a",
        "hash": "ccac0b612d0d9004721a6e542cc05e75699dc280d8098d4a3feb8f756183b535"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0063-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0063",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0063",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0063-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0063.yml",
              "item_id": "TASK-0063",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0063-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "1a0d3ed2eccd511335b2fa948c91dd3d1966d02a0a5a89e062b0c791966981bb"
        },
        {
          "event_id": "FLOW-TASK-0063-IN-PROGRESS-20260908",
          "sequence": 2,
          "item_id": "TASK-0063",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-08T10:58:19Z",
          "conditions": [
            "Whole Wave 17 claim: TASK-0050, TASK-0063, TASK-0067, TASK-0085, TASK-0098, and TASK-0113 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0063-save-restore-web-preferences-1",
              "item_id": "TASK-0063",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0063-IN-PROGRESS-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/113",
              "item_id": "TASK-0063",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0063-IN-PROGRESS-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5f57f5b7059c47d7d2632748eeb687f3e9376a72",
              "item_id": "TASK-0063",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0063-IN-PROGRESS-20260908"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0063.yml",
              "item_id": "TASK-0063",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0063-IN-PROGRESS-20260908"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0063-save-restore-web-preferences-1",
          "claim_base_sha": "5f57f5b7059c47d7d2632748eeb687f3e9376a72",
          "previous_hash": "1a0d3ed2eccd511335b2fa948c91dd3d1966d02a0a5a89e062b0c791966981bb",
          "hash": "de3c7373e7fd38d6df84379d995f3d0d2182eca432728a14d40ce12dffce933f"
        },
        {
          "event_id": "FLOW-TASK-0063-TO-BE-RELEASED-20260908",
          "sequence": 3,
          "item_id": "TASK-0063",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-08T21:39:25Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/113",
              "item_id": "TASK-0063",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0063-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4128",
              "item_id": "TASK-0063",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0063-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4129",
              "item_id": "TASK-0063",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0063-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4130",
              "item_id": "TASK-0063",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0063-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4131",
              "item_id": "TASK-0063",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0063-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0063.yml",
              "item_id": "TASK-0063",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0063-TO-BE-RELEASED-20260908"
            }
          ],
          "previous_hash": "de3c7373e7fd38d6df84379d995f3d0d2182eca432728a14d40ce12dffce933f",
          "hash": "66253b6a87271f62fcb11da910859ed798d83d82c223f6c64b06cccadc46722a"
        },
        {
          "event_id": "FLOW-TASK-0063-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0063",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0063",
              "state": "Done",
              "event_id": "FLOW-TASK-0063-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0063",
              "state": "Done",
              "event_id": "FLOW-TASK-0063-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0063",
              "state": "Done",
              "event_id": "FLOW-TASK-0063-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0063.yml",
              "item_id": "TASK-0063",
              "state": "Done",
              "event_id": "FLOW-TASK-0063-DONE-20260915"
            }
          ],
          "previous_hash": "66253b6a87271f62fcb11da910859ed798d83d82c223f6c64b06cccadc46722a",
          "hash": "ccac0b612d0d9004721a6e542cc05e75699dc280d8098d4a3feb8f756183b535"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0064",
      "display_id": "AEROSIM-TS-64",
      "title": "Verify preference durability, validation, and isolation",
      "feature_id": "AEROSIM-FT-32",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-32/aerosim-ts-64/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0064.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Pilot Data Store, API Service, and Web Application — preference test suites",
      "outcome": "Reviewed evidence demonstrates active-pilot association, later-session restoration of the last valid supported value, rejection of invalid values, and zero cross-pilot preference disclosure or mutation.",
      "scope": "Add schema, API, integration, and browser tests for create and update, last-write restoration, logout and later login, malformed and unsupported values, transaction failure, two-pilot isolation, subject-substitution attempts, and persisted-data integrity. Concrete artifacts are prisma/schema.prisma and tests/integration/verify-preference-durability-validation-and-isolation.spec.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "prisma/schema.prisma",
        "prisma/migrations/verify-preference-durability-validation-and-isolation/migration.sql",
        "tests/integration/verify-preference-durability-validation-and-isolation.spec.ts"
      ],
      "inputs": [
        "Two isolated pilot fixtures, supported and unsupported key/value cases, and repeated updates",
        "Database failure injection around preference transactions",
        "Browser sequence covering save, logout, new session, and restoration"
      ],
      "outputs": [
        "Reviewed evidence demonstrates active-pilot association, later-session restoration of the last valid supported value, rejection of invalid values, and zero cross-pilot preference disclosure or mutation."
      ],
      "failure_boundaries": [
        "Fail if an invalid update changes the last valid persisted value or a transaction leaves a partial preference write",
        "Fail on cross-pilot read or mutation, caller-supplied subject substitution, or restoration of anything other than the final valid value"
      ],
      "exclusions": [
        "Performance benchmarking of the complete settings interface",
        "Evidence for settings not present in the supported preference contract"
      ],
      "verification_steps": [
        "Run tests/integration/verify-preference-durability-validation-and-isolation.spec.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with two isolated pilot fixtures, supported and unsupported key/value cases, and repeated updates, then assert: Reviewed evidence demonstrates active-pilot association, later-session restoration of the last valid supported value, rejection of invalid values, and zero cross-pilot preference disclosure or mutation.",
        "Exercise every negative boundary: Fail if an invalid update changes the last valid persisted value or a transaction leaves a partial preference write; Fail on cross-pilot read or mutation, caller-supplied subject substitution, or restoration of anything other than the final valid value"
      ],
      "dependencies": [
        "TASK-0063"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0039",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #121 merged reviewed head acd5e3ab56c2995945ac6859e8dce25227e6cbff as 2fde37bb128f444eb837cbfe08ea39f62f6040af; five focused real-PostgreSQL tests prove migration invariants, repeated last-write restoration across later sessions, malformed and unsupported value rejection, transaction rollback, and two-pilot isolation with subject-substitution resistance; shipped browser preference tests prove logout state clearing, later-session restoration, and stale-result rejection; full local validation, 120 world-interaction runs, production audit, exact-head CI run 4193, integration/publication run 4194, and integration validation run 4195 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0064",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0064-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0064",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0064",
            "state": "Done",
            "event_id": "FLOW-TASK-0064-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0064",
            "state": "Done",
            "event_id": "FLOW-TASK-0064-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0064",
            "state": "Done",
            "event_id": "FLOW-TASK-0064-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0064.yml",
            "item_id": "TASK-0064",
            "state": "Done",
            "event_id": "FLOW-TASK-0064-DONE-20260915"
          }
        ],
        "previous_hash": "3f06f392ed975cdc019d83a21bb803e17fbb9120f518e16f27ec9bb8c17279c9",
        "hash": "6d683689231d3f726cea17b8a5fb0d7a964ff488bc1002c38b926506e134cd71"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0064-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0064",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0064",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0064-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0064.yml",
              "item_id": "TASK-0064",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0064-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "2c5f4ee617fb8a90f6fb8f618b173311a3cc69839abe804636af5ef297e51023"
        },
        {
          "event_id": "FLOW-TASK-0064-IN-PROGRESS-20260909",
          "sequence": 2,
          "item_id": "TASK-0064",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T10:51:13Z",
          "conditions": [
            "Whole Wave 18 claim: TASK-0051, TASK-0064, TASK-0068, TASK-0080, and TASK-0099 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1547195762671222876",
              "item_id": "TASK-0064",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0064-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0064-verify-preference-durability-isolation-1",
              "item_id": "TASK-0064",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0064-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/121",
              "item_id": "TASK-0064",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0064-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7b6c653af88d4bea3c36f26ccda3e9f66d6171f6",
              "item_id": "TASK-0064",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0064-IN-PROGRESS-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0064.yml",
              "item_id": "TASK-0064",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0064-IN-PROGRESS-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0064-verify-preference-durability-isolation-1",
          "claim_base_sha": "8685927ed3437eefb7a76e51fa41f27b191c48d7",
          "previous_hash": "2c5f4ee617fb8a90f6fb8f618b173311a3cc69839abe804636af5ef297e51023",
          "hash": "ca74054d351b638ea9caaf84105bb0dbd4d491b2ef824cdda06f59fb2754d41b"
        },
        {
          "event_id": "FLOW-TASK-0064-TO-BE-RELEASED-20260909",
          "sequence": 3,
          "item_id": "TASK-0064",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T12:57:29Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/121",
              "item_id": "TASK-0064",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0064-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/2fde37bb128f444eb837cbfe08ea39f62f6040af",
              "item_id": "TASK-0064",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0064-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4193",
              "item_id": "TASK-0064",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0064-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4194",
              "item_id": "TASK-0064",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0064-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4195",
              "item_id": "TASK-0064",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0064-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0064.yml",
              "item_id": "TASK-0064",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0064-TO-BE-RELEASED-20260909"
            }
          ],
          "previous_hash": "ca74054d351b638ea9caaf84105bb0dbd4d491b2ef824cdda06f59fb2754d41b",
          "hash": "3f06f392ed975cdc019d83a21bb803e17fbb9120f518e16f27ec9bb8c17279c9"
        },
        {
          "event_id": "FLOW-TASK-0064-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0064",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0064",
              "state": "Done",
              "event_id": "FLOW-TASK-0064-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0064",
              "state": "Done",
              "event_id": "FLOW-TASK-0064-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0064",
              "state": "Done",
              "event_id": "FLOW-TASK-0064-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0064.yml",
              "item_id": "TASK-0064",
              "state": "Done",
              "event_id": "FLOW-TASK-0064-DONE-20260915"
            }
          ],
          "previous_hash": "3f06f392ed975cdc019d83a21bb803e17fbb9120f518e16f27ec9bb8c17279c9",
          "hash": "6d683689231d3f726cea17b8a5fb0d7a964ff488bc1002c38b926506e134cd71"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0065",
      "display_id": "AEROSIM-TS-65",
      "title": "Define canonical pilot progress and activity records",
      "feature_id": "AEROSIM-FT-33",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-33/aerosim-ts-65/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0065.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Pilot Data Store — Progress, Flight-session metadata, and Prisma schema/migrations",
      "outcome": "Governed flight, lesson, progression, outcome, and resumable-context state has one versioned, pilot-owned persistence model.",
      "scope": "Define Prisma entities and constraints for canonical progress, activity type and identifier, governed state payload version, selected configuration reference, outcome, resumability, and update timestamps; add reversible migrations and reject unversioned or unowned progress records. Concrete artifacts are prisma/schema.prisma and tests/integration/define-canonical-pilot-progress-and-activity-records.spec.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "prisma/schema.prisma",
        "prisma/migrations/define-canonical-pilot-progress-and-activity-records/migration.sql",
        "tests/integration/define-canonical-pilot-progress-and-activity-records.spec.ts"
      ],
      "inputs": [
        "Governed activity type and identifier, state-payload version, selected configuration reference, and pilot owner",
        "Progress checkpoint or terminal outcome with resumability flag and update timestamp",
        "Current Prisma schema and migration baseline"
      ],
      "outputs": [
        "Governed flight, lesson, progression, outcome, and resumable-context state has one versioned, pilot-owned persistence model."
      ],
      "failure_boundaries": [
        "Reject unowned records, unknown activity types, absent payload versions, invalid outcomes, and resumable records without required context",
        "Database constraints must prevent ambiguous duplicate canonical updates for the same pilot activity and migration rollback must preserve prior records"
      ],
      "exclusions": [
        "Raw telemetry streams, replay recordings, and ungoverned client snapshots",
        "Progress records that cannot be associated with one authenticated pilot and one governed activity"
      ],
      "verification_steps": [
        "Run tests/integration/define-canonical-pilot-progress-and-activity-records.spec.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with governed activity type and identifier, state-payload version, selected configuration reference, and pilot owner, then assert: Governed flight, lesson, progression, outcome, and resumable-context state has one versioned, pilot-owned persistence model.",
        "Exercise every negative boundary: Reject unowned records, unknown activity types, absent payload versions, invalid outcomes, and resumable records without required context; Database constraints must prevent ambiguous duplicate canonical updates for the same pilot activity and migration rollback must preserve prior records"
      ],
      "dependencies": [
        "TASK-0020",
        "TASK-0060"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0040",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #88 reviewed head 6925ea20f95166d9f2196a488949f1750ff35ef6 passed exact-head application validation run 3929, merged as 8bdc4fabaadb563121cb0036dc92dd6ab54bcbc5, and integration runs 3930 and 3931 succeeded. Final forward-fix PR #89 reviewed head ec9ffc1819066c39f9d0d477bf13d896372d30c0 passed exact-head application validation run 3933, merged as 5f3fc008abbb7a7de2a3c47a4ffaa63090a3a855, and final integration runs 3934 and 3935 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0065",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0065-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0065",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0065",
            "state": "Done",
            "event_id": "FLOW-TASK-0065-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0065",
            "state": "Done",
            "event_id": "FLOW-TASK-0065-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0065",
            "state": "Done",
            "event_id": "FLOW-TASK-0065-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0065.yml",
            "item_id": "TASK-0065",
            "state": "Done",
            "event_id": "FLOW-TASK-0065-DONE-20260915"
          }
        ],
        "previous_hash": "f67367dea67bebc64d916f02ec2f567e6319650697ea4ca96e190787e284072e",
        "hash": "0e26b4b9e85489ed1041c39e619241348f0c09f70b0883eed127dedb5bdc5db5"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0065-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0065",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0065",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0065-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0065.yml",
              "item_id": "TASK-0065",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0065-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "d21b9db982e5f21096c4cf5a11184741747633b7bbecf5d933212d14e1ab5af4"
        },
        {
          "event_id": "FLOW-TASK-0065-IN-PROGRESS-20260906",
          "sequence": 2,
          "item_id": "TASK-0065",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T17:29:58Z",
          "conditions": [
            "Whole Wave 15 claim: TASK-0048, TASK-0061, TASK-0065, TASK-0077, TASK-0078, TASK-0083, and TASK-0111 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0065-define-canonical-pilot-progress-activity-records",
              "item_id": "TASK-0065",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0065-IN-PROGRESS-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7f26eca79eadef3171564fc60035e9866c2c848e",
              "item_id": "TASK-0065",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0065-IN-PROGRESS-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0065.yml",
              "item_id": "TASK-0065",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0065-IN-PROGRESS-20260906"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0065-define-canonical-pilot-progress-activity-records",
          "claim_base_sha": "7f26eca79eadef3171564fc60035e9866c2c848e",
          "previous_hash": "d21b9db982e5f21096c4cf5a11184741747633b7bbecf5d933212d14e1ab5af4",
          "hash": "4f2ac6136f76e7a405b5cac44506e805555b493e9c0f38512dfc048ca131f9a2"
        },
        {
          "event_id": "FLOW-TASK-0065-TO-BE-RELEASED-20260907",
          "sequence": 3,
          "item_id": "TASK-0065",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T07:39:15Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/88",
              "item_id": "TASK-0065",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0065-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/6925ea20f95166d9f2196a488949f1750ff35ef6",
              "item_id": "TASK-0065",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0065-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/8bdc4fabaadb563121cb0036dc92dd6ab54bcbc5",
              "item_id": "TASK-0065",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0065-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3929",
              "item_id": "TASK-0065",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0065-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3930",
              "item_id": "TASK-0065",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0065-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3931",
              "item_id": "TASK-0065",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0065-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/89",
              "item_id": "TASK-0065",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0065-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/ec9ffc1819066c39f9d0d477bf13d896372d30c0",
              "item_id": "TASK-0065",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0065-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5f3fc008abbb7a7de2a3c47a4ffaa63090a3a855",
              "item_id": "TASK-0065",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0065-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3933",
              "item_id": "TASK-0065",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0065-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3934",
              "item_id": "TASK-0065",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0065-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3935",
              "item_id": "TASK-0065",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0065-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0065.yml",
              "item_id": "TASK-0065",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0065-TO-BE-RELEASED-20260907"
            }
          ],
          "previous_hash": "4f2ac6136f76e7a405b5cac44506e805555b493e9c0f38512dfc048ca131f9a2",
          "hash": "f67367dea67bebc64d916f02ec2f567e6319650697ea4ca96e190787e284072e"
        },
        {
          "event_id": "FLOW-TASK-0065-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0065",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0065",
              "state": "Done",
              "event_id": "FLOW-TASK-0065-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0065",
              "state": "Done",
              "event_id": "FLOW-TASK-0065-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0065",
              "state": "Done",
              "event_id": "FLOW-TASK-0065-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0065.yml",
              "item_id": "TASK-0065",
              "state": "Done",
              "event_id": "FLOW-TASK-0065-DONE-20260915"
            }
          ],
          "previous_hash": "f67367dea67bebc64d916f02ec2f567e6319650697ea4ca96e190787e284072e",
          "hash": "0e26b4b9e85489ed1041c39e619241348f0c09f70b0883eed127dedb5bdc5db5"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0066",
      "display_id": "AEROSIM-TS-66",
      "title": "Implement transactional progress persistence and retrieval",
      "feature_id": "AEROSIM-FT-33",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-33/aerosim-ts-66/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0066.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "API Service — Progress service, Fastify HTTP boundary, and Prisma data adapter",
      "outcome": "The API transactionally stores governed progress for the active pilot and returns that same pilot's canonical latest state in a later session.",
      "scope": "Implement validated progress write and read contracts in the Progress service, derive pilot ownership from authenticated context, enforce payload and activity-version compatibility, order canonical updates deterministically, preserve resumable context, and map invalid or stale writes to stable errors. Concrete artifacts are prisma/schema.prisma and tests/integration/progress-persistence.test.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "prisma/schema.prisma",
        "prisma/migrations/implement-transactional-progress-persistence-and-retri/migration.sql",
        "tests/integration/progress-persistence.test.ts"
      ],
      "inputs": [
        "Authenticated pilot context and validated progress write contract",
        "Governed activity definition and supported state-payload version",
        "Existing canonical updates used for deterministic latest-state selection"
      ],
      "outputs": [
        "The API transactionally stores governed progress for the active pilot and returns that same pilot's canonical latest state in a later session."
      ],
      "failure_boundaries": [
        "Reject malformed, stale, unsupported-version, wrong-activity, or wrong-pilot writes without changing canonical progress",
        "An interrupted transaction or duplicate idempotent retry must not create a partial or second canonical checkpoint"
      ],
      "exclusions": [
        "Accepting browser timestamps as the sole ordering authority",
        "Persisting continuous flight telemetry or non-governed simulation state"
      ],
      "verification_steps": [
        "Run tests/integration/progress-persistence.test.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with authenticated pilot context and validated progress write contract, then assert: The API transactionally stores governed progress for the active pilot and returns that same pilot's canonical latest state in a later session.",
        "Exercise every negative boundary: Reject malformed, stale, unsupported-version, wrong-activity, or wrong-pilot writes without changing canonical progress; An interrupted transaction or duplicate idempotent retry must not create a partial or second canonical checkpoint"
      ],
      "dependencies": [
        "TASK-0065"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0040",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #100 reviewed head 5165681b6e4435b3abbd1e9cd510315d225086cb passed all seven exact-head required jobs in tasks 3033, 3034, 3035, 3036, 3037, 3038, and 3039 after the test-first cross-schema DDL-race repair, merged as 00d2582bb561802e5ec2c15f668fb2d50a1ca798, and exact integration/publication tasks 3040, 3041, 3042, and 3044 succeeded. The reviewed implementation provides transactional pilot-owned progress persistence, deterministic latest-state retrieval, immutable idempotency receipts, stale/version/activity validation, rollback, concurrency, isolation, and legacy-upgrade coverage. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0066",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0066-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0066",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0066",
            "state": "Done",
            "event_id": "FLOW-TASK-0066-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0066",
            "state": "Done",
            "event_id": "FLOW-TASK-0066-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0066",
            "state": "Done",
            "event_id": "FLOW-TASK-0066-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0066.yml",
            "item_id": "TASK-0066",
            "state": "Done",
            "event_id": "FLOW-TASK-0066-DONE-20260915"
          }
        ],
        "previous_hash": "39107c708815821eadd646eb6f5c3a7cc9f682c00e148f7c228cd6abc8c2fed5",
        "hash": "ea118fa1543968b0f0783ae5d7e4da52b83bbef32d33327c76ed915a74985e4e"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0066-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0066",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0066",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0066-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0066.yml",
              "item_id": "TASK-0066",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0066-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "f2dc73a7c1b1165c3aa6eb17dcff73845cd3e786440f4d1a0cd680e32d033146"
        },
        {
          "event_id": "FLOW-TASK-0066-IN-PROGRESS-20260907",
          "sequence": 2,
          "item_id": "TASK-0066",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T08:12:53Z",
          "conditions": [
            "Whole Wave 16 claim: TASK-0049, TASK-0062, TASK-0066, TASK-0079, TASK-0084, and TASK-0112 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0066-implement-transactional-progress-persistence-retrieval",
              "item_id": "TASK-0066",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0066-IN-PROGRESS-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/d624ce2960b43a4edd7babf7b668c117625e8559",
              "item_id": "TASK-0066",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0066-IN-PROGRESS-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0066.yml",
              "item_id": "TASK-0066",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0066-IN-PROGRESS-20260907"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0066-implement-transactional-progress-persistence-retrieval",
          "claim_base_sha": "d624ce2960b43a4edd7babf7b668c117625e8559",
          "previous_hash": "f2dc73a7c1b1165c3aa6eb17dcff73845cd3e786440f4d1a0cd680e32d033146",
          "hash": "1e6d03c3c351e42cc2336ba706ab75d7ff60db8967d99384bfb572f55c604f98"
        },
        {
          "event_id": "FLOW-TASK-0066-TO-BE-RELEASED-20260907",
          "sequence": 3,
          "item_id": "TASK-0066",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T22:23:35Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/100",
              "item_id": "TASK-0066",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0066-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5165681b6e4435b3abbd1e9cd510315d225086cb",
              "item_id": "TASK-0066",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0066-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/00d2582bb561802e5ec2c15f668fb2d50a1ca798",
              "item_id": "TASK-0066",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0066-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4061",
              "item_id": "TASK-0066",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0066-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4062",
              "item_id": "TASK-0066",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0066-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4063",
              "item_id": "TASK-0066",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0066-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0066.yml",
              "item_id": "TASK-0066",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0066-TO-BE-RELEASED-20260907"
            }
          ],
          "previous_hash": "1e6d03c3c351e42cc2336ba706ab75d7ff60db8967d99384bfb572f55c604f98",
          "hash": "39107c708815821eadd646eb6f5c3a7cc9f682c00e148f7c228cd6abc8c2fed5"
        },
        {
          "event_id": "FLOW-TASK-0066-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0066",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0066",
              "state": "Done",
              "event_id": "FLOW-TASK-0066-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0066",
              "state": "Done",
              "event_id": "FLOW-TASK-0066-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0066",
              "state": "Done",
              "event_id": "FLOW-TASK-0066-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0066.yml",
              "item_id": "TASK-0066",
              "state": "Done",
              "event_id": "FLOW-TASK-0066-DONE-20260915"
            }
          ],
          "previous_hash": "39107c708815821eadd646eb6f5c3a7cc9f682c00e148f7c228cd6abc8c2fed5",
          "hash": "ea118fa1543968b0f0783ae5d7e4da52b83bbef32d33327c76ed915a74985e4e"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0067",
      "display_id": "AEROSIM-TS-67",
      "title": "Integrate flight and training progress with the persistence client",
      "feature_id": "AEROSIM-FT-33",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-33/aerosim-ts-67/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0067.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Outcome controller, Persistence API client, and pilot progress state",
      "outcome": "Governed flight and training checkpoints are sent for the active pilot, and a later authenticated session retrieves the canonical state without treating unsaved browser state as authoritative.",
      "scope": "Add typed progress capture and retrieval in the Web Application, map governed flight and training events to the API contract, surface save failures, retry idempotently, reload canonical progress after authentication, and clear pilot progress state on logout. Concrete artifacts are applications/web/src/progress/progress-client.ts and applications/web/src/progress/progress-client.test.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "applications/web/src/progress/progress-client.ts",
        "applications/web/src/progress/progress-client.test.ts"
      ],
      "inputs": [
        "Governed flight or training checkpoint emitted by the outcome controller",
        "Authenticated pilot session and typed persistence API client",
        "Canonical progress response loaded after authentication"
      ],
      "outputs": [
        "Governed flight and training checkpoints are sent for the active pilot, and a later authenticated session retrieves the canonical state without treating unsaved browser state as authoritative."
      ],
      "failure_boundaries": [
        "Surface a failed save without marking the checkpoint persisted; an idempotent retry may not duplicate the update",
        "Reject malformed or mismatched canonical progress responses and clear all pilot-bound progress on logout or subject replacement"
      ],
      "exclusions": [
        "Making unsaved browser progress authoritative after reload",
        "Capturing every simulation frame, raw control sample, or diagnostic telemetry event"
      ],
      "verification_steps": [
        "Run applications/web/src/progress/progress-client.test.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with governed flight or training checkpoint emitted by the outcome controller, then assert: Governed flight and training checkpoints are sent for the active pilot, and a later authenticated session retrieves the canonical state without treating unsaved browser state as authoritative.",
        "Exercise every negative boundary: Surface a failed save without marking the checkpoint persisted; an idempotent retry may not duplicate the update; Reject malformed or mismatched canonical progress responses and clear all pilot-bound progress on logout or subject replacement"
      ],
      "dependencies": [
        "TASK-0066"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0040",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #114 reviewed head 5d674ace2e77116f256e1cfcbd18e1d167b91675 passed exact-head jobs 3296 through 3303 and merged as 727abd463f48c97207480655409df7a82b046d02. Integration jobs 3304 through 3307 succeeded. Eight focused tests prove governed flight and lesson checkpoint capture, canonical later-session restoration, surfaced failures, identical idempotent retry, strict acknowledgement and response validation, recursive pilot-identity rejection, late-response invalidation, immediate subject-replacement clearing, unauthenticated retry clearing, and logout cleanup. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0067",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0067-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0067",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0067",
            "state": "Done",
            "event_id": "FLOW-TASK-0067-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0067",
            "state": "Done",
            "event_id": "FLOW-TASK-0067-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0067",
            "state": "Done",
            "event_id": "FLOW-TASK-0067-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0067.yml",
            "item_id": "TASK-0067",
            "state": "Done",
            "event_id": "FLOW-TASK-0067-DONE-20260915"
          }
        ],
        "previous_hash": "b5e2f3e16e7a7384dc592d2b1f2a00863e1182900ec8fda4abfb0766b38f9906",
        "hash": "3c5227cca539a67c19d1f0727ef96427d3cd2ab80c258139321018838b695c10"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0067-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0067",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0067",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0067-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0067.yml",
              "item_id": "TASK-0067",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0067-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "68650db050d62f8c0abdef9529bac8c2c573705217a8acbd4acea7ceb4b02401"
        },
        {
          "event_id": "FLOW-TASK-0067-IN-PROGRESS-20260908",
          "sequence": 2,
          "item_id": "TASK-0067",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-08T10:58:19Z",
          "conditions": [
            "Whole Wave 17 claim: TASK-0050, TASK-0063, TASK-0067, TASK-0085, TASK-0098, and TASK-0113 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0067-integrate-progress-client-1",
              "item_id": "TASK-0067",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0067-IN-PROGRESS-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/114",
              "item_id": "TASK-0067",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0067-IN-PROGRESS-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5f57f5b7059c47d7d2632748eeb687f3e9376a72",
              "item_id": "TASK-0067",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0067-IN-PROGRESS-20260908"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0067.yml",
              "item_id": "TASK-0067",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0067-IN-PROGRESS-20260908"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0067-integrate-progress-client-1",
          "claim_base_sha": "5f57f5b7059c47d7d2632748eeb687f3e9376a72",
          "previous_hash": "68650db050d62f8c0abdef9529bac8c2c573705217a8acbd4acea7ceb4b02401",
          "hash": "7714e3df54a31adaa28f419da44ff00c67aad1f70e65ada966dc0031387a370c"
        },
        {
          "event_id": "FLOW-TASK-0067-TO-BE-RELEASED-20260908",
          "sequence": 3,
          "item_id": "TASK-0067",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-08T23:43:52Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/114",
              "item_id": "TASK-0067",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0067-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/727abd463f48c97207480655409df7a82b046d02",
              "item_id": "TASK-0067",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0067-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4144",
              "item_id": "TASK-0067",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0067-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4145",
              "item_id": "TASK-0067",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0067-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0067.yml",
              "item_id": "TASK-0067",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0067-TO-BE-RELEASED-20260908"
            }
          ],
          "previous_hash": "7714e3df54a31adaa28f419da44ff00c67aad1f70e65ada966dc0031387a370c",
          "hash": "b5e2f3e16e7a7384dc592d2b1f2a00863e1182900ec8fda4abfb0766b38f9906"
        },
        {
          "event_id": "FLOW-TASK-0067-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0067",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0067",
              "state": "Done",
              "event_id": "FLOW-TASK-0067-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0067",
              "state": "Done",
              "event_id": "FLOW-TASK-0067-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0067",
              "state": "Done",
              "event_id": "FLOW-TASK-0067-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0067.yml",
              "item_id": "TASK-0067",
              "state": "Done",
              "event_id": "FLOW-TASK-0067-DONE-20260915"
            }
          ],
          "previous_hash": "b5e2f3e16e7a7384dc592d2b1f2a00863e1182900ec8fda4abfb0766b38f9906",
          "hash": "3c5227cca539a67c19d1f0727ef96427d3cd2ab80c258139321018838b695c10"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0068",
      "display_id": "AEROSIM-TS-68",
      "title": "Verify canonical progress durability and pilot isolation",
      "feature_id": "AEROSIM-FT-33",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-33/aerosim-ts-68/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0068.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Pilot Data Store, API Service, and Web Application — progress test suites",
      "outcome": "Reviewed evidence demonstrates pilot-owned persistence and later retrieval of identical canonical progress, including failure integrity, version validation, and denial of cross-pilot access.",
      "scope": "Add migration, service, API, integration, and browser tests for flight and lesson checkpoints, later-session retrieval, deterministic latest-state selection, duplicate retry idempotency, stale or malformed versions, interrupted transactions, logout cleanup, two-pilot isolation, and persisted-data integrity. Concrete artifacts are prisma/schema.prisma and tests/integration/progress-isolation.test.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "prisma/schema.prisma",
        "prisma/migrations/verify-canonical-progress-durability-and-pilot-isolati/migration.sql",
        "tests/integration/progress-isolation.test.ts"
      ],
      "inputs": [
        "Flight and lesson checkpoint fixtures with supported, stale, malformed, and duplicate versions",
        "Two authenticated pilot fixtures and later-session retrieval sequences",
        "Transaction interruption and persisted-record integrity probes"
      ],
      "outputs": [
        "Reviewed evidence demonstrates pilot-owned persistence and later retrieval of identical canonical progress, including failure integrity, version validation, and denial of cross-pilot access."
      ],
      "failure_boundaries": [
        "Fail if the retrieved canonical state differs from the final committed checkpoint or duplicate retries alter deterministic latest-state selection",
        "Fail if interrupted writes leave partial data, logout retains pilot progress in active state, or either pilot can read or change the other’s progress"
      ],
      "exclusions": [
        "Long-duration telemetry retention and replay fidelity",
        "Release verification for activity types outside the governed progress contract"
      ],
      "verification_steps": [
        "Run tests/integration/progress-isolation.test.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with flight and lesson checkpoint fixtures with supported, stale, malformed, and duplicate versions, then assert: Reviewed evidence demonstrates pilot-owned persistence and later retrieval of identical canonical progress, including failure integrity, version validation, and denial of cross-pilot access.",
        "Exercise every negative boundary: Fail if the retrieved canonical state differs from the final committed checkpoint or duplicate retries alter deterministic latest-state selection; Fail if interrupted writes leave partial data, logout retains pilot progress in active state, or either pilot can read or change the other’s progress"
      ],
      "dependencies": [
        "TASK-0067"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0040",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #122 merged reviewed head 94a07d864f84bad4f6a82f3f8dadfa1723303027 as 9fc1b286c7c220a7fdb696fd20905eecb2e0b00a; six focused real-PostgreSQL tests prove flight and lesson checkpoint durability, exact later-session retrieval, canonical latest-state ordering, duplicate retry idempotency, stale/malformed/version rejection, interrupted-transaction rollback, logout cleanup, and two-pilot isolation; full local validation, 120 world-interaction runs, production audit, exact-head CI run 4201, integration/publication run 4202, and integration validation run 4203 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0068",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0068-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0068",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0068",
            "state": "Done",
            "event_id": "FLOW-TASK-0068-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0068",
            "state": "Done",
            "event_id": "FLOW-TASK-0068-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0068",
            "state": "Done",
            "event_id": "FLOW-TASK-0068-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0068.yml",
            "item_id": "TASK-0068",
            "state": "Done",
            "event_id": "FLOW-TASK-0068-DONE-20260915"
          }
        ],
        "previous_hash": "3a095b35f21d37466c415ebc78c8d190ab1a48b2877880c4b2bf78da10e507a4",
        "hash": "71e6e5e5afa18fbb5e34e79989cfab5a54e287f5b25ac1593cc8f941843da66f"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0068-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0068",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0068",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0068-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0068.yml",
              "item_id": "TASK-0068",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0068-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "8565e2413456670cbb30900bc8e84ae66dc5b8043bbde3691afd2d94a41e76b0"
        },
        {
          "event_id": "FLOW-TASK-0068-IN-PROGRESS-20260909",
          "sequence": 2,
          "item_id": "TASK-0068",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T10:51:13Z",
          "conditions": [
            "Whole Wave 18 claim: TASK-0051, TASK-0064, TASK-0068, TASK-0080, and TASK-0099 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1547195762671222876",
              "item_id": "TASK-0068",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0068-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0068-verify-progress-durability-isolation-1",
              "item_id": "TASK-0068",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0068-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/122",
              "item_id": "TASK-0068",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0068-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/d52cdde9a154764b3c493934a47f59e840fb53e1",
              "item_id": "TASK-0068",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0068-IN-PROGRESS-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0068.yml",
              "item_id": "TASK-0068",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0068-IN-PROGRESS-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0068-verify-progress-durability-isolation-1",
          "claim_base_sha": "8685927ed3437eefb7a76e51fa41f27b191c48d7",
          "previous_hash": "8565e2413456670cbb30900bc8e84ae66dc5b8043bbde3691afd2d94a41e76b0",
          "hash": "1899c690045dc9a715bef3faf591450323eb843551afea080058a3e55565f490"
        },
        {
          "event_id": "FLOW-TASK-0068-TO-BE-RELEASED-20260909",
          "sequence": 3,
          "item_id": "TASK-0068",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T14:42:31Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/122",
              "item_id": "TASK-0068",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0068-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/9fc1b286c7c220a7fdb696fd20905eecb2e0b00a",
              "item_id": "TASK-0068",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0068-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4201",
              "item_id": "TASK-0068",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0068-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4202",
              "item_id": "TASK-0068",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0068-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4203",
              "item_id": "TASK-0068",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0068-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0068.yml",
              "item_id": "TASK-0068",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0068-TO-BE-RELEASED-20260909"
            }
          ],
          "previous_hash": "1899c690045dc9a715bef3faf591450323eb843551afea080058a3e55565f490",
          "hash": "3a095b35f21d37466c415ebc78c8d190ab1a48b2877880c4b2bf78da10e507a4"
        },
        {
          "event_id": "FLOW-TASK-0068-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0068",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0068",
              "state": "Done",
              "event_id": "FLOW-TASK-0068-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0068",
              "state": "Done",
              "event_id": "FLOW-TASK-0068-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0068",
              "state": "Done",
              "event_id": "FLOW-TASK-0068-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0068.yml",
              "item_id": "TASK-0068",
              "state": "Done",
              "event_id": "FLOW-TASK-0068-DONE-20260915"
            }
          ],
          "previous_hash": "3a095b35f21d37466c415ebc78c8d190ab1a48b2877880c4b2bf78da10e507a4",
          "hash": "71e6e5e5afa18fbb5e34e79989cfab5a54e287f5b25ac1593cc8f941843da66f"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0069",
      "display_id": "AEROSIM-TS-69",
      "title": "Classify the latest resumable activity in the Progress service",
      "feature_id": "AEROSIM-FT-34",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-34/aerosim-ts-69/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0069.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "API Service — Progress service and Prisma data adapter",
      "outcome": "The API returns a most-recent activity only when its pilot-owned canonical state is complete, supported, and actually resumable.",
      "scope": "Implement deterministic latest-activity selection, validate activity type, state version, required context, governed resource references, and resumability flags, and return a typed no-resumable-activity result rather than exposing malformed, completed, failed, aborted, unsupported, or another pilot's state. Concrete artifacts are prisma/schema.prisma and tests/integration/classify-the-latest-resumable-activity-in-the-progress.spec.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "prisma/schema.prisma",
        "prisma/migrations/classify-the-latest-resumable-activity-in-the-progress/migration.sql",
        "tests/integration/classify-the-latest-resumable-activity-in-the-progress.spec.ts"
      ],
      "inputs": [
        "Pilot-owned canonical activity records ordered by committed update semantics",
        "Supported activity types and state-payload versions with required resume-context fields",
        "Current governed resource references, outcome, and resumability flag"
      ],
      "outputs": [
        "The API returns a most-recent activity only when its pilot-owned canonical state is complete, supported, and actually resumable."
      ],
      "failure_boundaries": [
        "Return no resumable activity for malformed, completed, failed, aborted, unsupported-version, missing-context, or deleted-resource records",
        "Never inspect or return another pilot’s activity when selecting the latest candidate"
      ],
      "exclusions": [
        "Repairing invalid progress records during read",
        "Ranking suggested or previously completed activities as resumable"
      ],
      "verification_steps": [
        "Run tests/integration/classify-the-latest-resumable-activity-in-the-progress.spec.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with pilot-owned canonical activity records ordered by committed update semantics, then assert: The API returns a most-recent activity only when its pilot-owned canonical state is complete, supported, and actually resumable.",
        "Exercise every negative boundary: Return no resumable activity for malformed, completed, failed, aborted, unsupported-version, missing-context, or deleted-resource records; Never inspect or return another pilot’s activity when selecting the latest candidate"
      ],
      "dependencies": [
        "TASK-0068"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0041",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #128 merged reviewed head 90927140f1d2f9ee0a95039af6f331f9e7e0794d as 46eb3134d2852a8badfdab3b99b146bd05756e59; latestResumablePilotActivity returns the highest committed supported, governed, complete, resumable activity for only the authenticated pilot, or a typed NO_RESUMABLE_ACTIVITY result; focused tests pass 12/12, all integration tests pass 124/124, lint, typecheck, security, build, formatting, and production dependency audit pass; exact-head CI tasks 3620–3628 and integration validation/publication tasks 3629–3632 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0069",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0069-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0069",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0069",
            "state": "Done",
            "event_id": "FLOW-TASK-0069-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0069",
            "state": "Done",
            "event_id": "FLOW-TASK-0069-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0069",
            "state": "Done",
            "event_id": "FLOW-TASK-0069-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0069.yml",
            "item_id": "TASK-0069",
            "state": "Done",
            "event_id": "FLOW-TASK-0069-DONE-20260915"
          }
        ],
        "previous_hash": "107a723832e968265951b98970671bb487fce39626ee8e77064455c7bc61d9b1",
        "hash": "a6ce59eda07d1775b6824ac425b6d13654c6c18f226e4a2ea8cde93b1651ff5f"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0069-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0069",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0069",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0069-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0069.yml",
              "item_id": "TASK-0069",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0069-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "50e7b2de0c98633e9ae68be3b648c080c61d8ab554d476ce9324fb76a45dfe92"
        },
        {
          "event_id": "FLOW-TASK-0069-IN-PROGRESS-20260909",
          "sequence": 2,
          "item_id": "TASK-0069",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T20:34:33Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1547341405666549890",
              "item_id": "TASK-0069",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0069-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0069-classify-resumable-activity-1",
              "item_id": "TASK-0069",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0069-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/128",
              "item_id": "TASK-0069",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0069-IN-PROGRESS-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0069.yml",
              "item_id": "TASK-0069",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0069-IN-PROGRESS-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0069-classify-resumable-activity-1",
          "claim_base_sha": "ade1706b80d1642a6763f2827cfb2e6b3fc8ddaf",
          "previous_hash": "50e7b2de0c98633e9ae68be3b648c080c61d8ab554d476ce9324fb76a45dfe92",
          "hash": "9ae8ad1823defe9437ee1437fe809b52cc17c616a73f6e203894867808e68b0b"
        },
        {
          "event_id": "FLOW-TASK-0069-TO-BE-RELEASED-20260909",
          "sequence": 3,
          "item_id": "TASK-0069",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T21:25:33Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/128",
              "item_id": "TASK-0069",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0069-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/46eb3134d2852a8badfdab3b99b146bd05756e59",
              "item_id": "TASK-0069",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0069-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4248",
              "item_id": "TASK-0069",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0069-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4249",
              "item_id": "TASK-0069",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0069-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0069.yml",
              "item_id": "TASK-0069",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0069-TO-BE-RELEASED-20260909"
            }
          ],
          "previous_hash": "9ae8ad1823defe9437ee1437fe809b52cc17c616a73f6e203894867808e68b0b",
          "hash": "107a723832e968265951b98970671bb487fce39626ee8e77064455c7bc61d9b1"
        },
        {
          "event_id": "FLOW-TASK-0069-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0069",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0069",
              "state": "Done",
              "event_id": "FLOW-TASK-0069-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0069",
              "state": "Done",
              "event_id": "FLOW-TASK-0069-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0069",
              "state": "Done",
              "event_id": "FLOW-TASK-0069-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0069.yml",
              "item_id": "TASK-0069",
              "state": "Done",
              "event_id": "FLOW-TASK-0069-DONE-20260915"
            }
          ],
          "previous_hash": "107a723832e968265951b98970671bb487fce39626ee8e77064455c7bc61d9b1",
          "hash": "a6ce59eda07d1775b6824ac425b6d13654c6c18f226e4a2ea8cde93b1651ff5f"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0070",
      "display_id": "AEROSIM-TS-70",
      "title": "Present only a valid resumable activity on Home",
      "feature_id": "AEROSIM-FT-34",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-34/aerosim-ts-70/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0070.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Home experience, Profile and catalogue API client, and pilot-session state",
      "outcome": "Home offers Resume only for the active pilot's API-confirmed resumable activity and otherwise presents an explicit no-continuation state.",
      "scope": "Load the resumable-activity projection after authenticated startup, render its governed activity label and recorded context summary, suppress Resume for absent or invalid state, handle loading and API failure distinctly, and clear the projection on logout. Concrete artifacts are applications/web/src/present-only-a-valid-resumable-activity-on-home.ts and applications/web/test/present-only-a-valid-resumable-activity-on-home.spec.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "applications/web/src/present-only-a-valid-resumable-activity-on-home.ts",
        "applications/web/test/present-only-a-valid-resumable-activity-on-home.spec.ts"
      ],
      "inputs": [
        "Authenticated startup state and typed latest-resumable-activity response",
        "Activity label, recorded configuration summary, and resume-context identifier",
        "Loading, no-result, API-failure, session-expiry, and logout events"
      ],
      "outputs": [
        "Home offers Resume only for the active pilot's API-confirmed resumable activity and otherwise presents an explicit no-continuation state."
      ],
      "failure_boundaries": [
        "Suppress Resume when the response is absent, malformed, stale for the current session, or explicitly non-resumable",
        "Keep API failure distinct from a valid no-activity result and clear the projection on logout or subject replacement"
      ],
      "exclusions": [
        "Recommending a different activity when no resumable state exists",
        "Constructing resume context from stale browser storage"
      ],
      "verification_steps": [
        "Run applications/web/test/present-only-a-valid-resumable-activity-on-home.spec.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with authenticated startup state and typed latest-resumable-activity response, then assert: Home offers Resume only for the active pilot's API-confirmed resumable activity and otherwise presents an explicit no-continuation state.",
        "Exercise every negative boundary: Suppress Resume when the response is absent, malformed, stale for the current session, or explicitly non-resumable; Keep API failure distinct from a valid no-activity result and clear the projection on logout or subject replacement"
      ],
      "dependencies": [
        "TASK-0069"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0041",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #131 merged reviewed head 008b88fb7b409a4988baf8b0fd87977441ff3b89 as b72932c106010f876f463aec7632129c69670ca5. The Home projection loads only for an authenticated session, presents the API-confirmed Flight or Lesson label and recorded configuration/checkpoint summary, exposes Resume only for an exact valid response, distinguishes loading, no-continuation, and API failure, rejects malformed and identity-bearing responses, suppresses stale cross-session results, and retains logout invalidation until the session provider clears. Focused tests pass 14/14; web tests pass 1,094/1,094 plus invalid-action 11/11 and environment-presentation 27/27; lint, typecheck, formatting, production build, production audit, exact-head CI runs 4292-4293, and integration/publication runs 4294-4295 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0070",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0070-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0070",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0070",
            "state": "Done",
            "event_id": "FLOW-TASK-0070-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0070",
            "state": "Done",
            "event_id": "FLOW-TASK-0070-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0070",
            "state": "Done",
            "event_id": "FLOW-TASK-0070-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0070.yml",
            "item_id": "TASK-0070",
            "state": "Done",
            "event_id": "FLOW-TASK-0070-DONE-20260915"
          }
        ],
        "previous_hash": "69d1f750cf8c41a3c519201b687e24c1fadcb7a03dad812b529dcf472722cd7d",
        "hash": "7e8731ef6714ea4c6375f3c598b9ca1e9c51c9fa6ce1a115e3473ba9b4079d63"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0070-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0070",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0070",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0070-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0070.yml",
              "item_id": "TASK-0070",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0070-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "3f6fa5b74fa094823d1b0fb495ce9d828390358d86ffa65f98d43cc1f5eab4c0"
        },
        {
          "event_id": "FLOW-TASK-0070-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0070",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T05:50:00Z",
          "conditions": [],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0070-present-resumable-home-1",
          "claim_base_sha": "432753c779413a604f873f06327f1ca2eb83afb9",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1547463812720885760",
              "item_id": "TASK-0070",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0070-IN-PROGRESS-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0070-present-resumable-home-1",
              "item_id": "TASK-0070",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0070-IN-PROGRESS-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/131",
              "item_id": "TASK-0070",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0070-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0070.yml",
              "item_id": "TASK-0070",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0070-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "3f6fa5b74fa094823d1b0fb495ce9d828390358d86ffa65f98d43cc1f5eab4c0",
          "hash": "4fe97c7777139c9b9e9404ad5695fe823e1032fe7e5790c5603eb032c2072cfa"
        },
        {
          "event_id": "FLOW-TASK-0070-TO-BE-RELEASED-20260910",
          "sequence": 3,
          "item_id": "TASK-0070",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T06:23:22Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/131",
              "item_id": "TASK-0070",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0070-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/b72932c106010f876f463aec7632129c69670ca5",
              "item_id": "TASK-0070",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0070-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4294",
              "item_id": "TASK-0070",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0070-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4295",
              "item_id": "TASK-0070",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0070-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0070.yml",
              "item_id": "TASK-0070",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0070-TO-BE-RELEASED-20260910"
            }
          ],
          "previous_hash": "4fe97c7777139c9b9e9404ad5695fe823e1032fe7e5790c5603eb032c2072cfa",
          "hash": "69d1f750cf8c41a3c519201b687e24c1fadcb7a03dad812b529dcf472722cd7d"
        },
        {
          "event_id": "FLOW-TASK-0070-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0070",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0070",
              "state": "Done",
              "event_id": "FLOW-TASK-0070-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0070",
              "state": "Done",
              "event_id": "FLOW-TASK-0070-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0070",
              "state": "Done",
              "event_id": "FLOW-TASK-0070-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0070.yml",
              "item_id": "TASK-0070",
              "state": "Done",
              "event_id": "FLOW-TASK-0070-DONE-20260915"
            }
          ],
          "previous_hash": "69d1f750cf8c41a3c519201b687e24c1fadcb7a03dad812b529dcf472722cd7d",
          "hash": "7e8731ef6714ea4c6375f3c598b9ca1e9c51c9fa6ce1a115e3473ba9b4079d63"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0071",
      "display_id": "AEROSIM-TS-71",
      "title": "Restore recorded activity context with explicit fallback reasons",
      "feature_id": "AEROSIM-FT-34",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-34/aerosim-ts-71/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0071.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application and API Service — Flight shell, Progress service, and Persistence API client",
      "outcome": "Selecting Resume reconstructs the recorded governed context for the active pilot or explains a stable reason that continuation is no longer available.",
      "scope": "Implement typed resume-context retrieval and route handoff, revalidate the context immediately before launch, restore the recorded flight or training configuration and canonical progress, and map deleted resources, unsupported versions, completed activity, authorization denial, and transient retrieval failure to explicit non-destructive outcomes. Concrete artifacts are applications/api/src/progress/resume-context.ts and applications/api/src/progress/resume-context.test.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "applications/api/src/progress/resume-context.ts",
        "applications/api/src/progress/resume-context.test.ts"
      ],
      "inputs": [
        "Authenticated pilot and selected resume-context identifier from the Home projection",
        "Fresh canonical activity record, selected flight or training configuration, and persisted progress",
        "Current governed-resource catalogue and supported payload-version registry"
      ],
      "outputs": [
        "Selecting Resume reconstructs the recorded governed context for the active pilot or explains a stable reason that continuation is no longer available."
      ],
      "failure_boundaries": [
        "Do not launch when revalidation finds completed activity, deleted resources, unsupported version, missing context, or pilot mismatch",
        "Map authorization denial and transient retrieval failure to distinct non-destructive results without modifying canonical progress"
      ],
      "exclusions": [
        "Silently substituting a default activity or newer configuration when recorded context is unavailable",
        "Migrating unsupported saved-state versions as part of the resume request"
      ],
      "verification_steps": [
        "Run applications/api/src/progress/resume-context.test.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with authenticated pilot and selected resume-context identifier from the home projection, then assert: Selecting Resume reconstructs the recorded governed context for the active pilot or explains a stable reason that continuation is no longer available.",
        "Exercise every negative boundary: Do not launch when revalidation finds completed activity, deleted resources, unsupported version, missing context, or pilot mismatch; Map authorization denial and transient retrieval failure to distinct non-destructive results without modifying canonical progress"
      ],
      "dependencies": [
        "TASK-0070"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0041",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #135 reviewed head d82b0dd91ffd7fd178ce2d5fe5537636f6b268f9 merged as 7a85e7894f4a85bd79bf1f28fcad756f284640f6. Resume-context service performs two authoritative reads, launches only the fresh pilot-owned supported context, restores exact configuration and progress, and returns stable non-destructive reasons for missing, mismatched, completed, aborted, deleted, unsupported, unauthorized, and transient cases. Focused tests: 9 passed; API suite: 141 passed. Exact-head and post-merge CI runs 4329, 4330, 4331, 4332 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0071",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0071-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0071",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0071",
            "state": "Done",
            "event_id": "FLOW-TASK-0071-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0071",
            "state": "Done",
            "event_id": "FLOW-TASK-0071-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0071",
            "state": "Done",
            "event_id": "FLOW-TASK-0071-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0071.yml",
            "item_id": "TASK-0071",
            "state": "Done",
            "event_id": "FLOW-TASK-0071-DONE-20260915"
          }
        ],
        "previous_hash": "50f392422fd1931f1a9b03fca3df614c8ca73d18f5c3ae351f57741f96bb9927",
        "hash": "c38bac1d974d65220f3651bf0c1807d4a68da7f1dfda806d906086e44f85ac04"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0071-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0071",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0071",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0071-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0071.yml",
              "item_id": "TASK-0071",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0071-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "0f0f854e4978f0a085c160655ccc4c6ef4af777c55a235eb06a0c4f0d7ca2e01"
        },
        {
          "event_id": "FLOW-TASK-0071-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0071",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "decision_date": "2026-09-10T11:25:58Z",
          "conditions": [
            "Whole Wave 21 claim: TASK-0003 and TASK-0071 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0071-resume-context-1",
              "item_id": "TASK-0071",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0071-IN-PROGRESS-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/135",
              "item_id": "TASK-0071",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0071-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0071.yml",
              "item_id": "TASK-0071",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0071-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "0f0f854e4978f0a085c160655ccc4c6ef4af777c55a235eb06a0c4f0d7ca2e01",
          "hash": "64533017af7c999f2e38169a1fc2d098e3c3807255b5cbfbeb1d3324d2bd779f",
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0071-resume-context-1",
          "claim_base_sha": "94ddb9fa3f6b12bd1e6d55e2a63bd668d3525054"
        },
        {
          "event_id": "FLOW-TASK-0071-TO-BE-RELEASED-20260910",
          "sequence": 3,
          "item_id": "TASK-0071",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T12:25:04Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/135",
              "item_id": "TASK-0071",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0071-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7a85e7894f4a85bd79bf1f28fcad756f284640f6",
              "item_id": "TASK-0071",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0071-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4329",
              "item_id": "TASK-0071",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0071-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4330",
              "item_id": "TASK-0071",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0071-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4331",
              "item_id": "TASK-0071",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0071-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4332",
              "item_id": "TASK-0071",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0071-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim-documentation/pulls/202",
              "item_id": "TASK-0071",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0071-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0071.yml",
              "item_id": "TASK-0071",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0071-TO-BE-RELEASED-20260910"
            }
          ],
          "previous_hash": "64533017af7c999f2e38169a1fc2d098e3c3807255b5cbfbeb1d3324d2bd779f",
          "hash": "50f392422fd1931f1a9b03fca3df614c8ca73d18f5c3ae351f57741f96bb9927"
        },
        {
          "event_id": "FLOW-TASK-0071-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0071",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0071",
              "state": "Done",
              "event_id": "FLOW-TASK-0071-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0071",
              "state": "Done",
              "event_id": "FLOW-TASK-0071-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0071",
              "state": "Done",
              "event_id": "FLOW-TASK-0071-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0071.yml",
              "item_id": "TASK-0071",
              "state": "Done",
              "event_id": "FLOW-TASK-0071-DONE-20260915"
            }
          ],
          "previous_hash": "50f392422fd1931f1a9b03fca3df614c8ca73d18f5c3ae351f57741f96bb9927",
          "hash": "c38bac1d974d65220f3651bf0c1807d4a68da7f1dfda806d906086e44f85ac04"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0072",
      "display_id": "AEROSIM-TS-72",
      "title": "Verify resumability filtering, restoration, and isolation",
      "feature_id": "AEROSIM-FT-34",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-34/aerosim-ts-72/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0072.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Pilot Data Store, API Service, and Web Application — resume test suites",
      "outcome": "Reviewed evidence demonstrates that Home identifies only actually resumable activity, Resume restores its recorded context, unavailable continuation yields the correct explanation, and no pilot can discover or resume another pilot's activity.",
      "scope": "Add service, API, integration, and browser tests for valid latest activity, no activity, completed or aborted activity, malformed and unsupported state versions, deleted governed resources, stale state between Home and Resume, successful context restoration, transient failures, session expiry, two-pilot isolation, and subject-substitution attempts. Concrete artifacts are prisma/schema.prisma and tests/integration/verify-resumability-filtering-restoration-and-isolatio.spec.ts; ownership is limited to the listed artifacts and their focused verification.",
      "implementation_artifacts": [
        "prisma/schema.prisma",
        "prisma/migrations/verify-resumability-filtering-restoration-and-isolatio/migration.sql",
        "tests/integration/verify-resumability-filtering-restoration-and-isolatio.spec.ts"
      ],
      "inputs": [
        "Valid, absent, completed, aborted, malformed, unsupported, and deleted-resource activity fixtures",
        "State-change fixture between Home projection and Resume selection",
        "Two pilot sessions plus expired-session and transient-failure cases"
      ],
      "outputs": [
        "Reviewed evidence demonstrates that Home identifies only actually resumable activity, Resume restores its recorded context, unavailable continuation yields the correct explanation, and no pilot can discover or resume another pilot's activity."
      ],
      "failure_boundaries": [
        "Fail if Home offers Resume for any non-resumable fixture or if launch proceeds after immediate revalidation invalidates the context",
        "Fail on cross-pilot discovery, subject substitution, destructive fallback, or restoration that differs from the recorded canonical context"
      ],
      "exclusions": [
        "Testing activity recommendations or restart-from-beginning behavior",
        "Claiming support for state versions or governed resources outside the resume contract"
      ],
      "verification_steps": [
        "Run tests/integration/verify-resumability-filtering-restoration-and-isolatio.spec.ts against the exact implementation revision and retain the complete passing result.",
        "Exercise the positive contract with valid, absent, completed, aborted, malformed, unsupported, and deleted-resource activity fixtures, then assert: Reviewed evidence demonstrates that Home identifies only actually resumable activity, Resume restores its recorded context, unavailable continuation yields the correct explanation, and no pilot can discover or resume another pilot's activity.",
        "Exercise every negative boundary: Fail if Home offers Resume for any non-resumable fixture or if launch proceeds after immediate revalidation invalidates the context; Fail on cross-pilot discovery, subject substitution, destructive fallback, or restoration that differs from the recorded canonical context"
      ],
      "dependencies": [
        "TASK-0071"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0041",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #136 reviewed head 534e638719c3c2ded96ecabdb83c0a5810ac166f merged as 8beeaca6387bdf0a3a319a03957c8f0530475162. Verified explicit resume filtering and immediate revalidation with 12 passing disposable-PostgreSQL integration cases covering exact restoration, invalid activity and state, deleted resources, stale selection, session expiry, transient failure, and cross-pilot isolation. Exact-head and post-merge CI runs 4342, 4343, 4346, 4347 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0072",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0072-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0072",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0072",
            "state": "Done",
            "event_id": "FLOW-TASK-0072-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0072",
            "state": "Done",
            "event_id": "FLOW-TASK-0072-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0072",
            "state": "Done",
            "event_id": "FLOW-TASK-0072-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0072.yml",
            "item_id": "TASK-0072",
            "state": "Done",
            "event_id": "FLOW-TASK-0072-DONE-20260915"
          }
        ],
        "previous_hash": "31af831f23154e9366dee8f9e553d46fa11fb610cbcd6280e1b12f0b3bec18a8",
        "hash": "b044b044cc58ec2e5895e7a155285334646d527610f24eef03197f2ab519c87f"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0072-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0072",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0072",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0072-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0072.yml",
              "item_id": "TASK-0072",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0072-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "df3d2e6c6e63b785a589046b4a6ecaefab5499630c6f471123b0a4a10b14e331"
        },
        {
          "event_id": "FLOW-TASK-0072-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0072",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T13:03:33Z",
          "conditions": [
            "Whole Wave 22 claim: TASK-0072 and TASK-0096 remain one durable ownership unit."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0072-resume-verification-1",
          "claim_base_sha": "7a85e7894f4a85bd79bf1f28fcad756f284640f6",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/136",
              "item_id": "TASK-0072",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0072-IN-PROGRESS-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0072-resume-verification-1",
              "item_id": "TASK-0072",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0072-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0072.yml",
              "item_id": "TASK-0072",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0072-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "df3d2e6c6e63b785a589046b4a6ecaefab5499630c6f471123b0a4a10b14e331",
          "hash": "4ff437ed5d6b059895925d4a2e2dc7e6880d1199e3246d879aff199e846bb9c9"
        },
        {
          "event_id": "FLOW-TASK-0072-TO-BE-RELEASED-20260910",
          "sequence": 3,
          "item_id": "TASK-0072",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T14:06:17Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/136",
              "item_id": "TASK-0072",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0072-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/8beeaca6387bdf0a3a319a03957c8f0530475162",
              "item_id": "TASK-0072",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0072-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4342",
              "item_id": "TASK-0072",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0072-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4343",
              "item_id": "TASK-0072",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0072-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4346",
              "item_id": "TASK-0072",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0072-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4347",
              "item_id": "TASK-0072",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0072-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim-documentation/pulls/204",
              "item_id": "TASK-0072",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0072-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0072.yml",
              "item_id": "TASK-0072",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0072-TO-BE-RELEASED-20260910"
            }
          ],
          "previous_hash": "4ff437ed5d6b059895925d4a2e2dc7e6880d1199e3246d879aff199e846bb9c9",
          "hash": "31af831f23154e9366dee8f9e553d46fa11fb610cbcd6280e1b12f0b3bec18a8"
        },
        {
          "event_id": "FLOW-TASK-0072-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0072",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0072",
              "state": "Done",
              "event_id": "FLOW-TASK-0072-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0072",
              "state": "Done",
              "event_id": "FLOW-TASK-0072-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0072",
              "state": "Done",
              "event_id": "FLOW-TASK-0072-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0072.yml",
              "item_id": "TASK-0072",
              "state": "Done",
              "event_id": "FLOW-TASK-0072-DONE-20260915"
            }
          ],
          "previous_hash": "31af831f23154e9366dee8f9e553d46fa11fb610cbcd6280e1b12f0b3bec18a8",
          "hash": "b044b044cc58ec2e5895e7a155285334646d527610f24eef03197f2ab519c87f"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0073",
      "display_id": "AEROSIM-TS-73",
      "title": "Integrate aircraft state at the fixed simulation step",
      "feature_id": "AEROSIM-FT-1",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-1/aerosim-ts-73/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0073.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "@corp-v1-aerosim/flight-core — fixed-step aircraft integrator",
      "outcome": "Net forces and moments advance aircraft position, velocity, and attitude continuously and reject invalid state transitions.",
      "scope": "Implement advanceAircraftState(previous, forces, fixedStepSeconds): AircraftKinematicState with semi-implicit Euler translation and quaternion-based rotation. Normalize the output quaternion, increment simulationTick exactly once, and return a new state object. The function accepts only FlightForceResult from TASK-0001 and an AircraftMassProperties record.",
      "implementation_artifacts": [
        "packages/flight-core/src/simulation/advance-aircraft-state.ts",
        "packages/flight-core/src/contracts/aircraft-state.ts",
        "packages/flight-core/test/simulation/advance-aircraft-state.spec.ts"
      ],
      "inputs": [
        "AircraftKinematicState {simulationTick,positionM,velocityMps,attitudeQuaternion,angularVelocityRadps}, FlightForceResult, AircraftMassProperties {massKg,inertiaTensorKgM2}, and the configured fixedStepSeconds."
      ],
      "outputs": [
        "A new AircraftKinematicState for simulationTick+1 with finite position, velocity, normalized attitudeQuaternion, and angular velocity; previous state and force payload are unchanged."
      ],
      "failure_boundaries": [
        "Throw AircraftIntegrationError(code='NON_FINITE_INPUT') if any state, force, moment, mass, inertia, or step component is non-finite.",
        "Throw AircraftIntegrationError(code='INVALID_MASS_PROPERTIES') for mass <= 0 or a non-positive-definite inertia tensor.",
        "Throw AircraftIntegrationError(code='TICK_DISCONTINUITY') if a caller supplies a force result tagged for a tick other than previous.simulationTick.",
        "Throw AircraftIntegrationError(code='INVALID_RESULT') and retain the previous state when integration produces a non-finite vector or a quaternion norm outside 1±1e-6 after normalization."
      ],
      "exclusions": [
        "Variable-step integration, interpolation for rendering, collision response, wind calculation, autopilot, and replay persistence are not part of this function."
      ],
      "verification_steps": [
        "Run packages/flight-core/test/simulation/advance-aircraft-state.spec.ts.",
        "Verify committed one-step and 600-step straight, climb, bank, and yaw fixtures including exact tick advancement and quaternion normalization.",
        "Inject non-finite state/force fields, invalid mass/inertia, wrong tick, and forced overflow; assert the exact error code and that the previous state is returned unchanged to the coordinator.",
        "Repeat each fixture twice and compare every state component within the committed integrator tolerance."
      ],
      "dependencies": [
        "TASK-0001"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0002"
      ],
      "acceptance_evidence": "Verified delivery: application PR #15 reviewed head 1b88b02170a7022a0ac641483a79ea19898f9351, exact-head validation task 1752 succeeded, merged as 6a949da20c4658d53e3231277dbd9ada50025e80; integrated Gitea Actions publish task 1756 and validate task 1757 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0073",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0073-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0073",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0073",
            "state": "Done",
            "event_id": "FLOW-TASK-0073-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0073",
            "state": "Done",
            "event_id": "FLOW-TASK-0073-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0073",
            "state": "Done",
            "event_id": "FLOW-TASK-0073-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0073.yml",
            "item_id": "TASK-0073",
            "state": "Done",
            "event_id": "FLOW-TASK-0073-DONE-20260915"
          }
        ],
        "previous_hash": "c8893ac98a1d09f093aeaefc5b87d9c2f0aad038eb1e36107387ae88f8855b01",
        "hash": "4ac45d01d816d62bf4117654804e3ace3a3e7fc604ab95a88d80f3a55fbe961c"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0073-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0073",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0073",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0073-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0073.yml",
              "item_id": "TASK-0073",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0073-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "cc8cee478d2b8222a5ba0482ce212defb1e9460184872b71d15d6cf642ddf8ef"
        },
        {
          "event_id": "FLOW-TASK-0073-IN-PROGRESS-20260903",
          "sequence": 2,
          "item_id": "TASK-0073",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T19:37:26Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0073-aircraft-state-integrator",
              "item_id": "TASK-0073",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0073-IN-PROGRESS-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0073.yml",
              "item_id": "TASK-0073",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0073-IN-PROGRESS-20260903"
            }
          ],
          "previous_hash": "cc8cee478d2b8222a5ba0482ce212defb1e9460184872b71d15d6cf642ddf8ef",
          "hash": "39471f3f0211344ca35c7d3b0e8cb049bde21d0730287aa9fd8095ddbe67630d"
        },
        {
          "event_id": "FLOW-TASK-0073-TO-BE-RELEASED-20260903",
          "sequence": 3,
          "item_id": "TASK-0073",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T20:13:20Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/15",
              "item_id": "TASK-0073",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0073-TO-BE-RELEASED-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0073.yml",
              "item_id": "TASK-0073",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0073-TO-BE-RELEASED-20260903"
            }
          ],
          "previous_hash": "39471f3f0211344ca35c7d3b0e8cb049bde21d0730287aa9fd8095ddbe67630d",
          "hash": "c8893ac98a1d09f093aeaefc5b87d9c2f0aad038eb1e36107387ae88f8855b01"
        },
        {
          "event_id": "FLOW-TASK-0073-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0073",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0073",
              "state": "Done",
              "event_id": "FLOW-TASK-0073-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0073",
              "state": "Done",
              "event_id": "FLOW-TASK-0073-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0073",
              "state": "Done",
              "event_id": "FLOW-TASK-0073-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0073.yml",
              "item_id": "TASK-0073",
              "state": "Done",
              "event_id": "FLOW-TASK-0073-DONE-20260915"
            }
          ],
          "previous_hash": "c8893ac98a1d09f093aeaefc5b87d9c2f0aad038eb1e36107387ae88f8855b01",
          "hash": "4ac45d01d816d62bf4117654804e3ace3a3e7fc604ab95a88d80f3a55fbe961c"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0074",
      "display_id": "AEROSIM-TS-74",
      "title": "Build the governed cross-browser motion-trace verifier",
      "feature_id": "AEROSIM-FT-1",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-1/aerosim-ts-74/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0074.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web flight runtime — deterministic trace recorder and comparator",
      "outcome": "Identical builds, initial states, timed inputs, fixed timesteps, and seeds produce equivalent governed motion traces across every certified browser.",
      "scope": "Create MotionTraceRequest and MotionTraceReport contracts plus a Playwright trace runner for Chromium, Firefox, and WebKit. Replay one build SHA, AircraftKinematicState, AircraftHandlingConfig, EnvironmentSnapshot, seed, 60 Hz fixed step, and tick-indexed ControlCommand sequence; sample state every 60 ticks for 3,600 ticks and compare position, speed, attitude, and angular-rate drift against config/determinism-tolerances.json.",
      "implementation_artifacts": [
        "applications/web/src/flight/trace/motion-trace.ts",
        "applications/web/test/flight/motion-trace.browser.spec.ts",
        "applications/web/test/fixtures/motion-traces/basic-flight.json",
        "config/determinism-tolerances.json"
      ],
      "inputs": [
        "MotionTraceRequest {buildSha,browser,seed,fixedStepSeconds,stepCount,initialState,aircraftConfigId,environmentSnapshot,commands:[{simulationTick,axes}]} with commands sorted by unique simulationTick."
      ],
      "outputs": [
        "MotionTraceReport {requestDigest,samples:[{tick,positionM,speedMps,attitudeQuaternion,angularVelocityRadps}],maxDriftByField,passed,violations}; requestDigest binds the build, fixture, seed, timestep, and commands."
      ],
      "failure_boundaries": [
        "Mark the run failed with TRACE_FIXTURE_INVALID when stepCount is not 3,600, fixedStepSeconds is not 1/60, commands are unsorted/duplicated, or a referenced configuration is absent.",
        "Mark the run failed with TRACE_NON_FINITE_SAMPLE at the first non-finite sampled component and include browser and simulationTick; do not compare later samples.",
        "Mark the report passed=false with TRACE_TOLERANCE_EXCEEDED when any configured per-field drift or accumulated position drift is exceeded.",
        "Mark the run failed with TRACE_BROWSER_INCOMPLETE when any of Chromium, Firefox, or WebKit does not produce a report for the same requestDigest."
      ],
      "exclusions": [
        "Bit-for-bit equality, browsers outside Chromium/Firefox/WebKit, GPU pixel comparison, network latency, and multi-aircraft simulation are not certified by this trace."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/motion-trace.browser.spec.ts in Chromium, Firefox, and WebKit.",
        "Replay basic-flight.json twice per browser; assert matching requestDigest, 61 samples, no non-finite values, and every drift field within config/determinism-tolerances.json.",
        "Corrupt timestep, command order, one sample, and one browser result; assert TRACE_FIXTURE_INVALID, TRACE_TOLERANCE_EXCEEDED, and TRACE_BROWSER_INCOMPLETE respectively.",
        "Persist each MotionTraceReport as test-results/motion-traces/<browser>.json for exact-revision review."
      ],
      "dependencies": [
        "TASK-0073"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "NFR-0002",
        "NFR-0006",
        "NFR-0009"
      ],
      "acceptance_evidence": "Verified delivery: application PR #20 reviewed head beca8ca26c5781d52a6aed39ed8fae5b2cbd440b, exact-head validation task 1785 succeeded, merged as 98e377b71d37e5606af0e35d7bb08ccf83e63e0b; integrated Gitea Actions publish task 1786 and validate task 1787 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0074",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0074-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0074",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0074",
            "state": "Done",
            "event_id": "FLOW-TASK-0074-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0074",
            "state": "Done",
            "event_id": "FLOW-TASK-0074-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0074",
            "state": "Done",
            "event_id": "FLOW-TASK-0074-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0074.yml",
            "item_id": "TASK-0074",
            "state": "Done",
            "event_id": "FLOW-TASK-0074-DONE-20260915"
          }
        ],
        "previous_hash": "96d3e464abf8c034ac28520a4e33825dd380d85d76c4033e31981917ad7b0bc4",
        "hash": "e5bce06635820d63b78b73e0ffec25abfffb9c287b632f895635385b34beb679"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0074-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0074",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0074",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0074-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0074.yml",
              "item_id": "TASK-0074",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0074-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "8706ee67ed19afc18f0ed5ae758ba26278cd97f1693a22f6de330bc87544079b"
        },
        {
          "event_id": "FLOW-TASK-0074-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0074",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T23:46:51Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0074-flight-core",
              "item_id": "TASK-0074",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0074-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0074.yml",
              "item_id": "TASK-0074",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0074-IN-PROGRESS-20260904"
            }
          ],
          "previous_hash": "8706ee67ed19afc18f0ed5ae758ba26278cd97f1693a22f6de330bc87544079b",
          "hash": "4896402f61589b2da0b9ca5390c8e6060bac08af978c1e4ac46c7b2227715005"
        },
        {
          "event_id": "FLOW-TASK-0074-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0074",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T01:55:35Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/20",
              "item_id": "TASK-0074",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0074-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0074.yml",
              "item_id": "TASK-0074",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0074-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "4896402f61589b2da0b9ca5390c8e6060bac08af978c1e4ac46c7b2227715005",
          "hash": "96d3e464abf8c034ac28520a4e33825dd380d85d76c4033e31981917ad7b0bc4"
        },
        {
          "event_id": "FLOW-TASK-0074-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0074",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0074",
              "state": "Done",
              "event_id": "FLOW-TASK-0074-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0074",
              "state": "Done",
              "event_id": "FLOW-TASK-0074-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0074",
              "state": "Done",
              "event_id": "FLOW-TASK-0074-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0074.yml",
              "item_id": "TASK-0074",
              "state": "Done",
              "event_id": "FLOW-TASK-0074-DONE-20260915"
            }
          ],
          "previous_hash": "96d3e464abf8c034ac28520a4e33825dd380d85d76c4033e31981917ad7b0bc4",
          "hash": "e5bce06635820d63b78b73e0ffec25abfffb9c287b632f895635385b34beb679"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0075",
      "display_id": "AEROSIM-TS-75",
      "title": "Verify flight-runtime timing and resource budgets",
      "feature_id": "AEROSIM-FT-1",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-1/aerosim-ts-75/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0075.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web flight runtime — performance and resource budget harness",
      "outcome": "The force-driven motion path satisfies explicit simulation-step, frame-time, CPU, and memory budgets under representative governed traces.",
      "scope": "Benchmark the completed FT-1 simulation path in Chromium, Firefox, and WebKit using basic-flight.json for 21,600 ticks after a 600-tick warm-up. Record p50/p95/p99 simulation-step duration, dropped-render-frame count, process CPU time, and JavaScript heap start/peak/end; compare all values with config/flight-runtime-budgets.json and emit FlightRuntimeBudgetReport.",
      "implementation_artifacts": [
        "applications/web/test/performance/flight-runtime-budget.spec.ts",
        "applications/web/test/performance/collect-flight-runtime-metrics.ts",
        "config/flight-runtime-budgets.json"
      ],
      "inputs": [
        "BenchmarkRun {buildSha,browser,fixtureDigest,warmupTicks:600,measuredTicks:21600,repetition:1..5} and FlightRuntimeBudgets {stepP95Ms,stepP99Ms,maxDroppedFrames,maxCpuSeconds,maxHeapGrowthBytes}."
      ],
      "outputs": [
        "FlightRuntimeBudgetReport {buildSha,browser,fixtureDigest,repetitions,stepMs:{p50,p95,p99},droppedFrames,cpuSeconds,heapBytes:{start,peak,end,growth},budgetViolations,passed}."
      ],
      "failure_boundaries": [
        "Fail with PERF_SAMPLE_INCOMPLETE if a browser supplies fewer than five completed repetitions or any run uses a different build/fixture digest.",
        "Fail with PERF_BUDGET_EXCEEDED and list every breached metric when p95/p99 step time, dropped frames, CPU time, peak heap, or heap growth exceeds its configured limit.",
        "Fail with PERF_METRIC_UNAVAILABLE when required timing, CPU, or heap instrumentation is unavailable; do not silently omit the metric.",
        "Fail with PERF_TRACE_DIVERGED if the benchmark motion digest differs from the accepted EP3-FT1-03 trace digest."
      ],
      "exclusions": [
        "Network/API performance, server capacity, mobile devices, battery consumption, renderer visual quality, and load from features outside FT-1 are not measured."
      ],
      "verification_steps": [
        "Run applications/web/test/performance/flight-runtime-budget.spec.ts for all three browsers with five repetitions.",
        "Validate the report against config/flight-runtime-budgets.json and assert each required metric is present and finite.",
        "Lower each budget independently in a test fixture and disable one metrics provider; assert PERF_BUDGET_EXCEEDED and PERF_METRIC_UNAVAILABLE.",
        "Retain test-results/performance/flight-runtime-budget.json keyed to the exact build SHA and motion fixture digest."
      ],
      "dependencies": [
        "TASK-0074"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "NFR-0001",
        "NFR-0005"
      ],
      "acceptance_evidence": "Verified delivery: application PR #27 reviewed head f50bca31895109ab2c5edd7db055e669ce82aaed, exact-head validation task 1831 succeeded, merged as e8bfe781d3295d445cbc46b297874f066cac8301; Wave 4 integrated application head e8bfe781d3295d445cbc46b297874f066cac8301 passed publish task 1832 and validate task 1833. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0075",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0075-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0075",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0075",
            "state": "Done",
            "event_id": "FLOW-TASK-0075-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0075",
            "state": "Done",
            "event_id": "FLOW-TASK-0075-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0075",
            "state": "Done",
            "event_id": "FLOW-TASK-0075-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0075.yml",
            "item_id": "TASK-0075",
            "state": "Done",
            "event_id": "FLOW-TASK-0075-DONE-20260915"
          }
        ],
        "previous_hash": "6319f88f5a6a416fd054f0860eeaf69bf70aefcb98cb62c99f372da685c3ac84",
        "hash": "015d5cea50388011547d2c8e6b84dad11474da82a50da7f6b3b4b09b8b86e041"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0075-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0075",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0075",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0075-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0075.yml",
              "item_id": "TASK-0075",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0075-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "8f49f11d7b4a8212752f8e9e26681c99cdc9f21c97219032d1c6c6c20742c3c0"
        },
        {
          "event_id": "FLOW-TASK-0075-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0075",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T04:37:32Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0075-runtime-budget-harness",
              "item_id": "TASK-0075",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0075-IN-PROGRESS-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/98e377b71d37e5606af0e35d7bb08ccf83e63e0b",
              "item_id": "TASK-0075",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0075-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0075.yml",
              "item_id": "TASK-0075",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0075-IN-PROGRESS-20260904"
            }
          ],
          "previous_hash": "8f49f11d7b4a8212752f8e9e26681c99cdc9f21c97219032d1c6c6c20742c3c0",
          "hash": "c65e1bb019d9fada81fb335f06dea25fcde92e7518a30b7e89ed3b7ad1e80a9e",
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0075-runtime-budget-harness",
          "claim_base_sha": "98e377b71d37e5606af0e35d7bb08ccf83e63e0b"
        },
        {
          "event_id": "FLOW-TASK-0075-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0075",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T11:52:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/27",
              "item_id": "TASK-0075",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0075-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/e8bfe781d3295d445cbc46b297874f066cac8301",
              "item_id": "TASK-0075",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0075-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0075.yml",
              "item_id": "TASK-0075",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0075-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "c65e1bb019d9fada81fb335f06dea25fcde92e7518a30b7e89ed3b7ad1e80a9e",
          "hash": "6319f88f5a6a416fd054f0860eeaf69bf70aefcb98cb62c99f372da685c3ac84"
        },
        {
          "event_id": "FLOW-TASK-0075-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0075",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0075",
              "state": "Done",
              "event_id": "FLOW-TASK-0075-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0075",
              "state": "Done",
              "event_id": "FLOW-TASK-0075-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0075",
              "state": "Done",
              "event_id": "FLOW-TASK-0075-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0075.yml",
              "item_id": "TASK-0075",
              "state": "Done",
              "event_id": "FLOW-TASK-0075-DONE-20260915"
            }
          ],
          "previous_hash": "6319f88f5a6a416fd054f0860eeaf69bf70aefcb98cb62c99f372da685c3ac84",
          "hash": "015d5cea50388011547d2c8e6b84dad11474da82a50da7f6b3b4b09b8b86e041"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0076",
      "display_id": "AEROSIM-TS-76",
      "title": "Validate and freeze the Flight session condition set",
      "feature_id": "AEROSIM-FT-10",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-10/aerosim-ts-76/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0076.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web pre-flight configurator — environment snapshot factory",
      "outcome": "A launched Flight session owns one validated immutable condition snapshot covering wind, visibility, and governed environmental values.",
      "scope": "Validate FlightConditionSelection {windPresetId,visibilityPresetId,timeOfDayPresetId,seed}, resolve it against versioned preset catalogues, and create a deeply frozen EnvironmentSnapshot when FlightLaunchRequest is accepted. Snapshot fields are windWorldMps, gustAmplitudeMps, gustPeriodTicks, visibilityRangeM, fogDensity, ambientLight, seed, preset digests, and createdAtSimulationTick=0.",
      "implementation_artifacts": [
        "applications/web/src/flight/environment/create-environment-snapshot.ts",
        "applications/web/src/flight/environment/environment-contracts.ts",
        "applications/web/test/flight/environment-snapshot.spec.ts",
        "applications/web/config/environment-presets.v1.json"
      ],
      "inputs": [
        "FlightConditionSelection with known wind, visibility, and time-of-day preset IDs plus a uint32 seed; versioned environment-presets.v1.json records with finite bounded values."
      ],
      "outputs": [
        "EnvironmentSnapshotV1 {schemaVersion:'1',selectionDigest,windWorldMps,gustAmplitudeMps,gustPeriodTicks,visibilityRangeM,fogDensity,ambientLight,seed,presetDigests,createdAtSimulationTick:0}; object and nested values are frozen."
      ],
      "failure_boundaries": [
        "Reject launch with ENVIRONMENT_PRESET_NOT_FOUND and the field name when any preset ID is unknown.",
        "Reject launch with ENVIRONMENT_PRESET_INVALID and JSON-pointer paths when any preset value is missing, non-finite, or outside its schema bound.",
        "Reject launch with ENVIRONMENT_SEED_INVALID unless seed is an integer from 0 through 4294967295.",
        "Emit SESSION_CONFIG_IMMUTABLE and retain the original snapshot when code attempts to replace or mutate conditions after tick 0."
      ],
      "exclusions": [
        "Mid-flight weather changes, live weather ingestion, precipitation, turbulence beyond the configured periodic gust, cloud simulation, and user-authored presets are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/environment-snapshot.spec.ts.",
        "Resolve every committed preset combination and assert canonical selectionDigest, frozen nested state, tick 0 creation, and exact values.",
        "Test unknown IDs, every invalid numeric boundary, invalid seeds, and mutation/replacement after launch; assert exact error codes and no FlightSession creation on validation errors.",
        "Serialize and restore the snapshot and assert byte-equivalent canonical JSON and the same digest."
      ],
      "dependencies": [
        "TASK-0034",
        "TASK-0075"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0017"
      ],
      "acceptance_evidence": "Verified delivery: application PR #76 reviewed head d26e34635cd4ec777feaa595015f3b3156d36bac, merged as 219cd759024afe332d6643df885fffdc3c783198; final whole-wave application head 7f26eca79eadef3171564fc60035e9866c2c848e: publication run 3914 succeeded and integration run 3915 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0076",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0076-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0076",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0076",
            "state": "Done",
            "event_id": "FLOW-TASK-0076-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0076",
            "state": "Done",
            "event_id": "FLOW-TASK-0076-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0076",
            "state": "Done",
            "event_id": "FLOW-TASK-0076-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0076.yml",
            "item_id": "TASK-0076",
            "state": "Done",
            "event_id": "FLOW-TASK-0076-DONE-20260915"
          }
        ],
        "previous_hash": "de0d914e1ef65c3347c65674bf764a15ae130ad112441b61f799e43ed6661445",
        "hash": "d85912724831f35d28e663eb267b2b0354c50465466c94e270311864cd37c12e"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0076-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0076",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0076",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0076-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0076.yml",
              "item_id": "TASK-0076",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0076-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "be8d898fa9349a829a9f9c39d41e5e79cbd712a5b6739e2d2ed0ca2510774ebf"
        },
        {
          "event_id": "FLOW-TASK-0076-IN-PROGRESS-20260906",
          "sequence": 2,
          "item_id": "TASK-0076",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T08:33:27Z",
          "conditions": [
            "Whole Wave 14 claim: TASK-0002, TASK-0007, TASK-0047, TASK-0060, and TASK-0076 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0076-environment-snapshot",
              "item_id": "TASK-0076",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0076-IN-PROGRESS-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/79cf7ff67a72b65a89854382e147ef9bda664cbf",
              "item_id": "TASK-0076",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0076-IN-PROGRESS-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0076.yml",
              "item_id": "TASK-0076",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0076-IN-PROGRESS-20260906"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0076-environment-snapshot",
          "claim_base_sha": "79cf7ff67a72b65a89854382e147ef9bda664cbf",
          "previous_hash": "be8d898fa9349a829a9f9c39d41e5e79cbd712a5b6739e2d2ed0ca2510774ebf",
          "hash": "eae74c91af27a5e568b7f7cdec484c802d7e14fdccabdb5b2e125dabd68f8ad2"
        },
        {
          "event_id": "FLOW-TASK-0076-TO-BE-RELEASED-20260906",
          "sequence": 3,
          "item_id": "TASK-0076",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T17:14:29Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/76",
              "item_id": "TASK-0076",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0076-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/219cd759024afe332d6643df885fffdc3c783198",
              "item_id": "TASK-0076",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0076-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7f26eca79eadef3171564fc60035e9866c2c848e",
              "item_id": "TASK-0076",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0076-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3914",
              "item_id": "TASK-0076",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0076-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3915",
              "item_id": "TASK-0076",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0076-TO-BE-RELEASED-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0076.yml",
              "item_id": "TASK-0076",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0076-TO-BE-RELEASED-20260906"
            }
          ],
          "previous_hash": "eae74c91af27a5e568b7f7cdec484c802d7e14fdccabdb5b2e125dabd68f8ad2",
          "hash": "de0d914e1ef65c3347c65674bf764a15ae130ad112441b61f799e43ed6661445"
        },
        {
          "event_id": "FLOW-TASK-0076-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0076",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0076",
              "state": "Done",
              "event_id": "FLOW-TASK-0076-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0076",
              "state": "Done",
              "event_id": "FLOW-TASK-0076-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0076",
              "state": "Done",
              "event_id": "FLOW-TASK-0076-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0076.yml",
              "item_id": "TASK-0076",
              "state": "Done",
              "event_id": "FLOW-TASK-0076-DONE-20260915"
            }
          ],
          "previous_hash": "de0d914e1ef65c3347c65674bf764a15ae130ad112441b61f799e43ed6661445",
          "hash": "d85912724831f35d28e663eb267b2b0354c50465466c94e270311864cd37c12e"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0077",
      "display_id": "AEROSIM-TS-77",
      "title": "Apply governed wind conditions to aircraft motion",
      "feature_id": "AEROSIM-FT-10",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-10/aerosim-ts-77/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0077.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "@corp-v1-aerosim/flight-core — deterministic wind sampler and force integration",
      "outcome": "The deterministic runtime applies the frozen wind vector and configured variation to aircraft forces at each fixed step.",
      "scope": "Implement sampleWind(snapshot, simulationTick): WindSample using seeded deterministic phase and apply relative air velocity (aircraft velocity minus WindSample.windWorldMps) to TASK-0001 drag/lift calculations. A gust is sampled only from snapshot seed, amplitude, period, and simulationTick; no wall clock or frame delta enters physics.",
      "implementation_artifacts": [
        "packages/flight-core/src/environment/sample-wind.ts",
        "packages/flight-core/src/physics/relative-air-velocity.ts",
        "packages/flight-core/test/environment/wind-effects.spec.ts"
      ],
      "inputs": [
        "EnvironmentSnapshotV1, uint64 simulationTick, and AircraftKinematicState.velocityMps; sampleWind receives no mutable random generator or wall-clock time."
      ],
      "outputs": [
        "WindSample {simulationTick,steadyWindWorldMps,gustWorldMps,windWorldMps} and RelativeAirVelocity {worldMps,speedMps}; both are passed into FlightForceInput for the same tick."
      ],
      "failure_boundaries": [
        "Throw WindModelError(code='ENVIRONMENT_SNAPSHOT_INVALID') for unsupported schema, digest mismatch, or non-finite wind/gust fields.",
        "Throw WindModelError(code='SIMULATION_TICK_INVALID') for a negative, fractional, or regressing tick.",
        "Throw WindModelError(code='GUST_PERIOD_INVALID') when gustPeriodTicks is not a positive integer.",
        "Stop the simulation step with WIND_FORCE_NON_FINITE if wind sampling or relative-air calculation produces a non-finite value; do not advance aircraft state."
      ],
      "exclusions": [
        "Wind collision geometry, rotor wake, terrain-induced flow, stochastic turbulence, precipitation forces, and visual effects are excluded."
      ],
      "verification_steps": [
        "Run packages/flight-core/test/environment/wind-effects.spec.ts.",
        "Assert calm, headwind, tailwind, and crosswind committed vectors, including expected relative-air speed/direction and resulting force change.",
        "Repeat 3,600 gust samples with the same snapshot/ticks and assert exact sample equality; change only the seed and assert a changed phase with unchanged bounds.",
        "Inject invalid snapshot schema/digest, tick, gust period, and non-finite values; assert exact failure and no state advancement."
      ],
      "dependencies": [
        "TASK-0076"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0017"
      ],
      "acceptance_evidence": "Verified delivery: final application PR #97 reviewed head 5ef9244af0387dd31e49ffbda115dd9c9fa60ae5 passed exact-head application validation run 3961, merged as 09628fbb828380fbe159be7530da26f4bbf02129, and integration runs 3962 and 3963 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0077",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0077-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0077",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0077",
            "state": "Done",
            "event_id": "FLOW-TASK-0077-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0077",
            "state": "Done",
            "event_id": "FLOW-TASK-0077-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0077",
            "state": "Done",
            "event_id": "FLOW-TASK-0077-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0077.yml",
            "item_id": "TASK-0077",
            "state": "Done",
            "event_id": "FLOW-TASK-0077-DONE-20260915"
          }
        ],
        "previous_hash": "6126d55ab6ad6638b4724da639dae2c901fc7e8d7c622342e8e9e72b1ae06268",
        "hash": "9619c645424815812c47349467927bf1425162784047e8cfc422785ad5a793dc"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0077-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0077",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0077",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0077-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0077.yml",
              "item_id": "TASK-0077",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0077-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "1532d73196d23ef0ae363836b1c3647a7f8b7038621df96f04de512e4d230b76"
        },
        {
          "event_id": "FLOW-TASK-0077-IN-PROGRESS-20260906",
          "sequence": 2,
          "item_id": "TASK-0077",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T17:29:58Z",
          "conditions": [
            "Whole Wave 15 claim: TASK-0048, TASK-0061, TASK-0065, TASK-0077, TASK-0078, TASK-0083, and TASK-0111 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0077-apply-governed-wind-conditions-aircraft-motion",
              "item_id": "TASK-0077",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0077-IN-PROGRESS-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7f26eca79eadef3171564fc60035e9866c2c848e",
              "item_id": "TASK-0077",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0077-IN-PROGRESS-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0077.yml",
              "item_id": "TASK-0077",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0077-IN-PROGRESS-20260906"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0077-apply-governed-wind-conditions-aircraft-motion",
          "claim_base_sha": "7f26eca79eadef3171564fc60035e9866c2c848e",
          "previous_hash": "1532d73196d23ef0ae363836b1c3647a7f8b7038621df96f04de512e4d230b76",
          "hash": "50c1d225beea96f83e28c4461cbe8c53c93f11f2f8dd0162e6e536d0548a256f"
        },
        {
          "event_id": "FLOW-TASK-0077-TO-BE-RELEASED-20260907",
          "sequence": 3,
          "item_id": "TASK-0077",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T07:39:15Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/97",
              "item_id": "TASK-0077",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0077-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5ef9244af0387dd31e49ffbda115dd9c9fa60ae5",
              "item_id": "TASK-0077",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0077-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/09628fbb828380fbe159be7530da26f4bbf02129",
              "item_id": "TASK-0077",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0077-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3961",
              "item_id": "TASK-0077",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0077-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3962",
              "item_id": "TASK-0077",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0077-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3963",
              "item_id": "TASK-0077",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0077-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0077.yml",
              "item_id": "TASK-0077",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0077-TO-BE-RELEASED-20260907"
            }
          ],
          "previous_hash": "50c1d225beea96f83e28c4461cbe8c53c93f11f2f8dd0162e6e536d0548a256f",
          "hash": "6126d55ab6ad6638b4724da639dae2c901fc7e8d7c622342e8e9e72b1ae06268"
        },
        {
          "event_id": "FLOW-TASK-0077-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0077",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0077",
              "state": "Done",
              "event_id": "FLOW-TASK-0077-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0077",
              "state": "Done",
              "event_id": "FLOW-TASK-0077-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0077",
              "state": "Done",
              "event_id": "FLOW-TASK-0077-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0077.yml",
              "item_id": "TASK-0077",
              "state": "Done",
              "event_id": "FLOW-TASK-0077-DONE-20260915"
            }
          ],
          "previous_hash": "6126d55ab6ad6638b4724da639dae2c901fc7e8d7c622342e8e9e72b1ae06268",
          "hash": "9619c645424815812c47349467927bf1425162784047e8cfc422785ad5a793dc"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0078",
      "display_id": "AEROSIM-TS-78",
      "title": "Render governed visibility and world-condition effects",
      "feature_id": "AEROSIM-FT-10",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-10/aerosim-ts-78/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0078.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web flight scene — environment presenter",
      "outcome": "The flight scene visibly reflects the frozen visibility and supported environmental settings.",
      "scope": "Map EnvironmentSnapshotV1 to EnvironmentPresentationState and apply it to Three.js fog, renderer clear colour/ambient light, horizon visibility marker, and deterministic wind indicator. Derive every frame from the immutable snapshot plus simulationTick; report the snapshot selectionDigest in the in-session conditions panel.",
      "implementation_artifacts": [
        "applications/web/src/flight/presentation/environment-presentation.ts",
        "applications/web/src/flight/scene/apply-environment-presentation.ts",
        "applications/web/test/flight/environment-presentation.browser.spec.ts"
      ],
      "inputs": [
        "EnvironmentSnapshotV1 and simulationTick; Three.js scene handles for Fog, AmbientLight, renderer background, horizon marker, and wind indicator."
      ],
      "outputs": [
        "EnvironmentPresentationState {selectionDigest,fogNearM,fogFarM,fogDensity,ambientLight,backgroundColor,horizonMarkerDistanceM,windIndicator:{directionDeg,speedMps,gustActive}} applied atomically to one rendered frame."
      ],
      "failure_boundaries": [
        "Return ENVIRONMENT_PRESENTATION_UNSUPPORTED for an unknown snapshot schema and keep the last valid scene state.",
        "Return ENVIRONMENT_PRESENTATION_NON_FINITE when calculated fog, light, distance, direction, or speed is non-finite; do not partially update scene objects.",
        "Return ENVIRONMENT_DIGEST_MISMATCH when the conditions panel, presentation state, and active FlightSessionConfig do not share selectionDigest.",
        "Return SCENE_BINDING_MISSING when a required scene handle is absent; session setup remains blocked rather than rendering default conditions."
      ],
      "exclusions": [
        "Photorealistic atmosphere, volumetric clouds, precipitation, HDR calibration, post-processing, and physics wind calculation are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/environment-presentation.browser.spec.ts.",
        "Render calm/clear, crosswind/haze, and low-visibility fixtures; assert scene property values, wind indicator state, horizon distance, and displayed selectionDigest.",
        "Inject unsupported schema, non-finite derivation, mismatched digest, and each missing scene binding; assert atomic rollback to last valid presentation state.",
        "Advance simulationTick through one gust period and assert the indicator changes from the same WindSample used by physics."
      ],
      "dependencies": [
        "TASK-0076"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0017"
      ],
      "acceptance_evidence": "Verified delivery: application PR #98 reviewed head d3016544aa6e860cdfc0883885b8675ce6105949 passed exact-head application validation run 3972, merged as 7fa431152cbebdf208925920384d5ddc8bb731a4, and integration runs 3973 and 3974 succeeded. Final forward-fix PR #99 reviewed head a4d310baa3ad7d2a5431ba510388b085539aea4b passed exact-head application validation run 3976, merged as d624ce2960b43a4edd7babf7b668c117625e8559, and final integration runs 3977 and 3978 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0078",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0078-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0078",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0078",
            "state": "Done",
            "event_id": "FLOW-TASK-0078-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0078",
            "state": "Done",
            "event_id": "FLOW-TASK-0078-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0078",
            "state": "Done",
            "event_id": "FLOW-TASK-0078-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0078.yml",
            "item_id": "TASK-0078",
            "state": "Done",
            "event_id": "FLOW-TASK-0078-DONE-20260915"
          }
        ],
        "previous_hash": "438f69197f6c4d0407c53e6c24e1c4946a91e3d3e6bda79d3320849df18f7188",
        "hash": "8e1eedb869ac56ae6fcd955a37eafbc1f5ce64dad522dd773db464fda2c436c4"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0078-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0078",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0078",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0078-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0078.yml",
              "item_id": "TASK-0078",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0078-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "74fff810cbd5f1261c4ad76c653054b5bfbc32ae3d0316abf3d27f9adcf6c0cb"
        },
        {
          "event_id": "FLOW-TASK-0078-IN-PROGRESS-20260906",
          "sequence": 2,
          "item_id": "TASK-0078",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T17:29:58Z",
          "conditions": [
            "Whole Wave 15 claim: TASK-0048, TASK-0061, TASK-0065, TASK-0077, TASK-0078, TASK-0083, and TASK-0111 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0078-render-governed-visibility-world-condition-effects",
              "item_id": "TASK-0078",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0078-IN-PROGRESS-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7f26eca79eadef3171564fc60035e9866c2c848e",
              "item_id": "TASK-0078",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0078-IN-PROGRESS-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0078.yml",
              "item_id": "TASK-0078",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0078-IN-PROGRESS-20260906"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0078-render-governed-visibility-world-condition-effects",
          "claim_base_sha": "7f26eca79eadef3171564fc60035e9866c2c848e",
          "previous_hash": "74fff810cbd5f1261c4ad76c653054b5bfbc32ae3d0316abf3d27f9adcf6c0cb",
          "hash": "ffcd9e80c5e0679bb22f4b6e0cd45406b4a8c7376cee4219b9beee5e02cdb067"
        },
        {
          "event_id": "FLOW-TASK-0078-TO-BE-RELEASED-20260907",
          "sequence": 3,
          "item_id": "TASK-0078",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T07:39:15Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/98",
              "item_id": "TASK-0078",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0078-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/d3016544aa6e860cdfc0883885b8675ce6105949",
              "item_id": "TASK-0078",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0078-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7fa431152cbebdf208925920384d5ddc8bb731a4",
              "item_id": "TASK-0078",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0078-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3972",
              "item_id": "TASK-0078",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0078-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3973",
              "item_id": "TASK-0078",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0078-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3974",
              "item_id": "TASK-0078",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0078-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/99",
              "item_id": "TASK-0078",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0078-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/a4d310baa3ad7d2a5431ba510388b085539aea4b",
              "item_id": "TASK-0078",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0078-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/d624ce2960b43a4edd7babf7b668c117625e8559",
              "item_id": "TASK-0078",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0078-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3976",
              "item_id": "TASK-0078",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0078-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3977",
              "item_id": "TASK-0078",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0078-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3978",
              "item_id": "TASK-0078",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0078-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0078.yml",
              "item_id": "TASK-0078",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0078-TO-BE-RELEASED-20260907"
            }
          ],
          "previous_hash": "ffcd9e80c5e0679bb22f4b6e0cd45406b4a8c7376cee4219b9beee5e02cdb067",
          "hash": "438f69197f6c4d0407c53e6c24e1c4946a91e3d3e6bda79d3320849df18f7188"
        },
        {
          "event_id": "FLOW-TASK-0078-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0078",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0078",
              "state": "Done",
              "event_id": "FLOW-TASK-0078-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0078",
              "state": "Done",
              "event_id": "FLOW-TASK-0078-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0078",
              "state": "Done",
              "event_id": "FLOW-TASK-0078-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0078.yml",
              "item_id": "TASK-0078",
              "state": "Done",
              "event_id": "FLOW-TASK-0078-DONE-20260915"
            }
          ],
          "previous_hash": "438f69197f6c4d0407c53e6c24e1c4946a91e3d3e6bda79d3320849df18f7188",
          "hash": "8e1eedb869ac56ae6fcd955a37eafbc1f5ce64dad522dd773db464fda2c436c4"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "supporting",
        "design_refs": [
          "UIUX-100-FLIGHT-SETUP",
          "UIUX-100-CHASE"
        ],
        "acceptance": [
          "The selected world conditions must remain visibly consistent from Flight Setup into the approved Chase flight state.",
          "Verify fog, light, horizon, and wind presentation against the canonical environment evidence without adding a separate screen."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0079",
      "display_id": "AEROSIM-TS-79",
      "title": "Verify environmental effects and full-session consistency",
      "feature_id": "AEROSIM-FT-10",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-10/aerosim-ts-79/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0079.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web flight session — environment end-to-end verification harness",
      "outcome": "Aircraft and world effects remain calculated from the confirmed condition set for the complete session and reproduce within governed tolerances.",
      "scope": "Execute 3,600-tick calm, headwind, crosswind, gust, clear, and low-visibility sessions in each certified browser. Capture SessionConditionConsistencyReport that compares launch, per-minute physics wind samples, rendered environment states, and final session metadata to the original EnvironmentSnapshot selectionDigest and preset values.",
      "implementation_artifacts": [
        "applications/web/test/flight/environment-session-consistency.browser.spec.ts",
        "applications/web/test/fixtures/environment/environment-scenarios.json"
      ],
      "inputs": [
        "EnvironmentScenario {selection,expectedDigest,expectedWindCheckpoints,expectedPresentation,commands,stepCount:3600} and the exact browser build SHA."
      ],
      "outputs": [
        "SessionConditionConsistencyReport {buildSha,browser,scenarioId,selectionDigest,physicsCheckpoints,presentationCheckpoints,finalDigest,effectsObserved,violations,passed}."
      ],
      "failure_boundaries": [
        "Fail with ENVIRONMENT_EFFECT_NOT_OBSERVED when wind does not change the governed motion metric or visibility/light does not change its named presentation property.",
        "Fail with SESSION_CONDITION_DRIFT when any physics, presentation, panel, or final metadata digest differs from the launch selectionDigest.",
        "Fail with ENVIRONMENT_TRACE_NOT_REPEATABLE when repeated checkpoints differ for identical build, browser, snapshot, seed, timestep, and controls.",
        "Fail with ENVIRONMENT_BROWSER_INCOMPLETE when any scenario lacks a complete report from Chromium, Firefox, or WebKit."
      ],
      "exclusions": [
        "Visual regression by human judgement, unsupported presets/weather phenomena, cross-session persistence, network synchronization, and mobile browsers are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/environment-session-consistency.browser.spec.ts for all scenarios in Chromium, Firefox, and WebKit.",
        "Assert each expected aircraft metric and named scene property changes from its calm/clear baseline and all checkpoints retain the launch digest.",
        "Repeat every scenario twice, mutate a mid-session snapshot in the fault fixture, remove one browser report, and suppress one effect; assert the exact failure codes.",
        "Retain test-results/environment/session-consistency.json keyed to build SHA, browser, scenario, and selectionDigest."
      ],
      "dependencies": [
        "TASK-0077",
        "TASK-0078"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0017",
        "NFR-0009"
      ],
      "acceptance_evidence": "Verified delivery: application PR #104 reviewed head 0601ccb5ce2c8b468423b4e28d58318f12b1dbab passed all eight exact-head gates in run 4079 (tasks 3091, 3093, 3095, 3096, 3097, 3098, 3099, and 3100). The candidate-bound environment-consistency job produced 18 passing reports across Chromium, Firefox, and WebKit with 61 physics and presentation checkpoints per 3,600-tick replay pair, deterministic repeatability, exact failure codes, reset evidence, and cleanup evidence. Merge commit 5f57f5b7059c47d7d2632748eeb687f3e9376a72 passed post-merge required validation, exact-revision validation, image build, and image publication in tasks 3101, 3102, 3103, and 3104. Release 1.0.0 deployment and runtime-health evidence remain required before DONE. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0079",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0079-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0079",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0079",
            "state": "Done",
            "event_id": "FLOW-TASK-0079-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0079",
            "state": "Done",
            "event_id": "FLOW-TASK-0079-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0079",
            "state": "Done",
            "event_id": "FLOW-TASK-0079-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0079.yml",
            "item_id": "TASK-0079",
            "state": "Done",
            "event_id": "FLOW-TASK-0079-DONE-20260915"
          }
        ],
        "previous_hash": "ba051f68c17408d511633574b8bc11bff0486752e5c12e1f4735e45c2ffc9232",
        "hash": "809aa5de2f0b4a628e81370b97756387f9d7c7432ecab10ae7b5249ecc718834"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0079-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0079",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0079",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0079-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0079.yml",
              "item_id": "TASK-0079",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0079-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "d59f7c9c033ab695195e653ffc62b11152664757a34ba1dac14228fa52903e18"
        },
        {
          "event_id": "FLOW-TASK-0079-IN-PROGRESS-20260907",
          "sequence": 2,
          "item_id": "TASK-0079",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T08:12:53Z",
          "conditions": [
            "Whole Wave 16 claim: TASK-0049, TASK-0062, TASK-0066, TASK-0079, TASK-0084, and TASK-0112 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0079-verify-environmental-effects-session-consistency",
              "item_id": "TASK-0079",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0079-IN-PROGRESS-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/d624ce2960b43a4edd7babf7b668c117625e8559",
              "item_id": "TASK-0079",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0079-IN-PROGRESS-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0079.yml",
              "item_id": "TASK-0079",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0079-IN-PROGRESS-20260907"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0079-verify-environmental-effects-session-consistency",
          "claim_base_sha": "d624ce2960b43a4edd7babf7b668c117625e8559",
          "previous_hash": "d59f7c9c033ab695195e653ffc62b11152664757a34ba1dac14228fa52903e18",
          "hash": "10ac75d0e0b83f37c11ddcfa33af783c094939d75a907889ba64b358ae162d81"
        },
        {
          "event_id": "FLOW-TASK-0079-TO-BE-RELEASED-20260908",
          "sequence": 3,
          "item_id": "TASK-0079",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-08T00:13:34Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/104",
              "item_id": "TASK-0079",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0079-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/0601ccb5ce2c8b468423b4e28d58318f12b1dbab",
              "item_id": "TASK-0079",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0079-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5f57f5b7059c47d7d2632748eeb687f3e9376a72",
              "item_id": "TASK-0079",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0079-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4079",
              "item_id": "TASK-0079",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0079-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4080",
              "item_id": "TASK-0079",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0079-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4081",
              "item_id": "TASK-0079",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0079-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0079.yml",
              "item_id": "TASK-0079",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0079-TO-BE-RELEASED-20260908"
            }
          ],
          "previous_hash": "10ac75d0e0b83f37c11ddcfa33af783c094939d75a907889ba64b358ae162d81",
          "hash": "ba051f68c17408d511633574b8bc11bff0486752e5c12e1f4735e45c2ffc9232"
        },
        {
          "event_id": "FLOW-TASK-0079-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0079",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0079",
              "state": "Done",
              "event_id": "FLOW-TASK-0079-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0079",
              "state": "Done",
              "event_id": "FLOW-TASK-0079-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0079",
              "state": "Done",
              "event_id": "FLOW-TASK-0079-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0079.yml",
              "item_id": "TASK-0079",
              "state": "Done",
              "event_id": "FLOW-TASK-0079-DONE-20260915"
            }
          ],
          "previous_hash": "ba051f68c17408d511633574b8bc11bff0486752e5c12e1f4735e45c2ffc9232",
          "hash": "809aa5de2f0b4a628e81370b97756387f9d7c7432ecab10ae7b5249ecc718834"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "verification",
        "design_refs": [
          "UIUX-100-FULL-JOURNEY"
        ],
        "acceptance": [
          "Full-session evidence must prove that selected conditions remain consistent through launch, flight, and outcome states in the approved journey.",
          "Retain exact browser, snapshot-digest, and repeated-session evidence."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0080",
      "display_id": "AEROSIM-TS-80",
      "title": "Classify governed invalid states into explicit outcomes",
      "feature_id": "AEROSIM-FT-11",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-11/aerosim-ts-80/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0080.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web flight session — invalid-state classifier",
      "outcome": "Crash, out-of-bounds, and unrecoverable runtime events transition to one typed recoverable, retryable, or terminal outcome.",
      "scope": "Implement classifyInvalidFlightEvent(event, session): InvalidFlightOutcome. Map unsafe terrain/obstacle contact, horizontal/altitude hard limit, recovery exhaustion/failure, non-finite physics state, and runtime invariant failure to CRASHED, OUT_OF_BOUNDS, or UNRECOVERABLE. Bind one outcomeId to sessionId+triggerEventId and calculate allowedActions from InvalidFlightPolicyV1.",
      "implementation_artifacts": [
        "applications/web/src/flight/outcome/classify-invalid-flight-event.ts",
        "applications/web/src/flight/outcome/invalid-flight-contracts.ts",
        "applications/web/test/flight/invalid-flight-classifier.spec.ts"
      ],
      "inputs": [
        "InvalidFlightEvent {sessionId,triggerEventId,simulationTick,reasonCode,stateDigest,lastSafeStateDigest|null,recoveryCount} and InvalidFlightPolicyV1 action matrix."
      ],
      "outputs": [
        "InvalidFlightOutcome {outcomeId,sessionId,simulationTick,kind:'CRASHED'|'OUT_OF_BOUNDS'|'UNRECOVERABLE',reasonCode,stateDigest,allowedActions:('RECOVER'|'RETRY'|'EXIT')[],terminal:true}."
      ],
      "failure_boundaries": [
        "Return INVALID_EVENT_UNSUPPORTED when reasonCode has no explicit policy mapping; classify as UNRECOVERABLE with allowedActions=['EXIT'] rather than guessing recovery.",
        "Return INVALID_EVENT_CORRUPT when IDs are empty, tick/count is invalid, or a required state digest is absent; stop the session and permit EXIT only.",
        "Reject INVALID_ACTION_POLICY when an outcome has an empty action set, RECOVER without lastSafeStateDigest, or any action outside RECOVER/RETRY/EXIT.",
        "A duplicate triggerEventId returns the same outcomeId; conflicting bytes for that trigger emit INVALID_EVENT_CONFLICT and retain the first outcome."
      ],
      "exclusions": [
        "Collision/boundary detection, recovery execution, session creation, score calculation, telemetry upload, and presentation styling are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/invalid-flight-classifier.spec.ts.",
        "Assert exact kind, reasonCode, terminal flag, and allowed action set for every supported contact, boundary, recovery, physics, and invariant reason.",
        "Exercise unknown/corrupt/conflicting/duplicate events and invalid policy matrices; assert fail-safe EXIT-only behavior and stable outcomeId.",
        "Assert no mapped outcome produces RECOVER without a valid lastSafeStateDigest."
      ],
      "dependencies": [
        "TASK-0075",
        "TASK-0085"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0018"
      ],
      "acceptance_evidence": "Verified delivery: application PR #123 merged reviewed head e357d01e06c49ed4198966984f0cc6dfe64338c7 as 610672f4fb85466c79aa782e194aa662a04fab71; 30 focused tests prove exact crash/out-of-bounds/unrecoverable mappings for all shipped contact, boundary, recovery, physics, and invariant reasons, immutable policy-selected actions, deterministic duplicate IDs, retained-first conflict behavior, corrupt/unsupported fail-safe outcomes, and RECOVER safe-state requirements; full local validation, 120 world-interaction runs, production audit, exact-head CI run 4209, integration/publication run 4210, and integration validation run 4211 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0080",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0080-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0080",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0080",
            "state": "Done",
            "event_id": "FLOW-TASK-0080-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0080",
            "state": "Done",
            "event_id": "FLOW-TASK-0080-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0080",
            "state": "Done",
            "event_id": "FLOW-TASK-0080-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0080.yml",
            "item_id": "TASK-0080",
            "state": "Done",
            "event_id": "FLOW-TASK-0080-DONE-20260915"
          }
        ],
        "previous_hash": "4aa3afd2625069283e5814dda19eec63505f29dcc1d643ccf7ac5708489ebfb5",
        "hash": "07ce494202bc977d995d36589610c7c72b5ed9f01952518a6006c184c8460d8a"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0080-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0080",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0080",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0080-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0080.yml",
              "item_id": "TASK-0080",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0080-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "d7e2cb2b54d964723f170f246fd98b24dde5dca3744e5d0ba5f5ded32766158c"
        },
        {
          "event_id": "FLOW-TASK-0080-IN-PROGRESS-20260909",
          "sequence": 2,
          "item_id": "TASK-0080",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T10:51:13Z",
          "conditions": [
            "Whole Wave 18 claim: TASK-0051, TASK-0064, TASK-0068, TASK-0080, and TASK-0099 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1547195762671222876",
              "item_id": "TASK-0080",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0080-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0080-classify-invalid-flight-events-1",
              "item_id": "TASK-0080",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0080-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/123",
              "item_id": "TASK-0080",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0080-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/fb4df0c5e9f729d92f7dadb8d4a635a962037eb0",
              "item_id": "TASK-0080",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0080-IN-PROGRESS-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0080.yml",
              "item_id": "TASK-0080",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0080-IN-PROGRESS-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0080-classify-invalid-flight-events-1",
          "claim_base_sha": "8685927ed3437eefb7a76e51fa41f27b191c48d7",
          "previous_hash": "d7e2cb2b54d964723f170f246fd98b24dde5dca3744e5d0ba5f5ded32766158c",
          "hash": "94c14b57085c6e0fe4596758e842b799f5327d33d409bc3e71328f227c455550"
        },
        {
          "event_id": "FLOW-TASK-0080-TO-BE-RELEASED-20260909",
          "sequence": 3,
          "item_id": "TASK-0080",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T15:29:37Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/123",
              "item_id": "TASK-0080",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0080-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/610672f4fb85466c79aa782e194aa662a04fab71",
              "item_id": "TASK-0080",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0080-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4209",
              "item_id": "TASK-0080",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0080-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4210",
              "item_id": "TASK-0080",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0080-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4211",
              "item_id": "TASK-0080",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0080-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0080.yml",
              "item_id": "TASK-0080",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0080-TO-BE-RELEASED-20260909"
            }
          ],
          "previous_hash": "94c14b57085c6e0fe4596758e842b799f5327d33d409bc3e71328f227c455550",
          "hash": "4aa3afd2625069283e5814dda19eec63505f29dcc1d643ccf7ac5708489ebfb5"
        },
        {
          "event_id": "FLOW-TASK-0080-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0080",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0080",
              "state": "Done",
              "event_id": "FLOW-TASK-0080-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0080",
              "state": "Done",
              "event_id": "FLOW-TASK-0080-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0080",
              "state": "Done",
              "event_id": "FLOW-TASK-0080-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0080.yml",
              "item_id": "TASK-0080",
              "state": "Done",
              "event_id": "FLOW-TASK-0080-DONE-20260915"
            }
          ],
          "previous_hash": "4aa3afd2625069283e5814dda19eec63505f29dcc1d643ccf7ac5708489ebfb5",
          "hash": "07ce494202bc977d995d36589610c7c72b5ed9f01952518a6006c184c8460d8a"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0081",
      "display_id": "AEROSIM-TS-81",
      "title": "Present and execute only valid invalid-state actions",
      "feature_id": "AEROSIM-FT-11",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-11/aerosim-ts-81/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0081.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web flight shell — invalid-state outcome presenter and action coordinator",
      "outcome": "Each invalid-state outcome clearly presents only its permitted recovery, retry, or exit actions and executes the selected action through the flight shell.",
      "scope": "Render InvalidFlightOutcome through InvalidFlightOutcomeViewModel and process OutcomeActionCommand with an exactly-once outcome coordinator. RECOVER delegates to EP3-FT2-03 only when permitted, RETRY creates a new session from the original immutable FlightLaunchRequest with a new sessionId, and EXIT destroys the active flight session and returns route '/'. Freeze simulation input while an outcome is terminal.",
      "implementation_artifacts": [
        "applications/web/src/flight/outcome/invalid-flight-outcome-panel.tsx",
        "applications/web/src/flight/outcome/execute-outcome-action.ts",
        "applications/web/test/flight/invalid-flight-actions.browser.spec.ts"
      ],
      "inputs": [
        "InvalidFlightOutcome and OutcomeActionCommand {commandId,outcomeId,action:'RECOVER'|'RETRY'|'EXIT'}; original FlightLaunchRequest is retained only for RETRY."
      ],
      "outputs": [
        "OutcomeActionResult {commandId,outcomeId,status:'COMPLETED'|'REJECTED'|'FAILED',action,newSessionId|null,route,recoveryDecision|null,errorCode|null} and a view model containing outcome kind/reason and only allowed action controls."
      ],
      "failure_boundaries": [
        "Reject with ACTION_NOT_ALLOWED when command.action is not in outcome.allowedActions; do not invoke recovery, session creation, or navigation.",
        "Reject with OUTCOME_STALE when outcomeId is not the active terminal outcome or its sessionId no longer owns the shell.",
        "A repeated commandId with identical bytes returns the stored result; conflicting bytes return ACTION_COMMAND_CONFLICT and perform no second effect.",
        "On RECOVER/RETRY setup failure return ACTION_EXECUTION_FAILED, retain the terminal panel, and expose only the still-valid RETRY/EXIT actions; EXIT failure returns EXIT_CLEANUP_FAILED and does not claim route change."
      ],
      "exclusions": [
        "Automatic retry, hidden countdown, mid-session configuration changes, account navigation, persistence of outcome history, and adding actions not supplied by the classifier are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/invalid-flight-actions.browser.spec.ts.",
        "For CRASHED, OUT_OF_BOUNDS, and UNRECOVERABLE outcomes assert the rendered reason and exact action set, frozen flight input, and no absent action handler.",
        "Execute permitted RECOVER, RETRY, and EXIT commands; assert restore delegation, new sessionId with original launch config, and completed cleanup before route '/'.",
        "Execute disallowed, stale, duplicate, conflicting, and injected-failure commands; assert exact result, no duplicate side effect, and truthful terminal state."
      ],
      "dependencies": [
        "TASK-0080"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0018"
      ],
      "acceptance_evidence": "Verified delivery: application PR #129 merged after exact-head review. InvalidFlightOutcomePanel renders the governed reason and exactly the classifier-supplied actions with terminal input marked frozen. The exactly-once coordinator delegates permitted RECOVER, creates a new-session RETRY from an immutable launch snapshot, and completes EXIT cleanup before route /. It rejects disallowed, stale, duplicate-conflicting, and failed commands without duplicate effects; failed recover/retry retains only RETRY/EXIT. Focused tests pass 11/11, web tests pass 1,066/1,066 plus focused 11/11 and environment presentation 27/27, typecheck, lint, security, build, formatting, and production audit pass; exact-head CI tasks 3658-3667 and integration tasks 3668-3671 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0081",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0081-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0081",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0081",
            "state": "Done",
            "event_id": "FLOW-TASK-0081-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0081",
            "state": "Done",
            "event_id": "FLOW-TASK-0081-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0081",
            "state": "Done",
            "event_id": "FLOW-TASK-0081-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0081.yml",
            "item_id": "TASK-0081",
            "state": "Done",
            "event_id": "FLOW-TASK-0081-DONE-20260915"
          }
        ],
        "previous_hash": "08aca3f49a42a82addec443de0f2c2fb99785b761494ac72329f0ec7898cb0b7",
        "hash": "9157c9da5d6c4421642d943ad0c9253f03799861d568e5b924180ff9a66647bc"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0081-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0081",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0081",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0081-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0081.yml",
              "item_id": "TASK-0081",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0081-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "731c9085e0524806f97096a999a6a23d2e334858e193ecd9096322a27ea5de5f"
        },
        {
          "event_id": "FLOW-TASK-0081-IN-PROGRESS-20260909",
          "sequence": 2,
          "item_id": "TASK-0081",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T23:27:50Z",
          "conditions": [],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0081-invalid-flight-actions-1",
          "claim_base_sha": "46eb3134d2852a8badfdab3b99b146bd05756e59",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1547387795205791804",
              "item_id": "TASK-0081",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0081-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0081-invalid-flight-actions-1",
              "item_id": "TASK-0081",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0081-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/129",
              "item_id": "TASK-0081",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0081-IN-PROGRESS-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0081.yml",
              "item_id": "TASK-0081",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0081-IN-PROGRESS-20260909"
            }
          ],
          "previous_hash": "731c9085e0524806f97096a999a6a23d2e334858e193ecd9096322a27ea5de5f",
          "hash": "a3ea7d10c96f46cb31c1b0901c9a0c1431f715ff30c22d891dfe2e66ec208f4d"
        },
        {
          "event_id": "FLOW-TASK-0081-TO-BE-RELEASED-20260910",
          "sequence": 3,
          "item_id": "TASK-0081",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T00:01:53Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/129",
              "item_id": "TASK-0081",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0081-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/daf1b7b0feee31c02473dd204ba8f97df4f9b376",
              "item_id": "TASK-0081",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0081-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4269",
              "item_id": "TASK-0081",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0081-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4270",
              "item_id": "TASK-0081",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0081-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0081.yml",
              "item_id": "TASK-0081",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0081-TO-BE-RELEASED-20260910"
            }
          ],
          "previous_hash": "a3ea7d10c96f46cb31c1b0901c9a0c1431f715ff30c22d891dfe2e66ec208f4d",
          "hash": "08aca3f49a42a82addec443de0f2c2fb99785b761494ac72329f0ec7898cb0b7"
        },
        {
          "event_id": "FLOW-TASK-0081-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0081",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0081",
              "state": "Done",
              "event_id": "FLOW-TASK-0081-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0081",
              "state": "Done",
              "event_id": "FLOW-TASK-0081-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0081",
              "state": "Done",
              "event_id": "FLOW-TASK-0081-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0081.yml",
              "item_id": "TASK-0081",
              "state": "Done",
              "event_id": "FLOW-TASK-0081-DONE-20260915"
            }
          ],
          "previous_hash": "08aca3f49a42a82addec443de0f2c2fb99785b761494ac72329f0ec7898cb0b7",
          "hash": "9157c9da5d6c4421642d943ad0c9253f03799861d568e5b924180ff9a66647bc"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-WARNING",
          "UIUX-100-OUTCOME-DEBRIEF"
        ],
        "acceptance": [
          "Every terminal invalid state must expose only the recovery, retry, or exit actions allowed by the approved warning and outcome states.",
          "Verify exactly-once action handling, frozen terminal input, and the approved destination for each action."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0082",
      "display_id": "AEROSIM-TS-82",
      "title": "Verify invalid-state recovery, retry, and exit scenarios",
      "feature_id": "AEROSIM-FT-11",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-11/aerosim-ts-82/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0082.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web flight shell — invalid-state end-to-end verification harness",
      "outcome": "Every governed invalid-state scenario yields a repeatable clear outcome and exposes no invalid or dead-end action.",
      "scope": "Run browser scenarios from initial FlightSessionConfig through controlled recovery, unsafe terrain crash, obstacle crash, horizontal/altitude limit, repeated violation, corrupt snapshot, non-finite state, permitted action, retry, and exit. Capture InvalidStateScenarioReport with ordered event/outcome/action/session transitions and compare five repetitions per certified browser.",
      "implementation_artifacts": [
        "applications/web/test/flight/invalid-state-outcomes.browser.spec.ts",
        "applications/web/test/fixtures/invalid-state/scenarios.json"
      ],
      "inputs": [
        "InvalidStateScenario {scenarioId,buildSha,launchRequest,initialState,trigger,expectedOutcome,selectedAction,expectedTerminalState} with fixed timestep, seed, asset/config digests, and five repetitions."
      ],
      "outputs": [
        "InvalidStateScenarioReport {scenarioId,browser,inputDigest,transitions:[{tick,type,id,state}],outcome,offeredActions,actionResult,finalSessionId,finalRoute,violations,passed}."
      ],
      "failure_boundaries": [
        "Fail with INVALID_OUTCOME_MISMATCH when outcome kind/reason, offered actions, selected action result, final session, or final route differs from the scenario contract.",
        "Fail with INVALID_TRANSITION_ORDER when physics advances after a terminal outcome, an action precedes classification, cleanup follows claimed exit completion, or any ID changes unexpectedly.",
        "Fail with INVALID_SCENARIO_NOT_REPEATABLE when event ticks/IDs/outcomes exceed deterministic tolerances across repetitions or browsers.",
        "Fail with INVALID_SCENARIO_INCOMPLETE when any scenario/browser lacks five complete reports tied to the same build and input digest."
      ],
      "exclusions": [
        "Manual exploratory acceptance, unsupported browsers, analytics persistence, multiplayer state, score/achievement consequences, and crash types absent from scenarios.json are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/invalid-state-outcomes.browser.spec.ts in Chromium, Firefox, and WebKit.",
        "Execute every declared scenario five times and assert transition order, outcome reason, offered action set, action side effect, final session/route, and repeatability.",
        "Perturb expected outcome, reorder transitions, allow one post-terminal physics tick, alter one repeat, and omit one browser report; assert every exact failure code.",
        "Retain test-results/invalid-state/scenario-report.json keyed to exact build SHA and scenario input digest."
      ],
      "dependencies": [
        "TASK-0081"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0018",
        "NFR-0009"
      ],
      "acceptance_evidence": "Verified delivery: application PR #132 merged reviewed head 4cac2ccac5eeec5e379d8e07f88a90ad181d7943 as 3250ad37ce1e9526eaa1c43c68cddbc7480ae0e7. Production-path correction PR #133 merged reviewed head 41b874d21f391228d915bc9a95bd4b458e71854f as 94ddb9fa3f6b12bd1e6d55e2a63bd668d3525054; exact-head CI runs 4310-4311 and post-merge integration/publication runs 4312-4313 passed. Eight governed invalid-state scenarios cover controlled recovery, unsafe terrain and obstacle crashes, horizontal and altitude limits, repeated violation, corrupt snapshot, non-finite state, and permitted Recover/Retry/Exit actions. Chromium, Firefox, and WebKit each passed five repetitions per scenario; retained scenario-report.json contains 120 complete reports bound to source revision a053e91acd532a22764701ab8f02402d60c75210 and stable input digests. Negative mutations prove INVALID_OUTCOME_MISMATCH, INVALID_TRANSITION_ORDER, INVALID_SCENARIO_NOT_REPEATABLE, and INVALID_SCENARIO_INCOMPLETE. Web tests passed 1,095/1,095 plus invalid-action 11/11 and environment-presentation 27/27; lint, typecheck, formatting, production build, production audit, exact-head CI runs 4303-4304, and integration/publication runs 4305-4306 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0082",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0082-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0082",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0082",
            "state": "Done",
            "event_id": "FLOW-TASK-0082-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0082",
            "state": "Done",
            "event_id": "FLOW-TASK-0082-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0082",
            "state": "Done",
            "event_id": "FLOW-TASK-0082-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0082.yml",
            "item_id": "TASK-0082",
            "state": "Done",
            "event_id": "FLOW-TASK-0082-DONE-20260915"
          }
        ],
        "previous_hash": "7a0e15727140004de59e0173ed1b962062d0f8a8c20301e6275d65cd06b244b7",
        "hash": "3964159526212e60ad29d45eec1a03845f3fdcc8380425fa1391266b3b24f04b"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0082-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0082",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0082",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0082-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0082.yml",
              "item_id": "TASK-0082",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0082-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "003cc4eb597356470469e9661c153025cdfbaa2eaeb01e625f3af399f616006b"
        },
        {
          "event_id": "FLOW-TASK-0082-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0082",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T07:05:09Z",
          "conditions": [],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0082-invalid-state-recovery-1",
          "claim_base_sha": "b72932c106010f876f463aec7632129c69670ca5",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/132",
              "item_id": "TASK-0082",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0082-IN-PROGRESS-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0082-invalid-state-recovery-1",
              "item_id": "TASK-0082",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0082-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0082.yml",
              "item_id": "TASK-0082",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0082-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "003cc4eb597356470469e9661c153025cdfbaa2eaeb01e625f3af399f616006b",
          "hash": "73312cbdef1013e9517e3020b224110085dcc36be471777f2a95954b3981ca88"
        },
        {
          "event_id": "FLOW-TASK-0082-TO-BE-RELEASED-20260910",
          "sequence": 3,
          "item_id": "TASK-0082",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T07:38:49Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/132",
              "item_id": "TASK-0082",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0082-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/3250ad37ce1e9526eaa1c43c68cddbc7480ae0e7",
              "item_id": "TASK-0082",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0082-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4305",
              "item_id": "TASK-0082",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0082-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4306",
              "item_id": "TASK-0082",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0082-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0082.yml",
              "item_id": "TASK-0082",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0082-TO-BE-RELEASED-20260910"
            }
          ],
          "previous_hash": "73312cbdef1013e9517e3020b224110085dcc36be471777f2a95954b3981ca88",
          "hash": "7a0e15727140004de59e0173ed1b962062d0f8a8c20301e6275d65cd06b244b7"
        },
        {
          "event_id": "FLOW-TASK-0082-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0082",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0082",
              "state": "Done",
              "event_id": "FLOW-TASK-0082-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0082",
              "state": "Done",
              "event_id": "FLOW-TASK-0082-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0082",
              "state": "Done",
              "event_id": "FLOW-TASK-0082-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0082.yml",
              "item_id": "TASK-0082",
              "state": "Done",
              "event_id": "FLOW-TASK-0082-DONE-20260915"
            }
          ],
          "previous_hash": "7a0e15727140004de59e0173ed1b962062d0f8a8c20301e6275d65cd06b244b7",
          "hash": "3964159526212e60ad29d45eec1a03845f3fdcc8380425fa1391266b3b24f04b"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "verification",
        "design_refs": [
          "UIUX-100-FULL-JOURNEY"
        ],
        "acceptance": [
          "Browser scenarios must prove the complete invalid-state, recovery, retry, and exit paths represented by the approved journey.",
          "Retain ordered event, outcome, action, and session-transition evidence for every certified browser."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0083",
      "display_id": "AEROSIM-TS-83",
      "title": "Implement warning, grace-zone, and hard-limit transitions",
      "feature_id": "AEROSIM-FT-2",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-2/aerosim-ts-83/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0083.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web flight runtime — world boundary state machine and warning presenter",
      "outcome": "Configured horizontal and altitude limits produce a visible warning zone, a return grace zone, and an unambiguous hard-limit event.",
      "scope": "Implement updateWorldBoundaryState(previous, sample, policy): BoundaryTransition for horizontal radial distance and altitude. States are INSIDE, WARNING, GRACE, RETURNED, and HARD_LIMIT; policy defines warningDistanceM, hardDistanceM, minAltitudeM, maxAltitudeM, graceTicks, and returnHysteresisM. Emit one warning transition and one hard-limit event per excursionId.",
      "implementation_artifacts": [
        "applications/web/src/flight/boundary/world-boundary-state-machine.ts",
        "applications/web/src/flight/presentation/boundary-warning-model.ts",
        "applications/web/test/flight/world-boundary-state-machine.spec.ts"
      ],
      "inputs": [
        "BoundarySample {simulationTick,positionWorldM,radialDistanceM,altitudeM}, BoundaryPolicyV1, and BoundaryState {state,excursionId,enteredWarningTick,enteredGraceTick,hardLimitEmitted}."
      ],
      "outputs": [
        "BoundaryTransition {previousState,nextState,excursionId,event:'NONE'|'WARNING_ENTERED'|'GRACE_STARTED'|'RETURNED'|'HARD_LIMIT_REACHED',remainingGraceTicks,limitType:'HORIZONTAL'|'LOW_ALTITUDE'|'HIGH_ALTITUDE'|null} plus BoundaryWarningModel."
      ],
      "failure_boundaries": [
        "Return BOUNDARY_SAMPLE_INVALID for non-finite position/distance/altitude or a regressing/fractional tick; do not advance state.",
        "Return BOUNDARY_POLICY_INVALID when warning/hard thresholds overlap incorrectly, altitude minimum is not below maximum, graceTicks is not positive, or hysteresis is negative.",
        "Crossing the hard threshold or exhausting grace emits HARD_LIMIT_REACHED exactly once; later samples in the same excursion emit NONE.",
        "A return is accepted only after crossing warning threshold minus returnHysteresisM; boundary jitter before that point remains in GRACE."
      ],
      "exclusions": [
        "Collision detection, safe-state capture/restore, invalid-state action selection, map rendering, arbitrary polygon/geofence boundaries, and multiplayer boundaries are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/world-boundary-state-machine.spec.ts.",
        "Exercise horizontal, low-altitude, and high-altitude entry; grace countdown; hysteretic return; immediate hard crossing; grace expiry; jitter; and a second excursion.",
        "Test exact warning/hard/altitude thresholds and grace expiry tick, asserting state, event, excursionId, remaining ticks, and exactly-once hard event.",
        "Inject invalid samples and every invalid policy relation; assert exact failure and unchanged previous state."
      ],
      "dependencies": [
        "TASK-0002"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0004"
      ],
      "acceptance_evidence": "Verified delivery: final application PR #96 reviewed head c99b9e1699570ef637ac49cbbdeaf9ff6677ba67 passed exact-head application validation run 3957, merged as 97ab0ab9014703e0a5fdf3dc659562dd270b16e5, and integration runs 3958 and 3959 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0083",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0083-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0083",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0083",
            "state": "Done",
            "event_id": "FLOW-TASK-0083-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0083",
            "state": "Done",
            "event_id": "FLOW-TASK-0083-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0083",
            "state": "Done",
            "event_id": "FLOW-TASK-0083-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0083.yml",
            "item_id": "TASK-0083",
            "state": "Done",
            "event_id": "FLOW-TASK-0083-DONE-20260915"
          }
        ],
        "previous_hash": "d3fdb3bd4c571804d793f90392a72a45403827bb0f3c69178006eb4e6e3f531d",
        "hash": "677b92be20e2bda3bb679dda0d3e9f99e53fce43228da29cf10ad27d3ed32655"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0083-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0083",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0083",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0083-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0083.yml",
              "item_id": "TASK-0083",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0083-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "af74d86e8fa37d2c760333929adfcc971d09355f862981e761ad5f9b2f89c65d"
        },
        {
          "event_id": "FLOW-TASK-0083-IN-PROGRESS-20260906",
          "sequence": 2,
          "item_id": "TASK-0083",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T17:29:58Z",
          "conditions": [
            "Whole Wave 15 claim: TASK-0048, TASK-0061, TASK-0065, TASK-0077, TASK-0078, TASK-0083, and TASK-0111 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0083-implement-warning-grace-zone-hard-limit-transitions",
              "item_id": "TASK-0083",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0083-IN-PROGRESS-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7f26eca79eadef3171564fc60035e9866c2c848e",
              "item_id": "TASK-0083",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0083-IN-PROGRESS-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0083.yml",
              "item_id": "TASK-0083",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0083-IN-PROGRESS-20260906"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0083-implement-warning-grace-zone-hard-limit-transitions",
          "claim_base_sha": "7f26eca79eadef3171564fc60035e9866c2c848e",
          "previous_hash": "af74d86e8fa37d2c760333929adfcc971d09355f862981e761ad5f9b2f89c65d",
          "hash": "5cfe66b56515b6200edda3c94dfd6474622066ed926bbe09b327cded6ba1ef99"
        },
        {
          "event_id": "FLOW-TASK-0083-TO-BE-RELEASED-20260907",
          "sequence": 3,
          "item_id": "TASK-0083",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T07:39:15Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/96",
              "item_id": "TASK-0083",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0083-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/c99b9e1699570ef637ac49cbbdeaf9ff6677ba67",
              "item_id": "TASK-0083",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0083-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/97ab0ab9014703e0a5fdf3dc659562dd270b16e5",
              "item_id": "TASK-0083",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0083-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3957",
              "item_id": "TASK-0083",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0083-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3958",
              "item_id": "TASK-0083",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0083-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3959",
              "item_id": "TASK-0083",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0083-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0083.yml",
              "item_id": "TASK-0083",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0083-TO-BE-RELEASED-20260907"
            }
          ],
          "previous_hash": "5cfe66b56515b6200edda3c94dfd6474622066ed926bbe09b327cded6ba1ef99",
          "hash": "d3fdb3bd4c571804d793f90392a72a45403827bb0f3c69178006eb4e6e3f531d"
        },
        {
          "event_id": "FLOW-TASK-0083-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0083",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0083",
              "state": "Done",
              "event_id": "FLOW-TASK-0083-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0083",
              "state": "Done",
              "event_id": "FLOW-TASK-0083-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0083",
              "state": "Done",
              "event_id": "FLOW-TASK-0083-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0083.yml",
              "item_id": "TASK-0083",
              "state": "Done",
              "event_id": "FLOW-TASK-0083-DONE-20260915"
            }
          ],
          "previous_hash": "d3fdb3bd4c571804d793f90392a72a45403827bb0f3c69178006eb4e6e3f531d",
          "hash": "677b92be20e2bda3bb679dda0d3e9f99e53fce43228da29cf10ad27d3ed32655"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0084",
      "display_id": "AEROSIM-TS-84",
      "title": "Restore a safe aircraft state or conclude the boundary violation",
      "feature_id": "AEROSIM-FT-2",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-2/aerosim-ts-84/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0084.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web flight session — safe-state store and recovery coordinator",
      "outcome": "A hard-limit or governed collision event restores the last safe state/configured recovery point or explicitly concludes the session without leaving an unexplained aircraft state.",
      "scope": "Maintain SafeAircraftSnapshot {sessionId,simulationTick,state,stateDigest} only from INSIDE boundary state with no unsafe contact. On recoverable HARD_LIMIT_REACHED, atomically restore the latest snapshot and reset controls to neutral; on unsafe collision, repeated hard limit, missing/stale/corrupt snapshot, or non-finite aircraft state, emit InvalidFlightEvent for FT-11 and stop physics advancement.",
      "implementation_artifacts": [
        "applications/web/src/flight/recovery/safe-aircraft-snapshot.ts",
        "applications/web/src/flight/recovery/recover-or-conclude.ts",
        "applications/web/test/flight/recovery-coordinator.spec.ts"
      ],
      "inputs": [
        "RecoveryRequest {sessionId,currentTick,trigger:ContactClassification|BoundaryTransition,currentState,currentControls}, latest SafeAircraftSnapshot, and RecoveryPolicyV1 {maxSnapshotAgeTicks,maxAutomaticRecoveries}."
      ],
      "outputs": [
        "RecoveryDecision {kind:'RESTORED'|'CONCLUDED',reasonCode,recoverySequence,restoredState|null,restoredStateDigest|null,controlsAfter,invalidFlightEvent|null}; RESTORED commits state and neutral controls in one transaction."
      ],
      "failure_boundaries": [
        "Conclude with RECOVERY_SNAPSHOT_MISSING when no snapshot exists, RECOVERY_SNAPSHOT_STALE when its age exceeds maxSnapshotAgeTicks, and RECOVERY_SNAPSHOT_CORRUPT when its digest or finite-state validation fails.",
        "Conclude with UNSAFE_CONTACT for UNSAFE_TERRAIN_IMPACT or SOLID_OBSTACLE_IMPACT; these events never trigger automatic restore.",
        "Conclude with RECOVERY_LIMIT_EXCEEDED after maxAutomaticRecoveries; duplicate trigger eventIds return the existing decision without incrementing recoverySequence.",
        "If atomic restore fails, roll back state and controls, stop the simulation clock, and conclude with RECOVERY_COMMIT_FAILED."
      ],
      "exclusions": [
        "Checkpoint selection UI, rewind history, saved-game persistence, aircraft repair, scoring penalties, retry/session creation, and outcome-screen rendering are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/recovery-coordinator.spec.ts.",
        "Verify snapshot capture only in safe state, atomic restore on first recoverable hard limit, neutral controls, monotonic recoverySequence, and no next physics tick before commit.",
        "Exercise unsafe contact, repeated violation, missing/stale/corrupt snapshot, non-finite state, duplicate trigger, and injected commit failure; assert exact decisions and rollback.",
        "Assert every CONCLUDED decision contains one InvalidFlightEvent with sessionId, triggerEventId, tick, reasonCode, and lastSafeStateDigest when present."
      ],
      "dependencies": [
        "TASK-0083"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0004"
      ],
      "acceptance_evidence": "Verified delivery: application PR #105 merged as 20fa375864e68145d3dfdfa0dcb9b31c9eb734f2; integration run 4046 and immutable publication run 4047 passed for the safe-state recovery implementation. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0084",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0084-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0084",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0084",
            "state": "Done",
            "event_id": "FLOW-TASK-0084-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0084",
            "state": "Done",
            "event_id": "FLOW-TASK-0084-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0084",
            "state": "Done",
            "event_id": "FLOW-TASK-0084-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0084.yml",
            "item_id": "TASK-0084",
            "state": "Done",
            "event_id": "FLOW-TASK-0084-DONE-20260915"
          }
        ],
        "previous_hash": "41491498b604072fc56dd2cdae5071d09627bcd5773c900c57bc9333f5dc5f5a",
        "hash": "26624ecd30cfcf2d405faa10bc153061394a57e0271ccd844f5baae65daa1bd3"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0084-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0084",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0084",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0084-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0084.yml",
              "item_id": "TASK-0084",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0084-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "828e4daa87b36a64e1906b2e9e162d7c90eb36cda6b3f69466c830ce18bd4e15"
        },
        {
          "event_id": "FLOW-TASK-0084-IN-PROGRESS-20260907",
          "sequence": 2,
          "item_id": "TASK-0084",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T08:12:53Z",
          "conditions": [
            "Whole Wave 16 claim: TASK-0049, TASK-0062, TASK-0066, TASK-0079, TASK-0084, and TASK-0112 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0084-restore-safe-aircraft-state-boundary-violation",
              "item_id": "TASK-0084",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0084-IN-PROGRESS-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/d624ce2960b43a4edd7babf7b668c117625e8559",
              "item_id": "TASK-0084",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0084-IN-PROGRESS-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0084.yml",
              "item_id": "TASK-0084",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0084-IN-PROGRESS-20260907"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0084-restore-safe-aircraft-state-boundary-violation",
          "claim_base_sha": "d624ce2960b43a4edd7babf7b668c117625e8559",
          "previous_hash": "828e4daa87b36a64e1906b2e9e162d7c90eb36cda6b3f69466c830ce18bd4e15",
          "hash": "5c373fd1915daa2ebba4865f877b04ff698b94a08d1be90a83713c3162499ec2"
        },
        {
          "event_id": "FLOW-TASK-0084-TO-BE-RELEASED-20260907",
          "sequence": 3,
          "item_id": "TASK-0084",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T16:49:24Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/105",
              "item_id": "TASK-0084",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0084-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/20fa375864e68145d3dfdfa0dcb9b31c9eb734f2",
              "item_id": "TASK-0084",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0084-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4046",
              "item_id": "TASK-0084",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0084-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4047",
              "item_id": "TASK-0084",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0084-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0084.yml",
              "item_id": "TASK-0084",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0084-TO-BE-RELEASED-20260907"
            }
          ],
          "previous_hash": "5c373fd1915daa2ebba4865f877b04ff698b94a08d1be90a83713c3162499ec2",
          "hash": "41491498b604072fc56dd2cdae5071d09627bcd5773c900c57bc9333f5dc5f5a"
        },
        {
          "event_id": "FLOW-TASK-0084-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0084",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0084",
              "state": "Done",
              "event_id": "FLOW-TASK-0084-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0084",
              "state": "Done",
              "event_id": "FLOW-TASK-0084-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0084",
              "state": "Done",
              "event_id": "FLOW-TASK-0084-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0084.yml",
              "item_id": "TASK-0084",
              "state": "Done",
              "event_id": "FLOW-TASK-0084-DONE-20260915"
            }
          ],
          "previous_hash": "41491498b604072fc56dd2cdae5071d09627bcd5773c900c57bc9333f5dc5f5a",
          "hash": "26624ecd30cfcf2d405faa10bc153061394a57e0271ccd844f5baae65daa1bd3"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0085",
      "display_id": "AEROSIM-TS-85",
      "title": "Verify world-interaction timing, determinism, resources, and browser compatibility",
      "feature_id": "AEROSIM-FT-2",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-2/aerosim-ts-85/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0085.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web flight runtime — world-interaction browser and resource verification harness",
      "outcome": "Supported contact, warning, recovery, and terminal scenarios remain responsive, resource-bounded, and equivalent within governed tolerances across certified browsers.",
      "scope": "Run deterministic Rapier scenarios for controlled landing, unsafe terrain impact, obstacle impact, warning return, horizontal hard limit, altitude hard limit, automatic restore, and conclusion. Across Chromium, Firefox, and WebKit record contact/boundary/recovery event traces, simulation/frame p95, CPU, and heap metrics; compare against deterministic tolerances and world-interaction budgets.",
      "implementation_artifacts": [
        "applications/web/test/flight/world-interaction.browser.spec.ts",
        "applications/web/test/fixtures/world-interaction/scenarios.json",
        "config/world-interaction-budgets.json"
      ],
      "inputs": [
        "WorldInteractionScenario {scenarioId,buildSha,worldAssetDigest,collisionPolicyDigest,boundaryPolicyDigest,initialState,commands,expectedEvents} and five runs per certified browser."
      ],
      "outputs": [
        "WorldInteractionReport {scenarioId,browser,inputDigest,eventTrace,maxTraceDrift,timingMs:{simulationP95,frameP95},cpuSeconds,heapGrowthBytes,violations,passed}."
      ],
      "failure_boundaries": [
        "Fail with WORLD_EVENT_TRACE_MISMATCH when event type, order, tick tolerance, classification, recovery decision, or terminal state differs from expectedEvents.",
        "Fail with WORLD_TRACE_NOT_REPEATABLE when repeated or cross-browser traces exceed config/determinism-tolerances.json.",
        "Fail with WORLD_RESOURCE_BUDGET_EXCEEDED when simulation/frame p95, CPU, or heap growth exceeds config/world-interaction-budgets.json.",
        "Fail with WORLD_SCENARIO_INCOMPLETE when any required scenario/browser/run lacks a terminal report or uses a different world/policy/build digest."
      ],
      "exclusions": [
        "Unsupported browsers, water/deformable terrain, complex damage, visual-quality scoring, server load, network behavior, and environment effects beyond the fixed fixture are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/world-interaction.browser.spec.ts in Chromium, Firefox, and WebKit with five runs per scenario.",
        "Assert expected event order and outcome for all eight scenarios, cross-browser tolerance, and every timing/resource budget.",
        "Alter one expected event, perturb one run, lower each budget, omit one browser run, and change a policy digest; assert each named failure.",
        "Retain test-results/world-interaction/report.json with exact build and all asset/policy digests."
      ],
      "dependencies": [
        "TASK-0084"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "NFR-0001",
        "NFR-0002",
        "NFR-0005",
        "NFR-0006",
        "NFR-0009"
      ],
      "acceptance_evidence": "Verified delivery: EP3-FT2-04: application PR #115 delivered the reviewed world-interaction harness and PR #119 delivered the reviewed CI-retention forward fix, integrated finally as 7d2c2427443470537f85742eba9659105341ac73; the exact-head CI environment-consistency job executed the governed matrix and retained its report; 120 complete runs covered eight scenarios across Chromium, Firefox, and WebKit with matching world/collision/boundary digests, deterministic event traces, and simulation/frame p95, descendant-browser CPU, and JavaScript heap growth within config/world-interaction-budgets.json; negative tests proved WORLD_EVENT_TRACE_MISMATCH, WORLD_TRACE_NOT_REPEATABLE, WORLD_RESOURCE_BUDGET_EXCEEDED, and WORLD_SCENARIO_INCOMPLETE for altered events, perturbed runs, each lowered budget, omitted coverage, and changed policy identity; final integration validation and immutable image publication succeeded in Actions runs 4160 and 4161. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0085",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0085-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0085",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0085",
            "state": "Done",
            "event_id": "FLOW-TASK-0085-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0085",
            "state": "Done",
            "event_id": "FLOW-TASK-0085-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0085",
            "state": "Done",
            "event_id": "FLOW-TASK-0085-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0085.yml",
            "item_id": "TASK-0085",
            "state": "Done",
            "event_id": "FLOW-TASK-0085-DONE-20260915"
          }
        ],
        "previous_hash": "bf769c4de0e3a0bdb556ffae1d981fc1d03f8766731b064babea3df6732d1e35",
        "hash": "62da8fde717a2176625c31a8bf8e9da5ada4fab8eb14fc145b034c680a8849c2"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0085-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0085",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0085",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0085-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0085.yml",
              "item_id": "TASK-0085",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0085-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "b58807ef6c0e8e88394800e101ce60b4cf1c0ac30af60c86cc565da6b7953dd7"
        },
        {
          "event_id": "FLOW-TASK-0085-IN-PROGRESS-20260908",
          "sequence": 2,
          "item_id": "TASK-0085",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-08T10:58:19Z",
          "conditions": [
            "Whole Wave 17 claim: TASK-0050, TASK-0063, TASK-0067, TASK-0085, TASK-0098, and TASK-0113 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0085-verify-world-interaction-1",
              "item_id": "TASK-0085",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0085-IN-PROGRESS-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/115",
              "item_id": "TASK-0085",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0085-IN-PROGRESS-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5f57f5b7059c47d7d2632748eeb687f3e9376a72",
              "item_id": "TASK-0085",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0085-IN-PROGRESS-20260908"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0085.yml",
              "item_id": "TASK-0085",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0085-IN-PROGRESS-20260908"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0085-verify-world-interaction-1",
          "claim_base_sha": "5f57f5b7059c47d7d2632748eeb687f3e9376a72",
          "previous_hash": "b58807ef6c0e8e88394800e101ce60b4cf1c0ac30af60c86cc565da6b7953dd7",
          "hash": "a7ee935bce195604687ece9704993361818a087a22fc7c1595ae98b04001ec40"
        },
        {
          "event_id": "FLOW-TASK-0085-TO-BE-RELEASED-20260909",
          "sequence": 3,
          "item_id": "TASK-0085",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T06:32:44Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/115",
              "item_id": "TASK-0085",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0085-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/119",
              "item_id": "TASK-0085",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0085-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7d2c2427443470537f85742eba9659105341ac73",
              "item_id": "TASK-0085",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0085-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4160",
              "item_id": "TASK-0085",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0085-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4161",
              "item_id": "TASK-0085",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0085-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0085.yml",
              "item_id": "TASK-0085",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0085-TO-BE-RELEASED-20260909"
            }
          ],
          "previous_hash": "a7ee935bce195604687ece9704993361818a087a22fc7c1595ae98b04001ec40",
          "hash": "bf769c4de0e3a0bdb556ffae1d981fc1d03f8766731b064babea3df6732d1e35"
        },
        {
          "event_id": "FLOW-TASK-0085-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0085",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0085",
              "state": "Done",
              "event_id": "FLOW-TASK-0085-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0085",
              "state": "Done",
              "event_id": "FLOW-TASK-0085-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0085",
              "state": "Done",
              "event_id": "FLOW-TASK-0085-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0085.yml",
              "item_id": "TASK-0085",
              "state": "Done",
              "event_id": "FLOW-TASK-0085-DONE-20260915"
            }
          ],
          "previous_hash": "bf769c4de0e3a0bdb556ffae1d981fc1d03f8766731b064babea3df6732d1e35",
          "hash": "62da8fde717a2176625c31a8bf8e9da5ada4fab8eb14fc145b034c680a8849c2"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0086",
      "display_id": "AEROSIM-TS-86",
      "title": "Define and validate aircraft handling archetype configurations",
      "feature_id": "AEROSIM-FT-9",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-9/aerosim-ts-86/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0086.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "@corp-v1-aerosim/flight-core — aircraft handling catalogue",
      "outcome": "Each supported aircraft has one validated configuration for stability, responsiveness, speed, and control authority.",
      "scope": "Define AircraftHandlingConfigV1 and validate a versioned catalogue containing trainer and sport archetypes. Fields are massKg, inertiaTensorKgM2, wingAreaM2, liftSlope, zeroLiftDrag, inducedDragFactor, maxThrustN, pitch/roll/yawAuthorityNm, staticStability, angularDamping, maxOperationalSpeedMps, and controlResponseSeconds. Load by aircraftConfigId and return an immutable record with a SHA-256 content digest.",
      "implementation_artifacts": [
        "packages/flight-core/src/config/aircraft-handling-config.ts",
        "packages/flight-core/src/config/aircraft-catalogue.ts",
        "packages/flight-core/test/config/aircraft-catalogue.spec.ts",
        "packages/flight-core/config/aircraft/trainer.v1.json",
        "packages/flight-core/config/aircraft/sport.v1.json"
      ],
      "inputs": [
        "AircraftHandlingConfigV1 JSON with schemaVersion='1', unique aircraftConfigId, all named aerodynamic/mass/control fields, and values within schema-declared inclusive bounds."
      ],
      "outputs": [
        "AircraftConfigSnapshot {aircraftConfigId,schemaVersion:'1',contentDigest,config}; config is deeply frozen and its digest is computed from canonical key ordering."
      ],
      "failure_boundaries": [
        "Reject with AIRCRAFT_CONFIG_SCHEMA_UNSUPPORTED when schemaVersion is not '1'.",
        "Reject with AIRCRAFT_CONFIG_INVALID and JSON-pointer error paths for missing, non-finite, non-positive, or out-of-bound fields.",
        "Reject catalogue startup with AIRCRAFT_CONFIG_ID_DUPLICATE when two files declare the same aircraftConfigId.",
        "Reject with AIRCRAFT_CONFIG_DIGEST_MISMATCH when loaded bytes do not match the digest bound into a FlightSessionConfig."
      ],
      "exclusions": [
        "A user-editable tuning UI, runtime config mutation, real-aircraft certification data, damage variants, payload/fuel mass changes, and additional archetypes beyond trainer and sport are excluded."
      ],
      "verification_steps": [
        "Run packages/flight-core/test/config/aircraft-catalogue.spec.ts.",
        "Validate trainer.v1.json and sport.v1.json, assert unique IDs, stable content digests, frozen output, and every required field.",
        "Mutate each bounded field below and above its limit, remove required keys, duplicate an ID, change schemaVersion, and alter bytes after digest capture; assert exact error code and path.",
        "Assert trainer and sport differ in at least staticStability, controlResponseSeconds, maxOperationalSpeedMps, and one control-authority field."
      ],
      "dependencies": [
        "TASK-0075"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0016"
      ],
      "acceptance_evidence": "Verified delivery: application PR #28 reviewed head 685313b23543f77c301a364889a02f5a61b91a86, exact-head validation task 1842 succeeded, merged as e6212bf637045138da191634fe113285156426b3; Wave 5 integrated application head e6212bf637045138da191634fe113285156426b3 passed publish task 1856 and validate task 1857. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0086",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0086-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0086",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0086",
            "state": "Done",
            "event_id": "FLOW-TASK-0086-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0086",
            "state": "Done",
            "event_id": "FLOW-TASK-0086-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0086",
            "state": "Done",
            "event_id": "FLOW-TASK-0086-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0086.yml",
            "item_id": "TASK-0086",
            "state": "Done",
            "event_id": "FLOW-TASK-0086-DONE-20260915"
          }
        ],
        "previous_hash": "f01001c8374c6a28d206a7000f8a05558072e1a4142c889bea7b13267d8b69bb",
        "hash": "16c46e0906f58597cc7c36cb3ca04831ee5d2cc6a238058bb9b82cb204165f4b"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0086-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0086",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0086",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0086-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0086.yml",
              "item_id": "TASK-0086",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0086-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "a7a3264579fdc5b4be0648d931a0b0708b81a250ffed754d9b069c5e4f7b7858"
        },
        {
          "event_id": "FLOW-TASK-0086-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0086",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T12:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0086-aircraft-archetypes",
              "item_id": "TASK-0086",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0086-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0086.yml",
              "item_id": "TASK-0086",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0086-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0086-aircraft-archetypes",
          "claim_base_sha": "e8bfe781d3295d445cbc46b297874f066cac8301",
          "previous_hash": "a7a3264579fdc5b4be0648d931a0b0708b81a250ffed754d9b069c5e4f7b7858",
          "hash": "de10e844924a59156fff58634fdc5f18511b561c0f5b0e49bc3e3eab85f19241"
        },
        {
          "event_id": "FLOW-TASK-0086-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0086",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T13:53:07Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/28",
              "item_id": "TASK-0086",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0086-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/e6212bf637045138da191634fe113285156426b3",
              "item_id": "TASK-0086",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0086-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0086.yml",
              "item_id": "TASK-0086",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0086-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "de10e844924a59156fff58634fdc5f18511b561c0f5b0e49bc3e3eab85f19241",
          "hash": "f01001c8374c6a28d206a7000f8a05558072e1a4142c889bea7b13267d8b69bb"
        },
        {
          "event_id": "FLOW-TASK-0086-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0086",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0086",
              "state": "Done",
              "event_id": "FLOW-TASK-0086-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0086",
              "state": "Done",
              "event_id": "FLOW-TASK-0086-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0086",
              "state": "Done",
              "event_id": "FLOW-TASK-0086-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0086.yml",
              "item_id": "TASK-0086",
              "state": "Done",
              "event_id": "FLOW-TASK-0086-DONE-20260915"
            }
          ],
          "previous_hash": "f01001c8374c6a28d206a7000f8a05558072e1a4142c889bea7b13267d8b69bb",
          "hash": "16c46e0906f58597cc7c36cb3ca04831ee5d2cc6a238058bb9b82cb204165f4b"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0087",
      "display_id": "AEROSIM-TS-87",
      "title": "Use one handling configuration in physics and presentation",
      "feature_id": "AEROSIM-FT-9",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-9/aerosim-ts-87/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0087.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web flight session — aircraft configuration resolver and handling presenter",
      "outcome": "The deterministic runtime and displayed handling characteristics consume the same validated aircraft configuration.",
      "scope": "Resolve aircraftConfigId once during FlightSessionConfig creation and pass its AircraftConfigSnapshot to evaluateFlightForces and control response calculations. Derive AircraftHandlingPresentation from that same snapshot with stability, responsiveness, speed, and controlAuthority ratings plus sourceDigest; render it in the pre-flight summary and in-session aircraft panel.",
      "implementation_artifacts": [
        "applications/web/src/flight/config/resolve-aircraft-session-config.ts",
        "applications/web/src/flight/presentation/aircraft-handling-presentation.ts",
        "applications/web/test/flight/aircraft-config-integration.spec.ts"
      ],
      "inputs": [
        "FlightLaunchRequest {aircraftConfigId,environmentPresetId,seed} and AircraftConfigSnapshot from EP3-FT9-01."
      ],
      "outputs": [
        "FlightSessionConfig {sessionId,aircraftConfigId,aircraftConfigDigest,aircraftConfig,...} consumed by physics, and AircraftHandlingPresentation {aircraftConfigId,sourceDigest,stability,responsiveness,speed,controlAuthority} consumed by both screens."
      ],
      "failure_boundaries": [
        "Reject launch with AIRCRAFT_NOT_FOUND when aircraftConfigId is absent from the catalogue.",
        "Reject launch with AIRCRAFT_CONFIG_INVALID when catalogue validation failed; no fallback archetype is selected.",
        "Terminate setup with AIRCRAFT_CONFIG_DIGEST_MISMATCH if physics and presentation sourceDigest values differ.",
        "Ignore attempts to mutate aircraftConfigId or config values after session creation and emit SESSION_CONFIG_IMMUTABLE; the active session remains unchanged."
      ],
      "exclusions": [
        "Changing aircraft during a session, per-player tuning, cosmetic model selection, persistence of favourites, and interpolation between archetypes are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/aircraft-config-integration.spec.ts.",
        "Launch trainer and sport sessions and assert force/control functions receive the exact frozen snapshot whose digest appears in both pre-flight and in-session presentation models.",
        "Request unknown and invalid IDs, inject mismatched digests, and attempt post-launch mutation; assert each exact failure and unchanged active session.",
        "Assert all four displayed ratings are deterministic functions of named config fields and contain no independent editable values."
      ],
      "dependencies": [
        "TASK-0086"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0016"
      ],
      "acceptance_evidence": "Verified delivery: application PR #35 reviewed head 22059b7b0211165a8dfa5c840b5fb5e968343c4f, exact-head validation task 1873 succeeded, merged as 5e7babdbc9d3749c062995a48da78cc12a43ef1a; Wave 6 integrated application head 5e7babdbc9d3749c062995a48da78cc12a43ef1a passed publish task 1879 and validate task 1880. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0087",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0087-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0087",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0087",
            "state": "Done",
            "event_id": "FLOW-TASK-0087-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0087",
            "state": "Done",
            "event_id": "FLOW-TASK-0087-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0087",
            "state": "Done",
            "event_id": "FLOW-TASK-0087-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0087.yml",
            "item_id": "TASK-0087",
            "state": "Done",
            "event_id": "FLOW-TASK-0087-DONE-20260915"
          }
        ],
        "previous_hash": "654efdd782c4e08740bddc964c0fb7580d983fdc93aae772ca0c7050f918037d",
        "hash": "b63517238c6bd6839d99d5493787d8a8f6f0687639cfe7ab6c0787015dad31ea"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0087-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0087",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0087",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0087-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0087.yml",
              "item_id": "TASK-0087",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0087-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "e3c2c474294a249b6d5bf846892c11430957a27dcdc3f69d92352d8596a61f56"
        },
        {
          "event_id": "FLOW-TASK-0087-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0087",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T14:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0087-aircraft-config-integration",
              "item_id": "TASK-0087",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0087-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0087.yml",
              "item_id": "TASK-0087",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0087-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0087-aircraft-config-integration",
          "claim_base_sha": "e6212bf637045138da191634fe113285156426b3",
          "previous_hash": "e3c2c474294a249b6d5bf846892c11430957a27dcdc3f69d92352d8596a61f56",
          "hash": "1045b00a1b8613c39dd6c12b9afb77de796faed8fb70a271552068604f7c70bc"
        },
        {
          "event_id": "FLOW-TASK-0087-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0087",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T17:41:17Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/35",
              "item_id": "TASK-0087",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0087-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5e7babdbc9d3749c062995a48da78cc12a43ef1a",
              "item_id": "TASK-0087",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0087-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0087.yml",
              "item_id": "TASK-0087",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0087-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "1045b00a1b8613c39dd6c12b9afb77de796faed8fb70a271552068604f7c70bc",
          "hash": "654efdd782c4e08740bddc964c0fb7580d983fdc93aae772ca0c7050f918037d"
        },
        {
          "event_id": "FLOW-TASK-0087-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0087",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0087",
              "state": "Done",
              "event_id": "FLOW-TASK-0087-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0087",
              "state": "Done",
              "event_id": "FLOW-TASK-0087-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0087",
              "state": "Done",
              "event_id": "FLOW-TASK-0087-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0087.yml",
              "item_id": "TASK-0087",
              "state": "Done",
              "event_id": "FLOW-TASK-0087-DONE-20260915"
            }
          ],
          "previous_hash": "654efdd782c4e08740bddc964c0fb7580d983fdc93aae772ca0c7050f918037d",
          "hash": "b63517238c6bd6839d99d5493787d8a8f6f0687639cfe7ab6c0787015dad31ea"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "supporting",
        "design_refs": [
          "UIUX-100-PREFLIGHT",
          "UIUX-100-CHASE"
        ],
        "acceptance": [
          "Aircraft handling shown before launch and during flight must derive from the same immutable configuration used by physics.",
          "Verify presentation/configuration digest parity without inventing a separate handling screen."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0088",
      "display_id": "AEROSIM-TS-88",
      "title": "Verify observable and repeatable handling differences",
      "feature_id": "AEROSIM-FT-9",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-9/aerosim-ts-88/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0088.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web flight runtime — aircraft handling comparison harness",
      "outcome": "Equivalent governed scenarios demonstrate repeatable, configuration-consistent differences between supported aircraft.",
      "scope": "Run trainer and sport through the same 3,600-tick handling-comparison fixture with identical initial state, environment, seed, timestep, and pitch/roll/throttle commands. Produce HandlingComparisonReport for roll time-to-30-degrees, pitch settling time, peak level-flight speed, heading recovery, and presentation/config digest parity; enforce metric-specific separation thresholds from config/handling-comparison-thresholds.json.",
      "implementation_artifacts": [
        "applications/web/test/flight/aircraft-handling-comparison.browser.spec.ts",
        "applications/web/test/fixtures/handling/standard-manoeuvre.json",
        "config/handling-comparison-thresholds.json"
      ],
      "inputs": [
        "HandlingComparisonRequest {buildSha,leftConfigId:'trainer',rightConfigId:'sport',initialState,environmentSnapshot,seed,fixedStepSeconds,commands} with one shared fixture digest."
      ],
      "outputs": [
        "HandlingComparisonReport {fixtureDigest,aircraftDigests,metrics:{roll30Seconds,pitchSettlingSeconds,peakSpeedMps,headingRecoverySeconds},differences,thresholds,presentationDigestParity,passed,violations}."
      ],
      "failure_boundaries": [
        "Fail with COMPARISON_INPUT_MISMATCH if initial state, environment, seed, timestep, or command digest differs between aircraft runs.",
        "Fail with HANDLING_DIFFERENCE_NOT_OBSERVED when any required metric separation is below its committed threshold.",
        "Fail with HANDLING_RUN_NOT_REPEATABLE when either aircraft's repeated metric differs beyond config/determinism-tolerances.json.",
        "Fail with HANDLING_PRESENTATION_MISMATCH when either displayed sourceDigest or rating does not correspond to the physics config snapshot."
      ],
      "exclusions": [
        "Pilot skill scoring, subjective realism, superiority ranking, real-aircraft performance claims, more than the two supported archetypes, and environmental comparison are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/aircraft-handling-comparison.browser.spec.ts in Chromium, Firefox, and WebKit.",
        "Execute five repetitions per aircraft and assert all metric separation, within-aircraft repeatability, and presentation digest checks.",
        "Deliberately share identical configs, alter one run input, perturb a repeated metric, and substitute a presentation digest; assert the four exact failure codes.",
        "Retain test-results/handling/aircraft-comparison.json with build, fixture, and both aircraft digests."
      ],
      "dependencies": [
        "TASK-0087"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0016",
        "NFR-0009"
      ],
      "acceptance_evidence": "Verified delivery: application PR #43 reviewed head 41cd2892b307c5f2a797e8bf10c89e533f38fabe, exact-head validation task 1890 succeeded, merged as 44d3032e6ec45b98cc099dd4a5baf6840f4b034f; Wave 7 integrated application head b75d00b8c3864752bf5b1ea0298097add346f0aa passed publish task 1899 and validate task 1900. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0088",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0088-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0088",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0088",
            "state": "Done",
            "event_id": "FLOW-TASK-0088-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0088",
            "state": "Done",
            "event_id": "FLOW-TASK-0088-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0088",
            "state": "Done",
            "event_id": "FLOW-TASK-0088-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0088.yml",
            "item_id": "TASK-0088",
            "state": "Done",
            "event_id": "FLOW-TASK-0088-DONE-20260915"
          }
        ],
        "previous_hash": "6da4c03a4721d142e05dffa73d07950ab570f431a780ad4e4db7c892ac8a94ff",
        "hash": "71bbccdaa3400c95b06f6dd7604d185ee7aa91ae27e58a641b7c61f8856a545f"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0088-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0088",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0088",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0088-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0088.yml",
              "item_id": "TASK-0088",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0088-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "ab82e5768fb6f8a0828f27a7b1489ebe558b7f81bcdf543778a7bd7cdd4af8a0"
        },
        {
          "event_id": "FLOW-TASK-0088-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0088",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T20:00:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0088-handling-comparison",
              "item_id": "TASK-0088",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0088-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0088.yml",
              "item_id": "TASK-0088",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0088-IN-PROGRESS-20260904"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0088-handling-comparison",
          "claim_base_sha": "5e7babdbc9d3749c062995a48da78cc12a43ef1a",
          "previous_hash": "ab82e5768fb6f8a0828f27a7b1489ebe558b7f81bcdf543778a7bd7cdd4af8a0",
          "hash": "bf99b7fb1a0a1f5a74cb3b94e1280dac43f60883c37f6e57ef989d60ab90ee49"
        },
        {
          "event_id": "FLOW-TASK-0088-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0088",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T22:26:36Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/43",
              "item_id": "TASK-0088",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0088-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/44d3032e6ec45b98cc099dd4a5baf6840f4b034f",
              "item_id": "TASK-0088",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0088-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0088.yml",
              "item_id": "TASK-0088",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0088-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "bf99b7fb1a0a1f5a74cb3b94e1280dac43f60883c37f6e57ef989d60ab90ee49",
          "hash": "6da4c03a4721d142e05dffa73d07950ab570f431a780ad4e4db7c892ac8a94ff"
        },
        {
          "event_id": "FLOW-TASK-0088-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0088",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0088",
              "state": "Done",
              "event_id": "FLOW-TASK-0088-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0088",
              "state": "Done",
              "event_id": "FLOW-TASK-0088-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0088",
              "state": "Done",
              "event_id": "FLOW-TASK-0088-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0088.yml",
              "item_id": "TASK-0088",
              "state": "Done",
              "event_id": "FLOW-TASK-0088-DONE-20260915"
            }
          ],
          "previous_hash": "6da4c03a4721d142e05dffa73d07950ab570f431a780ad4e4db7c892ac8a94ff",
          "hash": "71bbccdaa3400c95b06f6dd7604d185ee7aa91ae27e58a641b7c61f8856a545f"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "verification",
        "design_refs": [
          "UIUX-100-FULL-JOURNEY"
        ],
        "acceptance": [
          "Repeated handling evidence must prove that the approved journey presents observable aircraft-specific differences without breaking shared flight states.",
          "Retain exact configuration digests, comparison metrics, and certified-browser evidence."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0089",
      "display_id": "AEROSIM-TS-89",
      "title": "Implement the authoritative primary chase-camera rig",
      "feature_id": "AEROSIM-FT-12",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-12/aerosim-ts-89/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0089.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Three.js primary chase-camera rig",
      "outcome": "Active flight starts in the primary chase view, which follows the controlled aircraft continuously without becoming a second owner of aircraft state.",
      "scope": "Implement applications/web/src/flight/cameras/primary-chase-camera.ts, applications/web/test/flight/primary-chase-camera.spec.ts. Consume only the inputs listed in this contract, publish only its listed outputs, enforce every failure boundary before commit, and prove the listed exclusions remain unchanged through the verification steps.",
      "implementation_artifacts": [
        "applications/web/src/flight/cameras/primary-chase-camera.ts",
        "applications/web/test/flight/primary-chase-camera.spec.ts"
      ],
      "inputs": [
        "ActiveFlightStarted { attemptId, aircraftEntityId, initialPose, simulationStep } emitted once after the world and controlled aircraft are ready.",
        "AircraftFrame { attemptId, simulationStep, position, orientation, velocity } from the authoritative flight runtime on each committed step.",
        "ChaseCameraConfig { offsetMetres, lookAheadSeconds, positionSmoothing, rotationSmoothing } whose numeric fields are finite and within configured bounds."
      ],
      "outputs": [
        "PrimaryCameraState { attemptId, sourceStep, position, quaternion, lookAt } selected as the active camera for the first rendered active-flight frame.",
        "One camera update per committed AircraftFrame; the update reads aircraft state and writes only camera transform state."
      ],
      "failure_boundaries": [
        "Reject start when the aircraft entity is absent, the attempt identifier differs from the active attempt, or any pose/configuration number is non-finite; do not activate a camera.",
        "Ignore an AircraftFrame whose attemptId is stale or whose simulationStep is not greater than the last applied step, retaining the last valid camera state.",
        "If camera computation produces a non-finite transform, retain the last valid transform and emit PrimaryCameraFault with attemptId and sourceStep; never write aircraft pose, velocity, forces, or input ownership."
      ],
      "exclusions": [
        "Secondary-camera registration or selection.",
        "Simulation stepping, aircraft-force calculation, pause handling, and session termination."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/primary-chase-camera.spec.ts and assert that ActiveFlightStarted selects the chase rig before the first active-flight render.",
        "Replay a fixed AircraftFrame trace and assert exactly one ordered camera state per increasing simulationStep and zero writes to aircraft or input-owner stores.",
        "Inject missing aircraft, stale attempt/step, out-of-range configuration, and NaN/Infinity values; assert no activation or invalid transform is published and PrimaryCameraFault is emitted where specified."
      ],
      "dependencies": [
        "TASK-0027",
        "TASK-0096"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0019"
      ],
      "acceptance_evidence": "Verified delivery: application PR #140 reviewed head 6b540617f46e40f38eaeb9087aa1c6248673dd3b merged as a5bbb026841a454d42e0f0496f7c010c9c3ef57f7. Primary chase activation precedes first active render; increasing frames yield one ordered finite camera state; stale frames retain the last valid transform; invalid configuration/start and non-finite computation fail closed without aircraft/input mutation. Focused tests pass 5/5; web tests pass 1,109/1,109 plus existing browser suites; lint, typecheck, build, audit, candidate runs 4388-4389, and integration/publication runs 4390-4391 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0089",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0089-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0089",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0089",
            "state": "Done",
            "event_id": "FLOW-TASK-0089-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0089",
            "state": "Done",
            "event_id": "FLOW-TASK-0089-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0089",
            "state": "Done",
            "event_id": "FLOW-TASK-0089-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0089.yml",
            "item_id": "TASK-0089",
            "state": "Done",
            "event_id": "FLOW-TASK-0089-DONE-20260915"
          }
        ],
        "previous_hash": "bada18232de39149195458fa8f348c119dc29f44d7dfea2a8f22514d5f07ee62",
        "hash": "bc9bc9ab724d6f7f1f4f18e5e84ee1876d37f928a355bc0c666fc50af3d6e2df"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0089-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0089",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0089",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0089-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0089.yml",
              "item_id": "TASK-0089",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0089-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "260af37f53976efbe59496f39ed0581a5d82d2de7b48df1a39f8da2b94ca9402"
        },
        {
          "event_id": "FLOW-TASK-0089-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0089",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T16:59:17Z",
          "conditions": [
            "Wave 23 remains current; TASK-0027 and TASK-0096 are TO_BE_RELEASED."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0089-primary-chase-camera-1",
          "claim_base_sha": "28ee48de26badd56200f0496f7c010c9c3ef57f7",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/140",
              "item_id": "TASK-0089",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0089-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0089.yml",
              "item_id": "TASK-0089",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0089-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "260af37f53976efbe59496f39ed0581a5d82d2de7b48df1a39f8da2b94ca9402",
          "hash": "ed49dc79e20c82e22754501bcfe91d28c03e72e224d9e264d1e17b345da70dcb"
        },
        {
          "event_id": "FLOW-TASK-0089-TO-BE-RELEASED-20260910",
          "sequence": 3,
          "item_id": "TASK-0089",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T17:24:12Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/140",
              "item_id": "TASK-0089",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0089-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/a5bbb026841a454d42e0f0496f7c010c9c3ef57f7",
              "item_id": "TASK-0089",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0089-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0089.yml",
              "item_id": "TASK-0089",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0089-TO-BE-RELEASED-20260910"
            }
          ],
          "previous_hash": "ed49dc79e20c82e22754501bcfe91d28c03e72e224d9e264d1e17b345da70dcb",
          "hash": "bada18232de39149195458fa8f348c119dc29f44d7dfea2a8f22514d5f07ee62"
        },
        {
          "event_id": "FLOW-TASK-0089-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0089",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0089",
              "state": "Done",
              "event_id": "FLOW-TASK-0089-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0089",
              "state": "Done",
              "event_id": "FLOW-TASK-0089-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0089",
              "state": "Done",
              "event_id": "FLOW-TASK-0089-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0089.yml",
              "item_id": "TASK-0089",
              "state": "Done",
              "event_id": "FLOW-TASK-0089-DONE-20260915"
            }
          ],
          "previous_hash": "bada18232de39149195458fa8f348c119dc29f44d7dfea2a8f22514d5f07ee62",
          "hash": "bc9bc9ab724d6f7f1f4f18e5e84ee1876d37f928a355bc0c666fc50af3d6e2df"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0090",
      "display_id": "AEROSIM-TS-90",
      "title": "Compose and verify the chase-camera flight viewport",
      "feature_id": "AEROSIM-FT-12",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-12/aerosim-ts-90/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0090.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Three.js flight viewport composition and camera verification",
      "outcome": "The representative viewport keeps the aircraft, flight direction, and nearby hazards legible while the chase camera follows the aircraft within the declared latency budget.",
      "scope": "Implement applications/web/src/flight/viewport/chase-flight-viewport.tsx, applications/web/test/flight/chase-flight-viewport.browser.spec.ts. Consume only the inputs listed in this contract, publish only its listed outputs, enforce every failure boundary before commit, and prove the listed exclusions remain unchanged through the verification steps.",
      "implementation_artifacts": [
        "applications/web/src/flight/viewport/chase-flight-viewport.tsx",
        "applications/web/test/flight/chase-flight-viewport.browser.spec.ts"
      ],
      "inputs": [
        "PrimaryCameraState for the active attempt and its matching AircraftFrame.",
        "FlightSceneSnapshot containing controlled-aircraft and nearby-hazard render handles with bounding volumes.",
        "FlightViewportConfig { widthPx, heightPx, nearMetres, farMetres, latencyBudgetMs } for each declared representative viewport and bounded heavy-scene fixture."
      ],
      "outputs": [
        "A full-viewport render using PrimaryCameraState with the controlled aircraft in frame and current flight-direction and nearby-hazard cues rendered from the matching sourceStep.",
        "LatencySample { attemptId, sourceStep, stateCommittedAt, framePresentedAt, elapsedMs, fixture } for every measured frame."
      ],
      "failure_boundaries": [
        "Do not present a frame when camera and aircraft attemptId or sourceStep differ; retain the prior valid frame and record ViewportFrameMismatch.",
        "Reject zero/negative dimensions, invalid clipping planes, non-finite bounds, or a missing controlled-aircraft render handle before rendering.",
        "Fail the browser contract when the controlled aircraft, direction cue, or in-range hazard is outside the viewport fixture, or when a latency sample exceeds FlightViewportConfig.latencyBudgetMs."
      ],
      "exclusions": [
        "Secondary-camera switching and camera registry ownership.",
        "Changes to collision, aircraft motion, control commands, pause state, or completion state."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/chase-flight-viewport.browser.spec.ts for every declared viewport against ordinary and bounded heavy-scene fixtures.",
        "Assert camera/aircraft step matching, controlled-aircraft bounds inside the viewport, direction-cue visibility, and each in-range hazard intersection with the rendered frustum.",
        "Capture state-to-present latency samples and compare every elapsedMs to the fixture latencyBudgetMs; inject mismatched steps, invalid planes, missing handles, and non-finite bounds and assert no misleading frame is presented."
      ],
      "dependencies": [
        "TASK-0089"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0019",
        "NFR-0010"
      ],
      "acceptance_evidence": "Verified delivery: application PR #144 reviewed head 5d6574ede15972c771708ef2659aa5eb27d86e3e merged as 596f158768b10caa645d771e468e071bfbe7e798. The immutable chase viewport validates matching attempt/source-step identity, dimensions, clipping planes, render handles, finite bounds, frustum visibility, and state-to-present latency; retains the prior valid frame on mismatch; and renders controlled-aircraft, flight-direction, and nearby-hazard cues for ordinary and bounded heavy-scene fixtures without changing camera registry, motion, controls, pause, collision, or completion state. Focused viewport tests pass 9/9; canonical web suites pass 1,184/1,184; formatting, lint, typecheck, build, production audit, exact-head CI jobs 4133-4139, integration validation runs 4141 and 4143, and immutable image publication run 4144 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0090",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0090-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0090",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0090",
            "state": "Done",
            "event_id": "FLOW-TASK-0090-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0090",
            "state": "Done",
            "event_id": "FLOW-TASK-0090-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0090",
            "state": "Done",
            "event_id": "FLOW-TASK-0090-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0090.yml",
            "item_id": "TASK-0090",
            "state": "Done",
            "event_id": "FLOW-TASK-0090-DONE-20260915"
          }
        ],
        "previous_hash": "7d7dd4ee33d9b27e8e4d68d57a9de37cf90d066a2e8f616c011728da1aa9ccfd",
        "hash": "3c21debbc5be585e69d76e695cd11fc78303931ed11b3ae121eeca41021e1b0b"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0090-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0090",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0090",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0090-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0090.yml",
              "item_id": "TASK-0090",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0090-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "62ae8e8bdee7b90e3f0696c55e33eae409418f7d988a1a9d00750d0856b13ced"
        },
        {
          "event_id": "FLOW-TASK-0090-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0090",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T21:47:46Z",
          "conditions": [
            "Wave 24 remains current; TASK-0089 and TASK-0005 are TO_BE_RELEASED."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0090-chase-flight-viewport-1",
          "claim_base_sha": "b1694ae08712d3de56e53bdf273c7973a6f55dca",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/144",
              "item_id": "TASK-0090",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0090-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0090.yml",
              "item_id": "TASK-0090",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0090-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "62ae8e8bdee7b90e3f0696c55e33eae409418f7d988a1a9d00750d0856b13ced",
          "hash": "2da5eea4fa6b8f2e98d59a8b24dfcbc542a8fc368229487cde02522e87fbb340"
        },
        {
          "event_id": "FLOW-TASK-0090-TO-BE-RELEASED-20260910",
          "sequence": 3,
          "item_id": "TASK-0090",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T22:12:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/144",
              "item_id": "TASK-0090",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0090-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/596f158768b10caa645d771e468e071bfbe7e798",
              "item_id": "TASK-0090",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0090-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4141",
              "item_id": "TASK-0090",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0090-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4143",
              "item_id": "TASK-0090",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0090-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4144",
              "item_id": "TASK-0090",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0090-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0090.yml",
              "item_id": "TASK-0090",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0090-TO-BE-RELEASED-20260910"
            }
          ],
          "previous_hash": "2da5eea4fa6b8f2e98d59a8b24dfcbc542a8fc368229487cde02522e87fbb340",
          "hash": "7d7dd4ee33d9b27e8e4d68d57a9de37cf90d066a2e8f616c011728da1aa9ccfd"
        },
        {
          "event_id": "FLOW-TASK-0090-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0090",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0090",
              "state": "Done",
              "event_id": "FLOW-TASK-0090-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0090",
              "state": "Done",
              "event_id": "FLOW-TASK-0090-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0090",
              "state": "Done",
              "event_id": "FLOW-TASK-0090-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0090.yml",
              "item_id": "TASK-0090",
              "state": "Done",
              "event_id": "FLOW-TASK-0090-DONE-20260915"
            }
          ],
          "previous_hash": "7d7dd4ee33d9b27e8e4d68d57a9de37cf90d066a2e8f616c011728da1aa9ccfd",
          "hash": "3c21debbc5be585e69d76e695cd11fc78303931ed11b3ae121eeca41021e1b0b"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0091",
      "display_id": "AEROSIM-TS-91",
      "title": "Suspend the simulation clock and capture the paused attempt",
      "feature_id": "AEROSIM-FT-13",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-13/aerosim-ts-91/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0091.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application / Flight shell and Deterministic flight runtime — pause state machine",
      "outcome": "A valid pause atomically freezes fixed-step advancement and captures one typed attempt snapshot.",
      "scope": "Implement applications/web/src/flight/session/pause-state-machine.ts, applications/web/test/flight/pause-state-machine.spec.ts. Consume only the inputs listed in this contract, publish only its listed outputs, enforce every failure boundary before commit, and prove the listed exclusions remain unchanged through the verification steps.",
      "implementation_artifacts": [
        "applications/web/src/flight/session/pause-state-machine.ts",
        "applications/web/test/flight/pause-state-machine.spec.ts"
      ],
      "inputs": [
        "PauseRequested { attemptId, commandId, requestedAt } for the current ACTIVE attempt.",
        "The last committed SimulationSnapshot { attemptId, stepIndex, simulationTimeMs, aircraftState, inputOwnerId, activeCameraId, selectedConfigurationId }."
      ],
      "outputs": [
        "PausedAttemptSnapshot containing the exact last committed step, simulation time, aircraft state, input owner, camera, selection, and commandId, stored before state changes from ACTIVE to PAUSED.",
        "PauseAccepted { attemptId, commandId, pausedAtStep } and a PAUSED session state in which fixed-step scheduling and command application are disabled."
      ],
      "failure_boundaries": [
        "Reject PauseRequested unless its attempt is ACTIVE and matches the current attempt; the session and clock remain unchanged.",
        "Treat a repeated commandId as idempotent: return the original PauseAccepted and do not create another snapshot or transition.",
        "If the committed snapshot is missing, stale, or contains non-finite flight values, emit PauseRejected and remain ACTIVE; never publish a partial paused snapshot."
      ],
      "exclusions": [
        "Browser-tab suspension and operating-system sleep handling.",
        "Retry, restart, outcome recording, and camera selection."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/pause-state-machine.spec.ts and assert ACTIVE to PAUSED stores the snapshot before disabling scheduling.",
        "Advance the test clock after pause and assert stepIndex, simulationTimeMs, aircraft state, input owner, and camera state remain byte-equivalent to the captured values.",
        "Submit duplicate, stale-attempt, non-ACTIVE, missing-snapshot, and non-finite-snapshot requests; assert the specified idempotent result or PauseRejected with no partial transition."
      ],
      "dependencies": [
        "TASK-0096"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0020",
        "NFR-0010"
      ],
      "acceptance_evidence": "Verified delivery: application PR #141 reviewed head fcdf6f0 merged as cc0da04e. Event-driven audio preloads governed cues, runs one throttle-mapped engine loop, applies bounded pilot volume and mute preferences immediately, rejects duplicate/stale/foreign events, fails closed on backend errors, and disposes resources at teardown. Focused tests pass 5/5; web tests pass 1,114/1,114 plus browser suites; lint, typecheck, build, audit, candidate runs 4400-4401, and integration/publication runs 4402-4403 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0091",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0091-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0091",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0091",
            "state": "Done",
            "event_id": "FLOW-TASK-0091-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0091",
            "state": "Done",
            "event_id": "FLOW-TASK-0091-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0091",
            "state": "Done",
            "event_id": "FLOW-TASK-0091-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0091.yml",
            "item_id": "TASK-0091",
            "state": "Done",
            "event_id": "FLOW-TASK-0091-DONE-20260915"
          }
        ],
        "previous_hash": "a94806a4ca91f46c6547eb95ef932054f36223498b9cd5fa43729875f2dda216",
        "hash": "84442049e44fce7446e358133890d22f716594e2d7644ab904138433e43c3ba2"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0091-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0091",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0091",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0091-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0091.yml",
              "item_id": "TASK-0091",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0091-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "b74272546d460f1c6ffb15fc514f164eb67e630c6b86bd46cd3de655fdacdf10"
        },
        {
          "event_id": "FLOW-TASK-0091-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0091",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T18:07:31Z",
          "conditions": [
            "Wave 23 remains current; TASK-0096 is TO_BE_RELEASED."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0091-flight-sound-cues-1",
          "claim_base_sha": "a5bbb026841a454d42e0e5056954d2e8b7aadf1b",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/141",
              "item_id": "TASK-0091",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0091-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0091.yml",
              "item_id": "TASK-0091",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0091-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "b74272546d460f1c6ffb15fc514f164eb67e630c6b86bd46cd3de655fdacdf10",
          "hash": "1005543f5a4204e57d2fe8838e5ebb4cdf786cf6e7fb194c4602ad110b6f796c"
        },
        {
          "event_id": "FLOW-TASK-0091-TO-BE-RELEASED-20260910",
          "sequence": 3,
          "item_id": "TASK-0091",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T18:32:47Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/141",
              "item_id": "TASK-0091",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0091-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/cc0da04e1ec56fac36ac2d47a3f41690d2f28859",
              "item_id": "TASK-0091",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0091-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0091.yml",
              "item_id": "TASK-0091",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0091-TO-BE-RELEASED-20260910"
            }
          ],
          "previous_hash": "1005543f5a4204e57d2fe8838e5ebb4cdf786cf6e7fb194c4602ad110b6f796c",
          "hash": "a94806a4ca91f46c6547eb95ef932054f36223498b9cd5fa43729875f2dda216"
        },
        {
          "event_id": "FLOW-TASK-0091-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0091",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0091",
              "state": "Done",
              "event_id": "FLOW-TASK-0091-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0091",
              "state": "Done",
              "event_id": "FLOW-TASK-0091-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0091",
              "state": "Done",
              "event_id": "FLOW-TASK-0091-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0091.yml",
              "item_id": "TASK-0091",
              "state": "Done",
              "event_id": "FLOW-TASK-0091-DONE-20260915"
            }
          ],
          "previous_hash": "a94806a4ca91f46c6547eb95ef932054f36223498b9cd5fa43729875f2dda216",
          "hash": "84442049e44fce7446e358133890d22f716594e2d7644ab904138433e43c3ba2"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0092",
      "display_id": "AEROSIM-TS-92",
      "title": "Restore the preserved attempt through the resume transition",
      "feature_id": "AEROSIM-FT-13",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-13/aerosim-ts-92/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0092.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application / Flight shell — resume coordinator",
      "outcome": "Resume restarts fixed-step processing from the snapshot without a time jump, duplicate command, reset, or changed attempt identity.",
      "scope": "Implement applications/web/src/flight/session/resume-coordinator.ts, applications/web/test/flight/pause-resume.browser.spec.ts. Consume only the inputs listed in this contract, publish only its listed outputs, enforce every failure boundary before commit, and prove the listed exclusions remain unchanged through the verification steps.",
      "implementation_artifacts": [
        "applications/web/src/flight/session/resume-coordinator.ts",
        "applications/web/test/flight/pause-resume.browser.spec.ts"
      ],
      "inputs": [
        "ResumeRequested { attemptId, commandId, requestedAt } for the current PAUSED attempt.",
        "The PausedAttemptSnapshot captured by EP4-FT13-PAUSE for the same attempt, including last committed step and simulation time."
      ],
      "outputs": [
        "ResumeAccepted { attemptId, commandId, firstScheduledStep: pausedStep + 1 } followed by state PAUSED to ACTIVE.",
        "The first resumed SimulationSnapshot preserves attemptId and starts at paused step plus one using the stored aircraft, input-owner, camera, and selection context; wall-clock pause duration is not added to simulationTimeMs."
      ],
      "failure_boundaries": [
        "Reject resume when no paused snapshot exists, attemptId differs, snapshot integrity fails, or session state is not PAUSED; do not start the scheduler.",
        "Treat a repeated commandId as idempotent and schedule no additional loop or command application.",
        "If restoration fails before scheduler activation, remain PAUSED with the original snapshot; emit ResumeRejected and expose a retryable reason."
      ],
      "exclusions": [
        "Creating a new attempt, retry/reset behavior, and restart-to-selection behavior.",
        "Changing camera choice, input ownership, aircraft configuration, or recorded outcomes during resume."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/pause-resume.browser.spec.ts with a deterministic trace; assert preserved attemptId/state and first resumed step equals pausedStep + 1.",
        "Hold the attempt paused with a long wall-clock advance and assert resumed simulationTimeMs advances by one fixed step rather than the wall-clock gap.",
        "Submit missing, corrupt, stale-attempt, duplicate, and non-PAUSED resume requests and inject restore failure; assert one scheduler, no duplicate command, and either unchanged PAUSED state or the specified idempotent response."
      ],
      "dependencies": [
        "TASK-0091"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0020",
        "NFR-0010"
      ],
      "acceptance_evidence": "Verified delivery: application PR #145 reviewed head 846345eaba22ea95788c18430ff971125e0c700a merged as 7f81ada4e79ef85f89baa3ae42abc37580044ab3. Resume restores the preserved attempt and context at pausedStep + 1 and advances simulation time by exactly one fixed step, excludes wall-clock pause time, starts one scheduler, handles duplicate commands idempotently, and fails closed for missing, corrupt, stale, non-PAUSED, and restoration-failure cases. Focused tests pass 10/10; full root tests, lint, typecheck, build, format, security, integration, container, Helm, and production audit passed. Candidate runs 4461-4462 and integration/publication runs 4465-4466 passed, including immutable image digest readback for the exact merge revision. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0092",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0092-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0092",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0092",
            "state": "Done",
            "event_id": "FLOW-TASK-0092-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0092",
            "state": "Done",
            "event_id": "FLOW-TASK-0092-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0092",
            "state": "Done",
            "event_id": "FLOW-TASK-0092-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0092.yml",
            "item_id": "TASK-0092",
            "state": "Done",
            "event_id": "FLOW-TASK-0092-DONE-20260915"
          }
        ],
        "previous_hash": "a0e555cd2d35116222efdd341739fdef50bd5ae7cfdb14f36c1c2a84bcaef62e",
        "hash": "9e2e57ab9f186cfdb7ea4c825dfc8447c0ee73bd0450c97f552b147b02a1985e"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0092-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0092",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0092",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0092-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0092.yml",
              "item_id": "TASK-0092",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0092-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "a41e256d2c970fb778867a43247e50f6240f5d50e1f42b276b7635f835331b49"
        },
        {
          "event_id": "FLOW-TASK-0092-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0092",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T23:06:25Z",
          "conditions": [
            "Wave 24 remains current; TASK-0091 is TO_BE_RELEASED."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0092-resume-transition-1",
          "claim_base_sha": "596f158768b10caa645d771e468e071bfbe7e798",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/145",
              "item_id": "TASK-0092",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0092-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0092.yml",
              "item_id": "TASK-0092",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0092-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "a41e256d2c970fb778867a43247e50f6240f5d50e1f42b276b7635f835331b49",
          "hash": "fdd9daa8cbd4c5aba31c1c5108592d367887038e51785578752034bf9a052b41"
        },
        {
          "event_id": "FLOW-TASK-0092-TO-BE-RELEASED-20260911",
          "sequence": 3,
          "item_id": "TASK-0092",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T00:26:25Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/145",
              "item_id": "TASK-0092",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0092-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7f81ada4e79ef85f89baa3ae42abc37580044ab3",
              "item_id": "TASK-0092",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0092-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4465",
              "item_id": "TASK-0092",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0092-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4466",
              "item_id": "TASK-0092",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0092-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0092.yml",
              "item_id": "TASK-0092",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0092-TO-BE-RELEASED-20260911"
            }
          ],
          "previous_hash": "fdd9daa8cbd4c5aba31c1c5108592d367887038e51785578752034bf9a052b41",
          "hash": "a0e555cd2d35116222efdd341739fdef50bd5ae7cfdb14f36c1c2a84bcaef62e"
        },
        {
          "event_id": "FLOW-TASK-0092-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0092",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0092",
              "state": "Done",
              "event_id": "FLOW-TASK-0092-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0092",
              "state": "Done",
              "event_id": "FLOW-TASK-0092-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0092",
              "state": "Done",
              "event_id": "FLOW-TASK-0092-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0092.yml",
              "item_id": "TASK-0092",
              "state": "Done",
              "event_id": "FLOW-TASK-0092-DONE-20260915"
            }
          ],
          "previous_hash": "a0e555cd2d35116222efdd341739fdef50bd5ae7cfdb14f36c1c2a84bcaef62e",
          "hash": "9e2e57ab9f186cfdb7ea4c825dfc8447c0ee73bd0450c97f552b147b02a1985e"
        }
      ],
      "design_traceability": {
        "kind": "direct_ui",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-PAUSE"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot revision and referenced frames or states before implementation.",
          "Verify observable content, state, interaction, destination, focus behavior, and viewport containment against the design package.",
          "Retain screenshot or rendered evidence and record every approved deviation against the exact application commit."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0093",
      "display_id": "AEROSIM-TS-93",
      "title": "Define the governed secondary-camera registry",
      "feature_id": "AEROSIM-FT-14",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-14/aerosim-ts-93/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0093.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application / R3F flight scene — secondary-camera registry",
      "outcome": "Every supported secondary view resolves through one typed identifier to a camera rig with explicit lifecycle behavior.",
      "scope": "Implement applications/web/src/flight/cameras/secondary-camera-registry.ts, applications/web/test/flight/secondary-camera-registry.spec.ts. Consume only the inputs listed in this contract, publish only its listed outputs, enforce every failure boundary before commit, and prove the listed exclusions remain unchanged through the verification steps.",
      "implementation_artifacts": [
        "applications/web/src/flight/cameras/secondary-camera-registry.ts",
        "applications/web/test/flight/secondary-camera-registry.spec.ts"
      ],
      "inputs": [
        "A build-time list of SecondaryCameraDefinition { id, createRig, initialisationPolicy, disposalPolicy } entries.",
        "AircraftFrame for the active attempt supplied to a created rig as read-only pose input."
      ],
      "outputs": [
        "An immutable SecondaryCameraRegistry keyed by SecondaryCameraId with deterministic sorted identifiers and create/dispose functions for each supported view.",
        "A created secondary rig that writes only its own camera resources and returns CameraFrame for the supplied aircraft sourceStep."
      ],
      "failure_boundaries": [
        "Fail registry construction on an empty, duplicate, or blank identifier, missing factory, or missing lifecycle policy; publish no partial registry.",
        "Return UnsupportedSecondaryCamera for an identifier absent from the registry; do not substitute the primary camera or another secondary view.",
        "If a rig emits a non-finite camera transform, reject that frame and dispose the faulty rig without changing aircraft or control state."
      ],
      "exclusions": [
        "Primary chase-camera implementation and initial active-flight camera selection.",
        "Aircraft physics, control ownership, and persistence of user camera preferences."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/secondary-camera-registry.spec.ts and assert every configured identifier resolves to exactly one rig and the identifier order is stable.",
        "Instantiate, update, and dispose every rig against a fixed AircraftFrame trace; assert one disposal and writes only to rig-owned resources.",
        "Mutate the fixture with duplicate/blank IDs, missing policies/factories, unknown selections, and non-finite rig output; assert construction or frame publication is rejected without fallback or flight-state writes."
      ],
      "dependencies": [
        "TASK-0090"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0021"
      ],
      "acceptance_evidence": "Verified delivery: application PR #149 reviewed head 4e0618d86d4887d650c7a07d81881aff214d9963 merged as 8e245f7eae5a9e9ba59414d9f6f50c06668fdb2e. The immutable secondary-camera registry validates the complete definition set before publication, snapshots definitions, sorts unique identifiers deterministically, returns UnsupportedSecondaryCamera without fallback, enforces explicit create/dispose lifecycle, supplies immutable AircraftFrame snapshots, rejects mismatched or non-finite CameraFrame output, disposes faulty rigs exactly once, and exposes no aircraft/control-state write surface. Focused registry tests pass 16/16; formatting, lint, typecheck, full repository tests, build, production audit, workflow/container/Helm contracts, candidate CI run 4503, integration validation run 4505, and immutable image publication run 4504 passed. Harbor readback resolved Nebula digest sha256:526fefaa71b7f4c3253a3b5f0b08f8af98a33bd2ff32ad4055c10217db3e7e93 and Singularity digest sha256:fc317cf1d70de307c4c7b5d5f88874d24b7303f4ffb8c10cabe8bdf2302eecc8 for the exact integration revision. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0093",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0093-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0093",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0093",
            "state": "Done",
            "event_id": "FLOW-TASK-0093-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0093",
            "state": "Done",
            "event_id": "FLOW-TASK-0093-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0093",
            "state": "Done",
            "event_id": "FLOW-TASK-0093-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0093.yml",
            "item_id": "TASK-0093",
            "state": "Done",
            "event_id": "FLOW-TASK-0093-DONE-20260915"
          }
        ],
        "previous_hash": "eaff394ed53c4434898b83c30330b95b2f0f1e47dbd8cc00d460e2c60464cdd0",
        "hash": "57125ea271ab065b020248459853ca7b16c0c4bb455c0a4182121f0b74ac56d9"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0093-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0093",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0093",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0093-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0093.yml",
              "item_id": "TASK-0093",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0093-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "62aa9a9d358a69d6939f4299fa05498b16523f36bc6412b0942ebe5e567aa7cf"
        },
        {
          "event_id": "FLOW-TASK-0093-IN-PROGRESS-20260911",
          "sequence": 2,
          "item_id": "TASK-0093",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T07:55:27Z",
          "conditions": [
            "Wave 25 is current; TASK-0090 is TO_BE_RELEASED."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0093-secondary-camera-registry-1",
          "claim_base_sha": "222ccc0d75cae831ab848dd58e9a47566092d3f3",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/149",
              "item_id": "TASK-0093",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0093-IN-PROGRESS-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0093.yml",
              "item_id": "TASK-0093",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0093-IN-PROGRESS-20260911"
            }
          ],
          "previous_hash": "62aa9a9d358a69d6939f4299fa05498b16523f36bc6412b0942ebe5e567aa7cf",
          "hash": "6932019d5ddba83772500259683a4c4044b2aadf588ce851e88f603218b16f23"
        },
        {
          "event_id": "FLOW-TASK-0093-TO-BE-RELEASED-20260911",
          "sequence": 3,
          "item_id": "TASK-0093",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T10:25:43Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/149",
              "item_id": "TASK-0093",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0093-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/8e245f7eae5a9e9ba59414d9f6f50c06668fdb2e",
              "item_id": "TASK-0093",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0093-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4505",
              "item_id": "TASK-0093",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0093-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4504",
              "item_id": "TASK-0093",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0093-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0093.yml",
              "item_id": "TASK-0093",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0093-TO-BE-RELEASED-20260911"
            }
          ],
          "previous_hash": "6932019d5ddba83772500259683a4c4044b2aadf588ce851e88f603218b16f23",
          "hash": "eaff394ed53c4434898b83c30330b95b2f0f1e47dbd8cc00d460e2c60464cdd0"
        },
        {
          "event_id": "FLOW-TASK-0093-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0093",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0093",
              "state": "Done",
              "event_id": "FLOW-TASK-0093-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0093",
              "state": "Done",
              "event_id": "FLOW-TASK-0093-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0093",
              "state": "Done",
              "event_id": "FLOW-TASK-0093-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0093.yml",
              "item_id": "TASK-0093",
              "state": "Done",
              "event_id": "FLOW-TASK-0093-DONE-20260915"
            }
          ],
          "previous_hash": "eaff394ed53c4434898b83c30330b95b2f0f1e47dbd8cc00d460e2c60464cdd0",
          "hash": "57125ea271ab065b020248459853ca7b16c0c4bb455c0a4182121f0b74ac56d9"
        }
      ],
      "design_traceability": {
        "kind": "supporting",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-CAMERAS"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot revision and referenced frames or states before implementation.",
          "Verify observable content, state, interaction, destination, focus behavior, and viewport containment against the design package.",
          "Retain screenshot or rendered evidence and record every approved deviation against the exact application commit."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0094",
      "display_id": "AEROSIM-TS-94",
      "title": "Switch secondary cameras through a presentation-only coordinator",
      "feature_id": "AEROSIM-FT-14",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-14/aerosim-ts-94/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0094.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application / Flight shell and R3F flight scene — camera switch coordinator",
      "outcome": "One deliberate valid selection activates the requested view while preserving the simulation attempt and input owner.",
      "scope": "Implement applications/web/src/flight/cameras/camera-switch-coordinator.ts, applications/web/test/flight/camera-switch-coordinator.spec.ts. Consume only the inputs listed in this contract, publish only its listed outputs, enforce every failure boundary before commit, and prove the listed exclusions remain unchanged through the verification steps.",
      "implementation_artifacts": [
        "applications/web/src/flight/cameras/camera-switch-coordinator.ts",
        "applications/web/test/flight/camera-switch-coordinator.spec.ts"
      ],
      "inputs": [
        "SelectCamera { attemptId, commandId, cameraId } while the session is ACTIVE or PAUSED.",
        "The current ActiveCamera { cameraId, rigInstanceId } and immutable SecondaryCameraRegistry from EP4-FT14-REGISTRY."
      ],
      "outputs": [
        "CameraSelectionAccepted { attemptId, commandId, previousCameraId, activeCameraId } only after the requested rig is created and its first finite frame is ready.",
        "Exactly one active camera rig: the prior rig is disposed once after successful replacement; aircraft attempt and input-owner references are passed through unchanged."
      ],
      "failure_boundaries": [
        "Reject unknown cameraId, stale attemptId, or an inapplicable session state and retain the current camera.",
        "Treat duplicate commandId and selection of the already-active camera as idempotent; create and dispose no rig.",
        "If requested-rig creation or first-frame validation fails, dispose the candidate, retain the prior rig, and emit CameraSelectionRejected without fallback."
      ],
      "exclusions": [
        "Registration of camera definitions and implementation of the primary chase rig.",
        "Modification of aircraft pose, velocity, forces, simulation step, session attempt, or input owner."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/camera-switch-coordinator.spec.ts and assert one valid selection creates the requested rig, validates its first frame, publishes acceptance, then disposes the previous rig once.",
        "Exercise rapid A-to-B-to-C selection and assert command order, one active rig, and complete disposal of superseded candidates.",
        "Submit unknown, stale-attempt, duplicate, already-active, and candidate-failure cases; assert the current camera remains active and aircraft/session/input-owner snapshots are unchanged."
      ],
      "dependencies": [
        "TASK-0093"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0021",
        "NFR-0010"
      ],
      "acceptance_evidence": "Verified delivery: application PR #169 reviewed head ec9f2cb43f031fd027561d6909bdc7e32a1d7532 merged as 7c0e6aa7e08274d1d2badf8eafe11df6e39ad3a5. The presentation-only coordinator accepts ACTIVE and PAUSED selections only after the requested registry rig produces its first finite frame, commits one active camera identity, disposes the prior rig exactly once, preserves aircraft-attempt and input-owner references, handles rapid A-to-B-to-C ordering, treats duplicate and already-active selections idempotently, and rejects stale, inapplicable, unknown, creation-failure, and invalid-frame requests without physics mutation or fallback. Focused coordinator tests pass 12/12; formatting, lint, typecheck, complete workspace tests, security checks, workflow/container/Helm contracts, production build, and production audit passed. Candidate CI run 4738, integration validation run 4740, and immutable image publication run 4739 passed. Harbor readback resolved Nebula digest sha256:80680b61de2144392119aa46d8a66fe0b694e8f87329752ac3af9f7a8f836759 and Singularity digest sha256:2dd1e7c7e8aa46c56e65be3fb018b1095d00bc2216c6e7bdbab91904b57275d4 for the exact integration revision. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0094",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0094-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0094",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0094",
            "state": "Done",
            "event_id": "FLOW-TASK-0094-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0094",
            "state": "Done",
            "event_id": "FLOW-TASK-0094-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0094",
            "state": "Done",
            "event_id": "FLOW-TASK-0094-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0094.yml",
            "item_id": "TASK-0094",
            "state": "Done",
            "event_id": "FLOW-TASK-0094-DONE-20260915"
          }
        ],
        "previous_hash": "2fa2db0576868b42a9dec79dc38bd9ac3ab407906903eaec6853dfb7f1532799",
        "hash": "4c11323f6832f2f2f19b66f3c6a557fcf16d8453a0efa4ab79e2b898de573a48"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0094-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0094",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0094",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0094-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0094.yml",
              "item_id": "TASK-0094",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0094-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "364b25791c8b144bd13841ad38e4545e092b2ef080635697df86a19a5a72d5e7"
        },
        {
          "event_id": "FLOW-TASK-0094-IN-PROGRESS-20260912",
          "sequence": 2,
          "item_id": "TASK-0094",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T09:19:16Z",
          "conditions": [
            "Wave 26 is current; TASK-0093 is ToBeReleased.",
            "RootAtSkic directed continuous whole-current-wave delivery."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0094-camera-switch-coordinator-1",
          "claim_base_sha": "df1f9f810eac4a6c63387ce7e345ef77460746ba",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/169",
              "item_id": "TASK-0094",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0094-IN-PROGRESS-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0094.yml",
              "item_id": "TASK-0094",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0094-IN-PROGRESS-20260912"
            }
          ],
          "previous_hash": "364b25791c8b144bd13841ad38e4545e092b2ef080635697df86a19a5a72d5e7",
          "hash": "4a1a8e9b2b073f7341a8f34f008f5b4d01698b69ad6930209e1c4ecd730c8bbf"
        },
        {
          "event_id": "FLOW-TASK-0094-TO-BE-RELEASED-20260912",
          "sequence": 3,
          "item_id": "TASK-0094",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T10:02:59Z",
          "conditions": [],
          "reviewed_head": "ec9f2cb43f031fd027561d6909bdc7e32a1d7532",
          "integration_revision": "7c0e6aa7e08274d1d2badf8eafe11df6e39ad3a5",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4740",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4739",
          "published_images": [
            "library/nebula:7c0e6aa7e08274d1d2badf8eafe11df6e39ad3a5@sha256:80680b61de2144392119aa46d8a66fe0b694e8f87329752ac3af9f7a8f836759",
            "library/singularity:7c0e6aa7e08274d1d2badf8eafe11df6e39ad3a5@sha256:2dd1e7c7e8aa46c56e65be3fb018b1095d00bc2216c6e7bdbab91904b57275d4"
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/169",
              "item_id": "TASK-0094",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0094-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7c0e6aa7e08274d1d2badf8eafe11df6e39ad3a5",
              "item_id": "TASK-0094",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0094-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4738",
              "item_id": "TASK-0094",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0094-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4740",
              "item_id": "TASK-0094",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0094-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4739",
              "item_id": "TASK-0094",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0094-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0094.yml",
              "item_id": "TASK-0094",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0094-TO-BE-RELEASED-20260912"
            }
          ],
          "previous_hash": "4a1a8e9b2b073f7341a8f34f008f5b4d01698b69ad6930209e1c4ecd730c8bbf",
          "hash": "2fa2db0576868b42a9dec79dc38bd9ac3ab407906903eaec6853dfb7f1532799"
        },
        {
          "event_id": "FLOW-TASK-0094-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0094",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0094",
              "state": "Done",
              "event_id": "FLOW-TASK-0094-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0094",
              "state": "Done",
              "event_id": "FLOW-TASK-0094-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0094",
              "state": "Done",
              "event_id": "FLOW-TASK-0094-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0094.yml",
              "item_id": "TASK-0094",
              "state": "Done",
              "event_id": "FLOW-TASK-0094-DONE-20260915"
            }
          ],
          "previous_hash": "2fa2db0576868b42a9dec79dc38bd9ac3ab407906903eaec6853dfb7f1532799",
          "hash": "4c11323f6832f2f2f19b66f3c6a557fcf16d8453a0efa4ab79e2b898de573a48"
        }
      ],
      "design_traceability": {
        "kind": "direct_ui",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-CAMERAS"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot revision and referenced frames or states before implementation.",
          "Verify observable content, state, interaction, destination, focus behavior, and viewport containment against the design package.",
          "Retain screenshot or rendered evidence and record every approved deviation against the exact application commit."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0095",
      "display_id": "AEROSIM-TS-95",
      "title": "Prove camera switching cannot mutate flight or control state",
      "feature_id": "AEROSIM-FT-14",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-14/aerosim-ts-95/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0095.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application / R3F flight scene and Deterministic flight runtime — camera isolation harness",
      "outcome": "Trace and browser checks show supported, rapid, repeated, and invalid selections leave aircraft state, attempt identity, and control ownership unchanged.",
      "scope": "Implement applications/web/test/flight/secondary-camera-state-guard.browser.spec.ts, applications/web/test/fixtures/camera-state-traces.json. Consume only the inputs listed in this contract, publish only its listed outputs, enforce every failure boundary before commit, and prove the listed exclusions remain unchanged through the verification steps.",
      "implementation_artifacts": [
        "applications/web/test/flight/secondary-camera-state-guard.browser.spec.ts",
        "applications/web/test/fixtures/camera-state-traces.json"
      ],
      "inputs": [
        "A deterministic active-flight fixture with seeded initial state, fixed control-command trace, and the complete supported SecondaryCameraId list.",
        "Camera selection sequences covering each view, repeated selections, rapid changes, unsupported IDs, and injected rig failures."
      ],
      "outputs": [
        "Per-step paired baseline/switch traces containing attemptId, stepIndex, pose, velocity, forces, inputOwnerId, controlCommand, activeCameraId, and selection-to-present latency.",
        "A comparison report that identifies the first differing protected flight/control field or confirms equality for all protected fields and checks every latency against the configured limit."
      ],
      "failure_boundaries": [
        "Fail on any difference in attemptId, stepIndex, pose, velocity, forces, input owner, or applied control command between baseline and camera-switch traces.",
        "Fail if an unsupported/failed selection changes the active valid camera or if more than one rig remains live after settling.",
        "Fail if any selection lacks a presented-frame sample or exceeds the configured camera-selection latency limit."
      ],
      "exclusions": [
        "Changing camera product behavior or aircraft dynamics to make traces pass.",
        "Visual-quality assessment beyond the deterministic state and configured timing assertions in this harness."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/secondary-camera-state-guard.browser.spec.ts twice from the same seed: once without switches and once with the complete selection sequence.",
        "Compare protected fields at every step with exact equality for identifiers/discrete values and the flight-core configured numeric tolerance for vectors; report the first mismatch.",
        "Inject unsupported IDs and rig failures, repeat and rapidly reorder selections, then assert the previous valid camera survives, exactly one rig remains, and every valid selection meets the configured latency limit."
      ],
      "dependencies": [
        "TASK-0094"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0021",
        "NFR-0010"
      ],
      "acceptance_evidence": "Verified delivery: application PR #171 reviewed head 96a84e1cdab93696fe4fee0b227eb233537a7652 merged as 4468005729ffc5f7539efaa2fca073ac0da2f5cb. Deterministic camera-state traces prove all supported, repeated, rapid, unsupported, and failed selections preserve attempt identity, simulation step, pose, velocity, forces, input ownership, and applied controls; every valid selection has a presented-frame sample within the 50 ms limit and exactly one rig remains live. Focused camera-state tests pass 3/3; full tests, browser matrices, security, lint, format, typecheck, build, workflow/container/Helm contracts, and production audit passed. Candidate CI run 4771 attempt 2, integration run 4773, and immutable publication run 4772 passed. Harbor readback resolved Nebula digest sha256:ce06e9d0e179817cddf85363665be92ef2a2f891701a7d95d495d14e7bce4097 and Singularity digest sha256:2df8342a75d29e73d548f7100f916520f810a1d3b84e089d60c02492fd7309ee for the exact integration revision. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0095",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0095-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0095",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0095",
            "state": "Done",
            "event_id": "FLOW-TASK-0095-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0095",
            "state": "Done",
            "event_id": "FLOW-TASK-0095-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0095",
            "state": "Done",
            "event_id": "FLOW-TASK-0095-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0095.yml",
            "item_id": "TASK-0095",
            "state": "Done",
            "event_id": "FLOW-TASK-0095-DONE-20260915"
          }
        ],
        "previous_hash": "d9a1b225d5f09a15e63634939420ebd90d3b631c8b54a0fca6a91416eb5a0b41",
        "hash": "03cafeee2a8a54fe134776a0533a0b8bf665d2399405c0a4cb55f8e085c9dee0"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0095-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0095",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0095",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0095-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0095.yml",
              "item_id": "TASK-0095",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0095-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "845e8c4d61db1b34543937d6e614fc6c1f489a90c01823404210300b3ef61b85"
        },
        {
          "event_id": "FLOW-TASK-0095-IN-PROGRESS-20260912",
          "sequence": 2,
          "item_id": "TASK-0095",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T10:52:50Z",
          "conditions": [
            "Wave 27 is current; TASK-0094 is ToBeReleased.",
            "RootAtSkic directed delivery of TASK-0095 through GATE_005_TASK_POST_MERGE."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0095-camera-state-isolation-1",
          "claim_base_sha": "c7977dca4f654036fa4f217e955e2339ffafde78",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/171",
              "item_id": "TASK-0095",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0095-IN-PROGRESS-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0095.yml",
              "item_id": "TASK-0095",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0095-IN-PROGRESS-20260912"
            }
          ],
          "previous_hash": "845e8c4d61db1b34543937d6e614fc6c1f489a90c01823404210300b3ef61b85",
          "hash": "67e9e3b3a3fff68731219ca2bb33909389daa976d6617168f1979fa8b2722e46"
        },
        {
          "event_id": "FLOW-TASK-0095-TO-BE-RELEASED-20260912",
          "sequence": 3,
          "item_id": "TASK-0095",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T12:00:50Z",
          "conditions": [],
          "reviewed_head": "96a84e1cdab93696fe4fee0b227eb233537a7652",
          "integration_revision": "4468005729ffc5f7539efaa2fca073ac0da2f5cb",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4773",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4772",
          "published_images": [
            "library/nebula:4468005729ffc5f7539efaa2fca073ac0da2f5cb@sha256:ce06e9d0e179817cddf85363665be92ef2a2f891701a7d95d495d14e7bce4097",
            "library/singularity:4468005729ffc5f7539efaa2fca073ac0da2f5cb@sha256:2df8342a75d29e73d548f7100f916520f810a1d3b84e089d60c02492fd7309ee"
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/171",
              "item_id": "TASK-0095",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0095-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/4468005729ffc5f7539efaa2fca073ac0da2f5cb",
              "item_id": "TASK-0095",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0095-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4771",
              "item_id": "TASK-0095",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0095-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4773",
              "item_id": "TASK-0095",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0095-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4772",
              "item_id": "TASK-0095",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0095-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0095.yml",
              "item_id": "TASK-0095",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0095-TO-BE-RELEASED-20260912"
            }
          ],
          "previous_hash": "67e9e3b3a3fff68731219ca2bb33909389daa976d6617168f1979fa8b2722e46",
          "hash": "d9a1b225d5f09a15e63634939420ebd90d3b631c8b54a0fca6a91416eb5a0b41"
        },
        {
          "event_id": "FLOW-TASK-0095-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0095",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0095",
              "state": "Done",
              "event_id": "FLOW-TASK-0095-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0095",
              "state": "Done",
              "event_id": "FLOW-TASK-0095-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0095",
              "state": "Done",
              "event_id": "FLOW-TASK-0095-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0095.yml",
              "item_id": "TASK-0095",
              "state": "Done",
              "event_id": "FLOW-TASK-0095-DONE-20260915"
            }
          ],
          "previous_hash": "d9a1b225d5f09a15e63634939420ebd90d3b631c8b54a0fca6a91416eb5a0b41",
          "hash": "03cafeee2a8a54fe134776a0533a0b8bf665d2399405c0a4cb55f8e085c9dee0"
        }
      ],
      "design_traceability": {
        "kind": "supporting",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-CAMERAS"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot revision and referenced frames or states before implementation.",
          "Verify observable content, state, interaction, destination, focus behavior, and viewport containment against the design package.",
          "Retain screenshot or rendered evidence and record every approved deviation against the exact application commit."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0096",
      "display_id": "AEROSIM-TS-96",
      "title": "Apply control commands through the responsive flight loop",
      "feature_id": "AEROSIM-FT-3",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-3/aerosim-ts-96/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0096.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application / Deterministic flight runtime — Shared flight-core — control-command application and simulation update loop",
      "outcome": "Each valid authoritative control command affects subsequent aircraft motion continuously within the declared timing and resource budgets.",
      "scope": "Implement packages/flight-core/src/control/apply-flight-control-command.ts, packages/flight-core/test/control/apply-flight-control-command.spec.ts. Consume only the inputs listed in this contract, publish only its listed outputs, enforce every failure boundary before commit, and prove the listed exclusions remain unchanged through the verification steps.",
      "implementation_artifacts": [
        "packages/flight-core/src/control/apply-flight-control-command.ts",
        "packages/flight-core/test/control/apply-flight-control-command.spec.ts"
      ],
      "inputs": [
        "The next FlightControlCommand from TASK-0003 matching the active attempt and ownership epoch.",
        "Previous authoritative AircraftState and FixedStepContext { stepIndex, dtSeconds, simulationTimeMs }.",
        "FlightControlLimits with finite rate, force, clamp, and configured latency/resource limits."
      ],
      "outputs": [
        "The next authoritative AircraftState and ControlApplication { commandSequence, appliedAtStep, resultingControlSurfaces } committed atomically for that fixed step.",
        "InputToStateLatencySample from command sampledAt to the commit of the first state affected by that command."
      ],
      "failure_boundaries": [
        "Reject a command with stale attempt/epoch, duplicate or regressing sequence, non-finite channel, or channel outside normalized bounds; advance no state from that command.",
        "Clamp the commanded rate/force using FlightControlLimits; never publish non-finite pose, velocity, force, or control-surface state.",
        "If a step cannot commit, retain the previous AircraftState, mark the step failed, and do not consume the command sequence."
      ],
      "exclusions": [
        "Browser-device sampling and ownership assignment.",
        "Changing aerodynamic equations, rendering instruments/cameras, or session lifecycle transitions."
      ],
      "verification_steps": [
        "Run packages/flight-core/test/control/apply-flight-control-command.spec.ts with fixed initial state and sustained, changed, and neutral command traces; assert each accepted command affects the next committed motion state in sequence.",
        "Repeat identical traces and compare committed states and command application records; capture input-to-state samples and compare them with the configured limits.",
        "Inject stale epochs, duplicate/regressing sequences, out-of-range and non-finite channels, and commit failure; assert no invalid state, command loss, or partial commit and enforce configured resource limits for the sustained fixture."
      ],
      "dependencies": [
        "TASK-0003"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0006",
        "NFR-0001",
        "NFR-0003",
        "NFR-0005",
        "NFR-0010"
      ],
      "acceptance_evidence": "Verified delivery: application PR #137 reviewed head 6615e9397842f6b1a78140b47ed9dc1e43c00a72 merged as 02d7db9e740bc3761613b3e5c29b126622ef8322. Applied authoritative commands atomically through fixed steps with bounded rates, accelerations and latency, deterministic 600-step traces, rejection without state advance, and commit-failure retry. Flight-core: 286 tests including 11 focused cases. Exact-head and post-merge CI runs 4348, 4349, 4350, 4351 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0096",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0096-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0096",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0096",
            "state": "Done",
            "event_id": "FLOW-TASK-0096-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0096",
            "state": "Done",
            "event_id": "FLOW-TASK-0096-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0096",
            "state": "Done",
            "event_id": "FLOW-TASK-0096-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0096.yml",
            "item_id": "TASK-0096",
            "state": "Done",
            "event_id": "FLOW-TASK-0096-DONE-20260915"
          }
        ],
        "previous_hash": "e874ebedd160a04af4d9e8c5765b4b095dcabb3131db868aa3b283ef6e564a0f",
        "hash": "778f60759efe23aea9a7b2f9e09388e3bb7c5a620880a8a4ef6a63fa2f3184ce"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0096-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0096",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0096",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0096-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0096.yml",
              "item_id": "TASK-0096",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0096-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "d6a9caaaeb0e100d0d4509395aca68ca345c86c60ae9bed9d887e2355950cd74"
        },
        {
          "event_id": "FLOW-TASK-0096-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0096",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T13:03:33Z",
          "conditions": [
            "Whole Wave 22 claim: TASK-0072 and TASK-0096 remain one durable ownership unit."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0096-control-command-loop-1",
          "claim_base_sha": "7a85e7894f4a85bd79bf1f28fcad756f284640f6",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/137",
              "item_id": "TASK-0096",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0096-IN-PROGRESS-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0096-control-command-loop-1",
              "item_id": "TASK-0096",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0096-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0096.yml",
              "item_id": "TASK-0096",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0096-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "d6a9caaaeb0e100d0d4509395aca68ca345c86c60ae9bed9d887e2355950cd74",
          "hash": "8ee75a9f85d6da3d19edec6427fcb1c7c25475919ef648c8a2d9d7672a3ae090"
        },
        {
          "event_id": "FLOW-TASK-0096-TO-BE-RELEASED-20260910",
          "sequence": 3,
          "item_id": "TASK-0096",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T14:06:17Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/137",
              "item_id": "TASK-0096",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0096-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/02d7db9e740bc3761613b3e5c29b126622ef8322",
              "item_id": "TASK-0096",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0096-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4348",
              "item_id": "TASK-0096",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0096-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4349",
              "item_id": "TASK-0096",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0096-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4350",
              "item_id": "TASK-0096",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0096-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4351",
              "item_id": "TASK-0096",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0096-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim-documentation/pulls/204",
              "item_id": "TASK-0096",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0096-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0096.yml",
              "item_id": "TASK-0096",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0096-TO-BE-RELEASED-20260910"
            }
          ],
          "previous_hash": "8ee75a9f85d6da3d19edec6427fcb1c7c25475919ef648c8a2d9d7672a3ae090",
          "hash": "e874ebedd160a04af4d9e8c5765b4b095dcabb3131db868aa3b283ef6e564a0f"
        },
        {
          "event_id": "FLOW-TASK-0096-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0096",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0096",
              "state": "Done",
              "event_id": "FLOW-TASK-0096-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0096",
              "state": "Done",
              "event_id": "FLOW-TASK-0096-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0096",
              "state": "Done",
              "event_id": "FLOW-TASK-0096-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0096.yml",
              "item_id": "TASK-0096",
              "state": "Done",
              "event_id": "FLOW-TASK-0096-DONE-20260915"
            }
          ],
          "previous_hash": "e874ebedd160a04af4d9e8c5765b4b095dcabb3131db868aa3b283ef6e564a0f",
          "hash": "778f60759efe23aea9a7b2f9e09388e3bb7c5a620880a8a4ef6a63fa2f3184ce"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "supporting",
        "design_refs": [
          "UIUX-100-CHASE"
        ],
        "acceptance": [
          "Applied commands must produce the responsive observable aircraft and HUD behavior represented by the approved Chase flight state.",
          "Verify deterministic control-loop evidence without inventing an additional screen."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0097",
      "display_id": "AEROSIM-TS-97",
      "title": "Reinitialize retry and restart to documented starting state",
      "feature_id": "AEROSIM-FT-5",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-5/aerosim-ts-97/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0097.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application / Deterministic flight runtime — Shared flight-core and Web Application — session reset coordinator and state rehydration",
      "outcome": "Retry and restart each dispose transient flight state and establish their documented known starting state reproducibly.",
      "scope": "Implement packages/flight-core/src/session/flight-reset-contract.ts, applications/web/src/flight/session/flight-reset-coordinator.ts, applications/web/test/flight/flight-reset.browser.spec.ts. Consume only the inputs listed in this contract, publish only its listed outputs, enforce every failure boundary before commit, and prove the listed exclusions remain unchanged through the verification steps.",
      "implementation_artifacts": [
        "packages/flight-core/src/session/flight-reset-contract.ts",
        "applications/web/src/flight/session/flight-reset-coordinator.ts",
        "applications/web/test/flight/flight-reset.browser.spec.ts"
      ],
      "inputs": [
        "ResetFlightRequested { sourceAttemptId, commandId, mode: RETRY | RESTART } after a committed FlightOutcome.",
        "Authoritative FlightStartConfiguration { aircraftId, sceneId, spawnId, environmentSeed, controlProfileId } used by the completed attempt.",
        "Mode policy: RETRY preserves the authoritative start configuration; RESTART returns to pre-flight selection and carries no transient attempt state."
      ],
      "outputs": [
        "For RETRY, a new attemptId with stepIndex 0, simulationTimeMs 0, spawn aircraft state, neutral controls, declared input owner, primary chase camera, empty warnings, and no prior outcome attached.",
        "For RESTART, session state PREFLIGHT_SELECTION with no active attempt/runtime, while catalogue selection services remain available.",
        "ResetAccepted { sourceAttemptId, newAttemptId|null, commandId, mode } only after old transient resources are disposed and the target state is fully constructed."
      ],
      "failure_boundaries": [
        "Reject reset before an outcome is committed, for stale sourceAttemptId, unsupported mode, or missing/invalid start configuration; retain the outcome screen and create no attempt.",
        "Treat duplicate commandId as idempotent and return the original ResetAccepted without another disposal or attempt.",
        "If disposal or reconstruction fails, dispose any partial replacement, retain the committed outcome and authoritative start configuration, emit ResetFailed with retryable stage, and permit a clean retry."
      ],
      "exclusions": [
        "Changing aircraft, scene, spawn, environment seed, or control profile during RETRY.",
        "Implementing catalogue selection, aircraft definitions, or scene definitions."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/flight-reset.browser.spec.ts for RETRY and RESTART and assert their exact target states, preserved/cleared fields, new-attempt identity rule, and step/time zero invariants.",
        "Execute repeated reset cycles from one fixed configuration; compare every RETRY initial snapshot, count old/new runtime resources, and enforce configured reset latency and browser resource limits.",
        "Inject invalid mode, stale source, missing configuration, disposal failure, and reconstruction failure plus duplicate commands; assert no partial attempt, no resource leak, retained recoverable outcome/configuration, and exactly one accepted reset."
      ],
      "dependencies": [
        "TASK-0006"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0009",
        "NFR-0001",
        "NFR-0002",
        "NFR-0005",
        "NFR-0006",
        "NFR-0010"
      ],
      "acceptance_evidence": "Verified delivery: application PR #147 reviewed head 502e1a167f7ea2bed591cc11219f0f66ec5546ff merged as d95c528419fc2d8f8ed6529693dff55018ac9c28. RETRY preserves the authoritative five-field configuration and creates a fresh deterministic attempt at step/time zero with spawn state, neutral controls, declared input owner, primary chase camera, empty warnings, and no outcome; RESTART clears attempt/runtime/configuration to PREFLIGHT_SELECTION while catalogue selection remains available. Focused reset tests pass 16/16; flight-core 286/286 and web 1,200/1,200 pass. Candidate runs 4459-4460 and integration/publication runs 4463-4464 passed, including immutable image publication for the exact merge revision. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0097",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0097-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0097",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0097",
            "state": "Done",
            "event_id": "FLOW-TASK-0097-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0097",
            "state": "Done",
            "event_id": "FLOW-TASK-0097-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0097",
            "state": "Done",
            "event_id": "FLOW-TASK-0097-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0097.yml",
            "item_id": "TASK-0097",
            "state": "Done",
            "event_id": "FLOW-TASK-0097-DONE-20260915"
          }
        ],
        "previous_hash": "e9c752a1c6b028e809ad2826cbaf78ed16c21b171f150cb81f0f56ee1f235e7a",
        "hash": "6b7e4c89139cd5ab043a00db48a02a99d581acb6dfc95527ea8a6d46f6c88013"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0097-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0097",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0097",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0097-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0097.yml",
              "item_id": "TASK-0097",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0097-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "4f315aeb6f2c0576e14052b999318ed2ef89735227f866a472623e09d26a69fa"
        },
        {
          "event_id": "FLOW-TASK-0097-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0097",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T23:15:22Z",
          "conditions": [
            "Wave 24 remains current; TASK-0006 is TO_BE_RELEASED; RootAtSkic authorized parallel pickup of independently eligible Wave 24 Tasks."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0097-flight-reset-1",
          "claim_base_sha": "596f158768b10caa645d771e468e071bfbe7e798",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/147",
              "item_id": "TASK-0097",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0097-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0097.yml",
              "item_id": "TASK-0097",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0097-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "4f315aeb6f2c0576e14052b999318ed2ef89735227f866a472623e09d26a69fa",
          "hash": "e76dcbe9bfb1171833cb110380893fe854dab163d20a9c2d9cd30a46f53c98ff"
        },
        {
          "event_id": "FLOW-TASK-0097-TO-BE-RELEASED-20260911",
          "sequence": 3,
          "item_id": "TASK-0097",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T00:09:33Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/147",
              "item_id": "TASK-0097",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0097-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/d95c528419fc2d8f8ed6529693dff55018ac9c28",
              "item_id": "TASK-0097",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0097-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4463",
              "item_id": "TASK-0097",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0097-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4464",
              "item_id": "TASK-0097",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0097-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0097.yml",
              "item_id": "TASK-0097",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0097-TO-BE-RELEASED-20260911"
            }
          ],
          "previous_hash": "e76dcbe9bfb1171833cb110380893fe854dab163d20a9c2d9cd30a46f53c98ff",
          "hash": "e9c752a1c6b028e809ad2826cbaf78ed16c21b171f150cb81f0f56ee1f235e7a"
        },
        {
          "event_id": "FLOW-TASK-0097-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0097",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0097",
              "state": "Done",
              "event_id": "FLOW-TASK-0097-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0097",
              "state": "Done",
              "event_id": "FLOW-TASK-0097-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0097",
              "state": "Done",
              "event_id": "FLOW-TASK-0097-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0097.yml",
              "item_id": "TASK-0097",
              "state": "Done",
              "event_id": "FLOW-TASK-0097-DONE-20260915"
            }
          ],
          "previous_hash": "e9c752a1c6b028e809ad2826cbaf78ed16c21b171f150cb81f0f56ee1f235e7a",
          "hash": "6b7e4c89139cd5ab043a00db48a02a99d581acb6dfc95527ea8a6d46f6c88013"
        }
      ],
      "design_traceability": {
        "kind": "direct_ui",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-PAUSE",
          "UIUX-100-OUTCOME-DEBRIEF"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot revision and referenced frames or states before implementation.",
          "Verify observable content, state, interaction, destination, focus behavior, and viewport containment against the design package.",
          "Retain screenshot or rendered evidence and record every approved deviation against the exact application commit."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0098",
      "display_id": "AEROSIM-TS-98",
      "title": "Present and select supported flight and environment presets",
      "feature_id": "AEROSIM-FT-15",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-15/aerosim-ts-98/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0098.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Pre-flight configurator",
      "outcome": "The pre-flight configurator exposes validated condition options as one governed selection state.",
      "scope": "Define ConditionSelection with presetId, windVectorMps, visibilityM, turbulenceLevel, timeOfDay, and weatherCode; project supported presets into the pre-flight condition form; validate finite ranges and preset-compatible combinations on every edit; and retain the last valid draft until the player confirms a new revision.",
      "implementation_artifacts": [
        "applications/web/src/preflight/conditions/condition-selection.ts",
        "applications/web/src/preflight/conditions/ConditionSelector.tsx",
        "applications/web/test/preflight/condition-selector.spec.tsx"
      ],
      "inputs": [
        "The condition catalogue version and its supported preset records.",
        "A draft ConditionSelection and an edit command for one condition field."
      ],
      "outputs": [
        "A validated condition draft with catalogueVersion and monotonically increasing revision.",
        "A confirmed immutable ConditionSnapshot containing every displayed condition value."
      ],
      "failure_boundaries": [
        "An unknown preset, non-finite numeric field, out-of-range value, or incompatible field combination returns a field-specific validation result and does not replace the last valid draft.",
        "A catalogue-version change invalidates confirmation made against the prior catalogue and requires reconfirmation."
      ],
      "exclusions": [
        "Weather simulation and aerodynamic force calculation are owned by AEROSIM-FT-10.",
        "This task does not create a flight session or persist condition choices between browser sessions."
      ],
      "verification_steps": [
        "Run applications/web/test/preflight/condition-selector.spec.tsx and prove every catalogue option round-trips to the displayed form.",
        "Inject an unknown preset, NaN wind component, boundary violation, incompatible combination, and catalogue-version change; assert rejection and preservation of the last valid draft.",
        "Confirm a valid draft, edit it afterward, and assert the emitted ConditionSnapshot remains unchanged."
      ],
      "dependencies": [
        "TASK-0079"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0022"
      ],
      "acceptance_evidence": "Verified delivery: EP5-FT15-T01: application PR #116 merged the reviewed ConditionSelection state machine and ConditionSelector as 8685927ed3437eefb7a76e51fa41f27b191c48d7 after RootAtSkic approved FT-15 solution/implementation and the TASK-0098 UI package in Discord message 1547161616746024970; 12 focused tests prove every catalogue option round-trips, unknown presets, non-finite wind, range violations, incompatible combinations, catalogue drift, monotonic revisions, immutable snapshots, and pre-flight integration without session creation; full repository validation, exact-head CI, integration validation, image build, and immutable publication passed in Actions runs 4167, 4168, and 4169. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0098",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0098-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0098",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0098",
            "state": "Done",
            "event_id": "FLOW-TASK-0098-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0098",
            "state": "Done",
            "event_id": "FLOW-TASK-0098-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0098",
            "state": "Done",
            "event_id": "FLOW-TASK-0098-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0098.yml",
            "item_id": "TASK-0098",
            "state": "Done",
            "event_id": "FLOW-TASK-0098-DONE-20260915"
          }
        ],
        "previous_hash": "47fae36b17cf673be532ab3906044abcfc5a6ed508a669679a67757072678fa1",
        "hash": "9925e6ae064c137b8691f04aef1cd13c791d2e0e3a1a135dfd752c3ae2c7ad6e"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0098-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0098",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0098",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0098-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0098.yml",
              "item_id": "TASK-0098",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0098-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "a1bede159c56e506bb9c2ee117adf0520db491c9c08a90b1a38a288f134d4623"
        },
        {
          "event_id": "FLOW-TASK-0098-IN-PROGRESS-20260908",
          "sequence": 2,
          "item_id": "TASK-0098",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-08T10:58:19Z",
          "conditions": [
            "Whole Wave 17 claim: TASK-0050, TASK-0063, TASK-0067, TASK-0085, TASK-0098, and TASK-0113 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0098-select-flight-environment-presets-1",
              "item_id": "TASK-0098",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0098-IN-PROGRESS-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/116",
              "item_id": "TASK-0098",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0098-IN-PROGRESS-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5f57f5b7059c47d7d2632748eeb687f3e9376a72",
              "item_id": "TASK-0098",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0098-IN-PROGRESS-20260908"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0098.yml",
              "item_id": "TASK-0098",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0098-IN-PROGRESS-20260908"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0098-select-flight-environment-presets-1",
          "claim_base_sha": "5f57f5b7059c47d7d2632748eeb687f3e9376a72",
          "previous_hash": "a1bede159c56e506bb9c2ee117adf0520db491c9c08a90b1a38a288f134d4623",
          "hash": "ca92074770f107f9bac30bbe569a83bcd83c238930872e496378feb974541870"
        },
        {
          "event_id": "FLOW-TASK-0098-TO-BE-RELEASED-20260909",
          "sequence": 3,
          "item_id": "TASK-0098",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T09:34:11Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1547161616746024970",
              "item_id": "TASK-0098",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0098-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/116",
              "item_id": "TASK-0098",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0098-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/8685927ed3437eefb7a76e51fa41f27b191c48d7",
              "item_id": "TASK-0098",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0098-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4168",
              "item_id": "TASK-0098",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0098-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4169",
              "item_id": "TASK-0098",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0098-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0098.yml",
              "item_id": "TASK-0098",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0098-TO-BE-RELEASED-20260909"
            }
          ],
          "previous_hash": "ca92074770f107f9bac30bbe569a83bcd83c238930872e496378feb974541870",
          "hash": "47fae36b17cf673be532ab3906044abcfc5a6ed508a669679a67757072678fa1"
        },
        {
          "event_id": "FLOW-TASK-0098-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0098",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0098",
              "state": "Done",
              "event_id": "FLOW-TASK-0098-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0098",
              "state": "Done",
              "event_id": "FLOW-TASK-0098-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0098",
              "state": "Done",
              "event_id": "FLOW-TASK-0098-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0098.yml",
              "item_id": "TASK-0098",
              "state": "Done",
              "event_id": "FLOW-TASK-0098-DONE-20260915"
            }
          ],
          "previous_hash": "47fae36b17cf673be532ab3906044abcfc5a6ed508a669679a67757072678fa1",
          "hash": "9925e6ae064c137b8691f04aef1cd13c791d2e0e3a1a135dfd752c3ae2c7ad6e"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0099",
      "display_id": "AEROSIM-TS-99",
      "title": "Apply confirmed flight and environment values at launch",
      "feature_id": "AEROSIM-FT-15",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-15/aerosim-ts-99/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0099.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Flight shell configuration boundary",
      "outcome": "The flight session receives exactly the flight preset and environmental values confirmed during pre-flight.",
      "scope": "Add the confirmed ConditionSnapshot to FlightLaunchConfiguration; validate its catalogue version and content before session allocation; initialize environment and flight-condition runtime state from that snapshot; and expose the immutable applied snapshot on the session initialization result.",
      "implementation_artifacts": [
        "applications/web/src/session/launch/condition-launch-adapter.ts",
        "applications/web/src/flight/environment/apply-condition-snapshot.ts",
        "applications/web/test/session/condition-launch-adapter.spec.ts"
      ],
      "inputs": [
        "A confirmed ConditionSnapshot from EP5-FT15-T01.",
        "The current condition catalogue version and a not-yet-created session identifier."
      ],
      "outputs": [
        "A FlightLaunchConfiguration carrying an unchanged condition snapshot.",
        "A SessionConditionState whose preset and scalar values equal the confirmed snapshot."
      ],
      "failure_boundaries": [
        "Missing confirmation, stale catalogueVersion, unknown preset, or inconsistent scalar values aborts launch before a session identifier is committed.",
        "Runtime initialization failure returns launch_failed with the condition stage and leaves no active session."
      ],
      "exclusions": [
        "This task does not choose conditions for the player or repair an invalid snapshot.",
        "Automatic launch retry is not performed; a new deliberate launch may be attempted only after the failure is shown."
      ],
      "verification_steps": [
        "Run applications/web/test/session/condition-launch-adapter.spec.ts and compare every confirmed condition field with FlightLaunchConfiguration and SessionConditionState.",
        "Inject missing, stale, unsupported, and inconsistent snapshots and assert zero active sessions.",
        "Force environment initialization to fail and assert launch_failed identifies the condition stage and permits a later deliberate attempt."
      ],
      "dependencies": [
        "TASK-0098"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0022",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #124 merged reviewed head 8abb93cb7f9807d9c8901561c19aa62515ac62e0 as 02f55523910f1751332be3dfddc25aadb6a69ff0; nine focused condition-adapter tests and 287 existing launch/session tests prove exact snapshot carriage, validation before allocation, immutable scalar application, condition-stage initialization failure with no active session, and deliberate retry; full local validation, 120 world-interaction runs, production audit, exact-head CI run 4217, integration/publication run 4218, and integration validation run 4219 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0099",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0099-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0099",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0099",
            "state": "Done",
            "event_id": "FLOW-TASK-0099-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0099",
            "state": "Done",
            "event_id": "FLOW-TASK-0099-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0099",
            "state": "Done",
            "event_id": "FLOW-TASK-0099-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0099.yml",
            "item_id": "TASK-0099",
            "state": "Done",
            "event_id": "FLOW-TASK-0099-DONE-20260915"
          }
        ],
        "previous_hash": "1ca65f07da67e144bd27ea10b7deaa7ff916bce89484cc3deccb5337ed225575",
        "hash": "6ad429ea4fd2a2f00b38228b4067aaedbab6f66b7be98604100e2831e7b86a42"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0099-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0099",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0099",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0099-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0099.yml",
              "item_id": "TASK-0099",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0099-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "7b68708fd1511af95740ac7bef46242f2de99302b7108ec4ff3153c4748becb5"
        },
        {
          "event_id": "FLOW-TASK-0099-IN-PROGRESS-20260909",
          "sequence": 2,
          "item_id": "TASK-0099",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T10:51:13Z",
          "conditions": [
            "Whole Wave 18 claim: TASK-0051, TASK-0064, TASK-0068, TASK-0080, and TASK-0099 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1547195762671222876",
              "item_id": "TASK-0099",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0099-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0099-apply-confirmed-conditions-at-launch-1",
              "item_id": "TASK-0099",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0099-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/124",
              "item_id": "TASK-0099",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0099-IN-PROGRESS-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/ebabfe3ef20c5203ffb20c693b094396d506bc0f",
              "item_id": "TASK-0099",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0099-IN-PROGRESS-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0099.yml",
              "item_id": "TASK-0099",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0099-IN-PROGRESS-20260909"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0099-apply-confirmed-conditions-at-launch-1",
          "claim_base_sha": "8685927ed3437eefb7a76e51fa41f27b191c48d7",
          "previous_hash": "7b68708fd1511af95740ac7bef46242f2de99302b7108ec4ff3153c4748becb5",
          "hash": "02967de5ced36d0fff2233aa9f8dbe048329654f8ab625521231385f4e546818"
        },
        {
          "event_id": "FLOW-TASK-0099-TO-BE-RELEASED-20260909",
          "sequence": 3,
          "item_id": "TASK-0099",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-09T16:13:52Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/124",
              "item_id": "TASK-0099",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0099-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/02f55523910f1751332be3dfddc25aadb6a69ff0",
              "item_id": "TASK-0099",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0099-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4217",
              "item_id": "TASK-0099",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0099-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4218",
              "item_id": "TASK-0099",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0099-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4219",
              "item_id": "TASK-0099",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0099-TO-BE-RELEASED-20260909"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0099.yml",
              "item_id": "TASK-0099",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0099-TO-BE-RELEASED-20260909"
            }
          ],
          "previous_hash": "02967de5ced36d0fff2233aa9f8dbe048329654f8ab625521231385f4e546818",
          "hash": "1ca65f07da67e144bd27ea10b7deaa7ff916bce89484cc3deccb5337ed225575"
        },
        {
          "event_id": "FLOW-TASK-0099-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0099",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0099",
              "state": "Done",
              "event_id": "FLOW-TASK-0099-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0099",
              "state": "Done",
              "event_id": "FLOW-TASK-0099-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0099",
              "state": "Done",
              "event_id": "FLOW-TASK-0099-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0099.yml",
              "item_id": "TASK-0099",
              "state": "Done",
              "event_id": "FLOW-TASK-0099-DONE-20260915"
            }
          ],
          "previous_hash": "1ca65f07da67e144bd27ea10b7deaa7ff916bce89484cc3deccb5337ed225575",
          "hash": "6ad429ea4fd2a2f00b38228b4067aaedbab6f66b7be98604100e2831e7b86a42"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0100",
      "display_id": "AEROSIM-TS-100",
      "title": "Verify the condition-selection round trip",
      "feature_id": "AEROSIM-FT-15",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-15/aerosim-ts-100/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0100.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Pre-flight and flight integration test suites",
      "outcome": "Automated evidence proves that displayed, confirmed, launched, and runtime condition values are equal for every supported preset and representative custom combination.",
      "scope": "Create a table-driven condition integrity suite that covers every supported preset, minimum and maximum scalar boundaries, representative compatible custom combinations, rejected combinations, post-confirmation edits, launch failure, and a deliberate retry after correction.",
      "implementation_artifacts": [
        "applications/web/test/integration/condition-configuration-integrity.spec.ts",
        "applications/web/test/fixtures/condition-configurations.ts"
      ],
      "inputs": [
        "The versioned condition catalogue and deterministic supported, boundary, and invalid fixtures.",
        "Observed snapshots from the selector, launch configuration, and initialized session."
      ],
      "outputs": [
        "A field-by-field integrity report for each fixture across draft, confirmation, launch, and runtime stages.",
        "Test assertions proving a corrected retry creates one session without reusing failed launch state."
      ],
      "failure_boundaries": [
        "Any field mismatch, silent fallback, accepted invalid fixture, mutation of a confirmed snapshot, or session created by a failed attempt fails the suite."
      ],
      "exclusions": [
        "The suite does not establish performance or browser resource budgets.",
        "The retry case is player-initiated after correction; background or repeated automatic retries are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/integration/condition-configuration-integrity.spec.ts with all condition fixtures.",
        "Assert exact deep equality at each stage and assert each invalid fixture has its expected validation code.",
        "Assert the failed-attempt session count is zero and the corrected deliberate retry increases it by exactly one."
      ],
      "dependencies": [
        "TASK-0099"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0022",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #130 merged reviewed head 827984b12a894c8fdeb0d8885e06467d5791021a as 432753c779413a604f873f06327f1ca2eb83afb9. The version-pinned table-driven integrity suite verifies all three supported presets, accepted scalar minima and maxima, a representative custom combination, exact displayed/confirmed/launch/runtime equality, explicit invalid-fixture codes, confirmed-snapshot immutability, zero sessions after a failed launch, and exactly one session after deliberate correction. Focused tests pass 15/15; web tests pass 1,081/1,081 plus invalid-action 11/11 and environment-presentation 27/27; lint, typecheck, formatting, production build, production audit, exact-head CI runs 4278-4279, and integration/publication runs 4280-4281 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0100",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0100-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0100",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0100",
            "state": "Done",
            "event_id": "FLOW-TASK-0100-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0100",
            "state": "Done",
            "event_id": "FLOW-TASK-0100-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0100",
            "state": "Done",
            "event_id": "FLOW-TASK-0100-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0100.yml",
            "item_id": "TASK-0100",
            "state": "Done",
            "event_id": "FLOW-TASK-0100-DONE-20260915"
          }
        ],
        "previous_hash": "ceba43b7954be94abc76b0baa67dd00b86213d8d9d682b5d38cb59a26f0b87ec",
        "hash": "018818f9a45652710ff5fc63f2539eb81a3ad3ff2026b803349df9c8c0c23b46"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0100-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0100",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0100",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0100-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0100.yml",
              "item_id": "TASK-0100",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0100-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "6ead1a9b40f0ee29ca316d9a28d43d6cf5c0840e85aa8ed8e2bd0bfc0b5c8020"
        },
        {
          "event_id": "FLOW-TASK-0100-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0100",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T04:35:24Z",
          "conditions": [],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0100-condition-selection-round-trip-1",
          "claim_base_sha": "daf1b7b0feee31c02473dd204ba8f97df4f9b376",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1547463812720885760",
              "item_id": "TASK-0100",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0100-IN-PROGRESS-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0100-condition-selection-round-trip-1",
              "item_id": "TASK-0100",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0100-IN-PROGRESS-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/130",
              "item_id": "TASK-0100",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0100-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0100.yml",
              "item_id": "TASK-0100",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0100-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "6ead1a9b40f0ee29ca316d9a28d43d6cf5c0840e85aa8ed8e2bd0bfc0b5c8020",
          "hash": "11b627a5b8276191903529b0c10a5d583a220e3afbf75237c7943d523b289023"
        },
        {
          "event_id": "FLOW-TASK-0100-TO-BE-RELEASED-20260910",
          "sequence": 3,
          "item_id": "TASK-0100",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T05:40:03Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/130",
              "item_id": "TASK-0100",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0100-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/432753c779413a604f873f06327f1ca2eb83afb9",
              "item_id": "TASK-0100",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0100-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4280",
              "item_id": "TASK-0100",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0100-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4281",
              "item_id": "TASK-0100",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0100-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0100.yml",
              "item_id": "TASK-0100",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0100-TO-BE-RELEASED-20260910"
            }
          ],
          "previous_hash": "11b627a5b8276191903529b0c10a5d583a220e3afbf75237c7943d523b289023",
          "hash": "ceba43b7954be94abc76b0baa67dd00b86213d8d9d682b5d38cb59a26f0b87ec"
        },
        {
          "event_id": "FLOW-TASK-0100-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0100",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0100",
              "state": "Done",
              "event_id": "FLOW-TASK-0100-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0100",
              "state": "Done",
              "event_id": "FLOW-TASK-0100-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0100",
              "state": "Done",
              "event_id": "FLOW-TASK-0100-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0100.yml",
              "item_id": "TASK-0100",
              "state": "Done",
              "event_id": "FLOW-TASK-0100-DONE-20260915"
            }
          ],
          "previous_hash": "ceba43b7954be94abc76b0baa67dd00b86213d8d9d682b5d38cb59a26f0b87ec",
          "hash": "018818f9a45652710ff5fc63f2539eb81a3ad3ff2026b803349df9c8c0c23b46"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0101",
      "display_id": "AEROSIM-TS-101",
      "title": "Expose the required mapping for the selected input method",
      "feature_id": "AEROSIM-FT-16",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-16/aerosim-ts-101/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0101.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Input controller",
      "outcome": "Selecting a supported input method shows its complete required control mapping before launch.",
      "scope": "Define InputMethodId, ControlActionId, and ControlMapping records; derive the pre-flight mapping view from the same versioned profile consumed by the flight input controller; require one binding for each essential action; and invalidate confirmation whenever method, device identity, mapping version, or binding changes.",
      "implementation_artifacts": [
        "applications/web/src/input/control-profile.ts",
        "applications/web/src/preflight/controls/ControlMappingPanel.tsx",
        "applications/web/test/preflight/control-mapping-panel.spec.tsx"
      ],
      "inputs": [
        "The declared input compatibility matrix and versioned control profiles.",
        "A selected supported input method and optional connected-device identifier."
      ],
      "outputs": [
        "A complete ordered mapping of essential ControlActionId values to physical bindings.",
        "A ControlProfileDraft carrying methodId, deviceId, mappingVersion, and confirmation state."
      ],
      "failure_boundaries": [
        "Unsupported method, duplicate essential binding, missing essential action, or profile-version mismatch produces an explicit profile validation code and cannot be confirmed.",
        "Disconnecting or changing the selected device invalidates the current confirmation."
      ],
      "exclusions": [
        "Player-defined remapping and profile persistence between browser sessions are not included.",
        "This task displays mapping data but does not accept live diagnostic samples."
      ],
      "verification_steps": [
        "Run applications/web/test/preflight/control-mapping-panel.spec.tsx for every method in the declared matrix.",
        "Assert the displayed essential-action bindings equal the controller profile records exactly.",
        "Remove an action, duplicate a binding, change mappingVersion, and change device identity; assert confirmation is unavailable or invalidated."
      ],
      "dependencies": [
        "TASK-0096"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0023"
      ],
      "acceptance_evidence": "Verified delivery: application PR #142 reviewed head 4d45d4b merged as 8b4a33ce. Deterministic near/mid/far geometry and material profiles use governed thresholds and hysteresis, support direct distance jumps, retain the last valid profile on invalid distance, reject unsafe configuration, and do not mutate committed aircraft or camera state. Focused tests pass 5/5; web tests pass 1,119/1,119 plus browser suites; lint, typecheck, build, audit, candidate runs 4412-4413, and integration/publication runs 4414-4415 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0101",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0101-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0101",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0101",
            "state": "Done",
            "event_id": "FLOW-TASK-0101-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0101",
            "state": "Done",
            "event_id": "FLOW-TASK-0101-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0101",
            "state": "Done",
            "event_id": "FLOW-TASK-0101-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0101.yml",
            "item_id": "TASK-0101",
            "state": "Done",
            "event_id": "FLOW-TASK-0101-DONE-20260915"
          }
        ],
        "previous_hash": "c9034924d90b2d38ec9251dcc22ee581ce60e07b9c1bfd849b62a98933ab0335",
        "hash": "41141e8c030124f4b775ffa52060675ce0276c84f387dc815835ed33082ac057"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0101-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0101",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0101",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0101-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0101.yml",
              "item_id": "TASK-0101",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0101-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "a368ceeca9d32741710e2a963b3ef3cda694aec2e7af0b35cb0b8780beda77a1"
        },
        {
          "event_id": "FLOW-TASK-0101-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0101",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T18:36:41Z",
          "conditions": [
            "Wave 23 remains current; TASK-0096 is TO_BE_RELEASED."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0101-aircraft-detail-profiles-1",
          "claim_base_sha": "cc0da04e1ec56fac36ac2d47a3f41690d2f28859",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/142",
              "item_id": "TASK-0101",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0101-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0101.yml",
              "item_id": "TASK-0101",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0101-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "a368ceeca9d32741710e2a963b3ef3cda694aec2e7af0b35cb0b8780beda77a1",
          "hash": "9bf1d6b0d207086a895757297d89fb947213660becc03f535509f10ed39b5ac1"
        },
        {
          "event_id": "FLOW-TASK-0101-TO-BE-RELEASED-20260910",
          "sequence": 3,
          "item_id": "TASK-0101",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T19:01:04Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/142",
              "item_id": "TASK-0101",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0101-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/8b4a33ce3cd8d7265109463008f3aeaa777e0993",
              "item_id": "TASK-0101",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0101-TO-BE-RELEASED-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0101.yml",
              "item_id": "TASK-0101",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0101-TO-BE-RELEASED-20260910"
            }
          ],
          "previous_hash": "9bf1d6b0d207086a895757297d89fb947213660becc03f535509f10ed39b5ac1",
          "hash": "c9034924d90b2d38ec9251dcc22ee581ce60e07b9c1bfd849b62a98933ab0335"
        },
        {
          "event_id": "FLOW-TASK-0101-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0101",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0101",
              "state": "Done",
              "event_id": "FLOW-TASK-0101-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0101",
              "state": "Done",
              "event_id": "FLOW-TASK-0101-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0101",
              "state": "Done",
              "event_id": "FLOW-TASK-0101-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0101.yml",
              "item_id": "TASK-0101",
              "state": "Done",
              "event_id": "FLOW-TASK-0101-DONE-20260915"
            }
          ],
          "previous_hash": "c9034924d90b2d38ec9251dcc22ee581ce60e07b9c1bfd849b62a98933ab0335",
          "hash": "41141e8c030124f4b775ffa52060675ce0276c84f387dc815835ed33082ac057"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0102",
      "display_id": "AEROSIM-TS-102",
      "title": "Run pre-flight essential-control diagnostics",
      "feature_id": "AEROSIM-FT-16",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-16/aerosim-ts-102/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0102.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Input controller and Pre-flight configurator",
      "outcome": "The player can exercise essential controls before launch and receives a visible, specific result when a required control is absent or invalid.",
      "scope": "Implement a bounded diagnostic state machine with idle, sampling, passed, and failed states; sample every essential axis and action within one explicit player-run attempt; normalize raw values using the selected profile; record per-control observed, missing_binding, unavailable_device, invalid_signal, or passed results; and issue a verification token only when all essential controls pass.",
      "implementation_artifacts": [
        "applications/web/src/preflight/controls/control-diagnostic.ts",
        "applications/web/src/preflight/controls/ControlDiagnosticPanel.tsx",
        "applications/web/test/preflight/control-diagnostic.spec.ts"
      ],
      "inputs": [
        "A confirmable ControlProfileDraft and a stream of timestamped device samples.",
        "A start, cancel, or complete diagnostic command."
      ],
      "outputs": [
        "Per-control DiagnosticResult records and one aggregate passed or failed result.",
        "A single-use ControlVerificationToken bound to profile hash, deviceId, mappingVersion, and diagnostic attemptId."
      ],
      "failure_boundaries": [
        "Missing binding, disconnected device, stale timestamp, non-finite axis value, value outside the normalized range, or absent required action produces the matching failure code and no token.",
        "Starting a second attempt cancels the prior sampling state; samples from the prior attemptId are ignored."
      ],
      "exclusions": [
        "The diagnostic does not calibrate hardware, rewrite mappings, or retry itself.",
        "Failure feedback does not launch a session; the player must correct the cause and start a new attempt."
      ],
      "verification_steps": [
        "Run applications/web/test/preflight/control-diagnostic.spec.ts with deterministic samples for every essential control.",
        "Inject each failure class and assert its exact per-control code, aggregate failed state, and absence of a token.",
        "Start overlapping attempts and send late samples from the first attempt; assert only the current attempt can pass."
      ],
      "dependencies": [
        "TASK-0101"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0023"
      ],
      "acceptance_evidence": "Verified delivery: application PR #146 reviewed head 0e1dd3da4b38b39c4f4ec002df75b39ff46fdba0 merged as fc1188639f3a8ed92dc128189627bb743d6bf2bf. Focused diagnostic tests pass 11/11; exact-head CI run 4468 attempt 2 passed lint, typecheck, workflow contract, tests (web 1,130/1,130 plus browser suites), build, container images, environment consistency, and aggregate validation. Integration run 4473 and immutable-image publication run 4472 passed for the merge revision; Harbor readback verified nebula sha256:795280d11a01d1768a983cf66c16d1e142ea543d8dad4a94fb9f0f9c142d297d and singularity sha256:6f387b713766e0895bb1b60740a408ac22840d432ba6171ff25c30f9f378112d. Deterministic samples cover every essential control, exact failure codes and aggregate no-token failure, overlapping attempts, and late-sample rejection. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0102",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0102-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0102",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0102",
            "state": "Done",
            "event_id": "FLOW-TASK-0102-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0102",
            "state": "Done",
            "event_id": "FLOW-TASK-0102-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0102",
            "state": "Done",
            "event_id": "FLOW-TASK-0102-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0102.yml",
            "item_id": "TASK-0102",
            "state": "Done",
            "event_id": "FLOW-TASK-0102-DONE-20260915"
          }
        ],
        "previous_hash": "7fb8b73b9fb375ea07af96b1565b25d8d57025ebf44cdc3630428f8e3ec8bf36",
        "hash": "430d550cbe5d0dbee0da22bdde79f918f049c30f82fbcb3e0a4866fd69f0292e"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0102-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0102",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0102",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0102-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0102.yml",
              "item_id": "TASK-0102",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0102-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "410e18c271d8f672c428a3c9c5a1b56845ecf734b06d2f7f6f79a92f58188156"
        },
        {
          "event_id": "FLOW-TASK-0102-IN-PROGRESS-20260910",
          "sequence": 2,
          "item_id": "TASK-0102",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-10T23:15:29Z",
          "conditions": [
            "Wave 24 remains current; TASK-0101 is TO_BE_RELEASED."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0102-control-diagnostics-1",
          "claim_base_sha": "596f158768b10caa645d771e468e071bfbe7e798",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/146",
              "item_id": "TASK-0102",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0102-IN-PROGRESS-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0102.yml",
              "item_id": "TASK-0102",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0102-IN-PROGRESS-20260910"
            }
          ],
          "previous_hash": "410e18c271d8f672c428a3c9c5a1b56845ecf734b06d2f7f6f79a92f58188156",
          "hash": "e6f557f2dc07510c6e185fa7ce7b5425a493c086be3c90e4ae6e1aeb14a1238e"
        },
        {
          "event_id": "FLOW-TASK-0102-TO-BE-RELEASED-20260911",
          "sequence": 3,
          "item_id": "TASK-0102",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T00:33:34Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/146",
              "item_id": "TASK-0102",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0102-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/fc1188639f3a8ed92dc128189627bb743d6bf2bf",
              "item_id": "TASK-0102",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0102-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4472",
              "item_id": "TASK-0102",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0102-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4473",
              "item_id": "TASK-0102",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0102-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0102.yml",
              "item_id": "TASK-0102",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0102-TO-BE-RELEASED-20260911"
            }
          ],
          "previous_hash": "e6f557f2dc07510c6e185fa7ce7b5425a493c086be3c90e4ae6e1aeb14a1238e",
          "hash": "7fb8b73b9fb375ea07af96b1565b25d8d57025ebf44cdc3630428f8e3ec8bf36"
        },
        {
          "event_id": "FLOW-TASK-0102-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0102",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0102",
              "state": "Done",
              "event_id": "FLOW-TASK-0102-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0102",
              "state": "Done",
              "event_id": "FLOW-TASK-0102-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0102",
              "state": "Done",
              "event_id": "FLOW-TASK-0102-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0102.yml",
              "item_id": "TASK-0102",
              "state": "Done",
              "event_id": "FLOW-TASK-0102-DONE-20260915"
            }
          ],
          "previous_hash": "7fb8b73b9fb375ea07af96b1565b25d8d57025ebf44cdc3630428f8e3ec8bf36",
          "hash": "430d550cbe5d0dbee0da22bdde79f918f049c30f82fbcb3e0a4866fd69f0292e"
        }
      ],
      "design_traceability": {
        "kind": "direct_ui",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-PREFLIGHT"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot revision and referenced frames or states before implementation.",
          "Verify observable content, state, interaction, destination, focus behavior, and viewport containment against the design package.",
          "Retain screenshot or rendered evidence and record every approved deviation against the exact application commit."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0103",
      "display_id": "AEROSIM-TS-103",
      "title": "Propagate verified controls into the launched session",
      "feature_id": "AEROSIM-FT-16",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-16/aerosim-ts-103/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0103.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Flight shell to Input controller boundary",
      "outcome": "The launched session uses the exact input method and required mapping shown and verified during pre-flight.",
      "scope": "Freeze the verified control profile and token into FlightLaunchConfiguration; consume the token atomically during session creation; initialize the flight input controller from the exact profile hash; and report the applied method, device, mapping version, and profile hash in SessionControlState.",
      "implementation_artifacts": [
        "applications/web/src/session/launch/control-launch-adapter.ts",
        "applications/web/src/input/initialize-session-controls.ts",
        "applications/web/test/session/control-launch-adapter.spec.ts"
      ],
      "inputs": [
        "A confirmed ControlProfileDraft and matching unconsumed ControlVerificationToken.",
        "A deliberate launch command and current device availability."
      ],
      "outputs": [
        "An immutable launch control snapshot and initialized SessionControlState with matching profile hash.",
        "A consumed-token record tied to the created sessionId."
      ],
      "failure_boundaries": [
        "Missing, expired, consumed, wrong-profile, wrong-device, or wrong-version token aborts before session activation and reports verification_required.",
        "Device loss or controller initialization failure reports launch_failed at the controls stage and creates no active session."
      ],
      "exclusions": [
        "No automatic diagnostic or launch retry occurs.",
        "The session cannot silently substitute another method, device, binding, or default control profile."
      ],
      "verification_steps": [
        "Run applications/web/test/session/control-launch-adapter.spec.ts and assert profile, token, launch configuration, and SessionControlState hashes match.",
        "Replay a consumed token and inject every token mismatch; assert verification_required and zero additional sessions.",
        "Fail controller initialization, then run a new diagnostic and deliberate launch; assert only the second attempt creates one session."
      ],
      "dependencies": [
        "TASK-0102"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0023",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #150 reviewed head 789704121227d6c5e9f24098851a51a804ec7a47 merged as b2435e0473889a354a272e6504cfd0ba9daca174. Focused control-launch tests pass 6/6; exact-head CI run 4527 attempt 1 passed lint, typecheck, workflow contract, tests, environment consistency, build, container images, and aggregate validation. Integration run 4549 and immutable-image publication run 4548 passed for the merge revision; Harbor readback verified nebula sha256:3bd12e51d403ab121bfd43aab59cb3b3403915adab891041e4099743ee3de371 and singularity sha256:1494244b59a1b633f9e50e18f28285f68d3ee841cce157c85ab909c801bc841d. The immutable launch snapshot preserves the exact method, device, mapping version, profile hash, and consumed token; every token mismatch, clone replay, device loss, and controller failure creates no active session, while reverification permits one deliberate launch. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0103",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0103-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0103",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0103",
            "state": "Done",
            "event_id": "FLOW-TASK-0103-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0103",
            "state": "Done",
            "event_id": "FLOW-TASK-0103-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0103",
            "state": "Done",
            "event_id": "FLOW-TASK-0103-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0103.yml",
            "item_id": "TASK-0103",
            "state": "Done",
            "event_id": "FLOW-TASK-0103-DONE-20260915"
          }
        ],
        "previous_hash": "759d2c0bc0c019b36bbe7659b944fdefaee2f290ce140981a0fdb7202f9722c0",
        "hash": "957330b2b6876cc293211154fc1ae39f76c9112dfdbae4efe52a08c7b0d18d41"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0103-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0103",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0103",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0103-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0103.yml",
              "item_id": "TASK-0103",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0103-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "2ee0a24a860b9508db37e3c5e71d27682a29b2ab2f94cca695905252234346ba"
        },
        {
          "event_id": "FLOW-TASK-0103-IN-PROGRESS-20260911",
          "sequence": 2,
          "item_id": "TASK-0103",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T10:38:03Z",
          "conditions": [
            "Wave 25 is current; TASK-0102 is TO_BE_RELEASED."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0103-control-launch-adapter-1",
          "claim_base_sha": "8e245f7eae5a9e9ba59414d9f6f50c06668fdb2e",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/150",
              "item_id": "TASK-0103",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0103-IN-PROGRESS-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0103.yml",
              "item_id": "TASK-0103",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0103-IN-PROGRESS-20260911"
            }
          ],
          "previous_hash": "2ee0a24a860b9508db37e3c5e71d27682a29b2ab2f94cca695905252234346ba",
          "hash": "a7698ed3564194281c332d3d73239eb98f98879a380fff162676110b7a6a268c"
        },
        {
          "event_id": "FLOW-TASK-0103-TO-BE-RELEASED-20260911",
          "sequence": 3,
          "item_id": "TASK-0103",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T13:24:17Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/150",
              "item_id": "TASK-0103",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0103-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/b2435e0473889a354a272e6504cfd0ba9daca174",
              "item_id": "TASK-0103",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0103-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4548",
              "item_id": "TASK-0103",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0103-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4549",
              "item_id": "TASK-0103",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0103-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0103.yml",
              "item_id": "TASK-0103",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0103-TO-BE-RELEASED-20260911"
            }
          ],
          "previous_hash": "a7698ed3564194281c332d3d73239eb98f98879a380fff162676110b7a6a268c",
          "hash": "759d2c0bc0c019b36bbe7659b944fdefaee2f290ce140981a0fdb7202f9722c0"
        },
        {
          "event_id": "FLOW-TASK-0103-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0103",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0103",
              "state": "Done",
              "event_id": "FLOW-TASK-0103-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0103",
              "state": "Done",
              "event_id": "FLOW-TASK-0103-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0103",
              "state": "Done",
              "event_id": "FLOW-TASK-0103-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0103.yml",
              "item_id": "TASK-0103",
              "state": "Done",
              "event_id": "FLOW-TASK-0103-DONE-20260915"
            }
          ],
          "previous_hash": "759d2c0bc0c019b36bbe7659b944fdefaee2f290ce140981a0fdb7202f9722c0",
          "hash": "957330b2b6876cc293211154fc1ae39f76c9112dfdbae4efe52a08c7b0d18d41"
        }
      ],
      "design_traceability": {
        "kind": "supporting",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-PREFLIGHT"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot revision and referenced frames or states before implementation.",
          "Verify observable content, state, interaction, destination, focus behavior, and viewport containment against the design package.",
          "Retain screenshot or rendered evidence and record every approved deviation against the exact application commit."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0104",
      "display_id": "AEROSIM-TS-104",
      "title": "Verify control configuration integrity and invalid-control handling",
      "feature_id": "AEROSIM-FT-16",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-16/aerosim-ts-104/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0104.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Input and launch integration test suites",
      "outcome": "Configuration-round-trip and invalid-control tests prove that only a successfully verified control profile reaches a session and that failures remain visible.",
      "scope": "Create an integration matrix for each declared input method covering complete mappings, essential-action samples, device loss, malformed signals, profile edits after verification, token expiry and replay, controller initialization, and deliberate retry after reverification.",
      "implementation_artifacts": [
        "applications/web/test/integration/control-configuration-integrity.spec.ts",
        "applications/web/test/fixtures/control-profiles.ts"
      ],
      "inputs": [
        "Declared control profiles, deterministic sample traces, and invalid token fixtures.",
        "Observed mapping, diagnostic, launch, and SessionControlState records."
      ],
      "outputs": [
        "A method-by-method integrity result proving the launched controller uses the verified profile.",
        "Negative-case assertions for each invalid-control and token lifecycle code."
      ],
      "failure_boundaries": [
        "The suite fails on missing essential coverage, profile-hash mismatch, silent device substitution, reused token, duplicate session, or a failure without its expected code."
      ],
      "exclusions": [
        "Undeclared devices and custom remapping are not certified by this suite.",
        "The suite does not claim end-to-end aircraft or world behavior."
      ],
      "verification_steps": [
        "Run applications/web/test/integration/control-configuration-integrity.spec.ts for the complete declared method matrix.",
        "Assert mapping display, diagnostic profile, launch snapshot, and runtime controller share one profile hash.",
        "Assert each failed attempt creates zero sessions and a reverification plus one deliberate retry creates exactly one."
      ],
      "dependencies": [
        "TASK-0103"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0023",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #170 reviewed head 24041e97dbf0fc8ea5cd8c59fa22f4d66452c3d0 merged as f1d0180f54f36c8019209c6c24644c91922f925b. The 12-case behavioral matrix covers keyboard and joystick profile round trips; every declared diagnostic failure code; edited profiles; expired, substituted, and replayed tokens; device loss; controller initialization failure; zero-session failure behavior; and one deliberate retry after reverification. Exact-head CI run 4742 attempt 2 and feature run 4741 passed; integration run 4746 attempt 1 and immutable-image publication run 4745 attempt 2 passed. Harbor readback verified nebula sha256:a614a915c1231fdcfa0542dc2ec15c7be9cdbaa7850abe2eb41fd713df103ff3 and singularity sha256:66c78ec0aba8f3de7ecabd553f999ed9fc2b5c296887746fd445f0e38991a917. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0104",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0104-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0104",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0104",
            "state": "Done",
            "event_id": "FLOW-TASK-0104-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0104",
            "state": "Done",
            "event_id": "FLOW-TASK-0104-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0104",
            "state": "Done",
            "event_id": "FLOW-TASK-0104-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0104.yml",
            "item_id": "TASK-0104",
            "state": "Done",
            "event_id": "FLOW-TASK-0104-DONE-20260915"
          }
        ],
        "previous_hash": "eed3043f3fa6ad5d02d6b98dc82fbc60b1584eb25091a5d95e12d0d18a204657",
        "hash": "3f695389ec7abfe13224288165d70c0dcce32956834988b5fe4549d384f7b6a8"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0104-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0104",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0104",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0104-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0104.yml",
              "item_id": "TASK-0104",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0104-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "929450de0759a2328fbcd63410cd6d31fd84782de6dae3c18bc13d8a5fd68ab6"
        },
        {
          "event_id": "FLOW-TASK-0104-IN-PROGRESS-20260912",
          "sequence": 2,
          "item_id": "TASK-0104",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T09:19:06Z",
          "conditions": [
            "Wave 26 is current; TASK-0103 is TO_BE_RELEASED."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0104-control-configuration-integrity-1",
          "claim_base_sha": "df1f9f810eac4a6c63387ce7e345ef77460746ba",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/170",
              "item_id": "TASK-0104",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0104-IN-PROGRESS-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0104.yml",
              "item_id": "TASK-0104",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0104-IN-PROGRESS-20260912"
            }
          ],
          "previous_hash": "929450de0759a2328fbcd63410cd6d31fd84782de6dae3c18bc13d8a5fd68ab6",
          "hash": "33afb89d323c7b0e1afd79a0f6190b5dbd32c1d4e0c387494dd9a0a8d13ab39c"
        },
        {
          "event_id": "FLOW-TASK-0104-TO-BE-RELEASED-20260912",
          "sequence": 3,
          "item_id": "TASK-0104",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T10:27:38Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/170",
              "item_id": "TASK-0104",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0104-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/f1d0180f54f36c8019209c6c24644c91922f925b",
              "item_id": "TASK-0104",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0104-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4745",
              "item_id": "TASK-0104",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0104-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4746",
              "item_id": "TASK-0104",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0104-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0104.yml",
              "item_id": "TASK-0104",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0104-TO-BE-RELEASED-20260912"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/170",
          "reviewed_head": "24041e97dbf0fc8ea5cd8c59fa22f4d66452c3d0",
          "integration_revision": "f1d0180f54f36c8019209c6c24644c91922f925b",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4746",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4745",
          "acceptance_evidence": [
            "12/12 focused control-configuration integrity cases passed",
            "all seven invalid-control diagnostic codes and token lifecycle failures remain visible and fail closed",
            "full tests, lint, typecheck, build, container, Helm, dependency audit, and static scan passed",
            "exact-head PR CI run 4742 attempt 2 passed all eight required jobs",
            "integration run 4746 attempt 1 passed on canonical revision f1d0180f54f36c8019209c6c24644c91922f925b",
            "immutable publication run 4745 attempt 2 passed with Harbor digest readback for both images"
          ],
          "previous_hash": "33afb89d323c7b0e1afd79a0f6190b5dbd32c1d4e0c387494dd9a0a8d13ab39c",
          "hash": "eed3043f3fa6ad5d02d6b98dc82fbc60b1584eb25091a5d95e12d0d18a204657"
        },
        {
          "event_id": "FLOW-TASK-0104-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0104",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0104",
              "state": "Done",
              "event_id": "FLOW-TASK-0104-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0104",
              "state": "Done",
              "event_id": "FLOW-TASK-0104-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0104",
              "state": "Done",
              "event_id": "FLOW-TASK-0104-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0104.yml",
              "item_id": "TASK-0104",
              "state": "Done",
              "event_id": "FLOW-TASK-0104-DONE-20260915"
            }
          ],
          "previous_hash": "eed3043f3fa6ad5d02d6b98dc82fbc60b1584eb25091a5d95e12d0d18a204657",
          "hash": "3f695389ec7abfe13224288165d70c0dcce32956834988b5fe4549d384f7b6a8"
        }
      ],
      "design_traceability": {
        "kind": "supporting",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-PREFLIGHT"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot revision and referenced frames or states before implementation.",
          "Verify observable content, state, interaction, destination, focus behavior, and viewport containment against the design package.",
          "Retain screenshot or rendered evidence and record every approved deviation against the exact application commit."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0105",
      "display_id": "AEROSIM-TS-105",
      "title": "Present and confirm supported initial cameras",
      "feature_id": "AEROSIM-FT-17",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-17/aerosim-ts-105/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0105.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Pre-flight configurator",
      "outcome": "Every supported initial camera is identifiable, selectable, and confirmable in pre-flight.",
      "scope": "Define CameraOption records keyed by stable cameraId; derive the pre-flight selector from the versioned camera registry; show each supported option name and viewpoint description; confirm one CameraSnapshot; and invalidate confirmation when registry version or selected camera changes.",
      "implementation_artifacts": [
        "applications/web/src/camera/camera-registry.ts",
        "applications/web/src/preflight/camera/InitialCameraSelector.tsx",
        "applications/web/test/preflight/initial-camera-selector.spec.tsx"
      ],
      "inputs": [
        "The versioned supported camera registry.",
        "A selected cameraId and confirm command."
      ],
      "outputs": [
        "A selected CameraOption and immutable CameraSnapshot with cameraId and registryVersion."
      ],
      "failure_boundaries": [
        "Unknown, disabled, duplicate, or missing cameraId cannot be confirmed and returns its registry validation code.",
        "A registry-version change invalidates an older confirmation."
      ],
      "exclusions": [
        "In-flight camera switching and camera motion are owned by AEROSIM-FT-12.",
        "This task does not initialize a render camera or create a session."
      ],
      "verification_steps": [
        "Run applications/web/test/preflight/initial-camera-selector.spec.tsx for every registry option.",
        "Assert each displayed identifier and description comes from the registry and each supported option can be confirmed.",
        "Inject unknown, disabled, duplicate, missing, and stale-version cases and assert confirmation is rejected."
      ],
      "dependencies": [
        "TASK-0090"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0024"
      ],
      "acceptance_evidence": "Verified delivery: application PR #151 reviewed head 32904d9568c377de1a990d99cd6842a7e6813f58 merged as d3082831eb11d3af08acd9e439fd2f4f39a328a0. The versioned immutable camera registry publishes four stable supported options; the production pre-flight briefing presents registry-sourced identifiers, names, and viewpoint descriptions; confirmation emits an immutable CameraSnapshot; and missing, duplicate, disabled, unknown, incomplete, changed-selection, and stale-version cases fail closed without fallback. Focused initial-camera tests pass 16/16; the full web Vitest suite passes 1262/1262 under isolated serial execution; browser flight suites pass 81/81; repository lint, typecheck, build, formatting, production audit, candidate CI run 4684 attempt 1, integration validation run 4686 attempt 3, and immutable image publication run 4685 attempt 2 passed. Harbor readback resolved Nebula digest sha256:77b61d7ebe42aa8c427d64586af6d748498685456d91c0f14c013e0fb0cff0ce and Singularity digest sha256:727d61177120f15a910c715e325b953503b1e359e4dbc27bf6b2679b72832570 for the exact integration revision. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0105",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0105-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0105",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0105",
            "state": "Done",
            "event_id": "FLOW-TASK-0105-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0105",
            "state": "Done",
            "event_id": "FLOW-TASK-0105-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0105",
            "state": "Done",
            "event_id": "FLOW-TASK-0105-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0105.yml",
            "item_id": "TASK-0105",
            "state": "Done",
            "event_id": "FLOW-TASK-0105-DONE-20260915"
          }
        ],
        "previous_hash": "b3f66d84b122479a895134b39d32b1ae2bba8da91538c4c8876d4a88829eb0fe",
        "hash": "54f7b99977e6b33329197a2d570306b536dc4823f928bff2d608d8da2f672cef"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0105-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0105",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0105",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0105-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0105.yml",
              "item_id": "TASK-0105",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0105-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "22883533bc48520c49c53738c74e0fb27fc52c7b881eab8d008a9ce1c89d95d3"
        },
        {
          "event_id": "FLOW-TASK-0105-IN-PROGRESS-20260911",
          "sequence": 2,
          "item_id": "TASK-0105",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T11:00:06Z",
          "conditions": [
            "Wave 25 is current; TASK-0090 is TO_BE_RELEASED."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0105-initial-camera-selector-1",
          "claim_base_sha": "8e245f7eae5a9e9ba59414d9f6f50c06668fdb2e",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/151",
              "item_id": "TASK-0105",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0105-IN-PROGRESS-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0105.yml",
              "item_id": "TASK-0105",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0105-IN-PROGRESS-20260911"
            }
          ],
          "previous_hash": "22883533bc48520c49c53738c74e0fb27fc52c7b881eab8d008a9ce1c89d95d3",
          "hash": "40742f7107090d991b8fe775da474d258febc3eccef9c5036787223e20b8b7fe"
        },
        {
          "event_id": "FLOW-TASK-0105-TO-BE-RELEASED-20260912",
          "sequence": 3,
          "item_id": "TASK-0105",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T08:36:17Z",
          "conditions": [],
          "reviewed_head": "32904d9568c377de1a990d99cd6842a7e6813f58",
          "integration_revision": "d3082831eb11d3af08acd9e439fd2f4f39a328a0",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4686",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4685",
          "published_images": [
            "library/nebula:d3082831eb11d3af08acd9e439fd2f4f39a328a0@sha256:77b61d7ebe42aa8c427d64586af6d748498685456d91c0f14c013e0fb0cff0ce",
            "library/singularity:d3082831eb11d3af08acd9e439fd2f4f39a328a0@sha256:727d61177120f15a910c715e325b953503b1e359e4dbc27bf6b2679b72832570"
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/151",
              "item_id": "TASK-0105",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0105-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/d3082831eb11d3af08acd9e439fd2f4f39a328a0",
              "item_id": "TASK-0105",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0105-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4684",
              "item_id": "TASK-0105",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0105-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4686",
              "item_id": "TASK-0105",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0105-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4685",
              "item_id": "TASK-0105",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0105-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0105.yml",
              "item_id": "TASK-0105",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0105-TO-BE-RELEASED-20260912"
            }
          ],
          "previous_hash": "40742f7107090d991b8fe775da474d258febc3eccef9c5036787223e20b8b7fe",
          "hash": "b3f66d84b122479a895134b39d32b1ae2bba8da91538c4c8876d4a88829eb0fe"
        },
        {
          "event_id": "FLOW-TASK-0105-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0105",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0105",
              "state": "Done",
              "event_id": "FLOW-TASK-0105-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0105",
              "state": "Done",
              "event_id": "FLOW-TASK-0105-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0105",
              "state": "Done",
              "event_id": "FLOW-TASK-0105-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0105.yml",
              "item_id": "TASK-0105",
              "state": "Done",
              "event_id": "FLOW-TASK-0105-DONE-20260915"
            }
          ],
          "previous_hash": "b3f66d84b122479a895134b39d32b1ae2bba8da91538c4c8876d4a88829eb0fe",
          "hash": "54f7b99977e6b33329197a2d570306b536dc4823f928bff2d608d8da2f672cef"
        }
      ],
      "design_traceability": {
        "kind": "direct_ui",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-PREFLIGHT"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot revision and referenced frames or states before implementation.",
          "Verify observable content, state, interaction, destination, focus behavior, and viewport containment against the design package.",
          "Retain screenshot or rendered evidence and record every approved deviation against the exact application commit."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0106",
      "display_id": "AEROSIM-TS-106",
      "title": "Initialize the session with the confirmed camera",
      "feature_id": "AEROSIM-FT-17",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-17/aerosim-ts-106/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0106.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Flight shell to R3F flight scene camera boundary",
      "outcome": "The first rendered flight frame uses the camera confirmed during pre-flight.",
      "scope": "Add CameraSnapshot to FlightLaunchConfiguration; resolve cameraId against the same registry version before session allocation; construct and activate that camera before the first flight frame; and publish InitialCameraState with cameraId, registryVersion, and firstFrameSequence.",
      "implementation_artifacts": [
        "applications/web/src/session/launch/camera-launch-adapter.ts",
        "applications/web/src/flight/camera/initialize-first-frame-camera.ts",
        "applications/web/test/session/camera-launch-adapter.spec.ts"
      ],
      "inputs": [
        "A confirmed CameraSnapshot and the current camera registry.",
        "A flight-scene initialization command before frame sequence zero."
      ],
      "outputs": [
        "An immutable launch camera snapshot.",
        "InitialCameraState proving the confirmed camera was active for the first rendered flight frame."
      ],
      "failure_boundaries": [
        "Missing confirmation, unknown cameraId, or registry-version mismatch aborts launch with invalid_initial_camera before session activation.",
        "Camera construction failure aborts frame scheduling and does not substitute a default camera."
      ],
      "exclusions": [
        "The task does not alter camera behavior after the first rendered flight frame.",
        "Automatic launch retry and fallback-camera selection are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/session/camera-launch-adapter.spec.ts and assert cameraId equality through confirmation, launch, and InitialCameraState.",
        "Assert the selected camera is active before frame sequence zero is emitted.",
        "Inject stale, unknown, and construction-failure cases; assert no active session, no flight frame, and no fallback camera."
      ],
      "dependencies": [
        "TASK-0105"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0024",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #168 reviewed head 67dbc6e42d51780b99e9992aee5a0c32e0a58c58 merged as c7977dca4f654036fa4f217e955e2339ffafde78. The immutable confirmed CameraSnapshot is retained by exact identity in FlightLaunchConfiguration; cameraId is resolved against the same registry before session allocation; the exact camera is constructed and activated before first frame sequence 0; and missing, cloned, unknown, stale, construction-failure, activation-failure, and render-failure paths abort without an active session, rendered frame, or fallback camera. Focused camera and launch tests pass 312/312; the full web suite passes 1312/1312 plus all browser flight suites; lint, typecheck, formatting, security, container contract, production build, production dependency audit, candidate CI run 4744 attempt 2, integration validation run 4748 attempt 1, and immutable image publication run 4747 attempt 2 passed. Harbor readback resolved Nebula digest sha256:61cc5740b1d17ea8bbe18b0b1f1433775be491be4ac6ff7b21ae850587d8ad0e and Singularity digest sha256:5d0358e88cebb8e305a0ed33f66c014c94b1048b40f3181695df2947d7d9eda8 for the exact integration revision. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0106",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0106-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0106",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0106",
            "state": "Done",
            "event_id": "FLOW-TASK-0106-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0106",
            "state": "Done",
            "event_id": "FLOW-TASK-0106-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0106",
            "state": "Done",
            "event_id": "FLOW-TASK-0106-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0106.yml",
            "item_id": "TASK-0106",
            "state": "Done",
            "event_id": "FLOW-TASK-0106-DONE-20260915"
          }
        ],
        "previous_hash": "57cfc762cde442aec598893f7934489934381cec93e39e44581aa930d02e8bc8",
        "hash": "ce73131730575dab2a1c8dc8695e42a9e1acbd0c0f806ce90168d93c373c2f6a"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0106-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0106",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0106",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0106-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0106.yml",
              "item_id": "TASK-0106",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0106-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "c46e7705a623977f69a356a721c98a5cb6aa291c693f27feb6e7709af82f4379"
        },
        {
          "event_id": "FLOW-TASK-0106-IN-PROGRESS-20260912",
          "sequence": 2,
          "item_id": "TASK-0106",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T09:31:14Z",
          "conditions": [
            "Wave 26 is current; dependency TASK-0105 is ToBeReleased."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0106-initialize-confirmed-camera-1",
          "claim_base_sha": "df1f9f810eac4a6c63387ce7e345ef77460746ba",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/168",
              "item_id": "TASK-0106",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0106-IN-PROGRESS-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0106.yml",
              "item_id": "TASK-0106",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0106-IN-PROGRESS-20260912"
            }
          ],
          "previous_hash": "c46e7705a623977f69a356a721c98a5cb6aa291c693f27feb6e7709af82f4379",
          "hash": "8ee7e41b1b941d3458da8505f2bb9983465d51d01151c5041bb8757f128f4ca1"
        },
        {
          "event_id": "FLOW-TASK-0106-TO-BE-RELEASED-20260912",
          "sequence": 3,
          "item_id": "TASK-0106",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T10:35:11Z",
          "conditions": [],
          "reviewed_head": "67dbc6e42d51780b99e9992aee5a0c32e0a58c58",
          "integration_revision": "c7977dca4f654036fa4f217e955e2339ffafde78",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4748",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4747",
          "published_images": [
            "library/nebula:c7977dca4f654036fa4f217e955e2339ffafde78@sha256:61cc5740b1d17ea8bbe18b0b1f1433775be491be4ac6ff7b21ae850587d8ad0e",
            "library/singularity:c7977dca4f654036fa4f217e955e2339ffafde78@sha256:5d0358e88cebb8e305a0ed33f66c014c94b1048b40f3181695df2947d7d9eda8"
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/168",
              "item_id": "TASK-0106",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0106-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/c7977dca4f654036fa4f217e955e2339ffafde78",
              "item_id": "TASK-0106",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0106-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4744",
              "item_id": "TASK-0106",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0106-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4748",
              "item_id": "TASK-0106",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0106-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4747",
              "item_id": "TASK-0106",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0106-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0106.yml",
              "item_id": "TASK-0106",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0106-TO-BE-RELEASED-20260912"
            }
          ],
          "previous_hash": "8ee7e41b1b941d3458da8505f2bb9983465d51d01151c5041bb8757f128f4ca1",
          "hash": "57cfc762cde442aec598893f7934489934381cec93e39e44581aa930d02e8bc8"
        },
        {
          "event_id": "FLOW-TASK-0106-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0106",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0106",
              "state": "Done",
              "event_id": "FLOW-TASK-0106-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0106",
              "state": "Done",
              "event_id": "FLOW-TASK-0106-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0106",
              "state": "Done",
              "event_id": "FLOW-TASK-0106-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0106.yml",
              "item_id": "TASK-0106",
              "state": "Done",
              "event_id": "FLOW-TASK-0106-DONE-20260915"
            }
          ],
          "previous_hash": "57cfc762cde442aec598893f7934489934381cec93e39e44581aa930d02e8bc8",
          "hash": "ce73131730575dab2a1c8dc8695e42a9e1acbd0c0f806ce90168d93c373c2f6a"
        }
      ],
      "design_traceability": {
        "kind": "supporting",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-PREFLIGHT"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot revision and referenced frames or states before implementation.",
          "Verify observable content, state, interaction, destination, focus behavior, and viewport containment against the design package.",
          "Retain screenshot or rendered evidence and record every approved deviation against the exact application commit."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0107",
      "display_id": "AEROSIM-TS-107",
      "title": "Verify the initial-camera configuration round trip",
      "feature_id": "AEROSIM-FT-17",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-17/aerosim-ts-107/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0107.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Pre-flight and camera integration test suites",
      "outcome": "Automated evidence proves equality between the displayed, confirmed, launched, and initially active camera for every supported option.",
      "scope": "Create a table-driven camera integrity suite for every supported option, registry changes, unsupported identifiers, post-confirmation edits, construction failure, first-frame activation, and a deliberate retry after selecting a valid camera.",
      "implementation_artifacts": [
        "applications/web/test/integration/initial-camera-integrity.spec.ts",
        "applications/web/test/fixtures/camera-options.ts"
      ],
      "inputs": [
        "Supported and invalid camera fixtures plus observed selector, launch, and first-frame state."
      ],
      "outputs": [
        "Per-camera equality assertions across displayed, confirmed, launched, and initially active identifiers.",
        "Retry assertions proving a failed camera attempt leaves no session or frame."
      ],
      "failure_boundaries": [
        "Any identifier or registryVersion mismatch, fallback substitution, frame emitted before activation, or session retained after failure fails the suite."
      ],
      "exclusions": [
        "Camera transitions after the initial frame and camera visual quality are not evaluated.",
        "Only a new deliberate launch after correction is tested; automatic retries are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/integration/initial-camera-integrity.spec.ts for all camera fixtures.",
        "Assert exact cameraId and registryVersion equality at all four stages and firstFrameSequence equals zero.",
        "Fail one launch, correct the camera, retry deliberately, and assert one and only one session and initial frame are created."
      ],
      "dependencies": [
        "TASK-0106"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0024",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #172 reviewed head 1c3f6a80acbb999b1628349cc39b66377ed5ffee merged as b1b4e3caf98ec4094608a90e1ab2e4fadda3d6f7. The table-driven initial-camera suite covers all four supported cameras and exact cameraId/registryVersion equality from displayed option through immutable confirmation, launch configuration, and initially active camera at firstFrameSequence 0. Unsupported identifiers, registry-version drift, removed cameras, post-confirmation selection edits, construction failure, fallback prevention, and deliberate corrected retry all fail closed or retain exactly one successful session and frame. The focused suite passes 12/12 and adjacent camera suites pass 70/70; the full web suite passes 1336/1336 plus browser flight and Playwright E2E suites. Lint, typecheck, formatting, security, container contract, production build, and production dependency audit pass. Candidate CI run 4765 attempt 1, integration validation run 4767 attempt 1, and immutable image publication run 4766 attempt 1 passed. Harbor readback resolved Nebula digest sha256:71f2af1e08f9e3a855fcb874aeffcf7c5932dca4d47b6ef6ba6f41a732aa49e0 and Singularity digest sha256:10eae457219bcb4b7008a3afc83d9bb5d4d4769ce5536a21a19f7d08178af1af for the exact integration revision. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0107",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0107-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0107",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0107",
            "state": "Done",
            "event_id": "FLOW-TASK-0107-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0107",
            "state": "Done",
            "event_id": "FLOW-TASK-0107-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0107",
            "state": "Done",
            "event_id": "FLOW-TASK-0107-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0107.yml",
            "item_id": "TASK-0107",
            "state": "Done",
            "event_id": "FLOW-TASK-0107-DONE-20260915"
          }
        ],
        "previous_hash": "cdea9e91b4ee901c212e19fc7454b06b79d04fd363dcfae2808410b4068a10da",
        "hash": "f99dd58a573ed8105ded0a7e7f625eee6020dcce1ad5e346f5850f4d5bc06a13"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0107-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0107",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0107",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0107-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0107.yml",
              "item_id": "TASK-0107",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0107-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "e48d2038c1842ff1b39592139096f36a9d69502ec29722f6a3ddf42f24baea90"
        },
        {
          "event_id": "FLOW-TASK-0107-IN-PROGRESS-20260912",
          "sequence": 2,
          "item_id": "TASK-0107",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T10:47:08Z",
          "conditions": [
            "Wave 27 is current; dependency TASK-0106 is ToBeReleased."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0107-initial-camera-round-trip-1",
          "claim_base_sha": "c7977dca4f654036fa4f217e955e2339ffafde78",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/172",
              "item_id": "TASK-0107",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0107-IN-PROGRESS-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0107.yml",
              "item_id": "TASK-0107",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0107-IN-PROGRESS-20260912"
            }
          ],
          "previous_hash": "e48d2038c1842ff1b39592139096f36a9d69502ec29722f6a3ddf42f24baea90",
          "hash": "bcf473ed84df96cb922305b922b0064fa17b9db49f821d9b8be8acb2403578ea"
        },
        {
          "event_id": "FLOW-TASK-0107-TO-BE-RELEASED-20260912",
          "sequence": 3,
          "item_id": "TASK-0107",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T11:44:22Z",
          "conditions": [],
          "reviewed_head": "1c3f6a80acbb999b1628349cc39b66377ed5ffee",
          "integration_revision": "b1b4e3caf98ec4094608a90e1ab2e4fadda3d6f7",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4767",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4766",
          "published_images": [
            "library/nebula:b1b4e3caf98ec4094608a90e1ab2e4fadda3d6f7@sha256:71f2af1e08f9e3a855fcb874aeffcf7c5932dca4d47b6ef6ba6f41a732aa49e0",
            "library/singularity:b1b4e3caf98ec4094608a90e1ab2e4fadda3d6f7@sha256:10eae457219bcb4b7008a3afc83d9bb5d4d4769ce5536a21a19f7d08178af1af"
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/172",
              "item_id": "TASK-0107",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0107-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/b1b4e3caf98ec4094608a90e1ab2e4fadda3d6f7",
              "item_id": "TASK-0107",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0107-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4765",
              "item_id": "TASK-0107",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0107-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4767",
              "item_id": "TASK-0107",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0107-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4766",
              "item_id": "TASK-0107",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0107-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0107.yml",
              "item_id": "TASK-0107",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0107-TO-BE-RELEASED-20260912"
            }
          ],
          "previous_hash": "bcf473ed84df96cb922305b922b0064fa17b9db49f821d9b8be8acb2403578ea",
          "hash": "cdea9e91b4ee901c212e19fc7454b06b79d04fd363dcfae2808410b4068a10da"
        },
        {
          "event_id": "FLOW-TASK-0107-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0107",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0107",
              "state": "Done",
              "event_id": "FLOW-TASK-0107-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0107",
              "state": "Done",
              "event_id": "FLOW-TASK-0107-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0107",
              "state": "Done",
              "event_id": "FLOW-TASK-0107-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0107.yml",
              "item_id": "TASK-0107",
              "state": "Done",
              "event_id": "FLOW-TASK-0107-DONE-20260915"
            }
          ],
          "previous_hash": "cdea9e91b4ee901c212e19fc7454b06b79d04fd363dcfae2808410b4068a10da",
          "hash": "f99dd58a573ed8105ded0a7e7f625eee6020dcce1ad5e346f5850f4d5bc06a13"
        }
      ],
      "design_traceability": {
        "kind": "supporting",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-PREFLIGHT"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot revision and referenced frames or states before implementation.",
          "Verify observable content, state, interaction, destination, focus behavior, and viewport containment against the design package.",
          "Retain screenshot or rendered evidence and record every approved deviation against the exact application commit."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0108",
      "display_id": "AEROSIM-TS-108",
      "title": "Render the canonical pre-flight summary",
      "feature_id": "AEROSIM-FT-18",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-18/aerosim-ts-108/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0108.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Pre-flight configurator",
      "outcome": "One review summary shows the exact confirmed aircraft, world, flight and environmental conditions, controls, and initial camera.",
      "scope": "Define PreflightSummary as a pure projection of one immutable PreflightConfiguration revision containing aircraft, world, conditions, controls, and initial camera snapshots; compute section validity and an overall readyToLaunch flag; display revision and all confirmed values; and invalidate the summary when any source confirmation changes.",
      "implementation_artifacts": [
        "applications/web/src/preflight/summary/preflight-summary.ts",
        "applications/web/src/preflight/summary/PreflightSummaryPanel.tsx",
        "applications/web/test/preflight/preflight-summary.spec.tsx"
      ],
      "inputs": [
        "One PreflightConfiguration revision containing the five required confirmed snapshots."
      ],
      "outputs": [
        "A PreflightSummary with sourceRevision, five section projections, validation codes, and readyToLaunch.",
        "A stable summaryHash calculated from the complete canonical configuration."
      ],
      "failure_boundaries": [
        "A missing, invalid, stale, cross-version, or changed section sets readyToLaunch false, identifies the section and reason, and emits no launchable summary hash.",
        "Summary rendering never fills missing sections from defaults or independent component state."
      ],
      "exclusions": [
        "The summary is read-only and does not edit source selections.",
        "Debrief results, pilot progress, session history, and training recommendations are not part of the pre-flight summary."
      ],
      "verification_steps": [
        "Run applications/web/test/preflight/preflight-summary.spec.tsx and compare all displayed values with the five source snapshots.",
        "Remove and stale each section in turn; assert its exact code, readyToLaunch false, and no launchable summaryHash.",
        "Change a confirmed source after rendering; assert sourceRevision changes and the prior summary cannot be launched."
      ],
      "dependencies": [
        "TASK-0100",
        "TASK-0104",
        "TASK-0107",
        "TASK-0113",
        "TASK-0116"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0025",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #173 reviewed head 2165d89e491213731f76d87eb863f40161c5bfa6 merged as 635a0eb2318719ba62bd7dd3f6b69b3871a97068. The pure immutable projection returns five exact section results, overall readyToLaunch, and a stable complete-configuration summaryHash only when all confirmed aircraft, world, conditions, controls, and initial-camera values remain valid and current. The read-only UIUX-100-PREFLIGHT@6569 panel displays revision, status, hash, and every exact confirmed value without defaults or independent state. Focused tests pass 41/41 and cover every section for missing, invalid, stale, cross-version, changed-revision and changed-content invalidation; full application, integration, certified-browser, security, format, lint, typecheck, build, container, Helm, and production audit gates passed. Candidate CI run 4783 attempt 1, integration run 4785 attempt 1, and immutable publication run 4784 attempt 1 passed. Harbor readback resolved Nebula digest sha256:469c8b105be3f4ec31b195ba6e4519cb6d0e7358d284b515da26a114367d6b62 and Singularity digest sha256:85a3e099fefd63a8252e14aff8dd3cd8b940c95228a6d3a489f2c101a818054a for the exact integration revision. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0108",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0108-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0108",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0108",
            "state": "Done",
            "event_id": "FLOW-TASK-0108-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0108",
            "state": "Done",
            "event_id": "FLOW-TASK-0108-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0108",
            "state": "Done",
            "event_id": "FLOW-TASK-0108-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0108.yml",
            "item_id": "TASK-0108",
            "state": "Done",
            "event_id": "FLOW-TASK-0108-DONE-20260915"
          }
        ],
        "previous_hash": "bf26ff5a858b83695d638b33218222d358c997e0ad150116fb99c138c2939f1c",
        "hash": "9c155378b7eedcd3e0efa61b37e36c9d321b889980bab18f78c070b4c8e23b01"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0108-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0108",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0108",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0108-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0108.yml",
              "item_id": "TASK-0108",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0108-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "1dd0b950dc8ece299c41dd1a6c8eabc755ae9b6e5b1e6dfe577cdbd71aee1ad9"
        },
        {
          "event_id": "FLOW-TASK-0108-IN-PROGRESS-20260912",
          "sequence": 2,
          "item_id": "TASK-0108",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T12:18:37Z",
          "conditions": [
            "Wave 28 is current; dependencies TASK-0100, TASK-0104, TASK-0107, TASK-0113, and TASK-0116 are ToBeReleased."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0108-preflight-summary-1",
          "claim_base_sha": "4468005729ffc5f7539efaa2fca073ac0da2f5cb",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/173",
              "item_id": "TASK-0108",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0108-IN-PROGRESS-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0108.yml",
              "item_id": "TASK-0108",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0108-IN-PROGRESS-20260912"
            }
          ],
          "previous_hash": "1dd0b950dc8ece299c41dd1a6c8eabc755ae9b6e5b1e6dfe577cdbd71aee1ad9",
          "hash": "2c8aff44af28e521211102824772f28f9ffaa3c37ba27445360560d231dbf7b3"
        },
        {
          "event_id": "FLOW-TASK-0108-TO-BE-RELEASED-20260912",
          "sequence": 3,
          "item_id": "TASK-0108",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T13:30:59Z",
          "conditions": [],
          "reviewed_head": "2165d89e491213731f76d87eb863f40161c5bfa6",
          "integration_revision": "635a0eb2318719ba62bd7dd3f6b69b3871a97068",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4785",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4784",
          "published_images": [
            "library/nebula:635a0eb2318719ba62bd7dd3f6b69b3871a97068@sha256:469c8b105be3f4ec31b195ba6e4519cb6d0e7358d284b515da26a114367d6b62",
            "library/singularity:635a0eb2318719ba62bd7dd3f6b69b3871a97068@sha256:85a3e099fefd63a8252e14aff8dd3cd8b940c95228a6d3a489f2c101a818054a"
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/173",
              "item_id": "TASK-0108",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0108-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/635a0eb2318719ba62bd7dd3f6b69b3871a97068",
              "item_id": "TASK-0108",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0108-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4783",
              "item_id": "TASK-0108",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0108-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4785",
              "item_id": "TASK-0108",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0108-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4784",
              "item_id": "TASK-0108",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0108-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0108.yml",
              "item_id": "TASK-0108",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0108-TO-BE-RELEASED-20260912"
            }
          ],
          "previous_hash": "2c8aff44af28e521211102824772f28f9ffaa3c37ba27445360560d231dbf7b3",
          "hash": "bf26ff5a858b83695d638b33218222d358c997e0ad150116fb99c138c2939f1c"
        },
        {
          "event_id": "FLOW-TASK-0108-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0108",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0108",
              "state": "Done",
              "event_id": "FLOW-TASK-0108-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0108",
              "state": "Done",
              "event_id": "FLOW-TASK-0108-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0108",
              "state": "Done",
              "event_id": "FLOW-TASK-0108-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0108.yml",
              "item_id": "TASK-0108",
              "state": "Done",
              "event_id": "FLOW-TASK-0108-DONE-20260915"
            }
          ],
          "previous_hash": "bf26ff5a858b83695d638b33218222d358c997e0ad150116fb99c138c2939f1c",
          "hash": "9c155378b7eedcd3e0efa61b37e36c9d321b889980bab18f78c070b4c8e23b01"
        }
      ],
      "design_traceability": {
        "kind": "direct_ui",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-PREFLIGHT"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot revision and referenced frames or states before implementation.",
          "Verify observable content, state, interaction, destination, focus behavior, and viewport containment against the design package.",
          "Retain screenshot or rendered evidence and record every approved deviation against the exact application commit."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0109",
      "display_id": "AEROSIM-TS-109",
      "title": "Create exactly one session from one deliberate launch",
      "feature_id": "AEROSIM-FT-18",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-18/aerosim-ts-109/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0109.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Flight shell",
      "outcome": "One deliberate launch action freezes the displayed configuration and creates exactly one flight session from it.",
      "scope": "Implement a launch coordinator with idle, creating, active, and failed states; accept one deliberate command carrying sourceRevision, summaryHash, and a clientLaunchId; atomically reserve that clientLaunchId, freeze the complete configuration, create one session, and bind sessionId to the same configuration hash.",
      "implementation_artifacts": [
        "applications/web/src/session/launch/session-launch-coordinator.ts",
        "applications/web/src/session/launch/session-repository.ts",
        "applications/web/test/session/session-launch-coordinator.spec.ts"
      ],
      "inputs": [
        "A ready PreflightSummary, its immutable PreflightConfiguration, and a unique clientLaunchId.",
        "One deliberate launch command initiated while the coordinator is idle or failed."
      ],
      "outputs": [
        "Exactly one SessionCreated result containing sessionId, clientLaunchId, sourceRevision, and configurationHash.",
        "A failed result with stage and retryAllowed when no session was committed."
      ],
      "failure_boundaries": [
        "Not-ready, stale revision, hash mismatch, or already-used clientLaunchId is rejected before creation.",
        "Concurrent duplicate commands share the first terminal result and cannot allocate a second session.",
        "Failure before commit creates no session and allows one later deliberate command with a new clientLaunchId; failure after commit returns the existing SessionCreated result rather than recreating it."
      ],
      "exclusions": [
        "No background, timed, or automatic launch retry is performed.",
        "Session debrief, progress updates, history retention, and training workflow orchestration begin only after a session outcome exists and are outside this task."
      ],
      "verification_steps": [
        "Run applications/web/test/session/session-launch-coordinator.spec.ts and assert one valid command commits one configuration and one session.",
        "Send concurrent and replayed commands with the same clientLaunchId; assert one sessionId and the same terminal result.",
        "Inject failure before and after commit; assert zero sessions before commit, committed-session recovery after commit, and one session from a new deliberate retry."
      ],
      "dependencies": [
        "TASK-0108"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0025",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #175 reviewed head 219878642b63ce3031c41f4770647d4137c3fdb5 merged as 76bea8a21a163b18f139d486919e9b5766cb2ad4. Thirteen focused tests prove idle, creating, active, and failed coordination; atomic clientLaunchId reservation; one immutable complete configuration and exactly one hash-bound session; same-process and cross-coordinator duplicate result sharing; rejection of not-ready, stale, changed, hash-mismatched, empty-ID, conflicting, competing, and post-active commands; one new deliberate retry after pre-commit failure with no automatic retry; and post-commit recovery without recreation. Full application, integration, certified-browser, security, format, lint, typecheck, build, container, Helm, and production audit gates passed. Candidate CI run 4800 attempt 1, integration run 4802 attempt 1, and immutable publication run 4801 attempt 1 passed. Harbor readback resolved Nebula digest sha256:db5bf47a4fd2263322844db8a84db6a59a95a45a5e59ea551e701f841e9b7b3f and Singularity digest sha256:416a375b93d5b674e6c20e661e210d05d25fd80cbc31a871846a063b2c780e53 for the exact integration revision. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0109",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0109-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0109",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0109",
            "state": "Done",
            "event_id": "FLOW-TASK-0109-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0109",
            "state": "Done",
            "event_id": "FLOW-TASK-0109-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0109",
            "state": "Done",
            "event_id": "FLOW-TASK-0109-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0109.yml",
            "item_id": "TASK-0109",
            "state": "Done",
            "event_id": "FLOW-TASK-0109-DONE-20260915"
          }
        ],
        "previous_hash": "4c8ccb6a3b42420fc9f2bf11ed8f1e41f7b094f5fad8e7639854eede7eec5308",
        "hash": "cd2b18483c5a4842de817bc6f6ae1ba7996305fd184f03ab59cb7f377d054a00"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0109-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0109",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0109",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0109-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0109.yml",
              "item_id": "TASK-0109",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0109-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "6714860720cc5204a0a30437d8625a66c1ffcf55ede183e50d3f276d107ec1ec"
        },
        {
          "event_id": "FLOW-TASK-0109-IN-PROGRESS-20260912",
          "sequence": 2,
          "item_id": "TASK-0109",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T13:45:47Z",
          "conditions": [
            "Wave 29 is current; dependency TASK-0108 is ToBeReleased.",
            "FR-0025 and NFR-0011 apply; approved UIUX-100-PREFLIGHT baseline is Penpot revision 6569."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0109-session-launch-once-1",
          "claim_base_sha": "635a0eb2318719ba62bd7dd3f6b69b3871a97068",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/175",
              "item_id": "TASK-0109",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0109-IN-PROGRESS-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0109.yml",
              "item_id": "TASK-0109",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0109-IN-PROGRESS-20260912"
            }
          ],
          "previous_hash": "6714860720cc5204a0a30437d8625a66c1ffcf55ede183e50d3f276d107ec1ec",
          "hash": "418b7cb0922628932bb9cbc61cebab9e2cf4a2f13f11764759b1a5bb368f7e56"
        },
        {
          "event_id": "FLOW-TASK-0109-TO-BE-RELEASED-20260912",
          "sequence": 3,
          "item_id": "TASK-0109",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T14:37:18Z",
          "conditions": [],
          "reviewed_head": "219878642b63ce3031c41f4770647d4137c3fdb5",
          "integration_revision": "76bea8a21a163b18f139d486919e9b5766cb2ad4",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4802",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4801",
          "published_images": [
            "library/nebula:76bea8a21a163b18f139d486919e9b5766cb2ad4@sha256:db5bf47a4fd2263322844db8a84db6a59a95a45a5e59ea551e701f841e9b7b3f",
            "library/singularity:76bea8a21a163b18f139d486919e9b5766cb2ad4@sha256:416a375b93d5b674e6c20e661e210d05d25fd80cbc31a871846a063b2c780e53"
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/175",
              "item_id": "TASK-0109",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0109-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/76bea8a21a163b18f139d486919e9b5766cb2ad4",
              "item_id": "TASK-0109",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0109-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4800",
              "item_id": "TASK-0109",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0109-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4802",
              "item_id": "TASK-0109",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0109-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4801",
              "item_id": "TASK-0109",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0109-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0109.yml",
              "item_id": "TASK-0109",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0109-TO-BE-RELEASED-20260912"
            }
          ],
          "previous_hash": "418b7cb0922628932bb9cbc61cebab9e2cf4a2f13f11764759b1a5bb368f7e56",
          "hash": "4c8ccb6a3b42420fc9f2bf11ed8f1e41f7b094f5fad8e7639854eede7eec5308"
        },
        {
          "event_id": "FLOW-TASK-0109-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0109",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0109",
              "state": "Done",
              "event_id": "FLOW-TASK-0109-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0109",
              "state": "Done",
              "event_id": "FLOW-TASK-0109-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0109",
              "state": "Done",
              "event_id": "FLOW-TASK-0109-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0109.yml",
              "item_id": "TASK-0109",
              "state": "Done",
              "event_id": "FLOW-TASK-0109-DONE-20260915"
            }
          ],
          "previous_hash": "4c8ccb6a3b42420fc9f2bf11ed8f1e41f7b094f5fad8e7639854eede7eec5308",
          "hash": "cd2b18483c5a4842de817bc6f6ae1ba7996305fd184f03ab59cb7f377d054a00"
        }
      ],
      "design_traceability": {
        "kind": "supporting",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-PREFLIGHT"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot revision and referenced frames or states before implementation.",
          "Verify observable content, state, interaction, destination, focus behavior, and viewport containment against the design package.",
          "Retain screenshot or rendered evidence and record every approved deviation against the exact application commit."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0110",
      "display_id": "AEROSIM-TS-110",
      "title": "Verify complete pre-flight configuration integrity",
      "feature_id": "AEROSIM-FT-18",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-18/aerosim-ts-110/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0110.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — End-to-end pre-flight and flight integration test suite",
      "outcome": "End-to-end evidence proves that each reviewed configuration creates one session whose world, aircraft, conditions, controls, and initial camera exactly equal the summary.",
      "scope": "Create an end-to-end integrity suite that selects representative aircraft, world, condition, control, and camera combinations; confirms one source revision; renders its summary; issues launch; and compares every runtime snapshot with the same configurationHash while exercising stale summaries, invalid controls, concurrent duplicates, and retry boundaries.",
      "implementation_artifacts": [
        "applications/web/test/e2e/preflight-launch-integrity.spec.ts",
        "applications/web/test/fixtures/preflight-configurations.ts"
      ],
      "inputs": [
        "Representative valid and invalid complete pre-flight fixtures and injectable launch-stage failures.",
        "Observed summary, launch result, runtime configuration, and session count."
      ],
      "outputs": [
        "A field-level integrity result for all five configuration sections and the shared hash.",
        "Duplicate and retry evidence recording clientLaunchId, sessionId, terminal result, and session count."
      ],
      "failure_boundaries": [
        "Any field mismatch, accepted stale summary, accepted invalid control token, reused launch identifier creating another session, partial session, or unclassified launch failure fails the suite."
      ],
      "exclusions": [
        "The suite ends when the launched runtime configuration is established; it does not score the flight, produce a debrief, update progress, write session history, or start training content.",
        "Performance targets belong to their specific quality tasks and are not inferred from functional integrity."
      ],
      "verification_steps": [
        "Run applications/web/test/e2e/preflight-launch-integrity.spec.ts for all complete fixtures.",
        "Assert deep equality for aircraft, world, conditions, controls, and camera plus equality of sourceRevision and configurationHash.",
        "Exercise stale-summary, invalid-token, concurrent duplicate, pre-commit failure, post-commit response loss, and corrected deliberate retry cases; assert the expected terminal result and exact session count."
      ],
      "dependencies": [
        "TASK-0109",
        "TASK-0127"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0025",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #179 reviewed head 8275ab007b1c480d1f45f9cfb7caac41ae4405ff merged as c6fce1621188762754a244b7907e5b786c2bf7e8. Eight focused integrity tests across two representative complete fixtures prove field-level aircraft, world, conditions, controls, and initial-camera equality; shared sourceRevision and configurationHash; stale-summary and invalid-control rejection; concurrent and replayed duplicate identity; classified pre-commit failure with deliberate corrected retry; post-commit response-loss recovery; and exact session counts. Full repository-native validation, container, Helm, production audit, candidate CI run 4869 attempt 2, integration CI run 4875 attempt 1, and immutable publication run 4874 attempt 2 passed. Harbor readback resolved Nebula digest sha256:99e491abffa74a63d5d43aedd88747e3c93ca45fc3d03afabc66902b10ee354e and Singularity digest sha256:459c4cb36f3c81e17ba15fa63fcd31c1ab1ee2d6a6039d01d0afd363d748fd19 for the exact integration revision. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0110",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0110-DONE-20260915",
        "sequence": 6,
        "item_id": "TASK-0110",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0110",
            "state": "Done",
            "event_id": "FLOW-TASK-0110-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0110",
            "state": "Done",
            "event_id": "FLOW-TASK-0110-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0110",
            "state": "Done",
            "event_id": "FLOW-TASK-0110-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0110.yml",
            "item_id": "TASK-0110",
            "state": "Done",
            "event_id": "FLOW-TASK-0110-DONE-20260915"
          }
        ],
        "previous_hash": "96c8f7951d6fab5237bbef630800ac43d9c215a776c20858da3a7f626dd6476a",
        "hash": "b95b849765a4d795b33773505967bea5c12f400df256927fce2b49f30708ad38"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0110-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0110",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0110",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0110-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0110.yml",
              "item_id": "TASK-0110",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0110-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "4573fd1150cb1b5f6a934880ce381c1c00a7a054ced2cc6b13a93dc1226ce080"
        },
        {
          "event_id": "FLOW-TASK-0110-BACKLOG-DESIGN-20260910",
          "sequence": 2,
          "item_id": "TASK-0110",
          "from_state": "ReadyForDelivery",
          "to_state": "InBacklog",
          "evidence_gate": "Kanban Admission",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-10T22:52:33Z",
          "conditions": [
            "Renew exact implementation approval and Kanban admission after TASK-0127 design-conformance evidence is complete."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547740767974334526",
              "item_id": "TASK-0110",
              "state": "InBacklog",
              "event_id": "FLOW-TASK-0110-BACKLOG-DESIGN-20260910"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0110.yml",
              "item_id": "TASK-0110",
              "state": "InBacklog",
              "event_id": "FLOW-TASK-0110-BACKLOG-DESIGN-20260910"
            }
          ],
          "previous_hash": "4573fd1150cb1b5f6a934880ce381c1c00a7a054ced2cc6b13a93dc1226ce080",
          "hash": "733ff3c89081ccb496e76c576147738dc1411742d76ba9925c7b4fcd51384018"
        },
        {
          "event_id": "FLOW-TASK-0110-READY-20260913-2",
          "sequence": 3,
          "item_id": "TASK-0110",
          "from_state": "InBacklog",
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-13T19:03:24Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548769922509832224",
              "item_id": "TASK-0110",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0110-READY-20260913-2"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0110.yml",
              "item_id": "TASK-0110",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0110-READY-20260913-2"
            }
          ],
          "previous_hash": "733ff3c89081ccb496e76c576147738dc1411742d76ba9925c7b4fcd51384018",
          "hash": "9dc37f90c9abfba0c0da075ab699b3564e572d1d33612098fded1e25bdcf4f1e"
        },
        {
          "event_id": "FLOW-TASK-0110-IN-PROGRESS-20260913",
          "sequence": 4,
          "item_id": "TASK-0110",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-13T19:23:17Z",
          "conditions": [
            "Wave 30 is current; dependencies TASK-0109 and TASK-0127 are ToBeReleased.",
            "Application branch and PR"
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0110-preflight-integrity-1",
          "claim_base_sha": "cf94ed7ca6db91c36fbb262273476bd3db997fdc",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/179",
              "item_id": "TASK-0110",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0110-IN-PROGRESS-20260913"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0110.yml",
              "item_id": "TASK-0110",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0110-IN-PROGRESS-20260913"
            }
          ],
          "previous_hash": "9dc37f90c9abfba0c0da075ab699b3564e572d1d33612098fded1e25bdcf4f1e",
          "hash": "4a7aab3175c043be20e6ad7a697028bef32d434468f80a92b034ed5d2a38de37"
        },
        {
          "event_id": "FLOW-TASK-0110-TO-BE-RELEASED-20260913",
          "sequence": 5,
          "item_id": "TASK-0110",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-13T20:40:19Z",
          "conditions": [],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/179",
          "reviewed_head": "8275ab007b1c480d1f45f9cfb7caac41ae4405ff",
          "integration_revision": "c6fce1621188762754a244b7907e5b786c2bf7e8",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4875",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4874",
          "published_images": [
            "library/nebula:c6fce1621188762754a244b7907e5b786c2bf7e8@sha256:99e491abffa74a63d5d43aedd88747e3c93ca45fc3d03afabc66902b10ee354e",
            "library/singularity:c6fce1621188762754a244b7907e5b786c2bf7e8@sha256:459c4cb36f3c81e17ba15fa63fcd31c1ab1ee2d6a6039d01d0afd363d748fd19"
          ],
          "acceptance_evidence": [
            "final application PR",
            "eight focused integrity tests passed across two complete representative fixtures",
            "candidate CI 4869 attempt 2 passed all nine required jobs",
            "integration CI 4875 attempt 1 passed exact-revision validation",
            "immutable publication 4874 attempt 2 passed and Harbor manifest readback matched both digests",
            "approved AEROSIM-UIUX-REL-1.0.0 full-journey baseline remained frozen at Penpot revision 6608"
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/179",
              "item_id": "TASK-0110",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0110-TO-BE-RELEASED-20260913"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/c6fce1621188762754a244b7907e5b786c2bf7e8",
              "item_id": "TASK-0110",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0110-TO-BE-RELEASED-20260913"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4869",
              "item_id": "TASK-0110",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0110-TO-BE-RELEASED-20260913"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4875",
              "item_id": "TASK-0110",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0110-TO-BE-RELEASED-20260913"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4874",
              "item_id": "TASK-0110",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0110-TO-BE-RELEASED-20260913"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0110.yml",
              "item_id": "TASK-0110",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0110-TO-BE-RELEASED-20260913"
            }
          ],
          "previous_hash": "4a7aab3175c043be20e6ad7a697028bef32d434468f80a92b034ed5d2a38de37",
          "hash": "96c8f7951d6fab5237bbef630800ac43d9c215a776c20858da3a7f626dd6476a"
        },
        {
          "event_id": "FLOW-TASK-0110-DONE-20260915",
          "sequence": 6,
          "item_id": "TASK-0110",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0110",
              "state": "Done",
              "event_id": "FLOW-TASK-0110-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0110",
              "state": "Done",
              "event_id": "FLOW-TASK-0110-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0110",
              "state": "Done",
              "event_id": "FLOW-TASK-0110-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0110.yml",
              "item_id": "TASK-0110",
              "state": "Done",
              "event_id": "FLOW-TASK-0110-DONE-20260915"
            }
          ],
          "previous_hash": "96c8f7951d6fab5237bbef630800ac43d9c215a776c20858da3a7f626dd6476a",
          "hash": "b95b849765a4d795b33773505967bea5c12f400df256927fce2b49f30708ad38"
        }
      ],
      "design_traceability": {
        "kind": "verification",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-FULL-JOURNEY"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot revision and referenced frames or states before implementation.",
          "Verify observable content, state, interaction, destination, focus behavior, and viewport containment against the design package.",
          "Retain screenshot or rendered evidence and record every approved deviation against the exact application commit."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0111",
      "display_id": "AEROSIM-TS-111",
      "title": "Propagate the confirmed world into the launch configuration",
      "feature_id": "AEROSIM-FT-6",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-6/aerosim-ts-111/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0111.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Pre-flight configurator to Flight shell boundary",
      "outcome": "The launch configuration contains exactly the canonical world identifier and terrain configuration confirmed during pre-flight.",
      "scope": "Add the confirmed WorldSnapshot to FlightLaunchConfiguration; freeze its complete identifiers and catalogueVersion with the pre-flight source revision; and reject launch configuration creation unless the snapshot is current and resolves to exactly one catalogue entry.",
      "implementation_artifacts": [
        "applications/web/src/session/launch/world-launch-configuration.ts",
        "applications/web/test/session/world-launch-configuration.spec.ts"
      ],
      "inputs": [
        "A confirmed WorldSnapshot and current versioned world catalogue.",
        "The sourceRevision for the complete pre-flight configuration."
      ],
      "outputs": [
        "An immutable launch world snapshot carrying worldId, terrainAssetId, physicsProfileId, catalogueVersion, and sourceRevision."
      ],
      "failure_boundaries": [
        "Missing confirmation, unknown worldId, changed asset/profile mapping, or stale catalogueVersion returns invalid_world and emits no launch configuration.",
        "Edits made after configuration creation produce a new sourceRevision and cannot mutate the issued snapshot."
      ],
      "exclusions": [
        "This task does not fetch assets, construct terrain, or activate a session.",
        "Automatic correction or fallback to a default world is excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/session/world-launch-configuration.spec.ts and deep-compare confirmation with the emitted launch snapshot.",
        "Mutate selection and catalogue after issue; assert the issued snapshot remains unchanged and stale launch is rejected.",
        "Inject each mapping error and assert no launch configuration is emitted."
      ],
      "dependencies": [
        "TASK-0007"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0011",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: final application PR #95 reviewed head 49e4252750fb4ca4d6c3ece2a465d2cdaf6d1911 passed exact-head application validation run 3953 attempt 2, merged as f824eec94b86e942f5990217663a0acb433193db, and integration runs 3954 and 3955 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0111",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0111-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0111",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0111",
            "state": "Done",
            "event_id": "FLOW-TASK-0111-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0111",
            "state": "Done",
            "event_id": "FLOW-TASK-0111-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0111",
            "state": "Done",
            "event_id": "FLOW-TASK-0111-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0111.yml",
            "item_id": "TASK-0111",
            "state": "Done",
            "event_id": "FLOW-TASK-0111-DONE-20260915"
          }
        ],
        "previous_hash": "856c04a7e150d0ef65cd1e5494580e3570d571d77f7861b7561d726608ab676d",
        "hash": "407428c2c14816eaabc9fd54e2b470533746c8d40d50baf3585db536535ec003"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0111-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0111",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0111",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0111-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0111.yml",
              "item_id": "TASK-0111",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0111-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "19618131d7f8c7d2b959132e72dde0dbcfdc57a9790ac21c18cbe95172817a65"
        },
        {
          "event_id": "FLOW-TASK-0111-IN-PROGRESS-20260906",
          "sequence": 2,
          "item_id": "TASK-0111",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-06T17:29:58Z",
          "conditions": [
            "Whole Wave 15 claim: TASK-0048, TASK-0061, TASK-0065, TASK-0077, TASK-0078, TASK-0083, and TASK-0111 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0111-propagate-confirmed-world-launch-configuration",
              "item_id": "TASK-0111",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0111-IN-PROGRESS-20260906"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/7f26eca79eadef3171564fc60035e9866c2c848e",
              "item_id": "TASK-0111",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0111-IN-PROGRESS-20260906"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0111.yml",
              "item_id": "TASK-0111",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0111-IN-PROGRESS-20260906"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0111-propagate-confirmed-world-launch-configuration",
          "claim_base_sha": "7f26eca79eadef3171564fc60035e9866c2c848e",
          "previous_hash": "19618131d7f8c7d2b959132e72dde0dbcfdc57a9790ac21c18cbe95172817a65",
          "hash": "a8cd00c3666ac819094e2a3dc9c94a8154092379ef638b1922814809ecb0158e"
        },
        {
          "event_id": "FLOW-TASK-0111-TO-BE-RELEASED-20260907",
          "sequence": 3,
          "item_id": "TASK-0111",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T07:39:15Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/95",
              "item_id": "TASK-0111",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0111-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/49e4252750fb4ca4d6c3ece2a465d2cdaf6d1911",
              "item_id": "TASK-0111",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0111-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/f824eec94b86e942f5990217663a0acb433193db",
              "item_id": "TASK-0111",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0111-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3953",
              "item_id": "TASK-0111",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0111-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3954",
              "item_id": "TASK-0111",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0111-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/3955",
              "item_id": "TASK-0111",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0111-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0111.yml",
              "item_id": "TASK-0111",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0111-TO-BE-RELEASED-20260907"
            }
          ],
          "previous_hash": "a8cd00c3666ac819094e2a3dc9c94a8154092379ef638b1922814809ecb0158e",
          "hash": "856c04a7e150d0ef65cd1e5494580e3570d571d77f7861b7561d726608ab676d"
        },
        {
          "event_id": "FLOW-TASK-0111-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0111",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0111",
              "state": "Done",
              "event_id": "FLOW-TASK-0111-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0111",
              "state": "Done",
              "event_id": "FLOW-TASK-0111-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0111",
              "state": "Done",
              "event_id": "FLOW-TASK-0111-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0111.yml",
              "item_id": "TASK-0111",
              "state": "Done",
              "event_id": "FLOW-TASK-0111-DONE-20260915"
            }
          ],
          "previous_hash": "856c04a7e150d0ef65cd1e5494580e3570d571d77f7861b7561d726608ab676d",
          "hash": "407428c2c14816eaabc9fd54e2b470533746c8d40d50baf3585db536535ec003"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0112",
      "display_id": "AEROSIM-TS-112",
      "title": "Load the confirmed terrain configuration for the session",
      "feature_id": "AEROSIM-FT-6",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-6/aerosim-ts-112/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0112.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — R3F flight scene and deterministic flight runtime",
      "outcome": "The new flight session renders and collides against the world identified by the immutable launch configuration.",
      "scope": "Resolve the launch world snapshot to one terrain asset and physics profile; load both under the reserved session initialization context; verify their identifiers and catalogueVersion; activate the R3F terrain and Rapier collision world as one transaction; and expose SessionWorldState only after both are ready.",
      "implementation_artifacts": [
        "applications/web/src/flight/world/initialize-session-world.ts",
        "applications/web/src/flight/world/session-world-state.ts",
        "applications/web/test/flight/initialize-session-world.spec.ts"
      ],
      "inputs": [
        "An immutable launch world snapshot and loaders for its terrain asset and physics profile.",
        "A reserved session initialization context that is not yet active."
      ],
      "outputs": [
        "SessionWorldState with the applied identifiers, catalogueVersion, and ready state.",
        "One active render terrain and one matching collision world bound to the session."
      ],
      "failure_boundaries": [
        "Unresolved identifier, asset-load error, physics-profile error, identifier mismatch, or cancellation tears down all partial world resources and leaves the session inactive.",
        "A repeated initialization command for the same context returns the existing result and does not create duplicate terrain or collision objects."
      ],
      "exclusions": [
        "No fallback terrain is selected and no failed load is retried automatically.",
        "World authoring and in-flight environmental changes are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/initialize-session-world.spec.ts and assert render and collision identifiers equal the launch snapshot.",
        "Fail each load stage and cancel between stages; assert resources are disposed and no SessionWorldState is ready.",
        "Repeat the same initialization command and assert exactly one render terrain and collision world exist."
      ],
      "dependencies": [
        "TASK-0111"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0011",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #101 reviewed head 5eb16ee352dff502a27ade311295082dbd16b05d passed exact-head required jobs 3048, 3049, 3050, 3052, 3053, 3054, and 3055, merged as 90bed03f05b6dc32214e26a39f9a8c2f22201b33, and exact integration/publication tasks 3056, 3057, 3058, and 3060 succeeded. The reviewed implementation loads and validates the immutable launch world configuration, atomically activates matching R3F terrain and Rapier collision resources, exposes readiness only after both succeed, rejects stale or mismatched provenance, tears down partial resources, and preserves one idempotent result per reserved context. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0112",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0112-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0112",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0112",
            "state": "Done",
            "event_id": "FLOW-TASK-0112-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0112",
            "state": "Done",
            "event_id": "FLOW-TASK-0112-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0112",
            "state": "Done",
            "event_id": "FLOW-TASK-0112-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0112.yml",
            "item_id": "TASK-0112",
            "state": "Done",
            "event_id": "FLOW-TASK-0112-DONE-20260915"
          }
        ],
        "previous_hash": "6a2e3b6cdcca7ebf73a592e707cdddfc71a6c64792e9dc6eb0b93d328530036f",
        "hash": "7367b036ab8267918dfa0303ad884f0c2b615bccfe776adab2c9ab7f0e694180"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0112-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0112",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0112",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0112-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0112.yml",
              "item_id": "TASK-0112",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0112-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "d6a6ade86d6f1bf1f1493f924d9b41b54718501d6ad849a16b2ff1bcd0c43826"
        },
        {
          "event_id": "FLOW-TASK-0112-IN-PROGRESS-20260907",
          "sequence": 2,
          "item_id": "TASK-0112",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T08:12:53Z",
          "conditions": [
            "Whole Wave 16 claim: TASK-0049, TASK-0062, TASK-0066, TASK-0079, TASK-0084, and TASK-0112 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0112-load-confirmed-terrain-configuration-session",
              "item_id": "TASK-0112",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0112-IN-PROGRESS-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/d624ce2960b43a4edd7babf7b668c117625e8559",
              "item_id": "TASK-0112",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0112-IN-PROGRESS-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0112.yml",
              "item_id": "TASK-0112",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0112-IN-PROGRESS-20260907"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0112-load-confirmed-terrain-configuration-session",
          "claim_base_sha": "d624ce2960b43a4edd7babf7b668c117625e8559",
          "previous_hash": "d6a6ade86d6f1bf1f1493f924d9b41b54718501d6ad849a16b2ff1bcd0c43826",
          "hash": "43f86cd49d63fcb5f0e59f414d4acb64b7aa2662d7401944f4e1f16e93653b72"
        },
        {
          "event_id": "FLOW-TASK-0112-TO-BE-RELEASED-20260907",
          "sequence": 3,
          "item_id": "TASK-0112",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-07T23:00:36Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/101",
              "item_id": "TASK-0112",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0112-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5eb16ee352dff502a27ade311295082dbd16b05d",
              "item_id": "TASK-0112",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0112-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/90bed03f05b6dc32214e26a39f9a8c2f22201b33",
              "item_id": "TASK-0112",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0112-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4067",
              "item_id": "TASK-0112",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0112-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4068",
              "item_id": "TASK-0112",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0112-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4069",
              "item_id": "TASK-0112",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0112-TO-BE-RELEASED-20260907"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0112.yml",
              "item_id": "TASK-0112",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0112-TO-BE-RELEASED-20260907"
            }
          ],
          "previous_hash": "43f86cd49d63fcb5f0e59f414d4acb64b7aa2662d7401944f4e1f16e93653b72",
          "hash": "6a2e3b6cdcca7ebf73a592e707cdddfc71a6c64792e9dc6eb0b93d328530036f"
        },
        {
          "event_id": "FLOW-TASK-0112-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0112",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0112",
              "state": "Done",
              "event_id": "FLOW-TASK-0112-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0112",
              "state": "Done",
              "event_id": "FLOW-TASK-0112-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0112",
              "state": "Done",
              "event_id": "FLOW-TASK-0112-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0112.yml",
              "item_id": "TASK-0112",
              "state": "Done",
              "event_id": "FLOW-TASK-0112-DONE-20260915"
            }
          ],
          "previous_hash": "6a2e3b6cdcca7ebf73a592e707cdddfc71a6c64792e9dc6eb0b93d328530036f",
          "hash": "7367b036ab8267918dfa0303ad884f0c2b615bccfe776adab2c9ab7f0e694180"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0113",
      "display_id": "AEROSIM-TS-113",
      "title": "Verify world-selection performance, resource, and browser compatibility",
      "feature_id": "AEROSIM-FT-6",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-6/aerosim-ts-113/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0113.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Pre-flight and flight integration test suites",
      "outcome": "World listing, confirmation, and launch pass the declared timing, browser-resource, namespace-resource, and compatibility checks.",
      "scope": "Measure world catalogue render time, world initialization time, peak browser memory, post-disposal memory, deployed namespace CPU and memory, and result for every declared browser/input pair using fixed representative smallest and largest supported world fixtures; compare recorded measurements with the explicit Architecture-owned budgets.",
      "implementation_artifacts": [
        "applications/web/test/quality/world-selection-quality.spec.ts",
        "applications/web/test/quality/fixtures/world-quality-matrix.ts",
        "applications/web/test/quality/results/world-quality-result.schema.json"
      ],
      "inputs": [
        "Explicit performance and resource budgets, the declared browser/input matrix, and fixed world fixtures.",
        "Captured timing, memory, CPU, and compatibility observations for an exact candidate revision."
      ],
      "outputs": [
        "A machine-readable result per world and matrix row with measured values, budget, pass/fail, environment, and candidate revision."
      ],
      "failure_boundaries": [
        "A missing budget, skipped declared row, unavailable fixture, non-finite measurement, exceeded budget, browser error, or resource leak marks the affected row failed; no aggregate pass is emitted when any required row fails."
      ],
      "exclusions": [
        "This task reports measurements and does not relax or invent missing Architecture budgets.",
        "Undeclared browsers, devices, and worlds are not certified."
      ],
      "verification_steps": [
        "Run applications/web/test/quality/world-selection-quality.spec.ts against every declared matrix row and both fixed world fixtures.",
        "Validate each result against applications/web/test/quality/results/world-quality-result.schema.json and assert all required measurements are finite.",
        "Force one exceeded budget, skipped row, and disposal leak; assert each prevents an aggregate pass."
      ],
      "dependencies": [
        "TASK-0112"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "NFR-0001",
        "NFR-0005",
        "NFR-0006"
      ],
      "acceptance_evidence": "Verified delivery: application PR #117 reviewed head 5071c9979f8b761d5be39f22edb5e7d838916a9e passed exact-head jobs 3280 through 3288 and merged as c2975bdae37747f9138034cdcfda300dda3eef97. Integration jobs 3289 through 3292 succeeded. The retained 12-row Chromium, Firefox, and WebKit keyboard/pointer baseline at measurement revision bdef362b25cd7eee5a345c008f40bf20b4a89e72 covers canonical smallest/largest world workloads, records six finite metrics, derives each budget as the measured worst plus 20 percent, validates every row against the result schema, and fails closed for missing budgets, skipped or duplicate rows, unavailable fixtures, non-finite values, exceeded budgets, browser errors, revision mismatch, and retained disposed resources. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0113",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0113-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0113",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0113",
            "state": "Done",
            "event_id": "FLOW-TASK-0113-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0113",
            "state": "Done",
            "event_id": "FLOW-TASK-0113-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0113",
            "state": "Done",
            "event_id": "FLOW-TASK-0113-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0113.yml",
            "item_id": "TASK-0113",
            "state": "Done",
            "event_id": "FLOW-TASK-0113-DONE-20260915"
          }
        ],
        "previous_hash": "d24de05559fc81db89c8a841a7c6dcb66605c692f64e1a7e288a73be081e2907",
        "hash": "3fab3dd0a50f8438720189b4ee56dab32e1c50ad3fd3cf3224ee1821a13fc309"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0113-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0113",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0113",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0113-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0113.yml",
              "item_id": "TASK-0113",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0113-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "5ccb024492b31c6dd6a0c3eb9b6b4cfffe860ac7ab9c07ce62567e08af90fb3e"
        },
        {
          "event_id": "FLOW-TASK-0113-IN-PROGRESS-20260908",
          "sequence": 2,
          "item_id": "TASK-0113",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-08T10:58:19Z",
          "conditions": [
            "Whole Wave 17 claim: TASK-0050, TASK-0063, TASK-0067, TASK-0085, TASK-0098, and TASK-0113 remain one durable ownership unit."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0113-verify-world-selection-1",
              "item_id": "TASK-0113",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0113-IN-PROGRESS-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/117",
              "item_id": "TASK-0113",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0113-IN-PROGRESS-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/5f57f5b7059c47d7d2632748eeb687f3e9376a72",
              "item_id": "TASK-0113",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0113-IN-PROGRESS-20260908"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0113.yml",
              "item_id": "TASK-0113",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0113-IN-PROGRESS-20260908"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0113-verify-world-selection-1",
          "claim_base_sha": "5f57f5b7059c47d7d2632748eeb687f3e9376a72",
          "previous_hash": "5ccb024492b31c6dd6a0c3eb9b6b4cfffe860ac7ab9c07ce62567e08af90fb3e",
          "hash": "498bea8025482f448f558de6288da2a275294ed81d7dec4fb5907ceb0d86a93e"
        },
        {
          "event_id": "FLOW-TASK-0113-TO-BE-RELEASED-20260908",
          "sequence": 3,
          "item_id": "TASK-0113",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-08T23:12:43Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/117",
              "item_id": "TASK-0113",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0113-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/c2975bdae37747f9138034cdcfda300dda3eef97",
              "item_id": "TASK-0113",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0113-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4138",
              "item_id": "TASK-0113",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0113-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4139",
              "item_id": "TASK-0113",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0113-TO-BE-RELEASED-20260908"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0113.yml",
              "item_id": "TASK-0113",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0113-TO-BE-RELEASED-20260908"
            }
          ],
          "previous_hash": "498bea8025482f448f558de6288da2a275294ed81d7dec4fb5907ceb0d86a93e",
          "hash": "d24de05559fc81db89c8a841a7c6dcb66605c692f64e1a7e288a73be081e2907"
        },
        {
          "event_id": "FLOW-TASK-0113-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0113",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0113",
              "state": "Done",
              "event_id": "FLOW-TASK-0113-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0113",
              "state": "Done",
              "event_id": "FLOW-TASK-0113-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0113",
              "state": "Done",
              "event_id": "FLOW-TASK-0113-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0113.yml",
              "item_id": "TASK-0113",
              "state": "Done",
              "event_id": "FLOW-TASK-0113-DONE-20260915"
            }
          ],
          "previous_hash": "d24de05559fc81db89c8a841a7c6dcb66605c692f64e1a7e288a73be081e2907",
          "hash": "3fab3dd0a50f8438720189b4ee56dab32e1c50ad3fd3cf3224ee1821a13fc309"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0114",
      "display_id": "AEROSIM-TS-114",
      "title": "Encode the confirmed aircraft and parameters in the launch configuration",
      "feature_id": "AEROSIM-FT-7",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-7/aerosim-ts-114/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0114.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Pre-flight configurator to Flight shell boundary",
      "outcome": "The immutable launch configuration contains exactly the confirmed aircraft model identifier and governed flight parameters.",
      "scope": "Resolve the confirmed AircraftSnapshot to its current model asset and flight parameter set; validate required parameter names, finite numeric values, declared ranges, units, and parameterVersion; then freeze the exact model and coefficients into FlightLaunchConfiguration with sourceRevision.",
      "implementation_artifacts": [
        "applications/web/src/session/launch/aircraft-launch-configuration.ts",
        "applications/web/src/aircraft/validate-flight-parameters.ts",
        "applications/web/test/session/aircraft-launch-configuration.spec.ts"
      ],
      "inputs": [
        "A confirmed AircraftSnapshot, current catalogue entry, and referenced typed flight parameter set.",
        "The complete pre-flight sourceRevision."
      ],
      "outputs": [
        "An immutable launch aircraft snapshot containing aircraftId, modelAssetId, parameter set identity/version, normalized coefficients, units, and sourceRevision."
      ],
      "failure_boundaries": [
        "Missing identifier, stale version, model mapping mismatch, missing coefficient, non-finite value, wrong unit, or out-of-range coefficient returns invalid_aircraft_configuration and emits no launch configuration.",
        "Later catalogue or form changes cannot mutate an issued snapshot."
      ],
      "exclusions": [
        "The task validates and freezes configuration but does not load the render model or start simulation.",
        "It never substitutes default coefficients or a different aircraft."
      ],
      "verification_steps": [
        "Run applications/web/test/session/aircraft-launch-configuration.spec.ts and deep-compare the confirmed entry with the frozen model and parameter identities.",
        "Inject every parameter validation failure and assert no launch configuration is emitted.",
        "Change the catalogue and selection after issue; assert the existing launch snapshot remains unchanged and stale new launch is rejected."
      ],
      "dependencies": [
        "TASK-0008"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0013",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #16 reviewed head 2fb202e70c042a37f6cdf6e9d95fa83aabe0ca4d, exact-head validation task 1758 succeeded, merged as efbf3967548f1cbf5e06f97fa9d659535e35a7b4; integrated Gitea Actions publish task 1760 and validate task 1761 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0114",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0114-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0114",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0114",
            "state": "Done",
            "event_id": "FLOW-TASK-0114-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0114",
            "state": "Done",
            "event_id": "FLOW-TASK-0114-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0114",
            "state": "Done",
            "event_id": "FLOW-TASK-0114-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0114.yml",
            "item_id": "TASK-0114",
            "state": "Done",
            "event_id": "FLOW-TASK-0114-DONE-20260915"
          }
        ],
        "previous_hash": "6fd09a5b0e4c66b2fd369edbbebc906e4eb4f78589ede5b15e1352350098d9c8",
        "hash": "51cc04ab585caa2e36a9be62446d8ce27b868e05417f30357e904ed28fe4f880"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0114-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0114",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0114",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0114-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0114.yml",
              "item_id": "TASK-0114",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0114-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "ff91bef4f60a8901c50cfc8519ecf75507c1d9f3f3d24690273a11eec5c267d9"
        },
        {
          "event_id": "FLOW-TASK-0114-IN-PROGRESS-20260903",
          "sequence": 2,
          "item_id": "TASK-0114",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T19:37:26Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0114-aircraft-launch-configuration",
              "item_id": "TASK-0114",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0114-IN-PROGRESS-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0114.yml",
              "item_id": "TASK-0114",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0114-IN-PROGRESS-20260903"
            }
          ],
          "previous_hash": "ff91bef4f60a8901c50cfc8519ecf75507c1d9f3f3d24690273a11eec5c267d9",
          "hash": "327224e3783aafb449e959b31df8adf14fc3cbb8b40d6897b52f3d6f25a1a384"
        },
        {
          "event_id": "FLOW-TASK-0114-TO-BE-RELEASED-20260903",
          "sequence": 3,
          "item_id": "TASK-0114",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T20:13:20Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/16",
              "item_id": "TASK-0114",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0114-TO-BE-RELEASED-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0114.yml",
              "item_id": "TASK-0114",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0114-TO-BE-RELEASED-20260903"
            }
          ],
          "previous_hash": "327224e3783aafb449e959b31df8adf14fc3cbb8b40d6897b52f3d6f25a1a384",
          "hash": "6fd09a5b0e4c66b2fd369edbbebc906e4eb4f78589ede5b15e1352350098d9c8"
        },
        {
          "event_id": "FLOW-TASK-0114-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0114",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0114",
              "state": "Done",
              "event_id": "FLOW-TASK-0114-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0114",
              "state": "Done",
              "event_id": "FLOW-TASK-0114-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0114",
              "state": "Done",
              "event_id": "FLOW-TASK-0114-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0114.yml",
              "item_id": "TASK-0114",
              "state": "Done",
              "event_id": "FLOW-TASK-0114-DONE-20260915"
            }
          ],
          "previous_hash": "6fd09a5b0e4c66b2fd369edbbebc906e4eb4f78589ede5b15e1352350098d9c8",
          "hash": "51cc04ab585caa2e36a9be62446d8ce27b868e05417f30357e904ed28fe4f880"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0115",
      "display_id": "AEROSIM-TS-115",
      "title": "Instantiate the confirmed aircraft model and flight parameters",
      "feature_id": "AEROSIM-FT-7",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-7/aerosim-ts-115/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0115.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Deterministic flight runtime and R3F flight scene",
      "outcome": "The launched session uses the confirmed visual aircraft model and the corresponding deterministic flight parameters.",
      "scope": "Load the exact modelAssetId, construct one aircraft entity, initialize the shared flight core with the frozen coefficient set and units, verify aircraft and parameter versions, and publish SessionAircraftState before simulation stepping begins; dispose all partial resources on failure.",
      "implementation_artifacts": [
        "applications/web/src/flight/aircraft/initialize-session-aircraft.ts",
        "packages/flight-core/src/aircraft/apply-flight-parameters.ts",
        "applications/web/test/flight/initialize-session-aircraft.spec.ts"
      ],
      "inputs": [
        "An immutable launch aircraft snapshot and loaders for its model asset and flight-core definition.",
        "A reserved session initialization context before simulation step zero."
      ],
      "outputs": [
        "One rendered aircraft entity and one flight-core aircraft state using the exact frozen coefficients.",
        "SessionAircraftState with applied model and parameter identities, versions, and ready state."
      ],
      "failure_boundaries": [
        "Model-load error, parameter-set lookup error, identity/version mismatch, coefficient rejection, or cancellation disposes the entity and core state and leaves simulation stopped.",
        "Repeated initialization for one context returns its existing result and cannot duplicate the aircraft entity."
      ],
      "exclusions": [
        "No fallback aircraft, default coefficient set, or automatic load retry is allowed.",
        "In-flight aircraft switching and aircraft customization are excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/flight/initialize-session-aircraft.spec.ts and compare every applied identity, version, coefficient, and unit with the launch snapshot.",
        "Fail and cancel each initialization stage; assert no entity, core state, or active simulation remains.",
        "Repeat initialization for the same context and assert exactly one aircraft entity and flight-core state exist."
      ],
      "dependencies": [
        "TASK-0114"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0013",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #18 reviewed head d184ce0bf88af333f210c88b4e02ff7a267cb898, exact-head validation task 1775 succeeded, merged as 5e266e36b1bcafc60a38a6dcb60333be79d46a6c; integrated Gitea Actions publish task 1778 and validate task 1779 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0115",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0115-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0115",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0115",
            "state": "Done",
            "event_id": "FLOW-TASK-0115-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0115",
            "state": "Done",
            "event_id": "FLOW-TASK-0115-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0115",
            "state": "Done",
            "event_id": "FLOW-TASK-0115-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0115.yml",
            "item_id": "TASK-0115",
            "state": "Done",
            "event_id": "FLOW-TASK-0115-DONE-20260915"
          }
        ],
        "previous_hash": "294a45277ad2d8e58e0055b20a55081ad8f19a42684782991261a78923adeaf9",
        "hash": "9dcf1a95a871a9a06aa9c647128aa158501e8a1d8044ba06de8a5aabbc3b3b75"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0115-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0115",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0115",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0115-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0115.yml",
              "item_id": "TASK-0115",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0115-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "6c37ebb7b0f0ca19a06f180dbe24813f624700f63e13906f627674dd1a7e3b50"
        },
        {
          "event_id": "FLOW-TASK-0115-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0115",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T19:37:26Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0115-launch-session",
              "item_id": "TASK-0115",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0115-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0115.yml",
              "item_id": "TASK-0115",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0115-IN-PROGRESS-20260904"
            }
          ],
          "previous_hash": "6c37ebb7b0f0ca19a06f180dbe24813f624700f63e13906f627674dd1a7e3b50",
          "hash": "921d3a01dc8ed5520a4ee3857990f13877a7e0b9eccf57301e3a7ac2f189c85d"
        },
        {
          "event_id": "FLOW-TASK-0115-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0115",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-03T21:40:44Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/18",
              "item_id": "TASK-0115",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0115-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0115.yml",
              "item_id": "TASK-0115",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0115-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "921d3a01dc8ed5520a4ee3857990f13877a7e0b9eccf57301e3a7ac2f189c85d",
          "hash": "294a45277ad2d8e58e0055b20a55081ad8f19a42684782991261a78923adeaf9"
        },
        {
          "event_id": "FLOW-TASK-0115-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0115",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0115",
              "state": "Done",
              "event_id": "FLOW-TASK-0115-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0115",
              "state": "Done",
              "event_id": "FLOW-TASK-0115-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0115",
              "state": "Done",
              "event_id": "FLOW-TASK-0115-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0115.yml",
              "item_id": "TASK-0115",
              "state": "Done",
              "event_id": "FLOW-TASK-0115-DONE-20260915"
            }
          ],
          "previous_hash": "294a45277ad2d8e58e0055b20a55081ad8f19a42684782991261a78923adeaf9",
          "hash": "9dcf1a95a871a9a06aa9c647128aa158501e8a1d8044ba06de8a5aabbc3b3b75"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0116",
      "display_id": "AEROSIM-TS-116",
      "title": "Verify aircraft-selection performance, resource, and browser compatibility",
      "feature_id": "AEROSIM-FT-7",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-7/aerosim-ts-116/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0116.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Pre-flight and flight integration test suites",
      "outcome": "Aircraft listing, confirmation, and launch pass the declared timing, browser-resource, namespace-resource, and compatibility checks.",
      "scope": "Measure catalogue render time, aircraft model initialization time, peak and post-disposal browser memory, deployed namespace CPU and memory, and result for every declared browser/input pair using fixed representative lightest and heaviest supported aircraft fixtures; compare measurements with explicit Architecture-owned budgets.",
      "implementation_artifacts": [
        "applications/web/test/quality/aircraft-selection-quality.spec.ts",
        "applications/web/test/quality/fixtures/aircraft-quality-matrix.ts",
        "applications/web/test/quality/results/aircraft-quality-result.schema.json"
      ],
      "inputs": [
        "Explicit performance and resource budgets, declared browser/input matrix, and fixed aircraft fixtures.",
        "Captured timing, memory, CPU, and compatibility observations for an exact candidate revision."
      ],
      "outputs": [
        "A machine-readable result per aircraft and matrix row with measurement, budget, pass/fail, environment, and candidate revision."
      ],
      "failure_boundaries": [
        "Missing budget, skipped matrix row, unavailable fixture, non-finite measurement, exceeded budget, browser error, or retained disposed resources marks that row failed and prevents aggregate pass."
      ],
      "exclusions": [
        "This task does not set or weaken Architecture budgets.",
        "Undeclared aircraft, browsers, and input devices are not certified."
      ],
      "verification_steps": [
        "Run applications/web/test/quality/aircraft-selection-quality.spec.ts for every declared matrix row and both fixed aircraft fixtures.",
        "Validate every result with applications/web/test/quality/results/aircraft-quality-result.schema.json and assert finite measurements.",
        "Inject an exceeded budget, skipped row, and retained-resource case; assert each prevents aggregate pass."
      ],
      "dependencies": [
        "TASK-0115"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "NFR-0001",
        "NFR-0005",
        "NFR-0006"
      ],
      "acceptance_evidence": "Verified delivery: application PR #25 reviewed head 3741c52b8f8ac8b9203bf128a9165aa86d031f5f, exact-head validation task 1815 succeeded, merged as c6948725f846d60f749cafbdcf211acd0f2bd600; Wave 4 integrated application head e8bfe781d3295d445cbc46b297874f066cac8301 passed publish task 1832 and validate task 1833. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0116",
        "state": "InBacklog",
        "decision_date": "2026-09-02T11:58:17Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544672770057834568"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0116-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0116",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0116",
            "state": "Done",
            "event_id": "FLOW-TASK-0116-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0116",
            "state": "Done",
            "event_id": "FLOW-TASK-0116-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0116",
            "state": "Done",
            "event_id": "FLOW-TASK-0116-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0116.yml",
            "item_id": "TASK-0116",
            "state": "Done",
            "event_id": "FLOW-TASK-0116-DONE-20260915"
          }
        ],
        "previous_hash": "6c873ee82804d07db5ce8aba3d78f3eae01d9baf5d2cb77a962e7add945ec3e1",
        "hash": "8dffce8f790b06fb0883d40a2e66a38153f36d6ca9f2b58e84ce4bd61c71a094"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0116-READY-20260903",
          "sequence": 1,
          "item_id": "TASK-0116",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-03T09:15:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1544998288506224681",
              "item_id": "TASK-0116",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0116-READY-20260903"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0116.yml",
              "item_id": "TASK-0116",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0116-READY-20260903"
            }
          ],
          "previous_hash": null,
          "hash": "ad46f9f192c3cf1286e47aee3063a8d65de2b89be937d51aeae4e7a2d2504535"
        },
        {
          "event_id": "FLOW-TASK-0116-IN-PROGRESS-20260904",
          "sequence": 2,
          "item_id": "TASK-0116",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T04:37:32Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/feat/task-0116-aircraft-quality-matrix",
              "item_id": "TASK-0116",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0116-IN-PROGRESS-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/98e377b71d37e5606af0e35d7bb08ccf83e63e0b",
              "item_id": "TASK-0116",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0116-IN-PROGRESS-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0116.yml",
              "item_id": "TASK-0116",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0116-IN-PROGRESS-20260904"
            }
          ],
          "previous_hash": "ad46f9f192c3cf1286e47aee3063a8d65de2b89be937d51aeae4e7a2d2504535",
          "hash": "0681c2c64dc1de3abe918eb33f9cebe94925bd0b31cbcbaa83dd8bc099619dfd",
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "feat/task-0116-aircraft-quality-matrix",
          "claim_base_sha": "98e377b71d37e5606af0e35d7bb08ccf83e63e0b"
        },
        {
          "event_id": "FLOW-TASK-0116-TO-BE-RELEASED-20260904",
          "sequence": 3,
          "item_id": "TASK-0116",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-04T11:52:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/25",
              "item_id": "TASK-0116",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0116-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/c6948725f846d60f749cafbdcf211acd0f2bd600",
              "item_id": "TASK-0116",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0116-TO-BE-RELEASED-20260904"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0116.yml",
              "item_id": "TASK-0116",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0116-TO-BE-RELEASED-20260904"
            }
          ],
          "previous_hash": "0681c2c64dc1de3abe918eb33f9cebe94925bd0b31cbcbaa83dd8bc099619dfd",
          "hash": "6c873ee82804d07db5ce8aba3d78f3eae01d9baf5d2cb77a962e7add945ec3e1"
        },
        {
          "event_id": "FLOW-TASK-0116-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0116",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0116",
              "state": "Done",
              "event_id": "FLOW-TASK-0116-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0116",
              "state": "Done",
              "event_id": "FLOW-TASK-0116-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0116",
              "state": "Done",
              "event_id": "FLOW-TASK-0116-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0116.yml",
              "item_id": "TASK-0116",
              "state": "Done",
              "event_id": "FLOW-TASK-0116-DONE-20260915"
            }
          ],
          "previous_hash": "6c873ee82804d07db5ce8aba3d78f3eae01d9baf5d2cb77a962e7add945ec3e1",
          "hash": "8dffce8f790b06fb0883d40a2e66a38153f36d6ca9f2b58e84ce4bd61c71a094"
        }
      ],
      "design_traceability": {
        "kind": "non_visual",
        "rationale": "This Task owns technical or behavioral acceptance and does not claim direct visual conformance to the approved UI/UX package.",
        "acceptance": [
          "Verify only the canonical Task acceptance evidence; do not infer UI/UX conformance from this classification."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0117",
      "display_id": "AEROSIM-TS-117",
      "title": "Bind the approved Penpot journey to the Release 1.0.0 frontend contract",
      "feature_id": "AEROSIM-FT-41",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-41/aerosim-ts-117/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0117.yml",
      "owner": "AeroSim UI/UX, Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — release design contract and verification",
      "outcome": "Delivery workers can resolve one immutable Penpot baseline and deterministic design references before changing the application.",
      "scope": "Create the release design-contract fixture and retrieval adapter that bind Penpot file, page, revision 6569, active frame identities, shared tokens, viewport fixtures, and approved-deviation records to the web workspace.",
      "implementation_artifacts": [
        "applications/web/src/design/release-1.0.0-design-contract.ts",
        "applications/web/test/design/release-design-contract.spec.ts"
      ],
      "inputs": [
        "Approved Penpot file fb1055b2-4705-80bf-8008-8b539372c9fb, page a271b8ee-e720-474e-9af4-e9e50efd3375, revision 6569.",
        "The canonical design-package record and immutable active-frame inventory."
      ],
      "outputs": [
        "A typed ReleaseDesignContractV1 consumed by feature-level conformance tests.",
        "A deterministic resolver from UIUX-100 references to Penpot frame identities and viewport fixtures."
      ],
      "failure_boundaries": [
        "Reject an inaccessible, superseded, mismatched, or ambiguous Penpot baseline before implementation starts.",
        "Fail when a referenced frame, state, token, or viewport fixture is absent or duplicated."
      ],
      "exclusions": [
        "This Task does not implement product screens or change the Penpot source.",
        "The Release 2.0.0 overview frame is retained as evidence but excluded from Release 1.0.0 implementation scope."
      ],
      "verification_steps": [
        "Run applications/web/test/design/release-design-contract.spec.ts.",
        "Resolve every declared UIUX-100 reference against revision 6569 and reject a mutated file, page, revision, frame ID, or duplicate reference."
      ],
      "dependencies": [
        "TASK-0013"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0048",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #148 reviewed head 012ee593052cd178c222e6794a7f324c203fd4a7 merged as 222ccc0d75cae831ab848dd58e9a47566092d3f3; focused design-contract tests passed 18/18 and affected web tests passed 1229/1229; exact-head CI run 4489, integration run 4491, and immutable image publication run 4490 passed for the exact integration revision with no approved deviations from Penpot revision 6569. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0117",
        "state": "InBacklog",
        "decision_date": "2026-09-10T22:52:33Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547740767974334526"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0117-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0117",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0117",
            "state": "Done",
            "event_id": "FLOW-TASK-0117-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0117",
            "state": "Done",
            "event_id": "FLOW-TASK-0117-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0117",
            "state": "Done",
            "event_id": "FLOW-TASK-0117-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0117.yml",
            "item_id": "TASK-0117",
            "state": "Done",
            "event_id": "FLOW-TASK-0117-DONE-20260915"
          }
        ],
        "previous_hash": "138d931f2aa2f33a9c304cdf8e70f91b215eba420f213bee04cc9557dc7f66a1",
        "hash": "fa7447e540b91d95391814a8670e94f4417a78aef087524929239a42922b1a20"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0117-READY-20260911",
          "sequence": 1,
          "item_id": "TASK-0117",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-11T05:20:01Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547838607207960628",
              "item_id": "TASK-0117",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0117-READY-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0117.yml",
              "item_id": "TASK-0117",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0117-READY-20260911"
            }
          ],
          "previous_hash": null,
          "hash": "d1d1c46189951aafb6cab9bf1f41f16f72fe17e4d2f6b450dacd990d2c3e2938"
        },
        {
          "event_id": "FLOW-TASK-0117-IN-PROGRESS-20260911",
          "sequence": 2,
          "item_id": "TASK-0117",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T06:07:10Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/148",
              "item_id": "TASK-0117",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0117-IN-PROGRESS-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0117.yml",
              "item_id": "TASK-0117",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0117-IN-PROGRESS-20260911"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0117-release-design-contract-1",
          "claim_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/148",
          "claim_head": "116683404c32db11a312507bd7210224b9c30007",
          "previous_hash": "d1d1c46189951aafb6cab9bf1f41f16f72fe17e4d2f6b450dacd990d2c3e2938",
          "hash": "a90a13e18b013572bc027e0c2deef187823eda42da1f2c8d694aeedc3b1ebaf7"
        },
        {
          "event_id": "FLOW-TASK-0117-TO-BE-RELEASED-20260911",
          "sequence": 3,
          "item_id": "TASK-0117",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T07:43:57Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/148",
              "item_id": "TASK-0117",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0117-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4490",
              "item_id": "TASK-0117",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0117-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0117.yml",
              "item_id": "TASK-0117",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0117-TO-BE-RELEASED-20260911"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/148",
          "reviewed_head": "012ee593052cd178c222e6794a7f324c203fd4a7",
          "integration_revision": "222ccc0d75cae831ab848dd58e9a47566092d3f3",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4491",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4490",
          "published_images": [
            "library/aerosim-web:222ccc0d75cae831ab848dd58e9a47566092d3f3",
            "library/aerosim-api:222ccc0d75cae831ab848dd58e9a47566092d3f3"
          ],
          "acceptance_evidence": [
            "18/18 focused design-contract tests",
            "1229/1229 affected web tests",
            "exact-head CI run 4489 passed",
            "integration run 4491 passed",
            "immutable publication run 4490 passed"
          ],
          "previous_hash": "a90a13e18b013572bc027e0c2deef187823eda42da1f2c8d694aeedc3b1ebaf7",
          "hash": "138d931f2aa2f33a9c304cdf8e70f91b215eba420f213bee04cc9557dc7f66a1"
        },
        {
          "event_id": "FLOW-TASK-0117-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0117",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0117",
              "state": "Done",
              "event_id": "FLOW-TASK-0117-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0117",
              "state": "Done",
              "event_id": "FLOW-TASK-0117-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0117",
              "state": "Done",
              "event_id": "FLOW-TASK-0117-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0117.yml",
              "item_id": "TASK-0117",
              "state": "Done",
              "event_id": "FLOW-TASK-0117-DONE-20260915"
            }
          ],
          "previous_hash": "138d931f2aa2f33a9c304cdf8e70f91b215eba420f213bee04cc9557dc7f66a1",
          "hash": "fa7447e540b91d95391814a8670e94f4417a78aef087524929239a42922b1a20"
        }
      ],
      "design_traceability": {
        "kind": "verification",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-BASELINE"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot baseline through the canonical design package before implementation.",
          "Compare rendered content, geometry, states, interactions, destinations, focus behavior, and required viewports with the referenced design evidence.",
          "Record screenshots and any explicitly approved deviation against the exact application commit and Penpot revision."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0118",
      "display_id": "AEROSIM-TS-118",
      "title": "Conform the Entry and SSO screen to the approved design",
      "feature_id": "AEROSIM-FT-30",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-30/aerosim-ts-118/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0118.yml",
      "owner": "AeroSim UI/UX, Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Release 1.0.0 user journey",
      "outcome": "The implemented Entry experience matches the approved orientation, copy, imagery, action placement, and SSO transition.",
      "scope": "Implement and compare the Entry route against UIUX-100-ENTRY at desktop reference viewport, including exact visible copy, image treatment, square control geometry, focus treatment, loading, rejection, and successful SSO navigation.",
      "implementation_artifacts": [
        "applications/web/src/auth/EntryScreen.tsx",
        "applications/web/test/design/entry-design-conformance.spec.tsx"
      ],
      "inputs": [
        "The ReleaseDesignContractV1 baseline from TASK-0117.",
        "Authenticated, loading, rejected, and successful SSO fixtures."
      ],
      "outputs": [
        "A design-conformant Entry screen and deterministic visual-state fixtures.",
        "Screenshot evidence for every declared Entry state and destination."
      ],
      "failure_boundaries": [
        "Fail on changed copy, geometry, image treatment, missing focus, dead action, or wrong destination.",
        "Fail closed when the approved Penpot baseline cannot be resolved."
      ],
      "exclusions": [
        "Identity-provider account-management pages remain outside AeroSim.",
        "This Task does not modify token validation or server authorization."
      ],
      "verification_steps": [
        "Run applications/web/test/design/entry-design-conformance.spec.tsx.",
        "Capture and compare Entry default, loading, rejected, and successful-transition states at the approved viewport."
      ],
      "dependencies": [
        "TASK-0056"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0037",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #154 reviewed head 5a77dec9280c276fabcf904297092c7733f643bb, merged as 267c1a5315de7fc43c2581c7abe3600e44280c8e; 8/8 focused Entry conformance tests and 1186/1186 affected web tests passed; default, focus, loading, rejection, and successful external SSO destination screenshots cover the approved 1600x900 journey against Penpot revision 6569; publication run 4572 and integration run 4573 succeeded using the certified browser base image. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0118",
        "state": "InBacklog",
        "decision_date": "2026-09-10T22:52:33Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547740767974334526"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0118-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0118",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0118",
            "state": "Done",
            "event_id": "FLOW-TASK-0118-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0118",
            "state": "Done",
            "event_id": "FLOW-TASK-0118-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0118",
            "state": "Done",
            "event_id": "FLOW-TASK-0118-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0118.yml",
            "item_id": "TASK-0118",
            "state": "Done",
            "event_id": "FLOW-TASK-0118-DONE-20260915"
          }
        ],
        "previous_hash": "d8e9020f1ba11bb837c860c0f1a27d5b84d115d7101e9a22eed24b48930dea0d",
        "hash": "bd2d538146f48c17024e58db5e007cc6eb4ef5884666f8e8269584a9940ca13c"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0118-READY-20260911",
          "sequence": 1,
          "item_id": "TASK-0118",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-11T05:54:31Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547847596452610119",
              "item_id": "TASK-0118",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0118-READY-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0118.yml",
              "item_id": "TASK-0118",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0118-READY-20260911"
            }
          ],
          "previous_hash": null,
          "hash": "404559bbad38bfaa93486d262cd24d5efec69bb418a5dfb598879705f8ce0dcd"
        },
        {
          "event_id": "FLOW-TASK-0118-IN-PROGRESS-20260911",
          "sequence": 2,
          "item_id": "TASK-0118",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T11:01:02Z",
          "conditions": [
            "Wave 25 is current; TASK-0056 is TO_BE_RELEASED."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0118-entry-design-conformance-1",
          "claim_base_sha": "8e245f7eae5a9e9ba59414d9f6f50c06668fdb2e",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/154",
              "item_id": "TASK-0118",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0118-IN-PROGRESS-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0118.yml",
              "item_id": "TASK-0118",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0118-IN-PROGRESS-20260911"
            }
          ],
          "previous_hash": "404559bbad38bfaa93486d262cd24d5efec69bb418a5dfb598879705f8ce0dcd",
          "hash": "44fd5512b5785bdac4405dda723a58c02e1a137bf361abfd5a7ff164b3fb2ccd"
        },
        {
          "event_id": "FLOW-TASK-0118-TO-BE-RELEASED-20260911",
          "sequence": 3,
          "item_id": "TASK-0118",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T19:58:55Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/154",
              "item_id": "TASK-0118",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0118-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4573",
              "item_id": "TASK-0118",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0118-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0118.yml",
              "item_id": "TASK-0118",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0118-TO-BE-RELEASED-20260911"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/154",
          "reviewed_head": "5a77dec9280c276fabcf904297092c7733f643bb",
          "integration_revision": "267c1a5315de7fc43c2581c7abe3600e44280c8e",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4573",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4572",
          "published_images": [
            "library/nebula:267c1a5315de7fc43c2581c7abe3600e44280c8e@sha256:c47ecd34d03782f3c4ee91d541ae33d8982677c2a49ab4f002f0ea341267d679",
            "library/singularity:267c1a5315de7fc43c2581c7abe3600e44280c8e@sha256:22e2733d405af5af3e4f76f229bf8eaf13d24a66c7606769178b77353162968f"
          ],
          "acceptance_evidence": [
            "8/8 focused Entry design-conformance tests",
            "1186/1186 affected web tests",
            "default, focus, loading, rejection, and successful external SSO destination screenshots at 1600x900",
            "exact-head PR CI run 4571 passed",
            "integration run 4573 passed using the certified browser base image",
            "immutable publication run 4572 passed with registry digest readback",
            "Penpot UIUX-100-ENTRY revision 6569 comparison passed with no unapproved deviation"
          ],
          "previous_hash": "44fd5512b5785bdac4405dda723a58c02e1a137bf361abfd5a7ff164b3fb2ccd",
          "hash": "d8e9020f1ba11bb837c860c0f1a27d5b84d115d7101e9a22eed24b48930dea0d"
        },
        {
          "event_id": "FLOW-TASK-0118-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0118",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0118",
              "state": "Done",
              "event_id": "FLOW-TASK-0118-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0118",
              "state": "Done",
              "event_id": "FLOW-TASK-0118-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0118",
              "state": "Done",
              "event_id": "FLOW-TASK-0118-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0118.yml",
              "item_id": "TASK-0118",
              "state": "Done",
              "event_id": "FLOW-TASK-0118-DONE-20260915"
            }
          ],
          "previous_hash": "d8e9020f1ba11bb837c860c0f1a27d5b84d115d7101e9a22eed24b48930dea0d",
          "hash": "bd2d538146f48c17024e58db5e007cc6eb4ef5884666f8e8269584a9940ca13c"
        }
      ],
      "design_traceability": {
        "kind": "direct_ui",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-ENTRY"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot baseline through the canonical design package before implementation.",
          "Compare rendered content, geometry, states, interactions, destinations, focus behavior, and required viewports with the referenced design evidence.",
          "Record screenshots and any explicitly approved deviation against the exact application commit and Penpot revision."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0119",
      "display_id": "AEROSIM-TS-119",
      "title": "Conform the Pilot Profile experience to the approved design",
      "feature_id": "AEROSIM-FT-31",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-31/aerosim-ts-119/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0119.yml",
      "owner": "AeroSim UI/UX, Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Release 1.0.0 user journey",
      "outcome": "The pilot sees the approved profile identity, progress summary, controls, and close behavior without visual or navigation drift.",
      "scope": "Implement the profile surface resolved by UIUX-100-PROFILE, preserving its hierarchy, values, spacing, square controls, overlay behavior, focus restoration, and Home return path.",
      "implementation_artifacts": [
        "applications/web/src/profile/PilotProfileOverlay.tsx",
        "applications/web/test/design/pilot-profile-design-conformance.spec.tsx"
      ],
      "inputs": [
        "The ReleaseDesignContractV1 baseline from TASK-0117.",
        "New, populated, loading, unavailable, and unauthorized pilot-profile fixtures."
      ],
      "outputs": [
        "A design-conformant profile surface with stable overlay and focus behavior.",
        "Rendered evidence for every profile state and action."
      ],
      "failure_boundaries": [
        "Fail on another pilot’s data, missing state feedback, clipped content, wrong close destination, or geometry drift.",
        "Fail when the profile overlay cannot resolve its approved design reference."
      ],
      "exclusions": [
        "Profile editing beyond approved Release 1.0.0 controls is excluded.",
        "Identity-provider profile administration is excluded."
      ],
      "verification_steps": [
        "Run applications/web/test/design/pilot-profile-design-conformance.spec.tsx.",
        "Compare the profile default, loading, unavailable, unauthorized, and close-return states with the approved reference."
      ],
      "dependencies": [
        "TASK-0060"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0038",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #152 reviewed head d81043561b02520e8c236cbde18aaee6edd2062a, merged as 3ab48494f52a116dd0f7b7b146a359e76803c35d; 8/8 focused conformance tests and 1172/1172 affected web tests passed; desktop and compact screenshots cover default, loading, unavailable, and unauthorized states against Penpot revision 6569; publication run 4552 and integration run 4553 attempt 2 succeeded. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0119",
        "state": "InBacklog",
        "decision_date": "2026-09-10T22:52:33Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547740767974334526"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0119-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0119",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0119",
            "state": "Done",
            "event_id": "FLOW-TASK-0119-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0119",
            "state": "Done",
            "event_id": "FLOW-TASK-0119-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0119",
            "state": "Done",
            "event_id": "FLOW-TASK-0119-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0119.yml",
            "item_id": "TASK-0119",
            "state": "Done",
            "event_id": "FLOW-TASK-0119-DONE-20260915"
          }
        ],
        "previous_hash": "ed58387a8357cdafcec028cb9d2031909d200f42b62a3c29fd29e5164d24f13e",
        "hash": "03c4707d23d8f48665b3f6c978be5d46f8c9bd22c7487b54d1132b7864c2e98f"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0119-READY-20260911",
          "sequence": 1,
          "item_id": "TASK-0119",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-11T05:54:31Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547847596452610119",
              "item_id": "TASK-0119",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0119-READY-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0119.yml",
              "item_id": "TASK-0119",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0119-READY-20260911"
            }
          ],
          "previous_hash": null,
          "hash": "3eeac711448e964164ed773aa1c78c004a955870d3f52ef834b78edcd865d425"
        },
        {
          "event_id": "FLOW-TASK-0119-IN-PROGRESS-20260911",
          "sequence": 2,
          "item_id": "TASK-0119",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T11:00:52Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/152",
              "item_id": "TASK-0119",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0119-IN-PROGRESS-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0119-pilot-profile-design-conformance-1",
              "item_id": "TASK-0119",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0119-IN-PROGRESS-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0119.yml",
              "item_id": "TASK-0119",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0119-IN-PROGRESS-20260911"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0119-pilot-profile-design-conformance-1",
          "claim_base_sha": "8e245f7eae5a9e9ba59414d9f6f50c06668fdb2e",
          "previous_hash": "3eeac711448e964164ed773aa1c78c004a955870d3f52ef834b78edcd865d425",
          "hash": "1d131e45e2af909a39c867cf3fcc6ba2bee3c98b51b86bfcd044cf7d9e4201bc"
        },
        {
          "event_id": "FLOW-TASK-0119-TO-BE-RELEASED-20260911",
          "sequence": 3,
          "item_id": "TASK-0119",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T13:27:28Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/152",
              "item_id": "TASK-0119",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0119-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4553",
              "item_id": "TASK-0119",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0119-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0119.yml",
              "item_id": "TASK-0119",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0119-TO-BE-RELEASED-20260911"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/152",
          "reviewed_head": "d81043561b02520e8c236cbde18aaee6edd2062a",
          "integration_revision": "3ab48494f52a116dd0f7b7b146a359e76803c35d",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4553",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4552",
          "published_images": [
            "library/nebula:3ab48494f52a116dd0f7b7b146a359e76803c35d@sha256:7fc38e90ebd37d871f75f18569307d170b69894826293f3e9310f662b1a5394a",
            "library/singularity:3ab48494f52a116dd0f7b7b146a359e76803c35d@sha256:5c7e0788c8353abbb48238a18e881c98fe1b85709a46f2a5fceecf4f4ecd4d7e"
          ],
          "acceptance_evidence": [
            "8/8 focused pilot-profile design-conformance tests",
            "1172/1172 affected web tests",
            "default, loading, unavailable, unauthorized, and compact rendered screenshots",
            "exact-head PR CI run 4545 passed",
            "integration run 4553 attempt 2 passed after an infrastructure-only runner image pull failure in attempt 1",
            "immutable publication run 4552 passed with registry digest readback"
          ],
          "previous_hash": "1d131e45e2af909a39c867cf3fcc6ba2bee3c98b51b86bfcd044cf7d9e4201bc",
          "hash": "ed58387a8357cdafcec028cb9d2031909d200f42b62a3c29fd29e5164d24f13e"
        },
        {
          "event_id": "FLOW-TASK-0119-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0119",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0119",
              "state": "Done",
              "event_id": "FLOW-TASK-0119-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0119",
              "state": "Done",
              "event_id": "FLOW-TASK-0119-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0119",
              "state": "Done",
              "event_id": "FLOW-TASK-0119-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0119.yml",
              "item_id": "TASK-0119",
              "state": "Done",
              "event_id": "FLOW-TASK-0119-DONE-20260915"
            }
          ],
          "previous_hash": "ed58387a8357cdafcec028cb9d2031909d200f42b62a3c29fd29e5164d24f13e",
          "hash": "03c4707d23d8f48665b3f6c978be5d46f8c9bd22c7487b54d1132b7864c2e98f"
        }
      ],
      "design_traceability": {
        "kind": "direct_ui",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-PROFILE"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot baseline through the canonical design package before implementation.",
          "Compare rendered content, geometry, states, interactions, destinations, focus behavior, and required viewports with the referenced design evidence.",
          "Record screenshots and any explicitly approved deviation against the exact application commit and Penpot revision."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0120",
      "display_id": "AEROSIM-TS-120",
      "title": "Conform Preferences and Settings to the approved design",
      "feature_id": "AEROSIM-FT-32",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-32/aerosim-ts-120/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0120.yml",
      "owner": "AeroSim UI/UX, Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Release 1.0.0 user journey",
      "outcome": "Supported settings render, validate, save, recover, and return exactly through the approved Settings experience.",
      "scope": "Implement the Settings surface resolved by UIUX-100-SETTINGS, including declared controls, current values, validation messages, save progress, failure recovery, square geometry, keyboard order, and Home return.",
      "implementation_artifacts": [
        "applications/web/src/settings/SettingsOverlay.tsx",
        "applications/web/test/design/settings-design-conformance.spec.tsx"
      ],
      "inputs": [
        "The ReleaseDesignContractV1 baseline from TASK-0117.",
        "Valid, invalid, saving, saved, and persistence-failure preference fixtures."
      ],
      "outputs": [
        "A design-conformant Settings surface bound to the supported preference allowlist.",
        "Deterministic visual and interaction evidence for save and recovery states."
      ],
      "failure_boundaries": [
        "Fail on unsupported controls, stale values, silent save failure, wrong return path, or visual drift.",
        "Keep the prior valid preference visible when persistence fails."
      ],
      "exclusions": [
        "Arbitrary preference keys and account administration remain excluded.",
        "This Task does not introduce new preference persistence contracts."
      ],
      "verification_steps": [
        "Run applications/web/test/design/settings-design-conformance.spec.tsx.",
        "Compare valid, invalid, saving, saved, failure, and close-return states against the approved reference."
      ],
      "dependencies": [
        "TASK-0064"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0039",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #153 reviewed head 303efb7c2af07a3b5488b0f99c31f471f0587b49, merged as a4b2c5ee582baa17616463f2f26986155df7537b; 5/5 focused Settings conformance tests and 1250/1250 affected web tests passed; valid desktop/responsive, invalid, saving, saved, and persistence-failure screenshot and interaction evidence covers UIUX-100-SETTINGS at Penpot revision 6569; exact-head PR CI run 4543, integration run 4612, and immutable image publication with registry digest readback run 4611 attempt 2 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0120",
        "state": "InBacklog",
        "decision_date": "2026-09-10T22:52:33Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547740767974334526"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0120-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0120",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0120",
            "state": "Done",
            "event_id": "FLOW-TASK-0120-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0120",
            "state": "Done",
            "event_id": "FLOW-TASK-0120-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0120",
            "state": "Done",
            "event_id": "FLOW-TASK-0120-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0120.yml",
            "item_id": "TASK-0120",
            "state": "Done",
            "event_id": "FLOW-TASK-0120-DONE-20260915"
          }
        ],
        "previous_hash": "03925c3b6f12074f9c2cec78b0f8738e5e3c642976af029838c0320482cf768c",
        "hash": "2f9430c3692247ee081410431e8e0805ae8f2b3fc9940704f4c2f1335b78cacc"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0120-READY-20260911",
          "sequence": 1,
          "item_id": "TASK-0120",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-11T05:54:31Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547847596452610119",
              "item_id": "TASK-0120",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0120-READY-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0120.yml",
              "item_id": "TASK-0120",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0120-READY-20260911"
            }
          ],
          "previous_hash": null,
          "hash": "daf355da502f2e43c0eb40d2ba4ad8d183fed3ee4baf5a7700c9dd77ec559294"
        },
        {
          "event_id": "FLOW-TASK-0120-IN-PROGRESS-20260911",
          "sequence": 2,
          "item_id": "TASK-0120",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T11:01:46Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/153",
              "item_id": "TASK-0120",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0120-IN-PROGRESS-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0120.yml",
              "item_id": "TASK-0120",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0120-IN-PROGRESS-20260911"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0120-settings-design-conformance-1",
          "claim_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/153",
          "claim_head": "60115f5408e2c26de3040e96072164138c55795c",
          "previous_hash": "daf355da502f2e43c0eb40d2ba4ad8d183fed3ee4baf5a7700c9dd77ec559294",
          "hash": "f016564e72b32c47912fa46507d867fbc2b3ef55679bb423cfa02cc167545a4c"
        },
        {
          "event_id": "FLOW-TASK-0120-TO-BE-RELEASED-20260911",
          "sequence": 3,
          "item_id": "TASK-0120",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T23:29:15Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/153",
              "item_id": "TASK-0120",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0120-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4543",
              "item_id": "TASK-0120",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0120-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4611",
              "item_id": "TASK-0120",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0120-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4612",
              "item_id": "TASK-0120",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0120-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0120.yml",
              "item_id": "TASK-0120",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0120-TO-BE-RELEASED-20260911"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/153",
          "reviewed_head": "303efb7c2af07a3b5488b0f99c31f471f0587b49",
          "integration_revision": "a4b2c5ee582baa17616463f2f26986155df7537b",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4612",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4611",
          "acceptance_evidence": [
            "5/5 focused Settings design-conformance tests",
            "1250/1250 affected web tests",
            "valid 1600x900 and responsive 1280x720 screenshots",
            "invalid, saving, saved, and persistence-failure screenshot and interaction evidence",
            "exact-head PR CI run 4543 passed",
            "integration run 4612 passed",
            "immutable image publication and registry digest readback run 4611 attempt 2 passed",
            "Penpot UIUX-100-SETTINGS revision 6569 comparison passed with no unapproved deviation"
          ],
          "previous_hash": "f016564e72b32c47912fa46507d867fbc2b3ef55679bb423cfa02cc167545a4c",
          "hash": "03925c3b6f12074f9c2cec78b0f8738e5e3c642976af029838c0320482cf768c"
        },
        {
          "event_id": "FLOW-TASK-0120-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0120",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0120",
              "state": "Done",
              "event_id": "FLOW-TASK-0120-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0120",
              "state": "Done",
              "event_id": "FLOW-TASK-0120-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0120",
              "state": "Done",
              "event_id": "FLOW-TASK-0120-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0120.yml",
              "item_id": "TASK-0120",
              "state": "Done",
              "event_id": "FLOW-TASK-0120-DONE-20260915"
            }
          ],
          "previous_hash": "03925c3b6f12074f9c2cec78b0f8738e5e3c642976af029838c0320482cf768c",
          "hash": "2f9430c3692247ee081410431e8e0805ae8f2b3fc9940704f4c2f1335b78cacc"
        }
      ],
      "design_traceability": {
        "kind": "direct_ui",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-SETTINGS"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot baseline through the canonical design package before implementation.",
          "Compare rendered content, geometry, states, interactions, destinations, focus behavior, and required viewports with the referenced design evidence.",
          "Record screenshots and any explicitly approved deviation against the exact application commit and Penpot revision."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0121",
      "display_id": "AEROSIM-TS-121",
      "title": "Conform Home and resumable-activity states to the approved design",
      "feature_id": "AEROSIM-FT-34",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-34/aerosim-ts-121/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0121.yml",
      "owner": "AeroSim UI/UX, Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Release 1.0.0 user journey",
      "outcome": "Home presents the approved primary journey and only a valid resumable activity with correct states and destinations.",
      "scope": "Implement the Home screen resolved by UIUX-100-HOME, including header navigation, primary Free Flight action, valid resume state, no-resume state, loading, stale-record fallback, profile/settings entry, and exact destinations.",
      "implementation_artifacts": [
        "applications/web/src/home/HomeScreen.tsx",
        "applications/web/test/design/home-design-conformance.spec.tsx"
      ],
      "inputs": [
        "The ReleaseDesignContractV1 baseline from TASK-0117.",
        "No-activity, valid-resume, stale-resume, loading, and failure fixtures."
      ],
      "outputs": [
        "A design-conformant Home screen with deterministic action and state ownership.",
        "Screenshot and navigation evidence for each Home variant."
      ],
      "failure_boundaries": [
        "Fail if stale activity appears resumable, a visible action has no destination, or state/copy/geometry diverges.",
        "Fail closed when resume validation is unavailable."
      ],
      "exclusions": [
        "Training recommendations and Release 2.0.0 actions are not executable in this release.",
        "This Task does not change resume-record persistence."
      ],
      "verification_steps": [
        "Run applications/web/test/design/home-design-conformance.spec.tsx.",
        "Compare all Home variants and activate every visible action to its declared destination."
      ],
      "dependencies": [
        "TASK-0072"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0041",
        "NFR-0008"
      ],
      "acceptance_evidence": "Verified delivery: application PR #156 implemented UIUX-100-HOME and merged after exact-head review and CI; forward-fix PRs #159, #160, #161, and #163 repaired concurrent Wave 25 integration without changing approved scope. Final application test revision 69e0d9d78610bbdcbf0e28503efc25c4ff57e530 passed exact-revision validation run 4654 job 7582 and immutable image publication run 4653 jobs 7579-7581, which reported the complete published AeroSim image set. Focused Home/resume conformance, production-path, navigation, focus behavior, lint, typecheck, build, format, dependency audit, and screenshot evidence cover FR-0041, NFR-0008, and Penpot revision 6569. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0121",
        "state": "InBacklog",
        "decision_date": "2026-09-10T22:52:33Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547740767974334526"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0121-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0121",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0121",
            "state": "Done",
            "event_id": "FLOW-TASK-0121-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0121",
            "state": "Done",
            "event_id": "FLOW-TASK-0121-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0121",
            "state": "Done",
            "event_id": "FLOW-TASK-0121-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0121.yml",
            "item_id": "TASK-0121",
            "state": "Done",
            "event_id": "FLOW-TASK-0121-DONE-20260915"
          }
        ],
        "previous_hash": "388c749dff7da1110369d8dce4535d05c6f33b962598024be8507f880e3b9830",
        "hash": "c54b7c1eab8546bfa01d4224721d79bb84a6a0594603e43549e1c916cdc93fe1"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0121-READY-20260911",
          "sequence": 1,
          "item_id": "TASK-0121",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-11T05:54:31Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547847596452610119",
              "item_id": "TASK-0121",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0121-READY-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0121.yml",
              "item_id": "TASK-0121",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0121-READY-20260911"
            }
          ],
          "previous_hash": null,
          "hash": "5caa7c511b51732a1f433a55d6bb30d51249d5b5e150e78da8d9fc8ecf663698"
        },
        {
          "event_id": "FLOW-TASK-0121-IN-PROGRESS-20260911",
          "sequence": 2,
          "item_id": "TASK-0121",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T20:44:25Z",
          "conditions": [],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0121-design-conformance-1",
          "claim_base_sha": "267c1a5315de7fc43c2581c7abe3600e44280c8e",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548071379432251457",
              "item_id": "TASK-0121",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0121-IN-PROGRESS-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0121-design-conformance-1",
              "item_id": "TASK-0121",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0121-IN-PROGRESS-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0121.yml",
              "item_id": "TASK-0121",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0121-IN-PROGRESS-20260911"
            }
          ],
          "previous_hash": "5caa7c511b51732a1f433a55d6bb30d51249d5b5e150e78da8d9fc8ecf663698",
          "hash": "6984571c931e853d53511e9fbb844f1f1159be3b6674e346bee0238d9ad58ca9"
        },
        {
          "event_id": "FLOW-TASK-0121-TO-BE-RELEASED-20260912",
          "sequence": 3,
          "item_id": "TASK-0121",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T00:42:05Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/156",
              "item_id": "TASK-0121",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0121-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/163",
              "item_id": "TASK-0121",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0121-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4654",
              "item_id": "TASK-0121",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0121-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4653",
              "item_id": "TASK-0121",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0121-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0121.yml",
              "item_id": "TASK-0121",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0121-TO-BE-RELEASED-20260912"
            }
          ],
          "previous_hash": "6984571c931e853d53511e9fbb844f1f1159be3b6674e346bee0238d9ad58ca9",
          "hash": "388c749dff7da1110369d8dce4535d05c6f33b962598024be8507f880e3b9830"
        },
        {
          "event_id": "FLOW-TASK-0121-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0121",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0121",
              "state": "Done",
              "event_id": "FLOW-TASK-0121-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0121",
              "state": "Done",
              "event_id": "FLOW-TASK-0121-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0121",
              "state": "Done",
              "event_id": "FLOW-TASK-0121-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0121.yml",
              "item_id": "TASK-0121",
              "state": "Done",
              "event_id": "FLOW-TASK-0121-DONE-20260915"
            }
          ],
          "previous_hash": "388c749dff7da1110369d8dce4535d05c6f33b962598024be8507f880e3b9830",
          "hash": "c54b7c1eab8546bfa01d4224721d79bb84a6a0594603e43549e1c916cdc93fe1"
        }
      ],
      "design_traceability": {
        "kind": "direct_ui",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-HOME"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot baseline through the canonical design package before implementation.",
          "Compare rendered content, geometry, states, interactions, destinations, focus behavior, and required viewports with the referenced design evidence.",
          "Record screenshots and any explicitly approved deviation against the exact application commit and Penpot revision."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0122",
      "display_id": "AEROSIM-TS-122",
      "title": "Conform all Hangar aircraft-selection states to the approved design",
      "feature_id": "AEROSIM-FT-7",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-7/aerosim-ts-122/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0122.yml",
      "owner": "AeroSim UI/UX, Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Release 1.0.0 user journey",
      "outcome": "Trainer, Jet, and Utility selection states match the approved cards, imagery, active treatment, confirmation, and navigation.",
      "scope": "Implement and compare all three UIUX-100-HANGAR frames, preserving approved aircraft images, card and button placement, selected-state treatment, header behavior, Back, and Continue destinations.",
      "implementation_artifacts": [
        "applications/web/src/hangar/HangarScreen.tsx",
        "applications/web/test/design/hangar-design-conformance.spec.tsx"
      ],
      "inputs": [
        "The ReleaseDesignContractV1 baseline from TASK-0117.",
        "Trainer, Sport/Utility, Light Jet, asset-loading, and unavailable-aircraft fixtures."
      ],
      "outputs": [
        "Design-conformant Hangar states driven by the canonical aircraft catalogue.",
        "Rendered and interaction evidence for each selectable aircraft."
      ],
      "failure_boundaries": [
        "Fail on mismatched selected aircraft, wrong image, selection drift, unavailable confirmation, dead navigation, or layout variance.",
        "Prevent confirmation while the selected model is unresolved."
      ],
      "exclusions": [
        "Additional aircraft beyond the Release 1.0.0 catalogue are excluded.",
        "Aircraft tuning and asset conversion remain owned by their existing Tasks."
      ],
      "verification_steps": [
        "Run applications/web/test/design/hangar-design-conformance.spec.tsx.",
        "Compare Trainer, Jet, and Utility states and verify each selection-to-confirmation transition."
      ],
      "dependencies": [
        "TASK-0116"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0012",
        "FR-0013",
        "NFR-0001",
        "NFR-0005",
        "NFR-0006",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #157 reviewed head 61e893b68022be9c2a30b26960f34b7282845456, merged as 7a05734d179683c601e43c98df23f832d8aa34be; 27/27 focused Hangar conformance tests and 1213/1213 affected web tests passed; Trainer, Jet, and Utility interaction screenshots cover 1440x900 and 1600x900 against Penpot revision 6569; publication run 4609 attempt 2 and integration run 4610 succeeded using the certified browser base image. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0122",
        "state": "InBacklog",
        "decision_date": "2026-09-10T22:52:33Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547740767974334526"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0122-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0122",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0122",
            "state": "Done",
            "event_id": "FLOW-TASK-0122-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0122",
            "state": "Done",
            "event_id": "FLOW-TASK-0122-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0122",
            "state": "Done",
            "event_id": "FLOW-TASK-0122-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0122.yml",
            "item_id": "TASK-0122",
            "state": "Done",
            "event_id": "FLOW-TASK-0122-DONE-20260915"
          }
        ],
        "previous_hash": "2793125bcd2996cc7cf2c06c4f7920f1c314331a44d3be51458bd2a5f2cb0002",
        "hash": "3291893a002feb1b09014414dde4d4f159c55e79329ab7c841f488b3a8b02d0c"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0122-READY-20260911",
          "sequence": 1,
          "item_id": "TASK-0122",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-11T05:54:31Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547847596452610119",
              "item_id": "TASK-0122",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0122-READY-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0122.yml",
              "item_id": "TASK-0122",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0122-READY-20260911"
            }
          ],
          "previous_hash": null,
          "hash": "d712fb54c78dd2bb8734002f23fb860cb624fc481b8176f58e7209173bd4d0cf"
        },
        {
          "event_id": "FLOW-TASK-0122-IN-PROGRESS-20260911",
          "sequence": 2,
          "item_id": "TASK-0122",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T20:44:25Z",
          "conditions": [],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0122-design-conformance-1",
          "claim_base_sha": "267c1a5315de7fc43c2581c7abe3600e44280c8e",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548071379432251457",
              "item_id": "TASK-0122",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0122-IN-PROGRESS-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0122-design-conformance-1",
              "item_id": "TASK-0122",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0122-IN-PROGRESS-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0122.yml",
              "item_id": "TASK-0122",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0122-IN-PROGRESS-20260911"
            }
          ],
          "previous_hash": "d712fb54c78dd2bb8734002f23fb860cb624fc481b8176f58e7209173bd4d0cf",
          "hash": "b3d85e014c391ba94a86a92e3afeb96910ca5f07d2edbc2d8c96039968398728"
        },
        {
          "event_id": "FLOW-TASK-0122-TO-BE-RELEASED-20260911",
          "sequence": 3,
          "item_id": "TASK-0122",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T23:43:42Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/157",
              "item_id": "TASK-0122",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0122-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4610",
              "item_id": "TASK-0122",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0122-TO-BE-RELEASED-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0122.yml",
              "item_id": "TASK-0122",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0122-TO-BE-RELEASED-20260911"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/157",
          "reviewed_head": "61e893b68022be9c2a30b26960f34b7282845456",
          "integration_revision": "7a05734d179683c601e43c98df23f832d8aa34be",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4610",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4609",
          "published_images": [
            "library/nebula:7a05734d179683c601e43c98df23f832d8aa34be@sha256:e5058093996634be98847baa73861317d312c59e013c7ab6a0d884a13206f4fa",
            "library/singularity:7a05734d179683c601e43c98df23f832d8aa34be@sha256:0c47f7eb2405670322e16bfa7a281a79bd2c8a3f6e8f6970f9538c62684793e7"
          ],
          "acceptance_evidence": [
            "27/27 focused Hangar design-conformance tests",
            "1213/1213 affected web tests",
            "Trainer, Jet, and Utility interaction screenshots at 1440x900 and 1600x900",
            "exact-head PR CI run 4608 attempt 1 passed",
            "integration run 4610 attempt 1 passed using the certified browser base image",
            "immutable publication run 4609 attempt 2 passed with registry digest readback",
            "Penpot UIUX-100-HANGAR revision 6569 comparison passed with no unapproved deviation"
          ],
          "previous_hash": "b3d85e014c391ba94a86a92e3afeb96910ca5f07d2edbc2d8c96039968398728",
          "hash": "2793125bcd2996cc7cf2c06c4f7920f1c314331a44d3be51458bd2a5f2cb0002"
        },
        {
          "event_id": "FLOW-TASK-0122-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0122",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0122",
              "state": "Done",
              "event_id": "FLOW-TASK-0122-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0122",
              "state": "Done",
              "event_id": "FLOW-TASK-0122-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0122",
              "state": "Done",
              "event_id": "FLOW-TASK-0122-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0122.yml",
              "item_id": "TASK-0122",
              "state": "Done",
              "event_id": "FLOW-TASK-0122-DONE-20260915"
            }
          ],
          "previous_hash": "2793125bcd2996cc7cf2c06c4f7920f1c314331a44d3be51458bd2a5f2cb0002",
          "hash": "3291893a002feb1b09014414dde4d4f159c55e79329ab7c841f488b3a8b02d0c"
        }
      ],
      "design_traceability": {
        "kind": "direct_ui",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-HANGAR"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot baseline through the canonical design package before implementation.",
          "Compare rendered content, geometry, states, interactions, destinations, focus behavior, and required viewports with the referenced design evidence.",
          "Record screenshots and any explicitly approved deviation against the exact application commit and Penpot revision."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0123",
      "display_id": "AEROSIM-TS-123",
      "title": "Conform flying-world selection to the approved Flight Setup design",
      "feature_id": "AEROSIM-FT-6",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-6/aerosim-ts-123/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0123.yml",
      "owner": "AeroSim UI/UX, Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Release 1.0.0 user journey",
      "outcome": "Every supported world appears and selects through the approved Flight Setup presentation without catalogue or navigation drift.",
      "scope": "Implement the world-selection portion of UIUX-100-FLIGHT-SETUP, preserving approved imagery, labels, selected treatment, square controls, unavailable/loading feedback, and the selected world carried into pre-flight.",
      "implementation_artifacts": [
        "applications/web/src/flight-setup/WorldSelector.tsx",
        "applications/web/test/design/world-selector-design-conformance.spec.tsx"
      ],
      "inputs": [
        "The ReleaseDesignContractV1 baseline from TASK-0117.",
        "Training Airfield, Coastal Range, Mountain Valley, loading, and unavailable-world fixtures."
      ],
      "outputs": [
        "A design-conformant world selector bound to canonical world IDs.",
        "Visual and round-trip evidence for every world option."
      ],
      "failure_boundaries": [
        "Fail on unknown world IDs, image/copy mismatch, selection loss, dead controls, or wrong pre-flight value.",
        "Prevent continuation while the selected world cannot be resolved."
      ],
      "exclusions": [
        "Dynamic weather and additional worlds remain excluded.",
        "World loading and collision behavior remain owned by existing runtime Tasks."
      ],
      "verification_steps": [
        "Run applications/web/test/design/world-selector-design-conformance.spec.tsx.",
        "Select every world, compare its visual state, and verify the exact ID reaches pre-flight."
      ],
      "dependencies": [
        "TASK-0113"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0010",
        "FR-0011",
        "NFR-0001",
        "NFR-0005",
        "NFR-0006",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #155 reviewed head ac190ca2f2c6d71bee7e7911dd238d6ab14548c8 and post-merge repair PR #158 reviewed head 7edcbd2230f9b0ac1920bb1f85eaba69417221da are integrated on canonical test revision 69e0d9d78610bbdcbf0e28503efc25c4ff57e530; 12/12 focused Flight Setup conformance tests, affected web tests, production build, and exact world-ID pre-flight routing passed; screenshots cover Training Airfield and Coastal Range at 1280x720 and 1600x900 against Penpot revision 6569; integration run 4654 and immutable publication run 4653 succeeded with registry digest readback. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0123",
        "state": "InBacklog",
        "decision_date": "2026-09-10T22:52:33Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547740767974334526"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0123-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0123",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0123",
            "state": "Done",
            "event_id": "FLOW-TASK-0123-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0123",
            "state": "Done",
            "event_id": "FLOW-TASK-0123-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0123",
            "state": "Done",
            "event_id": "FLOW-TASK-0123-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0123.yml",
            "item_id": "TASK-0123",
            "state": "Done",
            "event_id": "FLOW-TASK-0123-DONE-20260915"
          }
        ],
        "previous_hash": "e3de78ccc19c3351beb6bb08b51e93ca4e81ac8fed84e244e933b260163e93e9",
        "hash": "22ec29aefe0e87068416c88e60bc3248c20819854c49adea3eb5862238ca03d3"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0123-READY-20260911",
          "sequence": 1,
          "item_id": "TASK-0123",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-11T05:54:31Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547847596452610119",
              "item_id": "TASK-0123",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0123-READY-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0123.yml",
              "item_id": "TASK-0123",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0123-READY-20260911"
            }
          ],
          "previous_hash": null,
          "hash": "e423c94e1d68cb190f3d4d3e51eb99ad8650b0ffbbb2a80238d2f8671687b503"
        },
        {
          "event_id": "FLOW-TASK-0123-IN-PROGRESS-20260911",
          "sequence": 2,
          "item_id": "TASK-0123",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-11T20:44:25Z",
          "conditions": [],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0123-design-conformance-1",
          "claim_base_sha": "267c1a5315de7fc43c2581c7abe3600e44280c8e",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548071379432251457",
              "item_id": "TASK-0123",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0123-IN-PROGRESS-20260911"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0123-design-conformance-1",
              "item_id": "TASK-0123",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0123-IN-PROGRESS-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0123.yml",
              "item_id": "TASK-0123",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0123-IN-PROGRESS-20260911"
            }
          ],
          "previous_hash": "e423c94e1d68cb190f3d4d3e51eb99ad8650b0ffbbb2a80238d2f8671687b503",
          "hash": "ed76895bef44a0606f7af84701e22b189a93057a5bfc95831a2bde59bc34a56a"
        },
        {
          "event_id": "FLOW-TASK-0123-TO-BE-RELEASED-20260912",
          "sequence": 3,
          "item_id": "TASK-0123",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T00:42:44Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/155",
              "item_id": "TASK-0123",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0123-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/158",
              "item_id": "TASK-0123",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0123-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4654",
              "item_id": "TASK-0123",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0123-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0123.yml",
              "item_id": "TASK-0123",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0123-TO-BE-RELEASED-20260912"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/155",
          "reviewed_head": "7edcbd2230f9b0ac1920bb1f85eaba69417221da",
          "integration_revision": "69e0d9d78610bbdcbf0e28503efc25c4ff57e530",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4654",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4653",
          "published_images": [
            "library/nebula:69e0d9d78610bbdcbf0e28503efc25c4ff57e530@sha256:57e208a6782a6e44cc4df058d5deee125aad0830c7da9f73a678e51c1eee9e71",
            "library/singularity:69e0d9d78610bbdcbf0e28503efc25c4ff57e530@sha256:09bd69524da7434ba8119a8fa54f3d36e29e64c84fd9fe559bd5182360ce2d7c"
          ],
          "acceptance_evidence": [
            "12/12 focused Flight Setup world-selector design-conformance tests",
            "affected web tests, lint, typecheck, production build, and production dependency audit",
            "Training Airfield and Coastal Range interaction screenshots at 1280x720 and 1600x900",
            "exact-head PR CI run 4616 attempt 1 passed after base synchronization",
            "post-merge repair PR",
            "integration run 4654 attempt 1 passed on canonical revision 69e0d9d78610bbdcbf0e28503efc25c4ff57e530",
            "immutable publication run 4653 attempt 1 passed with registry digest readback",
            "Penpot UIUX-100-FLIGHT-SETUP revision 6569 comparison passed with no unapproved deviation"
          ],
          "previous_hash": "ed76895bef44a0606f7af84701e22b189a93057a5bfc95831a2bde59bc34a56a",
          "hash": "e3de78ccc19c3351beb6bb08b51e93ca4e81ac8fed84e244e933b260163e93e9"
        },
        {
          "event_id": "FLOW-TASK-0123-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0123",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0123",
              "state": "Done",
              "event_id": "FLOW-TASK-0123-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0123",
              "state": "Done",
              "event_id": "FLOW-TASK-0123-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0123",
              "state": "Done",
              "event_id": "FLOW-TASK-0123-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0123.yml",
              "item_id": "TASK-0123",
              "state": "Done",
              "event_id": "FLOW-TASK-0123-DONE-20260915"
            }
          ],
          "previous_hash": "e3de78ccc19c3351beb6bb08b51e93ca4e81ac8fed84e244e933b260163e93e9",
          "hash": "22ec29aefe0e87068416c88e60bc3248c20819854c49adea3eb5862238ca03d3"
        }
      ],
      "design_traceability": {
        "kind": "direct_ui",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-FLIGHT-SETUP"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot baseline through the canonical design package before implementation.",
          "Compare rendered content, geometry, states, interactions, destinations, focus behavior, and required viewports with the referenced design evidence.",
          "Record screenshots and any explicitly approved deviation against the exact application commit and Penpot revision."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0124",
      "display_id": "AEROSIM-TS-124",
      "title": "Conform flight and environment conditions to the approved Flight Setup design",
      "feature_id": "AEROSIM-FT-15",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-15/aerosim-ts-124/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0124.yml",
      "owner": "AeroSim UI/UX, Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Release 1.0.0 user journey",
      "outcome": "Supported condition presets display, validate, select, and reach pre-flight through the approved controls and states.",
      "scope": "Implement the conditions portion of UIUX-100-FLIGHT-SETUP, preserving the approved control layout, values, selected states, validation feedback, Back and Continue actions, and the exact preset snapshot shown in pre-flight.",
      "implementation_artifacts": [
        "applications/web/src/flight-setup/ConditionSelector.tsx",
        "applications/web/test/design/condition-selector-design-conformance.spec.tsx"
      ],
      "inputs": [
        "The ReleaseDesignContractV1 baseline from TASK-0117.",
        "Every supported condition preset plus invalid, incompatible, loading, and catalogue-drift fixtures."
      ],
      "outputs": [
        "A design-conformant condition selector bound to canonical preset IDs and values.",
        "Screenshot, validation, and round-trip evidence for all declared states."
      ],
      "failure_boundaries": [
        "Fail on unsupported values, incompatible combinations, hidden validation, stale selection, or wrong destination.",
        "Prevent continuation until one valid condition snapshot is confirmed."
      ],
      "exclusions": [
        "Dynamic weather editing and custom arbitrary values remain excluded.",
        "Condition simulation behavior remains owned by existing runtime Tasks."
      ],
      "verification_steps": [
        "Run applications/web/test/design/condition-selector-design-conformance.spec.tsx.",
        "Compare each preset and failure state and verify the selected snapshot reaches pre-flight unchanged."
      ],
      "dependencies": [
        "TASK-0100"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0022",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #166 merged reviewed head 83faa18d526dbecb78f304580fbc190815aefcc2 as 58723125095e43e77a6bf558fa3fbecb03829d5e; 15 focused conformance tests, 1,277 web tests plus browser suites, full quality gates, and exact preset round-trip passed; 12 screenshots cover every supported preset and failure state at both required viewports against Penpot revision 6569; integration run 4696 and immutable publication run 4695 succeeded with registry digest readback. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0124",
        "state": "InBacklog",
        "decision_date": "2026-09-10T22:52:33Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547740767974334526"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0124-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0124",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0124",
            "state": "Done",
            "event_id": "FLOW-TASK-0124-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0124",
            "state": "Done",
            "event_id": "FLOW-TASK-0124-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0124",
            "state": "Done",
            "event_id": "FLOW-TASK-0124-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0124.yml",
            "item_id": "TASK-0124",
            "state": "Done",
            "event_id": "FLOW-TASK-0124-DONE-20260915"
          }
        ],
        "previous_hash": "c2147e593b3e4725acc6e49761d4b2a26690157216cb871e17910956d52413dd",
        "hash": "5b1ed8c12ee260f43a0cfb3163f90e1884b9e380e13e068f232df100dcce483a"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0124-READY-20260911",
          "sequence": 1,
          "item_id": "TASK-0124",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-11T05:54:31Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547847596452610119",
              "item_id": "TASK-0124",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0124-READY-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0124.yml",
              "item_id": "TASK-0124",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0124-READY-20260911"
            }
          ],
          "previous_hash": null,
          "hash": "815f1351d1ee1379b2fbfc7f80ade3fd8a9feda3a8a1370c959ed1d8046c0ece"
        },
        {
          "event_id": "FLOW-TASK-0124-IN-PROGRESS-20260912",
          "sequence": 2,
          "item_id": "TASK-0124",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T07:17:54Z",
          "conditions": [],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0124-condition-selector-conformance-1",
          "claim_base_sha": "69e0d9d78610bbdcbf0e28503efc25c4ff57e530",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0124-condition-selector-conformance-1",
              "item_id": "TASK-0124",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0124-IN-PROGRESS-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/166",
              "item_id": "TASK-0124",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0124-IN-PROGRESS-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0124.yml",
              "item_id": "TASK-0124",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0124-IN-PROGRESS-20260912"
            }
          ],
          "previous_hash": "815f1351d1ee1379b2fbfc7f80ade3fd8a9feda3a8a1370c959ed1d8046c0ece",
          "hash": "466563b8d91b01f20439f0ff3be287690206b434cd3bc8da16c9743a192ec9f2"
        },
        {
          "event_id": "FLOW-TASK-0124-TO-BE-RELEASED-20260912",
          "sequence": 3,
          "item_id": "TASK-0124",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T08:29:06Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/166",
              "item_id": "TASK-0124",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0124-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/58723125095e43e77a6bf558fa3fbecb03829d5e",
              "item_id": "TASK-0124",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0124-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4696",
              "item_id": "TASK-0124",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0124-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4695",
              "item_id": "TASK-0124",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0124-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0124.yml",
              "item_id": "TASK-0124",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0124-TO-BE-RELEASED-20260912"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/166",
          "reviewed_head": "83faa18d526dbecb78f304580fbc190815aefcc2",
          "integration_revision": "58723125095e43e77a6bf558fa3fbecb03829d5e",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4696",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4695",
          "published_images": [
            "library/nebula:58723125095e43e77a6bf558fa3fbecb03829d5e@sha256:3b5e15356b115ff02afac40a0a4e674dce1988e7b685d0fa2616fe9d30168d8e",
            "library/singularity:58723125095e43e77a6bf558fa3fbecb03829d5e@sha256:b7722a36072bee9c02a4a562f040d74e5fcd3e0d62fabbb2c77ff03195bfd113"
          ],
          "acceptance_evidence": [
            "15/15 focused condition-selector design-conformance tests",
            "1,277/1,277 web tests plus 81 browser-state tests after application base synchronization",
            "full lint, typecheck, format, production build, production audit, CI-contract, container-contract, and Helm checks",
            "all supported presets plus loading, unavailable, incompatible, and catalogue-drift screenshots at 1280x720 and 1600x900",
            "exact preset snapshot round-trip and forged custom snapshot rejection at the pre-flight route boundary",
            "exact-head PR CI runs 4691-4692 and 4692 attempt 1 passed",
            "integration validation run 4696 attempt 1 passed on 58723125095e43e77a6bf558fa3fbecb03829d5e",
            "immutable publication run 4695 attempt 1 passed with registry digest readback",
            "Penpot UIUX-100-FLIGHT-SETUP revision 6569 comparison passed with no unapproved deviation"
          ],
          "previous_hash": "466563b8d91b01f20439f0ff3be287690206b434cd3bc8da16c9743a192ec9f2",
          "hash": "c2147e593b3e4725acc6e49761d4b2a26690157216cb871e17910956d52413dd"
        },
        {
          "event_id": "FLOW-TASK-0124-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0124",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0124",
              "state": "Done",
              "event_id": "FLOW-TASK-0124-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0124",
              "state": "Done",
              "event_id": "FLOW-TASK-0124-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0124",
              "state": "Done",
              "event_id": "FLOW-TASK-0124-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0124.yml",
              "item_id": "TASK-0124",
              "state": "Done",
              "event_id": "FLOW-TASK-0124-DONE-20260915"
            }
          ],
          "previous_hash": "c2147e593b3e4725acc6e49761d4b2a26690157216cb871e17910956d52413dd",
          "hash": "5b1ed8c12ee260f43a0cfb3163f90e1884b9e380e13e068f232df100dcce483a"
        }
      ],
      "design_traceability": {
        "kind": "direct_ui",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-FLIGHT-SETUP"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot baseline through the canonical design package before implementation.",
          "Compare rendered content, geometry, states, interactions, destinations, focus behavior, and required viewports with the referenced design evidence.",
          "Record screenshots and any explicitly approved deviation against the exact application commit and Penpot revision."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0125",
      "display_id": "AEROSIM-TS-125",
      "title": "Correct the delivered HUD and warning presentation to the approved design",
      "feature_id": "AEROSIM-FT-4",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-4/aerosim-ts-125/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0125.yml",
      "owner": "AeroSim UI/UX, Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Release 1.0.0 user journey",
      "outcome": "Delivered instruments, contextual warnings, and controller recovery match the approved Minimal Edge HUD and warning screen.",
      "scope": "Correct the delivered presentation against UIUX-100-CHASE and UIUX-100-WARNING, including surface-free airspeed, Navigation, altitude and vertical value, Fuel placement, text outlines, warning hierarchy, fallback-control copy, and declared recovery actions.",
      "implementation_artifacts": [
        "applications/web/src/flight/hud/MinimalEdgeHud.tsx",
        "applications/web/src/flight/warnings/ControlRecoveryView.tsx",
        "applications/web/test/design/hud-warning-design-conformance.spec.tsx"
      ],
      "inputs": [
        "The ReleaseDesignContractV1 baseline from TASK-0117.",
        "Nominal flight, stall, collision, boundary, controller-disconnect, fallback-active, and recovery fixtures."
      ],
      "outputs": [
        "A design-conformant shared HUD and warning/recovery view.",
        "Rendered evidence over bright and complex flight scenes for every critical state."
      ],
      "failure_boundaries": [
        "Fail on missing instruments, dark backing blocks, unreadable values, overlap, warning without recovery, or copy/action drift.",
        "Keep warning meaning visible when optional audio is absent."
      ],
      "exclusions": [
        "Detailed physics telemetry and touch controls remain excluded.",
        "This Task does not change authoritative flight-state classification."
      ],
      "verification_steps": [
        "Run applications/web/test/design/hud-warning-design-conformance.spec.tsx.",
        "Compare nominal and warning states over declared scene fixtures and activate every recovery action."
      ],
      "dependencies": [
        "TASK-0005"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0007",
        "FR-0008",
        "NFR-0001",
        "NFR-0003",
        "NFR-0005",
        "NFR-0006",
        "NFR-0010"
      ],
      "acceptance_evidence": "Verified delivery: application PR #165 reviewed head fd3dc462bf1fb72a617d5c33dc5c7d5426628dd4 merged as df1f9f810eac4a6c63387ce7e345ef77460746ba; exact-head CI run 4713, integration run 4715, and immutable publication run 4714 passed; 9/9 focused conformance checks and 14 screenshots cover the surface-free HUD and warning/recovery fixtures at 1280x720 and 1600x900 against Penpot revision 6569. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0125",
        "state": "InBacklog",
        "decision_date": "2026-09-10T22:52:33Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547740767974334526"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0125-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0125",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0125",
            "state": "Done",
            "event_id": "FLOW-TASK-0125-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0125",
            "state": "Done",
            "event_id": "FLOW-TASK-0125-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0125",
            "state": "Done",
            "event_id": "FLOW-TASK-0125-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0125.yml",
            "item_id": "TASK-0125",
            "state": "Done",
            "event_id": "FLOW-TASK-0125-DONE-20260915"
          }
        ],
        "previous_hash": "6ea03d3ab7ee7f226c1a61ef2c16d6cadb656649d2001ab23d3a2cdf748fc1c3",
        "hash": "60d1694f32e092cd4abf27fe1c682764bb26e5c6e11c26da009da537d4e9a946"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0125-READY-20260911",
          "sequence": 1,
          "item_id": "TASK-0125",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-11T05:54:31Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547847596452610119",
              "item_id": "TASK-0125",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0125-READY-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0125.yml",
              "item_id": "TASK-0125",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0125-READY-20260911"
            }
          ],
          "previous_hash": null,
          "hash": "40ceeb05a98427fdfd9eed53cd76485b90e86144b195ee36f9c5efff4b6cfb5d"
        },
        {
          "event_id": "FLOW-TASK-0125-IN-PROGRESS-20260912",
          "sequence": 2,
          "item_id": "TASK-0125",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T07:17:33Z",
          "conditions": [
            "Wave 25 is current; TASK-0005 is ToBeReleased.",
            "AEROSIM-UIUX-REL-1.0.0 revision 6569 is approved."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0125-hud-warning-conformance-1",
          "claim_base_sha": "69e0d9d78610bbdcbf0e28503efc25c4ff57e530",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/165",
              "item_id": "TASK-0125",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0125-IN-PROGRESS-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0125-hud-warning-conformance-1",
              "item_id": "TASK-0125",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0125-IN-PROGRESS-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0125.yml",
              "item_id": "TASK-0125",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0125-IN-PROGRESS-20260912"
            }
          ],
          "previous_hash": "40ceeb05a98427fdfd9eed53cd76485b90e86144b195ee36f9c5efff4b6cfb5d",
          "hash": "aca97f1f23510c86637feb95ff8575bd64fd01e1591e1a98074a680dc7f001be"
        },
        {
          "event_id": "FLOW-TASK-0125-TO-BE-RELEASED-20260912",
          "sequence": 3,
          "item_id": "TASK-0125",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T09:03:04Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/165",
              "item_id": "TASK-0125",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0125-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4715",
              "item_id": "TASK-0125",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0125-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4714",
              "item_id": "TASK-0125",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0125-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0125.yml",
              "item_id": "TASK-0125",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0125-TO-BE-RELEASED-20260912"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/165",
          "reviewed_head": "fd3dc462bf1fb72a617d5c33dc5c7d5426628dd4",
          "integration_revision": "df1f9f810eac4a6c63387ce7e345ef77460746ba",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4715",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4714",
          "acceptance_evidence": [
            "9/9 focused HUD and warning/recovery design-conformance tests",
            "5/5 Chase viewport convergence tests and 29/29 affected tests",
            "full web and repository suites, lint, typecheck, production build, dependency audit, and static security scan",
            "14 nominal, stall, collision, boundary, controller-disconnected, fallback-active, and recovery screenshots at 1280x720 and 1600x900",
            "exact-head PR CI run 4713 attempt 1 passed all eight required jobs",
            "integration run 4715 attempt 1 passed on canonical revision df1f9f810eac4a6c63387ce7e345ef77460746ba",
            "immutable publication run 4714 attempt 1 passed with registry digest readback",
            "Penpot UIUX-100-CHASE and UIUX-100-WARNING revision 6569 comparison passed with no unapproved deviation"
          ],
          "previous_hash": "aca97f1f23510c86637feb95ff8575bd64fd01e1591e1a98074a680dc7f001be",
          "hash": "6ea03d3ab7ee7f226c1a61ef2c16d6cadb656649d2001ab23d3a2cdf748fc1c3"
        },
        {
          "event_id": "FLOW-TASK-0125-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0125",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0125",
              "state": "Done",
              "event_id": "FLOW-TASK-0125-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0125",
              "state": "Done",
              "event_id": "FLOW-TASK-0125-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0125",
              "state": "Done",
              "event_id": "FLOW-TASK-0125-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0125.yml",
              "item_id": "TASK-0125",
              "state": "Done",
              "event_id": "FLOW-TASK-0125-DONE-20260915"
            }
          ],
          "previous_hash": "6ea03d3ab7ee7f226c1a61ef2c16d6cadb656649d2001ab23d3a2cdf748fc1c3",
          "hash": "60d1694f32e092cd4abf27fe1c682764bb26e5c6e11c26da009da537d4e9a946"
        }
      ],
      "design_traceability": {
        "kind": "direct_ui",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-CHASE",
          "UIUX-100-WARNING"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot baseline through the canonical design package before implementation.",
          "Compare rendered content, geometry, states, interactions, destinations, focus behavior, and required viewports with the referenced design evidence.",
          "Record screenshots and any explicitly approved deviation against the exact application commit and Penpot revision."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0126",
      "display_id": "AEROSIM-TS-126",
      "title": "Correct the delivered Chase viewport to the approved design",
      "feature_id": "AEROSIM-FT-12",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-12/aerosim-ts-126/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0126.yml",
      "owner": "AeroSim UI/UX, Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Release 1.0.0 user journey",
      "outcome": "The primary gameplay viewport matches the approved aircraft-visible Chase composition, camera control, Menu control, and shared HUD.",
      "scope": "Correct the delivered Chase viewport against UIUX-100-CHASE while preserving the approved aircraft image/composition, surface-free HUD placement, Navigation label, camera-cycle control, transparent Menu surface, attribution, and responsive containment.",
      "implementation_artifacts": [
        "applications/web/src/flight/views/ChaseFlightView.tsx",
        "applications/web/test/design/chase-viewport-design-conformance.spec.tsx"
      ],
      "inputs": [
        "The ReleaseDesignContractV1 baseline from TASK-0117.",
        "Nominal, bright-scene, complex-scene, camera-cycle, Menu-open, and viewport-resize fixtures."
      ],
      "outputs": [
        "A design-conformant Chase viewport using the shared flight presentation components.",
        "Screenshot and interaction evidence at every approved viewport."
      ],
      "failure_boundaries": [
        "Fail on aircraft invisibility, HUD overlap, wrong camera progression, opaque Menu background, clipped attribution, or geometry drift.",
        "Fail closed if shared HUD output diverges from the approved contract."
      ],
      "exclusions": [
        "Secondary camera compositions are owned by AEROSIM-FT-14.",
        "Flight physics and authoritative camera-state mutation remain outside this correction."
      ],
      "verification_steps": [
        "Run applications/web/test/design/chase-viewport-design-conformance.spec.tsx.",
        "Compare the Chase viewport at every approved fixture and verify camera and Menu destinations."
      ],
      "dependencies": [
        "TASK-0090"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0019",
        "NFR-0010"
      ],
      "acceptance_evidence": "Verified delivery: application PR #164 and forward-fix PR #167 merged reviewed Chase viewport conformance; final integration revision 742ba3e3932abf0174fbdc91e1ecf6f587250dc6 passed integration run 4710 and immutable image publication run 4709. Focused conformance passed 5/5, full tests and quality gates passed, and aircraft-visible interaction screenshots at 1440x900 and contained 1280x720 verify the surface-free HUD, camera and Menu destinations, transparent Menu, attribution, and no unapproved deviation from Penpot UIUX-100-CHASE revision 6569. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0126",
        "state": "InBacklog",
        "decision_date": "2026-09-10T22:52:33Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547740767974334526"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0126-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0126",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0126",
            "state": "Done",
            "event_id": "FLOW-TASK-0126-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0126",
            "state": "Done",
            "event_id": "FLOW-TASK-0126-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0126",
            "state": "Done",
            "event_id": "FLOW-TASK-0126-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0126.yml",
            "item_id": "TASK-0126",
            "state": "Done",
            "event_id": "FLOW-TASK-0126-DONE-20260915"
          }
        ],
        "previous_hash": "1c86cfa739028131d3f75d8ebffda1ca86743c270a091bd14104d3f9ff73bafc",
        "hash": "7c4b7dba7ba5ba4684337bf728afef9045d2bfb376795355998192891ae82d58"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0126-READY-20260911",
          "sequence": 1,
          "item_id": "TASK-0126",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-11T05:54:31Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547847596452610119",
              "item_id": "TASK-0126",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0126-READY-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0126.yml",
              "item_id": "TASK-0126",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0126-READY-20260911"
            }
          ],
          "previous_hash": null,
          "hash": "fa4142ed59109d5259e334089c083fc0e6ae9106605bce194b84b74058590f7a"
        },
        {
          "event_id": "FLOW-TASK-0126-IN-PROGRESS-20260912",
          "sequence": 2,
          "item_id": "TASK-0126",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T07:15:36Z",
          "conditions": [
            "Wave 25 is current; TASK-0090 is ToBeReleased."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0126-chase-viewport-conformance-1",
          "claim_base_sha": "69e0d9d78610bbdcbf0e28503efc25c4ff57e530",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/164",
              "item_id": "TASK-0126",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0126-IN-PROGRESS-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0126.yml",
              "item_id": "TASK-0126",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0126-IN-PROGRESS-20260912"
            }
          ],
          "previous_hash": "fa4142ed59109d5259e334089c083fc0e6ae9106605bce194b84b74058590f7a",
          "hash": "8ff549fe4a445099a0c71684512b57a720fa83496c030b7529903b615b7904b4"
        },
        {
          "event_id": "FLOW-TASK-0126-TO-BE-RELEASED-20260912",
          "sequence": 3,
          "item_id": "TASK-0126",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T08:51:33Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/164",
              "item_id": "TASK-0126",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0126-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/167",
              "item_id": "TASK-0126",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0126-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4710",
              "item_id": "TASK-0126",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0126-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4709",
              "item_id": "TASK-0126",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0126-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0126.yml",
              "item_id": "TASK-0126",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0126-TO-BE-RELEASED-20260912"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/164",
          "forward_fix_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/167",
          "reviewed_head": "26182a4601eba966a3d3334021a6e957125a6007",
          "integration_revision": "742ba3e3932abf0174fbdc91e1ecf6f587250dc6",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4710",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4709",
          "published_images": [
            "library/aerosim-web:742ba3e3932abf0174fbdc91e1ecf6f587250dc6",
            "library/aerosim-api:742ba3e3932abf0174fbdc91e1ecf6f587250dc6"
          ],
          "acceptance_evidence": [
            "5/5 focused Chase viewport design-conformance tests",
            "full root test suite, lint, typecheck, production build, and production dependency audit",
            "aircraft-visible interaction screenshots at 1440x900 and contained 1280x720",
            "exact-head application PR",
            "post-merge forward-fix PR",
            "integration run 4710 attempt 1 passed on canonical revision 742ba3e3932abf0174fbdc91e1ecf6f587250dc6",
            "immutable publication run 4709 attempt 1 published the complete AeroSim image set",
            "Penpot UIUX-100-CHASE revision 6569 comparison passed with no unapproved deviation"
          ],
          "previous_hash": "8ff549fe4a445099a0c71684512b57a720fa83496c030b7529903b615b7904b4",
          "hash": "1c86cfa739028131d3f75d8ebffda1ca86743c270a091bd14104d3f9ff73bafc"
        },
        {
          "event_id": "FLOW-TASK-0126-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0126",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0126",
              "state": "Done",
              "event_id": "FLOW-TASK-0126-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0126",
              "state": "Done",
              "event_id": "FLOW-TASK-0126-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0126",
              "state": "Done",
              "event_id": "FLOW-TASK-0126-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0126.yml",
              "item_id": "TASK-0126",
              "state": "Done",
              "event_id": "FLOW-TASK-0126-DONE-20260915"
            }
          ],
          "previous_hash": "1c86cfa739028131d3f75d8ebffda1ca86743c270a091bd14104d3f9ff73bafc",
          "hash": "7c4b7dba7ba5ba4684337bf728afef9045d2bfb376795355998192891ae82d58"
        }
      ],
      "design_traceability": {
        "kind": "direct_ui",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-CHASE"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot baseline through the canonical design package before implementation.",
          "Compare rendered content, geometry, states, interactions, destinations, focus behavior, and required viewports with the referenced design evidence.",
          "Record screenshots and any explicitly approved deviation against the exact application commit and Penpot revision."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0127",
      "display_id": "AEROSIM-TS-127",
      "title": "Verify the complete Release 1.0.0 journey against the approved Penpot baseline",
      "feature_id": "AEROSIM-FT-18",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-18/aerosim-ts-127/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0127.yml",
      "owner": "AeroSim UI/UX, Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Release 1.0.0 user journey",
      "outcome": "One deterministic browser suite proves every in-scope Penpot screen, state, action, and destination is owned and implemented without design drift.",
      "scope": "Create a complete design-conformance suite for the 18 approved page-001 Presentation frames and their interaction-backed states, covering Overview and Entry through Debrief, shared components, navigation, validation, recovery, camera cycle, keyboard focus, viewport containment, and approved deviations.",
      "implementation_artifacts": [
        "applications/web/e2e/release-1.0.0-design-conformance.spec.ts",
        "applications/web/test/fixtures/release-1.0.0-design-scenarios.ts"
      ],
      "inputs": [
        "All feature-level conformance outputs referenced by AEROSIM-UIUX-REL-1.0.0.",
        "A clean production build, deterministic fixtures, approved viewport list, and frozen Penpot revision 6608."
      ],
      "outputs": [
        "A frame-by-frame and interaction-by-interaction parity report tied to the exact application commit and Penpot baseline.",
        "Complete screenshots, route results, focus results, console/network health, and approved-deviation inventory."
      ],
      "failure_boundaries": [
        "Fail on any unowned visible behavior, missing frame/state, dead destination, visual mismatch, console error, failed asset, inaccessible control, or unapproved deviation.",
        "Fail when the canonical approved baseline differs from frozen revision 6608 without a superseding approved package; later editable Penpot HEAD movement alone does not replace the frozen baseline."
      ],
      "exclusions": [
        "The Release 2.0.0 overview frame and viewer-hidden experiments are excluded from product implementation.",
        "This Task verifies the integrated journey and does not replace feature-level implementation ownership."
      ],
      "verification_steps": [
        "Run applications/web/e2e/release-1.0.0-design-conformance.spec.ts against a production build.",
        "Traverse all in-scope frames and interaction states, compare approved screenshots, verify every destination, and retain the exact commit/revision report."
      ],
      "dependencies": [
        "TASK-0092",
        "TASK-0094",
        "TASK-0095",
        "TASK-0097",
        "TASK-0104",
        "TASK-0107",
        "TASK-0108",
        "TASK-0118",
        "TASK-0119",
        "TASK-0120",
        "TASK-0121",
        "TASK-0122",
        "TASK-0123",
        "TASK-0124",
        "TASK-0125",
        "TASK-0126"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0025",
        "NFR-0011"
      ],
      "acceptance_evidence": "Verified delivery: final application PR #178 merged reviewed head efa29dfca4b3aeae594e4de4cd699798aaf62b66 as integration cf94ed7ca6db91c36fbb262273476bd3db997fdc; candidate CI 4843, integration CI 4845, and immutable publication 4844 passed; Harbor readback confirmed Nebula and Singularity digests; Release 1.0.0 conformance passed 18 scenarios at two viewports with 36 screenshots and zero unapproved deviations against frozen Penpot revision 6608. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0127",
        "state": "InBacklog",
        "decision_date": "2026-09-10T22:52:33Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547740767974334526"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0127-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0127",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0127",
            "state": "Done",
            "event_id": "FLOW-TASK-0127-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0127",
            "state": "Done",
            "event_id": "FLOW-TASK-0127-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0127",
            "state": "Done",
            "event_id": "FLOW-TASK-0127-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0127.yml",
            "item_id": "TASK-0127",
            "state": "Done",
            "event_id": "FLOW-TASK-0127-DONE-20260915"
          }
        ],
        "previous_hash": "fbbc82da4adf8d28d06e888ed84faaafccf9d826367d89387febc7a5c5c924de",
        "hash": "d19c43e2922c4bd5013b41d5f18d936f7d4c42293b5b531b7a933144b80d26e3"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0127-READY-20260911",
          "sequence": 1,
          "item_id": "TASK-0127",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-11T05:54:31Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547847596452610119",
              "item_id": "TASK-0127",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0127-READY-20260911"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0127.yml",
              "item_id": "TASK-0127",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0127-READY-20260911"
            }
          ],
          "previous_hash": null,
          "hash": "632019730a978843e1f6fa3a8b01262d7af3cd74abec6338faf3f55ff0174994"
        },
        {
          "event_id": "FLOW-TASK-0127-IN-PROGRESS-20260912",
          "sequence": 2,
          "item_id": "TASK-0127",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T13:43:32Z",
          "conditions": [
            "Wave 29 is current; all declared dependencies are ToBeReleased.",
            "Application branch and PR"
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0127-release-design-conformance-1",
          "claim_base_sha": "635a0eb2318719ba62bd7dd3f6b69b3871a97068",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/174",
              "item_id": "TASK-0127",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0127-IN-PROGRESS-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0127.yml",
              "item_id": "TASK-0127",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0127-IN-PROGRESS-20260912"
            }
          ],
          "previous_hash": "632019730a978843e1f6fa3a8b01262d7af3cd74abec6338faf3f55ff0174994",
          "hash": "212b5ae3bee970309f796f406495551c3e22bba244421a96c6351a6943d0245d"
        },
        {
          "event_id": "FLOW-TASK-0127-TO-BE-RELEASED-20260912",
          "sequence": 3,
          "item_id": "TASK-0127",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-12T19:17:54Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/178",
              "item_id": "TASK-0127",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0127-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/cf94ed7ca6db91c36fbb262273476bd3db997fdc",
              "item_id": "TASK-0127",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0127-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4845",
              "item_id": "TASK-0127",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0127-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4844",
              "item_id": "TASK-0127",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0127-TO-BE-RELEASED-20260912"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0127.yml",
              "item_id": "TASK-0127",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0127-TO-BE-RELEASED-20260912"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/178",
          "reviewed_head": "efa29dfca4b3aeae594e4de4cd699798aaf62b66",
          "integration_revision": "cf94ed7ca6db91c36fbb262273476bd3db997fdc",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4845",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4844",
          "published_images": [
            "library/nebula:cf94ed7ca6db91c36fbb262273476bd3db997fdc@sha256:8474895b6c05d91e3df8f5b41cd0b401a25fc5a6d8f59a03f95b0553c5921253",
            "library/singularity:cf94ed7ca6db91c36fbb262273476bd3db997fdc@sha256:32da1aa9852c86168b3998b52cab8550c3792ca38d8ca13d6d6289c854225315"
          ],
          "acceptance_evidence": [
            "final application PR",
            "candidate CI 4843 attempt 1 passed all nine jobs including complete full E2E and Release 1.0.0 design conformance",
            "integration CI 4845 attempt 1 passed the complete exact-revision validation path",
            "immutable publication 4844 attempt 1 passed and Harbor manifest readback matched both published digests",
            "AEROSIM-UIUX-REL-1.0.0 page 001 remained frozen at approved revision 6608 under discord-message:1548361019594903563",
            "conformance PASS covered 18 scenarios at two viewports with 36 screenshots and zero unapproved deviations"
          ],
          "previous_hash": "212b5ae3bee970309f796f406495551c3e22bba244421a96c6351a6943d0245d",
          "hash": "fbbc82da4adf8d28d06e888ed84faaafccf9d826367d89387febc7a5c5c924de"
        },
        {
          "event_id": "FLOW-TASK-0127-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0127",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0127",
              "state": "Done",
              "event_id": "FLOW-TASK-0127-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0127",
              "state": "Done",
              "event_id": "FLOW-TASK-0127-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0127",
              "state": "Done",
              "event_id": "FLOW-TASK-0127-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0127.yml",
              "item_id": "TASK-0127",
              "state": "Done",
              "event_id": "FLOW-TASK-0127-DONE-20260915"
            }
          ],
          "previous_hash": "fbbc82da4adf8d28d06e888ed84faaafccf9d826367d89387febc7a5c5c924de",
          "hash": "d19c43e2922c4bd5013b41d5f18d936f7d4c42293b5b531b7a933144b80d26e3"
        }
      ],
      "design_traceability": {
        "kind": "verification",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-FULL-JOURNEY"
        ],
        "acceptance": [
          "Resolve the exact approved Penpot baseline through the canonical design package before implementation.",
          "Compare rendered content, geometry, states, interactions, destinations, focus behavior, and required viewports with the referenced design evidence.",
          "Record screenshots and any explicitly approved deviation against the exact application commit and Penpot revision."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0128",
      "display_id": "AEROSIM-TS-128",
      "title": "Bind AeroSim Keycloak configuration to project-scoped Bitwarden keys",
      "feature_id": "AEROSIM-FT-50",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-50/aerosim-ts-128/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0128.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim; corp-v1-aerosim/gondor-v1-tmpl-aerosim; corp-v1-aerosim/gondor-v1-aerosim",
      "component": "Web Application, API Service, and deployment identity configuration",
      "outcome": "AeroSim deployment reads its Keycloak issuer, client identity, API audience, JWKS endpoint, and cache policy from project-scoped Bitwarden keys and uses an AeroSim system client identity rather than a Nebula technology name.",
      "scope": "Replace technology-named and framework-local deployment configuration with the HL_V1_AEROSIM_KEYCLOAK_* contract; use gondor-v1-aerosim as the browser OIDC client ID; map External Secrets into the web runtime and API configuration without exposing values in source; retain Authorization Code with PKCE and local/JWKS token validation boundaries.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:charts/aerosim/values.yaml",
        "corp-v1-aerosim/corp-v1-aerosim:charts/aerosim/values.schema.json",
        "corp-v1-aerosim/corp-v1-aerosim:charts/aerosim/templates/web-configmap.yaml",
        "corp-v1-aerosim/corp-v1-aerosim:charts/aerosim/templates/api-configmap.yaml",
        "corp-v1-aerosim/corp-v1-aerosim:charts/aerosim/templates/web-deployment.yaml",
        "corp-v1-aerosim/corp-v1-aerosim:charts/aerosim/templates/api-deployment.yaml",
        "corp-v1-aerosim/corp-v1-aerosim:tests/helm/keycloak-bitwarden-contract.test.mjs",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/auth/oidc-config.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/api/src/auth/keycloak-config.ts",
        "corp-v1-aerosim/gondor-v1-tmpl-aerosim:cluster/0500-resources/{{ '0600-aerosim' if aerosim.is_enabled }}/externalsecret-aerosim-keycloak.yml.jinja",
        "corp-v1-aerosim/gondor-v1-tmpl-aerosim:cluster/0500-resources/{{ '0600-aerosim' if aerosim.is_enabled }}/aerosim.yml.jinja",
        "corp-v1-aerosim/gondor-v1-tmpl-aerosim:tests/test_aerosim_keycloak_template.py",
        "corp-v1-aerosim/gondor-v1-aerosim:cluster/0500-resources/0600-aerosim/externalsecret-aerosim-keycloak.yml",
        "corp-v1-aerosim/gondor-v1-aerosim:cluster/0500-resources/0600-aerosim/aerosim.yml",
        "corp-v1-aerosim/gondor-v1-aerosim:tests/test_aerosim_keycloak_manifest.py"
      ],
      "inputs": [
        "Bitwarden keys HL_V1_AEROSIM_KEYCLOAK_ISSUER, HL_V1_AEROSIM_KEYCLOAK_CLIENT_ID, HL_V1_AEROSIM_KEYCLOAK_AUDIENCE, HL_V1_AEROSIM_KEYCLOAK_JWKS_URI, and HL_V1_AEROSIM_KEYCLOAK_JWKS_CACHE_TTL_MS.",
        "Keycloak root-realm public client gondor-v1-aerosim with Authorization Code flow and PKCE S256."
      ],
      "outputs": [
        "One retained Kubernetes Secret rendered by External Secrets and consumed by both AeroSim workloads.",
        "Web runtime configuration and API validation configuration sourced from the same project-scoped identity contract.",
        "Fail-closed validation that rejects nebula-web and unscoped VITE_KEYCLOAK_*/KEYCLOAK_* deployment inputs."
      ],
      "failure_boundaries": [
        "Missing or empty Bitwarden-backed values prevent workload readiness rather than silently falling back to sample identity configuration.",
        "A client ID using the Nebula technology name, a wrong issuer, wrong audience, malformed JWKS URI, or cache TTL below 1000 milliseconds fails validation.",
        "Browser code never receives client secrets, database credentials, or administrative Keycloak credentials."
      ],
      "exclusions": [
        "Keycloak user lifecycle, local credentials, MFA policy, federation, and administrator credentials remain outside AeroSim.",
        "This Task does not change Authorization Code with PKCE into a confidential browser flow and does not add a browser client secret."
      ],
      "verification_steps": [
        "Render the application Helm chart and verify system-owned browser/API identity configuration without fallback to nebula-web or sample identity values.",
        "Render the governed GitOps template and prove the ExternalSecret uses the five exact HL_V1_AEROSIM_KEYCLOAK_* remote keys inside the existing conditional AeroSim resource directory.",
        "Verify the rendered Gondor manifests map that retained Secret into the web runtime and API configuration with client ID gondor-v1-aerosim and audience gondor-v1-aerosim-api.",
        "Run focused web/API configuration tests, Helm contract tests, template and rendered-manifest tests, complete repository validation, and production builds."
      ],
      "dependencies": [
        "TASK-0042",
        "TASK-0127"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0057",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: application PR #180 merged and exact integration/publication CI passed; open unmerged GitOps PRs #7 and #18 passed exact-head CI; the retained five-key Bitwarden contract, public PKCE client metadata, and browser/API fail-closed boundaries passed local and remote validation. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0128",
        "state": "InBacklog",
        "decision_date": "2026-09-13T17:55:29Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548677134128644097"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0128-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0128",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0128",
            "state": "Done",
            "event_id": "FLOW-TASK-0128-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0128",
            "state": "Done",
            "event_id": "FLOW-TASK-0128-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0128",
            "state": "Done",
            "event_id": "FLOW-TASK-0128-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0128.yml",
            "item_id": "TASK-0128",
            "state": "Done",
            "event_id": "FLOW-TASK-0128-DONE-20260915"
          }
        ],
        "previous_hash": "5413e85182a39953a520b26ea091f54d0e44064c24c1eda8ecb714b93763e9d9",
        "hash": "a432e3263e4cee04e52bc39040e8bb71c1286240a10de0c0473fedcf2acbc857"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0128-READY-20260913",
          "sequence": 1,
          "item_id": "TASK-0128",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-13T17:55:29Z",
          "conditions": [
            "Implement the correction as ad hoc Release 1.0.0 work in the final dependency wave.",
            "Link the Task to the existing engineering Feature AEROSIM-FT-50.",
            "Use AeroSim system identity naming rather than the Nebula technology name."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548677134128644097",
              "item_id": "TASK-0128",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0128-READY-20260913"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0128.yml",
              "item_id": "TASK-0128",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0128-READY-20260913"
            }
          ],
          "previous_hash": null,
          "hash": "aa695ca56ab7b8761f49e93a64ad1d5cb2e98b54951263e8f62fb5749d068867"
        },
        {
          "event_id": "FLOW-TASK-0128-IN-PROGRESS-20260913",
          "sequence": 2,
          "item_id": "TASK-0128",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-13T19:36:49Z",
          "conditions": [
            "Wave 30 parallel delivery was explicitly authorized by RootAtSkic in Discord message 1548769922509832224.",
            "TASK-0110 claimed first and is InProgress; TASK-0042 and TASK-0127 are ToBeReleased.",
            "Application branch and PR #180 were pushed, opened, and read back before repository content edits.",
            "Deployment PRs remain unmerged pending separate release approval."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0128-keycloak-bitwarden-binding-1",
          "claim_base_sha": "cf94ed7ca6db91c36fbb262273476bd3db997fdc",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/180",
              "item_id": "TASK-0128",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0128-IN-PROGRESS-20260913"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548769922509832224",
              "item_id": "TASK-0128",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0128-IN-PROGRESS-20260913"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0128.yml",
              "item_id": "TASK-0128",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0128-IN-PROGRESS-20260913"
            }
          ],
          "previous_hash": "aa695ca56ab7b8761f49e93a64ad1d5cb2e98b54951263e8f62fb5749d068867",
          "hash": "16c830b82c909e05d560ebcd6a45d247bb0e1fe847e8e7e2adb7cec1ebc4f143"
        },
        {
          "event_id": "FLOW-TASK-0128-TO-BE-RELEASED-20260913",
          "sequence": 3,
          "item_id": "TASK-0128",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-13T20:51:42Z",
          "conditions": [
            "GitOps template PR #7 and rendered deployment PR #18 remain open and unmerged pending separate release approval.",
            "Identity implementation is ready and public provider metadata is verified; no deployment or authenticated end-user journey is claimed."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/180",
              "item_id": "TASK-0128",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0128-TO-BE-RELEASED-20260913"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4883",
              "item_id": "TASK-0128",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0128-TO-BE-RELEASED-20260913"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4885",
              "item_id": "TASK-0128",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0128-TO-BE-RELEASED-20260913"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4884",
              "item_id": "TASK-0128",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0128-TO-BE-RELEASED-20260913"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-tmpl-aerosim/pulls/7",
              "item_id": "TASK-0128",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0128-TO-BE-RELEASED-20260913"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-tmpl-aerosim/actions/runs/4872",
              "item_id": "TASK-0128",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0128-TO-BE-RELEASED-20260913"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/18",
              "item_id": "TASK-0128",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0128-TO-BE-RELEASED-20260913"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/actions/runs/4873",
              "item_id": "TASK-0128",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0128-TO-BE-RELEASED-20260913"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0128.yml",
              "item_id": "TASK-0128",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0128-TO-BE-RELEASED-20260913"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/180",
          "reviewed_head": "83437260f75e9205123ca29a7264514885f15eb3",
          "integration_revision": "240ca8725636f90b71e49649bf9f86c5a7597cb4",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4885",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4884",
          "acceptance_evidence": [
            "application PR #180 merged exact reviewed head 83437260f75e9205123ca29a7264514885f15eb3 as integration revision 240ca8725636f90b71e49649bf9f86c5a7597cb4 after candidate CI 4883 passed",
            "integration CI 4885 and immutable image publication CI 4884 passed on the exact integration revision",
            "template PR #7 at 41fefafa4ecef9c8303921bb0322fe50e970fe5c passed exact-head CI 4872 and remains open and unmerged",
            "rendered GitOps PR #18 at 4d5c8c02e2a9f42c1721a78b4a2f9ac3f15eb428 passed exact-head CI 4873 and remains open and unmerged",
            "template and rendered tests proved one retained aerosim-keycloak Secret maps the five exact project-scoped Bitwarden keys into non-optional web and API references",
            "direct Bitwarden source verification matched all five public Keycloak values; provider discovery, S256 support, and the configured client redirect were recognized without authenticating",
            "focused local web, API, Helm, security, browser, build, lint, typecheck, and audit checks passed; exact-head CI 4883 supplied disposable PostgreSQL and passed the complete integration and browser matrix",
            "AEROSIM-UIUX-REL-1.0.0 UIUX-100-ENTRY behavior remained unchanged and the provider redirect/callback/logout boundary passed browser automation"
          ],
          "previous_hash": "16c830b82c909e05d560ebcd6a45d247bb0e1fe847e8e7e2adb7cec1ebc4f143",
          "hash": "5413e85182a39953a520b26ea091f54d0e44064c24c1eda8ecb714b93763e9d9"
        },
        {
          "event_id": "FLOW-TASK-0128-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0128",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0128",
              "state": "Done",
              "event_id": "FLOW-TASK-0128-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0128",
              "state": "Done",
              "event_id": "FLOW-TASK-0128-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0128",
              "state": "Done",
              "event_id": "FLOW-TASK-0128-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0128.yml",
              "item_id": "TASK-0128",
              "state": "Done",
              "event_id": "FLOW-TASK-0128-DONE-20260915"
            }
          ],
          "previous_hash": "5413e85182a39953a520b26ea091f54d0e44064c24c1eda8ecb714b93763e9d9",
          "hash": "a432e3263e4cee04e52bc39040e8bb71c1286240a10de0c0473fedcf2acbc857"
        }
      ],
      "design_traceability": {
        "kind": "verification",
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "design_refs": [
          "UIUX-100-ENTRY"
        ],
        "acceptance": [
          "Verify that the AeroSim Entry action redirects to the configured gondor-v1-aerosim Keycloak client.",
          "Verify callback, rejection, logout, focus, and viewport behavior against the approved Entry design without changing the user-facing layout.",
          "Record any approved deviation against the exact application and configuration revisions."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0129",
      "display_id": "AEROSIM-TS-129",
      "title": "Freeze immutable Release 1.0.0 candidate",
      "feature_id": "AEROSIM-FT-53",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-9/aerosim-ft-53/aerosim-ts-129/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0129.yml",
      "owner": "AeroSim Releases",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim-documentation; corp-v1-aerosim/corp-v1-aerosim; corp-v1-aerosim/gondor-v1-tmpl-aerosim; corp-v1-aerosim/gondor-v1-aerosim",
      "component": "Release management — immutable candidate evidence",
      "outcome": "One immutable candidate binds the exact application source revision, Harbor web and API digests, chart revision, GitOps template revision, and rendered GitOps revision.",
      "scope": "Resolve every candidate reference through source-specific readback, cross-check that chart and GitOps inputs select the same application images and configuration, and publish one reviewable candidate manifest that fails closed on missing, mutable, or mismatched evidence.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim-documentation:ways-of-working/release-readiness.md",
        "corp-v1-aerosim/corp-v1-aerosim-documentation:data/tasks/TASK-0129.yml"
      ],
      "inputs": [
        "Exact application source revision with successful validation and immutable publication evidence.",
        "Harbor web and API repository names, immutable digests, and source-revision annotations.",
        "Helm chart, project GitOps template, authoritative render, and rendered repository revisions."
      ],
      "outputs": [
        "One immutable Release 1.0.0 candidate evidence manifest with exact revisions, digests, URLs, actor, and capture time.",
        "A mismatch report that identifies the conflicting source and stops promotion."
      ],
      "failure_boundaries": [
        "Reject tag-only, branch-only, latest, missing, inaccessible, or mutable candidate identities.",
        "Reject Harbor annotations, chart values, template values, or rendered manifests that do not resolve to the same application revision and digests.",
        "Do not infer deployment, runtime health, or release completion from candidate freeze."
      ],
      "exclusions": [
        "Do not change application source, publish replacement images, merge GitOps, synchronize Argo CD, or deploy."
      ],
      "verification_steps": [
        "Read back the exact application commit, successful exact-head checks, Harbor manifests, image annotations, chart source, template source, authoritative render output, and rendered repository commit.",
        "Recompute the evidence manifest twice from unchanged inputs and require byte-equivalent candidate identity.",
        "Mutate each reference in focused tests and prove every mismatch fails closed."
      ],
      "dependencies": [],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0059",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: immutable Release 1.0.0.0 candidate: application and chart source 94061818a414e70845f454d4c39792e5e846e033; chart 1.0.0+build.1 at sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da; Nebula sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535; Singularity sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f; template PR #14 and rendered PR #24. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0129",
        "state": "InBacklog",
        "decision_date": "2026-09-14T07:59:57.086Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0129-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0129",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0129",
            "state": "Done",
            "event_id": "FLOW-TASK-0129-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0129",
            "state": "Done",
            "event_id": "FLOW-TASK-0129-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0129",
            "state": "Done",
            "event_id": "FLOW-TASK-0129-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0129.yml",
            "item_id": "TASK-0129",
            "state": "Done",
            "event_id": "FLOW-TASK-0129-DONE-20260915"
          }
        ],
        "previous_hash": "b5e7029b574ed0115f77568c6026321115f2af0a7a3fcd6af1578c47a41477ae",
        "hash": "1e0663b581bffe9dbfb7cd63e7a465cc4fb3654ff53b8d343276120d24becbd9"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0129-READY-20260914",
          "sequence": 1,
          "item_id": "TASK-0129",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-14T07:59:57.086Z",
          "conditions": [
            "Keep this Task a dependency-free sibling at calculated Wave 30.",
            "Fail closed on any candidate reference mismatch."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337",
              "item_id": "TASK-0129",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0129-READY-20260914"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0129.yml",
              "item_id": "TASK-0129",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0129-READY-20260914"
            }
          ],
          "previous_hash": null,
          "hash": "9275f726e607a2a63c563d9c7564d8e3922858df3a75cb2aff53be499c2ce99b"
        },
        {
          "event_id": "FLOW-TASK-0129-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0129",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:17:22Z",
          "conditions": [
            "RootAtSkic explicitly directed AeroSim Releases to pick up and execute the release."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0129",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0129-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0129.yml",
              "item_id": "TASK-0129",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0129-IN-PROGRESS-20260915"
            }
          ],
          "previous_hash": "9275f726e607a2a63c563d9c7564d8e3922858df3a75cb2aff53be499c2ce99b",
          "hash": "4d2f147b8e8675c62eab9d6aa26dba035ed22d5457df099588709912a8495895"
        },
        {
          "event_id": "FLOW-TASK-0129-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0129",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:17:22Z",
          "conditions": [
            "Candidate source, chart, image, template, rendered, and rollback identities were cross-checked through Gitea and Harbor readback.",
            "Any identity mismatch remains fail-closed."
          ],
          "candidate": {
            "release_version": "1.0.0.0",
            "application_source_revision": "94061818a414e70845f454d4c39792e5e846e033",
            "chart_source_revision": "94061818a414e70845f454d4c39792e5e846e033",
            "chart_version": "1.0.0+build.1",
            "chart_digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da",
            "nebula_digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535",
            "singularity_digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f",
            "template_commit": "ba0f231269124e8baca89301cac1ea02cc42ae70",
            "template_merge_revision": "c25d114024f4ca41022ca011fa2c336296834ce8",
            "rendered_head": "9830f9997f2d7c26a3f89a512289fec7f41ef969",
            "rollback_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3"
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0129",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0129-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0129.yml",
              "item_id": "TASK-0129",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0129-TO-BE-RELEASED-20260915"
            }
          ],
          "previous_hash": "4d2f147b8e8675c62eab9d6aa26dba035ed22d5457df099588709912a8495895",
          "hash": "b5e7029b574ed0115f77568c6026321115f2af0a7a3fcd6af1578c47a41477ae"
        },
        {
          "event_id": "FLOW-TASK-0129-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0129",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0129",
              "state": "Done",
              "event_id": "FLOW-TASK-0129-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0129",
              "state": "Done",
              "event_id": "FLOW-TASK-0129-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0129",
              "state": "Done",
              "event_id": "FLOW-TASK-0129-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0129.yml",
              "item_id": "TASK-0129",
              "state": "Done",
              "event_id": "FLOW-TASK-0129-DONE-20260915"
            }
          ],
          "previous_hash": "b5e7029b574ed0115f77568c6026321115f2af0a7a3fcd6af1578c47a41477ae",
          "hash": "1e0663b581bffe9dbfb7cd63e7a465cc4fb3654ff53b8d343276120d24becbd9"
        }
      ],
      "design_traceability": {
        "kind": "verification",
        "acceptance": [
          "This non-visual release Task verifies immutable candidate identity and does not require a new product frame."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0130",
      "display_id": "AEROSIM-TS-130",
      "title": "Publish accurate release notes and operational plan",
      "feature_id": "AEROSIM-FT-53",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-9/aerosim-ft-53/aerosim-ts-130/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0130.yml",
      "owner": "AeroSim Releases",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim-documentation",
      "component": "Release management — release notes and operational plan",
      "outcome": "Release notes and the operational plan reconcile all 144 cumulative Release 1.0.0 Tasks—the original 130 allocations plus 14 Wave 31 corrections—and define executable readiness, migration, compatibility, rollback, capacity, risk, ownership, and acceptance gates.",
      "scope": "Reconcile the immutable candidate against the complete 144-Task inventory, preserving the original 130-Task allocation and separately reporting the 14 Wave 31 corrections; publish changelog and readiness evidence, migration and compatibility decisions, rollback and previous-known-good identity, capacity and operational risk, named owners, and objective acceptance criteria.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim-documentation:ways-of-working/release-readiness.md",
        "corp-v1-aerosim/corp-v1-aerosim-documentation:data/tasks/TASK-0130.yml"
      ],
      "inputs": [
        "TASK-0129 immutable candidate evidence, treated as an operational prerequisite rather than a graph dependency.",
        "Canonical Release 1.0.0 Task inventory and exact lifecycle states.",
        "Changelog, migration, compatibility, rollback, capacity, risk, owner, and acceptance inputs from the governed repositories and runtime plan."
      ],
      "outputs": [
        "Accurate Release 1.0.0 notes covering 144 cumulative Tasks, the original 130 allocations, the 14 Wave 31 corrections, and the current 143 ToBeReleased plus one ReadyForDelivery state.",
        "An operational plan with go/no-go gates, owners, rollback triggers, and acceptance criteria."
      ],
      "failure_boundaries": [
        "Stop publication when Task counts, lifecycle states, candidate references, migration or compatibility statements, owners, or acceptance criteria cannot be reconciled.",
        "Label unknown or unverified operational evidence as a blocker; never convert it into a positive readiness claim.",
        "Do not treat release notes as approval to merge GitOps or deploy."
      ],
      "exclusions": [
        "Do not modify application or GitOps repositories and do not deploy."
      ],
      "verification_steps": [
        "Derive and assert 144 total Release 1.0.0 Tasks with 143 ToBeReleased, one ReadyForDelivery, zero InProgress, and zero Done.",
        "Cross-check every release-note claim to immutable repository, artifact, decision, or runtime-plan evidence.",
        "Review migration, compatibility, rollback, capacity, risk, ownership, and acceptance sections for explicit go/no-go behavior."
      ],
      "dependencies": [],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0059",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: Release 1.0.0.0 operational plan reconciled 144 cumulative Tasks: 140 implementation/acceptance corrections were ToBeReleased before release-verification execution; TASK-0129 through TASK-0132 remained release-verification work. The plan binds immutable candidate identity, no schema migration, current PostgreSQL compatibility, rollback to GitOps revision f3a5fe996ffa551c036211e8e64a3f5de5b534c3, capacity/risk checks, Argo/workload/route/login/flight acceptance, and release ownership. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0130",
        "state": "InBacklog",
        "decision_date": "2026-09-14T07:59:57.086Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0130-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0130",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0130",
            "state": "Done",
            "event_id": "FLOW-TASK-0130-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0130",
            "state": "Done",
            "event_id": "FLOW-TASK-0130-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0130",
            "state": "Done",
            "event_id": "FLOW-TASK-0130-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0130.yml",
            "item_id": "TASK-0130",
            "state": "Done",
            "event_id": "FLOW-TASK-0130-DONE-20260915"
          }
        ],
        "previous_hash": "1d1e2b0a4305a9787eba55776ecba5b06f1c3b8f466847c5cd72dad3c5517b54",
        "hash": "075c7c5679c8ada0f839a11fa2e074fcac67f83a0bab70bbc283d0501f1162c2"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0130-READY-20260914",
          "sequence": 1,
          "item_id": "TASK-0130",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-14T07:59:57.086Z",
          "conditions": [
            "Keep this Task a dependency-free sibling at calculated Wave 30.",
            "Reconcile exactly 130 release Tasks after admission."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337",
              "item_id": "TASK-0130",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0130-READY-20260914"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0130.yml",
              "item_id": "TASK-0130",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0130-READY-20260914"
            }
          ],
          "previous_hash": null,
          "hash": "86e1b188b58b6ab9c38dc8f3f91e71d38c31cc518e629cb7c5dcee1ed1412067"
        },
        {
          "event_id": "FLOW-TASK-0130-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0130",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:17:22Z",
          "conditions": [
            "RootAtSkic explicitly directed AeroSim Releases to pick up and execute the release."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0130",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0130-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0130.yml",
              "item_id": "TASK-0130",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0130-IN-PROGRESS-20260915"
            }
          ],
          "previous_hash": "86e1b188b58b6ab9c38dc8f3f91e71d38c31cc518e629cb7c5dcee1ed1412067",
          "hash": "313acfdbb6e2e93bf0349c2495b0a5f24e40ee7cbb34f55c89d7e8c17d762c40"
        },
        {
          "event_id": "FLOW-TASK-0130-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0130",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:17:22Z",
          "conditions": [
            "No database schema migration is introduced by this candidate.",
            "Rollback retains PostgreSQL storage and restores the previous chart and image digests.",
            "Acceptance requires Argo, workload, route, login, authenticated API, and complete configured flight evidence."
          ],
          "release_plan": {
            "cumulative_tasks": 144,
            "preverification_to_be_released": 140,
            "release_verification_tasks": [
              "TASK-0129",
              "TASK-0130",
              "TASK-0131",
              "TASK-0132"
            ],
            "migration": "none",
            "compatibility": "Existing PostgreSQL, Keycloak ExternalSecret, public routes, and Socket.IO contracts retained.",
            "rollback_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "risk": "New WebGL world and aircraft assets increase browser download/GPU load; runtime budgets and three-world acceptance are mandatory.",
            "owner": "AeroSim Releases"
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0130",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0130-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0130.yml",
              "item_id": "TASK-0130",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0130-TO-BE-RELEASED-20260915"
            }
          ],
          "previous_hash": "313acfdbb6e2e93bf0349c2495b0a5f24e40ee7cbb34f55c89d7e8c17d762c40",
          "hash": "1d1e2b0a4305a9787eba55776ecba5b06f1c3b8f466847c5cd72dad3c5517b54"
        },
        {
          "event_id": "FLOW-TASK-0130-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0130",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0130",
              "state": "Done",
              "event_id": "FLOW-TASK-0130-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0130",
              "state": "Done",
              "event_id": "FLOW-TASK-0130-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0130",
              "state": "Done",
              "event_id": "FLOW-TASK-0130-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0130.yml",
              "item_id": "TASK-0130",
              "state": "Done",
              "event_id": "FLOW-TASK-0130-DONE-20260915"
            }
          ],
          "previous_hash": "1d1e2b0a4305a9787eba55776ecba5b06f1c3b8f466847c5cd72dad3c5517b54",
          "hash": "075c7c5679c8ada0f839a11fa2e074fcac67f83a0bab70bbc283d0501f1162c2"
        }
      ],
      "design_traceability": {
        "kind": "verification",
        "acceptance": [
          "This non-visual release Task verifies the release plan and does not require a new product frame."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0131",
      "display_id": "AEROSIM-TS-131",
      "title": "Prepare and validate the reviewed GitOps deployment change",
      "feature_id": "AEROSIM-FT-53",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-9/aerosim-ft-53/aerosim-ts-131/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0131.yml",
      "owner": "AeroSim Releases",
      "affected_repository": "corp-v1-aerosim/gondor-v1-tmpl-aerosim; corp-v1-aerosim/gondor-v1-aerosim",
      "component": "Release management — reviewed GitOps deployment change",
      "outcome": "A reviewable GitOps change binds the exact Release 1.0.0 candidate through project template source, authoritative rendering, rendered repository output, pull-request identity, and exact-head checks while stopping before merge or deployment.",
      "scope": "Update only the project-owned GitOps template source with exact candidate references, run the authoritative render, verify only expected rendered files change, publish separate template and rendered commits as required by repository policy, open or refresh the exact pull request, and record exact-head check evidence.",
      "implementation_artifacts": [
        "corp-v1-aerosim/gondor-v1-tmpl-aerosim:project-owned AeroSim template sources",
        "corp-v1-aerosim/gondor-v1-aerosim:project-owned rendered AeroSim manifests",
        "corp-v1-aerosim/corp-v1-aerosim-documentation:data/tasks/TASK-0131.yml"
      ],
      "inputs": [
        "TASK-0129 immutable candidate and TASK-0130 operational plan, treated as execution gates rather than graph dependencies.",
        "Repository-native template, render, validation, branch, pull-request, and exact-head CI contracts."
      ],
      "outputs": [
        "Reviewed template-source and rendered GitOps commits that select only the exact Release 1.0.0 candidate.",
        "Pull-request and exact-head check evidence with explicit RootAtSkic approval required before deployment."
      ],
      "failure_boundaries": [
        "Reject template or rendered output that references a different application revision, digest, chart, namespace, route, configuration, or secret name.",
        "Stop when rendering changes unrelated project resources, repository validation fails, the PR head moves, required checks fail, or review evidence is stale.",
        "Stop before merge, Argo CD synchronization, or deployment."
      ],
      "exclusions": [
        "Do not merge the GitOps pull request, synchronize Argo CD, mutate secrets, or deploy AeroSim."
      ],
      "verification_steps": [
        "Validate the project template source, run the authoritative renderer, and compare template inputs with rendered output and TASK-0129 candidate references.",
        "Verify only expected project files changed and all repository-native checks pass.",
        "Read back branch SHAs, pull-request head/base, review state, and every exact-head CI job; assert RootAtSkic approval is still required."
      ],
      "dependencies": [],
      "acceptance_outcome_indexes": [
        2
      ],
      "requirement_ids": [
        "FR-0059",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified delivery: Template PR #14 merged reviewed head ba0f231269124e8baca89301cac1ea02cc42ae70 as c25d114024f4ca41022ca011fa2c336296834ce8. Rendered PR #24 remains open at exact reviewed head 9830f9997f2d7c26a3f89a512289fec7f41ef969. Authoritative render changed only 11 project-owned release/evidence contract files. Local gates passed: template 15/15; rendered Python 14/14; artifact tests 5/5; reconciliation 9/9; conftest 376/376. Both project GitOps forks have Actions disabled, so no remote PR workflow can exist. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0131",
        "state": "InBacklog",
        "decision_date": "2026-09-14T07:59:57.086Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0131-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0131",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0131",
            "state": "Done",
            "event_id": "FLOW-TASK-0131-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0131",
            "state": "Done",
            "event_id": "FLOW-TASK-0131-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0131",
            "state": "Done",
            "event_id": "FLOW-TASK-0131-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0131.yml",
            "item_id": "TASK-0131",
            "state": "Done",
            "event_id": "FLOW-TASK-0131-DONE-20260915"
          }
        ],
        "previous_hash": "e0084535ecab0237cb00ccf41a7afcd154aac9a1d7cc57d395ea704c593bdca9",
        "hash": "bca4df5a9696c494d8a534adc2b97486fa9f562c91446e497203c7dda1f0123f"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0131-READY-20260914",
          "sequence": 1,
          "item_id": "TASK-0131",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-14T07:59:57.086Z",
          "conditions": [
            "Keep this Task a dependency-free sibling at calculated Wave 30.",
            "Stop before GitOps merge, reconciliation, or deployment."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337",
              "item_id": "TASK-0131",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0131-READY-20260914"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0131.yml",
              "item_id": "TASK-0131",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0131-READY-20260914"
            }
          ],
          "previous_hash": null,
          "hash": "4a2c4a831e7914c22d5557c68805516d116e1946435cdc959c3afebedf9ada37"
        },
        {
          "event_id": "FLOW-TASK-0131-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0131",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:17:22Z",
          "conditions": [
            "RootAtSkic explicitly directed AeroSim Releases to pick up and execute the release."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0131",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0131-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0131.yml",
              "item_id": "TASK-0131",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0131-IN-PROGRESS-20260915"
            }
          ],
          "previous_hash": "4a2c4a831e7914c22d5557c68805516d116e1946435cdc959c3afebedf9ada37",
          "hash": "e10fadbdf075a8a2b73d3b293f9ef5e2bcb436eb810144ecf150784b1faf6dc2"
        },
        {
          "event_id": "FLOW-TASK-0131-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0131",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:17:22Z",
          "conditions": [
            "Rendered PR #24 exact head is independently reviewed and mergeable.",
            "Project GitOps forks have Actions disabled; complete repository-native local validation substitutes only for unavailable remote CI and is recorded explicitly.",
            "No merge or deployment occurred before this release-handoff event."
          ],
          "template_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-tmpl-aerosim/pulls/14",
          "template_head": "ba0f231269124e8baca89301cac1ea02cc42ae70",
          "template_merge_revision": "c25d114024f4ca41022ca011fa2c336296834ce8",
          "rendered_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
          "rendered_head": "9830f9997f2d7c26a3f89a512289fec7f41ef969",
          "remote_ci": "unavailable: repository Actions disabled",
          "local_validation": [
            "template 15/15",
            "rendered Python 14/14",
            "artifact selection 5/5",
            "Argo reconciliation 9/9",
            "conftest 376/376"
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0131",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0131-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0131.yml",
              "item_id": "TASK-0131",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0131-TO-BE-RELEASED-20260915"
            }
          ],
          "previous_hash": "e10fadbdf075a8a2b73d3b293f9ef5e2bcb436eb810144ecf150784b1faf6dc2",
          "hash": "e0084535ecab0237cb00ccf41a7afcd154aac9a1d7cc57d395ea704c593bdca9"
        },
        {
          "event_id": "FLOW-TASK-0131-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0131",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0131",
              "state": "Done",
              "event_id": "FLOW-TASK-0131-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0131",
              "state": "Done",
              "event_id": "FLOW-TASK-0131-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0131",
              "state": "Done",
              "event_id": "FLOW-TASK-0131-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0131.yml",
              "item_id": "TASK-0131",
              "state": "Done",
              "event_id": "FLOW-TASK-0131-DONE-20260915"
            }
          ],
          "previous_hash": "e0084535ecab0237cb00ccf41a7afcd154aac9a1d7cc57d395ea704c593bdca9",
          "hash": "bca4df5a9696c494d8a534adc2b97486fa9f562c91446e497203c7dda1f0123f"
        }
      ],
      "design_traceability": {
        "kind": "verification",
        "acceptance": [
          "This non-visual release Task verifies GitOps evidence and does not require a new product frame."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0132",
      "display_id": "AEROSIM-TS-132",
      "title": "Approve, deploy, verify, and close Release 1.0.0",
      "feature_id": "AEROSIM-FT-53",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-9/aerosim-ft-53/aerosim-ts-132/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0132.yml",
      "owner": "AeroSim Releases",
      "affected_repository": "corp-v1-aerosim/gondor-v1-aerosim; corp-v1-aerosim/corp-v1-aerosim-documentation",
      "component": "Release management — approval-gated deployment, verification, rollback, and closure",
      "outcome": "After separate exact-head approval, AeroSim Release 1.0.0 is reconciled, verified through runtime health, route, login, and release acceptance, remains rollback-ready, and receives append-only Task Done and parent closure evidence calculated from verified children.",
      "scope": "Revalidate TASK-0129 through TASK-0131 evidence as operational prerequisites; require RootAtSkic approval on the exact GitOps PR head; reconcile through the governed GitOps workflow; verify Argo CD, workloads, routes, Keycloak login, and release acceptance; record rollback readiness or execution; then append hash-linked Done events for included Tasks and derive Feature and Epic closure.",
      "implementation_artifacts": [
        "corp-v1-aerosim/gondor-v1-aerosim:approved AeroSim rendered manifests and reconciliation evidence",
        "corp-v1-aerosim/corp-v1-aerosim-documentation:data/tasks/TASK-0132.yml",
        "corp-v1-aerosim/corp-v1-aerosim-documentation:canonical Release 1.0.0 lifecycle records"
      ],
      "inputs": [
        "Exact immutable candidate, release plan, reviewed GitOps PR head, successful checks, and RootAtSkic approval.",
        "Previous-known-good revision, rollback procedure, runtime access, route and Keycloak test identities, and release-specific acceptance criteria."
      ],
      "outputs": [
        "Exact approval, GitOps reconciliation, runtime health, route, login, release acceptance, and rollback evidence.",
        "Hash-linked Task Done events followed by Feature and Epic closure calculated from verified children only after the production result is verified."
      ],
      "failure_boundaries": [
        "Do not reconcile when approval is absent, applies to another head, is stale, or any candidate, plan, render, review, or CI gate has changed.",
        "Stop and preserve or restore the previous-known-good state when reconciliation, workload health, route, login, or release acceptance fails.",
        "Never append Done or parent closure from a merged PR, green CI, successful sync, or partial health evidence alone.",
        "This Task remains approval-gated; no deployment occurs from this documentation change."
      ],
      "exclusions": [
        "This documentation change does not approve, merge, synchronize, deploy, roll back, or close Release 1.0.0.",
        "Secret values, credential changes, permission changes, unrelated infrastructure, and destructive operations remain outside scope."
      ],
      "verification_steps": [
        "Immediately before execution, read back the exact GitOps PR head, RootAtSkic approval, complete successful exact-head checks, candidate identity, release plan, and rollback target.",
        "Observe Argo CD reconciliation and verify healthy workloads, release image digests, public routes, Keycloak redirect/callback/logout, and every release-specific acceptance criterion.",
        "Prove rollback readiness and capture rollback outcome if invoked.",
        "Append canonical Task Done events with release version, deployed artifacts and digests, deployment revision, runtime result, acceptance evidence, actor, time, previous hash, and canonical hash; calculate parent closure from verified children."
      ],
      "dependencies": [],
      "acceptance_outcome_indexes": [
        3
      ],
      "requirement_ids": [
        "FR-0059",
        "NFR-0007"
      ],
      "acceptance_evidence": "Verified release completion: Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0132",
        "state": "InBacklog",
        "decision_date": "2026-09-14T07:59:57.086Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0132-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0132",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0132",
            "state": "Done",
            "event_id": "FLOW-TASK-0132-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0132",
            "state": "Done",
            "event_id": "FLOW-TASK-0132-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0132",
            "state": "Done",
            "event_id": "FLOW-TASK-0132-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0132.yml",
            "item_id": "TASK-0132",
            "state": "Done",
            "event_id": "FLOW-TASK-0132-DONE-20260915"
          }
        ],
        "previous_hash": "7701105e0b211ff6c4bad24906db91f77761196a90af7e2ce64f25cd7dfb6df4",
        "hash": "e2cdfc019eb70dd76377840f8e4ab00af3d09095463419bd85d7751e030a3073"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0132-READY-20260914",
          "sequence": 1,
          "item_id": "TASK-0132",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-14T07:59:57.086Z",
          "conditions": [
            "Keep this Task a dependency-free sibling at calculated Wave 30.",
            "Require separate exact-head RootAtSkic approval before deployment.",
            "No deployment occurs from this documentation change."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337",
              "item_id": "TASK-0132",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0132-READY-20260914"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0132.yml",
              "item_id": "TASK-0132",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0132-READY-20260914"
            }
          ],
          "previous_hash": null,
          "hash": "4508fa0c5c946c45aa94a94b732d5b7ae3cb7bc03942c61b8eca00b34361d74d"
        },
        {
          "event_id": "FLOW-TASK-0132-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0132",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [
            "RootAtSkic explicitly authorized Release 1.0.0.0 execution.",
            "Exact rendered candidate head 9830f9997f2d7c26a3f89a512289fec7f41ef969 remained reviewed and mergeable immediately before deployment."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0132",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0132-IN-PROGRESS-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0132",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0132-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0132.yml",
              "item_id": "TASK-0132",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0132-IN-PROGRESS-20260915"
            }
          ],
          "previous_hash": "4508fa0c5c946c45aa94a94b732d5b7ae3cb7bc03942c61b8eca00b34361d74d",
          "hash": "3435f1359424d58ef24fadac3999b90cb30d20fe0477007d9d71f84aa6013bb6"
        },
        {
          "event_id": "FLOW-TASK-0132-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0132",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [
            "Rendered GitOps PR #24 merged exact reviewed head and Argo CD selected chart 1.0.0+build.1."
          ],
          "rendered_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
          "rendered_head": "9830f9997f2d7c26a3f89a512289fec7f41ef969",
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0132",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0132-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0132",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0132-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0132.yml",
              "item_id": "TASK-0132",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0132-TO-BE-RELEASED-20260915"
            }
          ],
          "previous_hash": "3435f1359424d58ef24fadac3999b90cb30d20fe0477007d9d71f84aa6013bb6",
          "hash": "7701105e0b211ff6c4bad24906db91f77761196a90af7e2ce64f25cd7dfb6df4"
        },
        {
          "event_id": "FLOW-TASK-0132-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0132",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0132",
              "state": "Done",
              "event_id": "FLOW-TASK-0132-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0132",
              "state": "Done",
              "event_id": "FLOW-TASK-0132-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0132",
              "state": "Done",
              "event_id": "FLOW-TASK-0132-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0132.yml",
              "item_id": "TASK-0132",
              "state": "Done",
              "event_id": "FLOW-TASK-0132-DONE-20260915"
            }
          ],
          "previous_hash": "7701105e0b211ff6c4bad24906db91f77761196a90af7e2ce64f25cd7dfb6df4",
          "hash": "e2cdfc019eb70dd76377840f8e4ab00af3d09095463419bd85d7751e030a3073"
        }
      ],
      "design_traceability": {
        "kind": "verification",
        "acceptance": [
          "This non-visual release Task verifies approval, deployment, runtime, rollback, and closure evidence and does not require a new product frame."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0133",
      "display_id": "AEROSIM-TS-133",
      "title": "Select an aircraft during Flight Setup",
      "feature_id": "AEROSIM-FT-7",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-7/aerosim-ts-133/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0133.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Flight Setup aircraft selection",
      "outcome": "Start Your Flight opens Flight Setup directly, where the player can select and confirm a supported aircraft alongside the other flight configuration choices.",
      "scope": "Add canonical aircraft selection to Flight Setup and route Start Your Flight there directly; the Hangar remains available for browsing and comparing aircraft but does not block starting a flight. Carry the validated aircraft snapshot through pre-flight and launch.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/home/HomeScreen.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/App.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight-setup/AircraftSelector.tsx"
      ],
      "inputs": [
        "Authenticated production acceptance against AeroSim 1.0.0.0 at source 2d237533af1d277fb86b794f519b31780f4112dd.",
        "Acceptance direction and Wave 31 grouping in Discord message 1549073931644698767.",
        "RootAtSkic directed that Start Your Flight open Flight Setup and aircraft selection occur there in Discord messages 1549087900564717680 and 1549088158296055869."
      ],
      "outputs": [
        "Start Your Flight opens Flight Setup directly with aircraft selection available as part of flight configuration."
      ],
      "failure_boundaries": [
        "Fail release acceptance when the reproduced production behavior remains possible or the correction is not bound to the exact launched configuration."
      ],
      "exclusions": [
        "Do not broaden this correction into later-release Training, Logbook, or unrelated account-management scope."
      ],
      "verification_steps": [
        "Verify a signed-in player can choose Start Your Flight from Home, arrive directly at Flight Setup, and select Trainer, Jet, or Utility there.",
        "Verify the selected aircraft remains identical through pre-flight and launch for mouse and keyboard use.",
        "Verify the Hangar remains reachable for browsing and comparison but is not a prerequisite for a new flight."
      ],
      "dependencies": [],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0012"
      ],
      "acceptance_evidence": "Verified delivery: application PR #186 merged reviewed head bcf0f3f67d89a0fb2af656ca7260254ed8dfeda8 as d1d96fad968f3169e7567b39353d9ec077e5db3f. Candidate CI run 5009 passed all nine required jobs; integration run 5025 and immutable image publication run 5024 passed on that exact integration revision. Focused tests prove Home routes directly to Flight Setup, aircraft selection requires a canonical confirmation, the exact snapshot reaches pre-flight and launch, and Hangar remains optional. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0133",
        "state": "InBacklog",
        "decision_date": "2026-09-14T15:23:55Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549073931644698767"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549088158296055869"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0133-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0133",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0133",
            "state": "Done",
            "event_id": "FLOW-TASK-0133-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0133",
            "state": "Done",
            "event_id": "FLOW-TASK-0133-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0133",
            "state": "Done",
            "event_id": "FLOW-TASK-0133-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0133.yml",
            "item_id": "TASK-0133",
            "state": "Done",
            "event_id": "FLOW-TASK-0133-DONE-20260915"
          }
        ],
        "previous_hash": "a3bcc9271b06d86fbccbb2bf3fe6fc12b1134fe00e1ba01061458e62726d63cc",
        "hash": "08d4a9ab568cbc3ab1cafb26a24093442d50e012bbffa0e638080eca4e39443d"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0133-READY-20260915",
          "sequence": 1,
          "item_id": "TASK-0133",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-15T05:56:03.205Z",
          "conditions": [
            "Wave 31 is explicitly approved as ready for Delivery pickup.",
            "Delivery must claim and execute all Wave 31 Tasks using available worker capacity without inventing a second admission gate."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0133",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0133-READY-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0133.yml",
              "item_id": "TASK-0133",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0133-READY-20260915"
            }
          ],
          "previous_hash": null,
          "hash": "56b4b29894128cd5841e0c81473f932adda014ebf2c2acd1c6b91149a310e8df"
        },
        {
          "event_id": "FLOW-TASK-0133-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0133",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T06:05:52Z",
          "conditions": [
            "Wave 31 was explicitly approved for Delivery pickup by RootAtSkic.",
            "Application branch and PR",
            "TASK-0133 has no Task dependencies."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0133-flight-setup-aircraft-selection-1",
          "claim_base_sha": "2d237533af1d277fb86b794f519b31780f4112dd",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/186",
              "item_id": "TASK-0133",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0133-IN-PROGRESS-20260915"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0133",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0133-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0133.yml",
              "item_id": "TASK-0133",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0133-IN-PROGRESS-20260915"
            }
          ],
          "previous_hash": "56b4b29894128cd5841e0c81473f932adda014ebf2c2acd1c6b91149a310e8df",
          "hash": "0e57a0f9bd780264da7d5952bfda83d34fc96f7ac368f7e23ea2285677b3b70b"
        },
        {
          "event_id": "FLOW-TASK-0133-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0133",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T09:00:30Z",
          "conditions": [],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/186",
          "reviewed_head": "bcf0f3f67d89a0fb2af656ca7260254ed8dfeda8",
          "integration_revision": "d1d96fad968f3169e7567b39353d9ec077e5db3f",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5025",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5024",
          "published_images": [
            "library/nebula:d1d96fad968f3169e7567b39353d9ec077e5db3f@sha256:6f17fca5e66b9637c2d29674e557ad1fd5183db49fb276bd643a0a4fcb4da58d",
            "library/singularity:d1d96fad968f3169e7567b39353d9ec077e5db3f@sha256:1b5dc0ce8758628c72ebb957e96b33bfbbaa5a0ef9220da71aca2af49c476f45"
          ],
          "acceptance_evidence": [
            "application PR",
            "integration CI run 5025 attempt 1 passed exact-revision repository validation, Helm checks, and application tests on the integration revision",
            "publication CI run 5024 attempt 1 passed required validation, image build, publication, and registry digest readback on the exact integration revision",
            "Home Start Your Flight and Fly actions open protected Flight Setup directly while the Hangar remains reachable only as an optional browser and comparison path",
            "aircraft selection fails closed until a supported aircraft is confirmed, and the immutable source-revision-bound snapshot is revalidated at pre-flight and launch boundaries",
            "focused exact-head validation passed 34 tests across the aircraft selector, Flight Setup continuity, Home routing, pre-flight rendering, forged snapshot rejection, and launch initialization"
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/186",
              "item_id": "TASK-0133",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0133-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/d1d96fad968f3169e7567b39353d9ec077e5db3f",
              "item_id": "TASK-0133",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0133-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5009",
              "item_id": "TASK-0133",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0133-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5025",
              "item_id": "TASK-0133",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0133-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5024",
              "item_id": "TASK-0133",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0133-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0133.yml",
              "item_id": "TASK-0133",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0133-TO-BE-RELEASED-20260915"
            }
          ],
          "previous_hash": "0e57a0f9bd780264da7d5952bfda83d34fc96f7ac368f7e23ea2285677b3b70b",
          "hash": "a3bcc9271b06d86fbccbb2bf3fe6fc12b1134fe00e1ba01061458e62726d63cc"
        },
        {
          "event_id": "FLOW-TASK-0133-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0133",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0133",
              "state": "Done",
              "event_id": "FLOW-TASK-0133-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0133",
              "state": "Done",
              "event_id": "FLOW-TASK-0133-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0133",
              "state": "Done",
              "event_id": "FLOW-TASK-0133-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0133.yml",
              "item_id": "TASK-0133",
              "state": "Done",
              "event_id": "FLOW-TASK-0133-DONE-20260915"
            }
          ],
          "previous_hash": "a3bcc9271b06d86fbccbb2bf3fe6fc12b1134fe00e1ba01061458e62726d63cc",
          "hash": "08d4a9ab568cbc3ab1cafb26a24093442d50e012bbffa0e638080eca4e39443d"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-FLIGHT-SETUP"
        ],
        "acceptance": [
          "Verify this acceptance correction against the exact deployed application revision and the referenced Release 1.0.0 design coverage."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0134",
      "display_id": "AEROSIM-TS-134",
      "title": "Integrate world selection into the new-flight journey",
      "feature_id": "AEROSIM-FT-6",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-6/aerosim-ts-134/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0134.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Integrate world selection into the new-flight journey",
      "outcome": "A player starting from Home selects one supported world before pre-flight, and the exact confirmed world remains present through summary and launch.",
      "scope": "Place or connect the canonical WorldSelector in the Home-to-Hangar-to-Flight-Setup journey and carry its validated snapshot through route state without requiring direct navigation to /flight.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/App.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/router.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight-setup/WorldSelector.tsx"
      ],
      "inputs": [
        "Authenticated production acceptance against AeroSim 1.0.0.0 at source 2d237533af1d277fb86b794f519b31780f4112dd.",
        "Acceptance direction and Wave 31 grouping in Discord message 1549073931644698767."
      ],
      "outputs": [
        "A player starting from Home selects one supported world before pre-flight, and the exact confirmed world remains present through summary and launch."
      ],
      "failure_boundaries": [
        "Fail release acceptance when the reproduced production behavior remains possible or the correction is not bound to the exact launched configuration."
      ],
      "exclusions": [
        "Do not broaden this correction into later-release Training, Logbook, or unrelated account-management scope."
      ],
      "verification_steps": [
        "Repeat Home → Start Your Flight → Hangar → Flight Setup and prove a world can be selected before continuing.",
        "Assert the pre-flight and launched configuration contain the same world ID, catalogue version, source revision, and terrain configuration."
      ],
      "dependencies": [
        "TASK-0034"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0011"
      ],
      "acceptance_evidence": "Verified delivery: application PR #185 reviewed head 047beb82b0348fb6a9161e878f61efb596fe581d passed exact-head candidate CI run 5077 and merged as ac9c579a9f98b788a43d702ba33c9a50540b378d. Post-merge repair PR #197 reviewed head 8ed1d52ba474da6e6ff11b8411c881a7f43d055f passed exact-head CI run 5089 and merged as integration revision 861565fedf72d481edb24b83d57bdb2db2e006e7. Integration validation run 5093 passed, immutable image publication run 5092 passed, and the focused TASK-0134 world-handoff tests pass 2/2 within the repository-wide 1,429-test web suite. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0134",
        "state": "InBacklog",
        "decision_date": "2026-09-14T15:23:55Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549073931644698767"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0134-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0134",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0134",
            "state": "Done",
            "event_id": "FLOW-TASK-0134-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0134",
            "state": "Done",
            "event_id": "FLOW-TASK-0134-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0134",
            "state": "Done",
            "event_id": "FLOW-TASK-0134-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0134.yml",
            "item_id": "TASK-0134",
            "state": "Done",
            "event_id": "FLOW-TASK-0134-DONE-20260915"
          }
        ],
        "previous_hash": "903b6b5c516e553f340f6ce23721a5a7131b1558b29706a201ba607e11abf9ca",
        "hash": "cea3a56d1fa3db085eab312052027a08c2d5b38aac3e55303b51f7ee0225b21b"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0134-READY-20260915",
          "sequence": 1,
          "item_id": "TASK-0134",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-15T05:56:03.205Z",
          "conditions": [
            "Wave 31 is explicitly approved as ready for Delivery pickup.",
            "Delivery must claim and execute all Wave 31 Tasks using available worker capacity without inventing a second admission gate."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0134",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0134-READY-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0134.yml",
              "item_id": "TASK-0134",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0134-READY-20260915"
            }
          ],
          "previous_hash": null,
          "hash": "4b4e2f8fbfef384bd24067ba3b899cd8761c97ffa47db94398b5598d5bf78a7d"
        },
        {
          "event_id": "FLOW-TASK-0134-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0134",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T06:06:34.844Z",
          "conditions": [
            "Wave 31 owner admission explicitly authorizes Delivery pickup; stale status and approval presentation do not require another approval."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0134-new-flight-world-selection-1",
              "item_id": "TASK-0134",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0134-IN-PROGRESS-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/185",
              "item_id": "TASK-0134",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0134-IN-PROGRESS-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/65a0499c6238b7d37ec844ea709b00d97642606b",
              "item_id": "TASK-0134",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0134-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0134.yml",
              "item_id": "TASK-0134",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0134-IN-PROGRESS-20260915"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0134-new-flight-world-selection-1",
          "claim_base_sha": "2d237533af1d277fb86b794f519b31780f4112dd",
          "previous_hash": "4b4e2f8fbfef384bd24067ba3b899cd8761c97ffa47db94398b5598d5bf78a7d",
          "hash": "99c68c7af15d7a78c183a47e424212b2358e968338a2d5ceb346623ff0e8b1bc"
        },
        {
          "event_id": "FLOW-TASK-0134-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0134",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T12:25:29Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/185",
              "item_id": "TASK-0134",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0134-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/197",
              "item_id": "TASK-0134",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0134-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/861565fedf72d481edb24b83d57bdb2db2e006e7",
              "item_id": "TASK-0134",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0134-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5077",
              "item_id": "TASK-0134",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0134-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5093",
              "item_id": "TASK-0134",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0134-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5092",
              "item_id": "TASK-0134",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0134-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0134.yml",
              "item_id": "TASK-0134",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0134-TO-BE-RELEASED-20260915"
            }
          ],
          "reviewed_heads": [
            "047beb82b0348fb6a9161e878f61efb596fe581d",
            "8ed1d52ba474da6e6ff11b8411c881a7f43d055f"
          ],
          "integration_revision": "861565fedf72d481edb24b83d57bdb2db2e006e7",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5093",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5092",
          "publication_evidence": "Immutable library/nebula and library/singularity images tagged 861565fedf72d481edb24b83d57bdb2db2e006e7 were pushed and their manifest digests read back successfully by publish-images job 8862.",
          "previous_hash": "99c68c7af15d7a78c183a47e424212b2358e968338a2d5ceb346623ff0e8b1bc",
          "hash": "903b6b5c516e553f340f6ce23721a5a7131b1558b29706a201ba607e11abf9ca"
        },
        {
          "event_id": "FLOW-TASK-0134-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0134",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0134",
              "state": "Done",
              "event_id": "FLOW-TASK-0134-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0134",
              "state": "Done",
              "event_id": "FLOW-TASK-0134-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0134",
              "state": "Done",
              "event_id": "FLOW-TASK-0134-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0134.yml",
              "item_id": "TASK-0134",
              "state": "Done",
              "event_id": "FLOW-TASK-0134-DONE-20260915"
            }
          ],
          "previous_hash": "903b6b5c516e553f340f6ce23721a5a7131b1558b29706a201ba607e11abf9ca",
          "hash": "cea3a56d1fa3db085eab312052027a08c2d5b38aac3e55303b51f7ee0225b21b"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-FLIGHT-SETUP"
        ],
        "acceptance": [
          "Verify this acceptance correction against the exact deployed application revision and the referenced Release 1.0.0 design coverage."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0135",
      "display_id": "AEROSIM-TS-135",
      "title": "Carry confirmed conditions into the launched session",
      "feature_id": "AEROSIM-FT-15",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-15/aerosim-ts-135/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0135.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Carry confirmed conditions into the launched session",
      "outcome": "The condition preset selected in Flight Setup survives pre-flight review and the launched session receives exactly those confirmed values.",
      "scope": "Unify the condition snapshot with the rest of the launch configuration rather than passing it as isolated history state; retain validation against the supported catalogue and prevent stale or partial condition values.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/App.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/router.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight-setup/ConditionSelector.tsx"
      ],
      "inputs": [
        "Authenticated production acceptance against AeroSim 1.0.0.0 at source 2d237533af1d277fb86b794f519b31780f4112dd.",
        "Acceptance direction and Wave 31 grouping in Discord message 1549073931644698767."
      ],
      "outputs": [
        "The condition preset selected in Flight Setup survives pre-flight review and the launched session receives exactly those confirmed values."
      ],
      "failure_boundaries": [
        "Fail release acceptance when the reproduced production behavior remains possible or the correction is not bound to the exact launched configuration."
      ],
      "exclusions": [
        "Do not broaden this correction into later-release Training, Logbook, or unrelated account-management scope."
      ],
      "verification_steps": [
        "Select each supported preset through the visible card and verify the pre-flight summary shows the exact canonical values.",
        "Launch from the reviewed summary and compare the runtime environment snapshot with the confirmed condition snapshot."
      ],
      "dependencies": [
        "TASK-0079"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0022"
      ],
      "acceptance_evidence": "Verified delivery: TASK-0135 application PR #194 reviewed head 75cbaded51d317b0f3c86cbef82906d5f8f0e642 merged as 4dcd80c9fe3778caebaf98f9db24c7d9f7044bbd; exact confirmed conditions passed focused, repository, exact-head CI, integration, immutable publication, and registry-readback gates. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0135",
        "state": "InBacklog",
        "decision_date": "2026-09-14T15:23:55Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549073931644698767"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0135-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0135",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0135",
            "state": "Done",
            "event_id": "FLOW-TASK-0135-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0135",
            "state": "Done",
            "event_id": "FLOW-TASK-0135-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0135",
            "state": "Done",
            "event_id": "FLOW-TASK-0135-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0135.yml",
            "item_id": "TASK-0135",
            "state": "Done",
            "event_id": "FLOW-TASK-0135-DONE-20260915"
          }
        ],
        "previous_hash": "6dde6c91b48c8d3f0193d39a1685aee1fec1a62156adee48f7242f7c06bfe8d4",
        "hash": "3f6e66b8db67761a3e72069b7796a424f2e0186b9e79b133092aee6622b005f3"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0135-READY-20260915",
          "sequence": 1,
          "item_id": "TASK-0135",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-15T05:56:03.205Z",
          "conditions": [
            "Wave 31 is explicitly approved as ready for Delivery pickup.",
            "Delivery must claim and execute all Wave 31 Tasks using available worker capacity without inventing a second admission gate."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0135",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0135-READY-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0135.yml",
              "item_id": "TASK-0135",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0135-READY-20260915"
            }
          ],
          "previous_hash": null,
          "hash": "74f34a3ffc82121886d79df98a4b9cf693d9e5a3f33ad607e5aaba88bac85eac"
        },
        {
          "event_id": "FLOW-TASK-0135-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0135",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T06:21:20.051Z",
          "conditions": [
            "Wave 31 owner admission explicitly authorizes Delivery pickup; stale status and approval presentation do not require another approval."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0135-confirmed-launch-conditions-1",
              "item_id": "TASK-0135",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0135-IN-PROGRESS-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/194",
              "item_id": "TASK-0135",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0135-IN-PROGRESS-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/c61ce1d20bd817477582c37932faa0b02fb94ccd",
              "item_id": "TASK-0135",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0135-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0135.yml",
              "item_id": "TASK-0135",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0135-IN-PROGRESS-20260915"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0135-confirmed-launch-conditions-1",
          "claim_base_sha": "2d237533af1d277fb86b794f519b31780f4112dd",
          "previous_hash": "74f34a3ffc82121886d79df98a4b9cf693d9e5a3f33ad607e5aaba88bac85eac",
          "hash": "fb62dd6e9b665fddee8e6b5e02104e0c9bac607a963ef3045dd474b163d04639"
        },
        {
          "event_id": "FLOW-TASK-0135-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0135",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T09:48:59Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/194",
              "item_id": "TASK-0135",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0135-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5048",
              "item_id": "TASK-0135",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0135-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5050",
              "item_id": "TASK-0135",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0135-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5049",
              "item_id": "TASK-0135",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0135-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0135.yml",
              "item_id": "TASK-0135",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0135-TO-BE-RELEASED-20260915"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/194",
          "reviewed_head": "75cbaded51d317b0f3c86cbef82906d5f8f0e642",
          "integration_revision": "4dcd80c9fe3778caebaf98f9db24c7d9f7044bbd",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5050",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5049",
          "acceptance_evidence": [
            "application PR #194 merged exact reviewed head 75cbaded51d317b0f3c86cbef82906d5f8f0e642 as integration revision 4dcd80c9fe3778caebaf98f9db24c7d9f7044bbd after candidate CI 5048 attempt 1 passed all nine required jobs",
            "integration CI 5050 passed and publication CI 5049 passed required validation, image build, immutable Harbor publication, and registry digest readback on the exact integration revision",
            "focused confirmed-condition and camera-launch compatibility tests passed 48 of 48 after TASK-0136 merged into the application base",
            "Flight Setup carries aircraft and exact confirmed conditions in one launchConfiguration; pre-flight rejects isolated, stale, partial, forged, mutable, and structurally extended condition payloads",
            "repository validation, full tests, browser release-design conformance, formatting, workflow contracts, lint, typecheck, production build, container and Helm validation, and production dependency audit passed"
          ],
          "previous_hash": "fb62dd6e9b665fddee8e6b5e02104e0c9bac607a963ef3045dd474b163d04639",
          "hash": "6dde6c91b48c8d3f0193d39a1685aee1fec1a62156adee48f7242f7c06bfe8d4"
        },
        {
          "event_id": "FLOW-TASK-0135-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0135",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0135",
              "state": "Done",
              "event_id": "FLOW-TASK-0135-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0135",
              "state": "Done",
              "event_id": "FLOW-TASK-0135-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0135",
              "state": "Done",
              "event_id": "FLOW-TASK-0135-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0135.yml",
              "item_id": "TASK-0135",
              "state": "Done",
              "event_id": "FLOW-TASK-0135-DONE-20260915"
            }
          ],
          "previous_hash": "6dde6c91b48c8d3f0193d39a1685aee1fec1a62156adee48f7242f7c06bfe8d4",
          "hash": "3f6e66b8db67761a3e72069b7796a424f2e0186b9e79b133092aee6622b005f3"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-FLIGHT-SETUP"
        ],
        "acceptance": [
          "Verify this acceptance correction against the exact deployed application revision and the referenced Release 1.0.0 design coverage."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0136",
      "display_id": "AEROSIM-TS-136",
      "title": "Connect initial-camera confirmation to launch",
      "feature_id": "AEROSIM-FT-17",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-17/aerosim-ts-136/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0136.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Connect initial-camera confirmation to launch",
      "outcome": "A player can confirm a supported initial camera during pre-flight and continue to launch with that camera active.",
      "scope": "Wire InitialCameraSelector output into the complete launch configuration and provide a governed continuation from camera confirmation to the deliberate launch action.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/preflight/PreflightBriefingScreen.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/App.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/session/launch/camera-launch-adapter.ts"
      ],
      "inputs": [
        "Authenticated production acceptance against AeroSim 1.0.0.0 at source 2d237533af1d277fb86b794f519b31780f4112dd.",
        "Acceptance direction and Wave 31 grouping in Discord message 1549073931644698767."
      ],
      "outputs": [
        "A player can confirm a supported initial camera during pre-flight and continue to launch with that camera active."
      ],
      "failure_boundaries": [
        "Fail release acceptance when the reproduced production behavior remains possible or the correction is not bound to the exact launched configuration."
      ],
      "exclusions": [
        "Do not broaden this correction into later-release Training, Logbook, or unrelated account-management scope."
      ],
      "verification_steps": [
        "Confirm each supported camera in pre-flight and verify the complete summary identifies it.",
        "Launch and prove the first active-flight frame uses the confirmed camera with no fallback to an unrelated default."
      ],
      "dependencies": [
        "TASK-0090"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0024"
      ],
      "acceptance_evidence": "Verified delivery: TASK-0136 application PR #192 reviewed head ce16c1792f31b384f05bef63a50191fb25724c76 merged as aa1c2bd2758b84e8390a0bf9f47198e562a19dba; all four supported cameras and the first active flight view passed focused, repository, exact-head CI, integration, immutable publication, and registry-readback gates. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0136",
        "state": "InBacklog",
        "decision_date": "2026-09-14T15:23:55Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549073931644698767"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0136-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0136",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0136",
            "state": "Done",
            "event_id": "FLOW-TASK-0136-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0136",
            "state": "Done",
            "event_id": "FLOW-TASK-0136-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0136",
            "state": "Done",
            "event_id": "FLOW-TASK-0136-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0136.yml",
            "item_id": "TASK-0136",
            "state": "Done",
            "event_id": "FLOW-TASK-0136-DONE-20260915"
          }
        ],
        "previous_hash": "61e8f91290cdc91cf1d5abe42751344e7c02ddf2d90abce6f18515a5df717e17",
        "hash": "74f63b09476de1c8378f8ec6d48cd2e34bef58b5571783c842a1f3535b9efcb1"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0136-READY-20260915",
          "sequence": 1,
          "item_id": "TASK-0136",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-15T05:56:03.205Z",
          "conditions": [
            "Wave 31 is explicitly approved as ready for Delivery pickup.",
            "Delivery must claim and execute all Wave 31 Tasks using available worker capacity without inventing a second admission gate."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0136",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0136-READY-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0136.yml",
              "item_id": "TASK-0136",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0136-READY-20260915"
            }
          ],
          "previous_hash": null,
          "hash": "38aaa991de8f3339adb5d44ce3b499b1c7032b777e8ffdd50998cdb4dc425dc5"
        },
        {
          "event_id": "FLOW-TASK-0136-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0136",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T07:02:11Z",
          "conditions": [
            "Wave 31 is current; dependency TASK-0090 is ToBeReleased."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0136-camera-launch-confirmation-1",
          "claim_base_sha": "2d237533af1d277fb86b794f519b31780f4112dd",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/192",
              "item_id": "TASK-0136",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0136-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0136.yml",
              "item_id": "TASK-0136",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0136-IN-PROGRESS-20260915"
            }
          ],
          "previous_hash": "38aaa991de8f3339adb5d44ce3b499b1c7032b777e8ffdd50998cdb4dc425dc5",
          "hash": "908ca006b88ff0d241244af8948d6bc7c0c3a46cee666d4d449f48b9839de132"
        },
        {
          "event_id": "FLOW-TASK-0136-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0136",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T09:30:45Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/192",
              "item_id": "TASK-0136",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0136-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5029",
              "item_id": "TASK-0136",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0136-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5041",
              "item_id": "TASK-0136",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0136-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5040",
              "item_id": "TASK-0136",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0136-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0136.yml",
              "item_id": "TASK-0136",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0136-TO-BE-RELEASED-20260915"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/192",
          "reviewed_head": "ce16c1792f31b384f05bef63a50191fb25724c76",
          "integration_revision": "aa1c2bd2758b84e8390a0bf9f47198e562a19dba",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5041",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5040",
          "acceptance_evidence": [
            "application PR",
            "integration CI 5041 passed and publication CI 5040 passed required validation, image build, immutable Harbor publication, and registry digest readback on the exact integration revision",
            "focused camera-launch continuation tests passed 5 of 5 and prove all four supported cameras bind to the complete deliberate launch selection",
            "the first active flight view uses the exact confirmed camera, aircraft, world, and conditions without falling back to the default camera",
            "repository tests, browser release-design conformance, formatting, workflow contracts, package validation, lint, typecheck, production build, container validation, and production dependency audit passed locally or in exact-head CI"
          ],
          "previous_hash": "908ca006b88ff0d241244af8948d6bc7c0c3a46cee666d4d449f48b9839de132",
          "hash": "61e8f91290cdc91cf1d5abe42751344e7c02ddf2d90abce6f18515a5df717e17"
        },
        {
          "event_id": "FLOW-TASK-0136-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0136",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0136",
              "state": "Done",
              "event_id": "FLOW-TASK-0136-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0136",
              "state": "Done",
              "event_id": "FLOW-TASK-0136-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0136",
              "state": "Done",
              "event_id": "FLOW-TASK-0136-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0136.yml",
              "item_id": "TASK-0136",
              "state": "Done",
              "event_id": "FLOW-TASK-0136-DONE-20260915"
            }
          ],
          "previous_hash": "61e8f91290cdc91cf1d5abe42751344e7c02ddf2d90abce6f18515a5df717e17",
          "hash": "74f63b09476de1c8378f8ec6d48cd2e34bef58b5571783c842a1f3535b9efcb1"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-PREFLIGHT"
        ],
        "acceptance": [
          "Verify this acceptance correction against the exact deployed application revision and the referenced Release 1.0.0 design coverage."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0137",
      "display_id": "AEROSIM-TS-137",
      "title": "Assemble one complete pre-flight summary and launch path",
      "feature_id": "AEROSIM-FT-18",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-18/aerosim-ts-137/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0137.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Assemble one complete pre-flight summary and launch path",
      "outcome": "The normal signed-in journey presents aircraft, world, conditions, controls, and initial camera together and offers one deliberate launch that reaches active flight.",
      "scope": "Replace the disconnected Flight Setup, pre-flight, and direct-flight setup states with one ordered launch coordinator backed by the canonical configuration and session repository.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/App.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/router.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/preflight/PreflightBriefingScreen.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/session/launch/session-launch-coordinator.ts"
      ],
      "inputs": [
        "Authenticated production acceptance against AeroSim 1.0.0.0 at source 2d237533af1d277fb86b794f519b31780f4112dd.",
        "Acceptance direction and Wave 31 grouping in Discord message 1549073931644698767."
      ],
      "outputs": [
        "The normal signed-in journey presents aircraft, world, conditions, controls, and initial camera together and offers one deliberate launch that reaches active flight."
      ],
      "failure_boundaries": [
        "Fail release acceptance when the reproduced production behavior remains possible or the correction is not bound to the exact launched configuration."
      ],
      "exclusions": [
        "Do not broaden this correction into later-release Training, Logbook, or unrelated account-management scope."
      ],
      "verification_steps": [
        "Complete Home → Hangar → Flight Setup → pre-flight → launch using ordinary visible controls and assert every reviewed value reaches the session.",
        "Verify refresh, Back, duplicate clicks, and stale history state cannot omit a required value or create more than one session."
      ],
      "dependencies": [
        "TASK-0100",
        "TASK-0104",
        "TASK-0107",
        "TASK-0113",
        "TASK-0116"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0025"
      ],
      "acceptance_evidence": "Verified delivery: application PR #200 reviewed head 20d8c902cec8be95b464a798127e41aa74a74882 merged as 256464535b9f0ada8f3c75e17baa83a08c47471c. The signed-in launch path now presents aircraft, world, conditions, controls, and initial camera from one canonical configuration; creates one repository-backed session; carries the exact configuration and session into active flight; rejects mixed-revision history; preserves Back behavior; and ignores duplicate clicks. Focused TASK-0137 tests passed 4/4, launch-integrity tests passed 8/8, camera continuation tests passed 5/5, candidate CI tasks 6202-6210 passed, integration run 5120 passed, and immutable image publication run 5119 passed. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0137",
        "state": "InBacklog",
        "decision_date": "2026-09-14T15:23:55Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549073931644698767"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0137-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0137",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0137",
            "state": "Done",
            "event_id": "FLOW-TASK-0137-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0137",
            "state": "Done",
            "event_id": "FLOW-TASK-0137-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0137",
            "state": "Done",
            "event_id": "FLOW-TASK-0137-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0137.yml",
            "item_id": "TASK-0137",
            "state": "Done",
            "event_id": "FLOW-TASK-0137-DONE-20260915"
          }
        ],
        "previous_hash": "614d56e5726e70af41eaf4c76352ccccf4c060eee9d1d26df4c6aa41fda6b034",
        "hash": "9e9e755b4822fc880ed1920d45520f919cdeec13c89388f820108f8f9cf07df0"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0137-READY-20260915",
          "sequence": 1,
          "item_id": "TASK-0137",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-15T05:56:03.205Z",
          "conditions": [
            "Wave 31 is explicitly approved as ready for Delivery pickup.",
            "Delivery must claim and execute all Wave 31 Tasks using available worker capacity without inventing a second admission gate."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0137",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0137-READY-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0137.yml",
              "item_id": "TASK-0137",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0137-READY-20260915"
            }
          ],
          "previous_hash": null,
          "hash": "6ca7036a5f1e359f3602a1c4d8d3d7a942f84dd0ede8bc997e99005540820ac3"
        },
        {
          "event_id": "FLOW-TASK-0137-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0137",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T12:55:37Z",
          "conditions": [
            "Wave 31 is explicitly approved for Delivery pickup by FLOW-TASK-0137-READY-20260915.",
            "Dependencies TASK-0100, TASK-0104, TASK-0107, TASK-0113, and TASK-0116 are ToBeReleased."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0137-complete-preflight-launch-path-1",
          "claim_base_sha": "80fe1aff8588ed39f32df1f654f21549c11e955e",
          "claim_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/200",
          "claim_head": "7b3e2f108c060776aebf1865d44ebc632861d61e",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/200",
              "item_id": "TASK-0137",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0137-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0137.yml",
              "item_id": "TASK-0137",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0137-IN-PROGRESS-20260915"
            }
          ],
          "previous_hash": "6ca7036a5f1e359f3602a1c4d8d3d7a942f84dd0ede8bc997e99005540820ac3",
          "hash": "0f0504a72ae55d75e4c56d0883ee725b0a9c42598b9a29cb4cd51744d07404c7"
        },
        {
          "event_id": "FLOW-TASK-0137-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0137",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T14:01:21Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/200",
              "item_id": "TASK-0137",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0137-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/256464535b9f0ada8f3c75e17baa83a08c47471c",
              "item_id": "TASK-0137",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0137-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5120",
              "item_id": "TASK-0137",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0137-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5119",
              "item_id": "TASK-0137",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0137-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0137.yml",
              "item_id": "TASK-0137",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0137-TO-BE-RELEASED-20260915"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/200",
          "reviewed_head": "20d8c902cec8be95b464a798127e41aa74a74882",
          "integration_revision": "256464535b9f0ada8f3c75e17baa83a08c47471c",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5120",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5119",
          "published_images": [
            "library/aerosim-web:256464535b9f0ada8f3c75e17baa83a08c47471c",
            "library/aerosim-api:256464535b9f0ada8f3c75e17baa83a08c47471c"
          ],
          "acceptance_evidence": [
            "4/4 focused TASK-0137 UI cases passed with complete five-section summary, duplicate-click protection, stale-state rejection, and Back behavior",
            "8/8 complete pre-flight launch integrity cases and 5/5 camera continuation cases passed",
            "candidate CI tasks 6202 through 6210 passed on reviewed head 20d8c902cec8be95b464a798127e41aa74a74882",
            "integration validation run 5120 passed on canonical revision 256464535b9f0ada8f3c75e17baa83a08c47471c",
            "immutable publication run 5119 passed required validation, image build, registry publication, digest resolution, and image-set upload"
          ],
          "previous_hash": "0f0504a72ae55d75e4c56d0883ee725b0a9c42598b9a29cb4cd51744d07404c7",
          "hash": "614d56e5726e70af41eaf4c76352ccccf4c060eee9d1d26df4c6aa41fda6b034"
        },
        {
          "event_id": "FLOW-TASK-0137-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0137",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0137",
              "state": "Done",
              "event_id": "FLOW-TASK-0137-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0137",
              "state": "Done",
              "event_id": "FLOW-TASK-0137-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0137",
              "state": "Done",
              "event_id": "FLOW-TASK-0137-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0137.yml",
              "item_id": "TASK-0137",
              "state": "Done",
              "event_id": "FLOW-TASK-0137-DONE-20260915"
            }
          ],
          "previous_hash": "614d56e5726e70af41eaf4c76352ccccf4c060eee9d1d26df4c6aa41fda6b034",
          "hash": "9e9e755b4822fc880ed1920d45520f919cdeec13c89388f820108f8f9cf07df0"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "verification",
        "design_refs": [
          "UIUX-100-FULL-JOURNEY"
        ],
        "acceptance": [
          "Verify this acceptance correction against the exact deployed application revision and the referenced Release 1.0.0 design coverage."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0138",
      "display_id": "AEROSIM-TS-138",
      "title": "Gate active flight behind deliberate launch",
      "feature_id": "AEROSIM-FT-18",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-18/aerosim-ts-138/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0138.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Gate active flight behind deliberate launch",
      "outcome": "The /flight route remains inactive and cannot start until a complete reviewed configuration produces one deliberate launch event.",
      "scope": "Stop constructing and advancing FlightRuntime merely because an authenticated browser opens /flight; bind runtime creation and requestAnimationFrame scheduling to a successful SessionLaunchCoordinator result.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/App.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/router.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/session/launch/session-launch-coordinator.ts"
      ],
      "inputs": [
        "Authenticated production acceptance against AeroSim 1.0.0.0 at source 2d237533af1d277fb86b794f519b31780f4112dd.",
        "Acceptance direction and Wave 31 grouping in Discord message 1549073931644698767."
      ],
      "outputs": [
        "The /flight route remains inactive and cannot start until a complete reviewed configuration produces one deliberate launch event."
      ],
      "failure_boundaries": [
        "Fail release acceptance when the reproduced production behavior remains possible or the correction is not bound to the exact launched configuration."
      ],
      "exclusions": [
        "Do not broaden this correction into later-release Training, Logbook, or unrelated account-management scope."
      ],
      "verification_steps": [
        "Open /flight directly after login and verify no simulation advances and no SIMULATION ACTIVE status appears.",
        "Launch from a complete summary and prove the runtime starts once, while Flight not launched and Simulation active can never be shown together."
      ],
      "dependencies": [
        "TASK-0100",
        "TASK-0104",
        "TASK-0107",
        "TASK-0113",
        "TASK-0116"
      ],
      "acceptance_outcome_indexes": [
        1
      ],
      "requirement_ids": [
        "FR-0025"
      ],
      "acceptance_evidence": "Verified delivery: application PR #201 gates the active /flight runtime behind the successful TASK-0137 deliberate launch result; focused and full validation, candidate CI, integration CI, and immutable image publication passed on exact revisions. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0138",
        "state": "InBacklog",
        "decision_date": "2026-09-14T15:23:55Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549073931644698767"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0138-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0138",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0138",
            "state": "Done",
            "event_id": "FLOW-TASK-0138-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0138",
            "state": "Done",
            "event_id": "FLOW-TASK-0138-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0138",
            "state": "Done",
            "event_id": "FLOW-TASK-0138-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0138.yml",
            "item_id": "TASK-0138",
            "state": "Done",
            "event_id": "FLOW-TASK-0138-DONE-20260915"
          }
        ],
        "previous_hash": "33f65349d20e39e35fbe8de780e2d9832f4691beab0a215363959b0d34078c4a",
        "hash": "9ed1121313a20790df9c9318cf46b726bd56db2db771f28f052bab4e959dc0a7"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0138-READY-20260915",
          "sequence": 1,
          "item_id": "TASK-0138",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-15T05:56:03.205Z",
          "conditions": [
            "Wave 31 is explicitly approved as ready for Delivery pickup.",
            "Delivery must claim and execute all Wave 31 Tasks using available worker capacity without inventing a second admission gate."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0138",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0138-READY-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0138.yml",
              "item_id": "TASK-0138",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0138-READY-20260915"
            }
          ],
          "previous_hash": null,
          "hash": "c874ce4fec0f597679cce761d0e6b283bd9f89a4e78ae8c39af0f72148fed443"
        },
        {
          "event_id": "FLOW-TASK-0138-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0138",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T14:15:24Z",
          "conditions": [
            "Wave 31 is explicitly approved for Delivery pickup by FLOW-TASK-0138-READY-20260915 without a second admission gate.",
            "Dependencies TASK-0100, TASK-0104, TASK-0107, TASK-0113, and TASK-0116 are ToBeReleased.",
            "Application test base includes TASK-0137 integration revision 256464535b9f0ada8f3c75e17baa83a08c47471c."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0138-deliberate-flight-launch-gate-1",
          "claim_base_sha": "256464535b9f0ada8f3c75e17baa83a08c47471c",
          "claim_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/201",
          "claim_head": "56a029c412d5733e081b28cfc7d68e0cbde9f5af",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/201",
              "item_id": "TASK-0138",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0138-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0138.yml",
              "item_id": "TASK-0138",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0138-IN-PROGRESS-20260915"
            }
          ],
          "previous_hash": "c874ce4fec0f597679cce761d0e6b283bd9f89a4e78ae8c39af0f72148fed443",
          "hash": "9c625c194b926978d61112da73d6bc465dc54c05eacdffa69c93afaa0f753324"
        },
        {
          "event_id": "FLOW-TASK-0138-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0138",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T15:19:30Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/201",
              "item_id": "TASK-0138",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0138-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/24aca978c7df40ced27eda895e1d98ed38164e52",
              "item_id": "TASK-0138",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0138-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5131",
              "item_id": "TASK-0138",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0138-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5130",
              "item_id": "TASK-0138",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0138-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0138.yml",
              "item_id": "TASK-0138",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0138-TO-BE-RELEASED-20260915"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/201",
          "reviewed_head": "3d52e1113b81e2925fe9d3cca3edd85ea2cdcff7",
          "integration_revision": "24aca978c7df40ced27eda895e1d98ed38164e52",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5131",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5130",
          "published_images": [
            "library/aerosim-web:24aca978c7df40ced27eda895e1d98ed38164e52",
            "library/aerosim-api:24aca978c7df40ced27eda895e1d98ed38164e52"
          ],
          "acceptance_evidence": [
            "Direct authenticated /flight entry renders Flight not launched without SIMULATION ACTIVE, a flight canvas, FlightRuntime creation, or requestAnimationFrame scheduling.",
            "A complete TASK-0137 pre-flight summary and successful SessionLaunchCoordinator result unlocks the exact selected configuration and one active flight path.",
            "Focused route, pre-flight, camera continuation, Home continuation, and flight-scene browser suites passed; full repository validation and production dependency audit passed.",
            "Candidate CI run 5129 attempt 1 passed all nine required jobs on reviewed head 3d52e1113b81e2925fe9d3cca3edd85ea2cdcff7.",
            "Integration validation run 5131 and immutable image build/publication run 5130 passed on 24aca978c7df40ced27eda895e1d98ed38164e52."
          ],
          "previous_hash": "9c625c194b926978d61112da73d6bc465dc54c05eacdffa69c93afaa0f753324",
          "hash": "33f65349d20e39e35fbe8de780e2d9832f4691beab0a215363959b0d34078c4a"
        },
        {
          "event_id": "FLOW-TASK-0138-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0138",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0138",
              "state": "Done",
              "event_id": "FLOW-TASK-0138-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0138",
              "state": "Done",
              "event_id": "FLOW-TASK-0138-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0138",
              "state": "Done",
              "event_id": "FLOW-TASK-0138-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0138.yml",
              "item_id": "TASK-0138",
              "state": "Done",
              "event_id": "FLOW-TASK-0138-DONE-20260915"
            }
          ],
          "previous_hash": "33f65349d20e39e35fbe8de780e2d9832f4691beab0a215363959b0d34078c4a",
          "hash": "9ed1121313a20790df9c9318cf46b726bd56db2db771f28f052bab4e959dc0a7"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "verification",
        "design_refs": [
          "UIUX-100-FULL-JOURNEY"
        ],
        "acceptance": [
          "Verify this acceptance correction against the exact deployed application revision and the referenced Release 1.0.0 design coverage."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0139",
      "display_id": "AEROSIM-TS-139",
      "title": "Onboard and render the three selected world scenes",
      "feature_id": "AEROSIM-FT-45",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-45/aerosim-ts-139/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0139.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Onboard and render the three selected world scenes",
      "outcome": "Training Airfield, Coastal Range, and Mountain Valley each render the user-selected scene source as a visibly distinct, governed environment in the active flight viewport.",
      "scope": "Securely intake the four replacement self-contained GLBs supplied by RootAtSkic, render and objectively evaluate all four, select the best three for the approved world roles, and preserve only the embedded author/source/CC-BY metadata as supplied provenance. Map Mountainous Desert to training-airfield, Snowy Mountain Landscape to coastal-range, and Mountain Range 01 to mountain-valley. Keep Mountain Lake Terrain as an evaluation-only input and do not ship or register it. Deterministically optimize the selected source bytes into manifest-bound runtime GLBs while AeroSim-owned runway, water, collision, spawn, scale, origin, sky, horizon, and flight boundaries remain explicit.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:assets/evaluations/task-0139-scene-selection.json",
        "corp-v1-aerosim/corp-v1-aerosim:assets/source/terrain-training-airfield-v1.glb",
        "corp-v1-aerosim/corp-v1-aerosim:assets/source/terrain-coastal-range-v1.glb",
        "corp-v1-aerosim/corp-v1-aerosim:assets/source/terrain-mountain-valley-v1.glb",
        "corp-v1-aerosim/corp-v1-aerosim:assets/runtime/terrain-training-airfield-v1.glb",
        "corp-v1-aerosim/corp-v1-aerosim:assets/runtime/terrain-coastal-range-v1.glb",
        "corp-v1-aerosim/corp-v1-aerosim:assets/runtime/terrain-mountain-valley-v1.glb",
        "corp-v1-aerosim/corp-v1-aerosim:assets/manifests/terrain-training-airfield-v1.json",
        "corp-v1-aerosim/corp-v1-aerosim:assets/manifests/terrain-coastal-range-v1.json",
        "corp-v1-aerosim/corp-v1-aerosim:assets/manifests/terrain-mountain-valley-v1.json",
        "corp-v1-aerosim/corp-v1-aerosim:packages/assets/scripts/intake-task-0139.mjs",
        "corp-v1-aerosim/corp-v1-aerosim:packages/assets/scripts/optimize-task-0139.mjs",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/world/WorldTerrainModel.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/world/world-terrain-registry.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/e2e/selected-world-scenes.browser.spec.ts"
      ],
      "inputs": [
        "RootAtSkic explicitly replaced the earlier scene sources with four uploaded GLBs and instructed Delivery to stop licence investigation and continue technical delivery.",
        "All four uploads passed self-contained GLB 2.0 structural parsing with no external resource URI under Node 22.18.0, pnpm 10.15.1, and @gltf-transform 4.5.0.",
        "The author, source, and CC-BY fields embedded in each supplied GLB are retained only as supplied provenance without broader interpretation."
      ],
      "outputs": [
        "A four-candidate evaluation records exact source hashes, measured geometry, objective visual rationale, and the three selected world mappings.",
        "The selected three source GLBs, deterministic optimized runtime GLBs, governed manifests, and production loader mappings ship without synthetic or wrong-world fallback.",
        "AeroSim-owned runway, water, collision/height sampling, spawn, world scale, origin, boundary, lighting, sky, and horizon configuration remain separate from decorative imported geometry.",
        "Three production-browser screenshots show the exact world, selected aircraft, scene attribution, sky/horizon, and runway or water where applicable."
      ],
      "failure_boundaries": [
        "Reject archives with unsafe paths, links, unexpected executable content, external resource references, unsupported formats, stale hashes, or incomplete texture dependencies before parser execution.",
        "Reject a conversion that loses geometry, UVs, intended PBR appearance, correct normals, metre scale, stable origin, orientation, or required texture channels.",
        "Reject runtime output above its approved bytes, triangles, vertices, texture count, texture dimensions, draw calls, GPU-memory, load-time, or frame-time budget.",
        "Do not use the imported visual mesh as flight collision without a separately verified collider or height-sampling representation."
      ],
      "exclusions": [
        "Aircraft acquisition and conversion remain TASK-0146; aircraft camera visibility remains TASK-0140.",
        "Do not copy Google Earth, Google Maps, marketplace preview renders, or any unlicensed imagery into runtime assets."
      ],
      "verification_steps": [
        "Verify exact upload hashes, regular-file and no-follow intake, GLB 2.0 structure, embedded resources, supplied metadata match, and parser/resource ceilings before source promotion.",
        "Run deterministic optimization twice and require identical runtime bytes and manifests; validate every runtime GLB against byte, triangle, vertex, texture, draw-call, animation, and GPU-memory budgets.",
        "Exercise exact and wrong-world mapping, tampered hash, malformed GLB, external URI, unsupported resource, abort, cleanup, and runtime-budget paths; fail closed without a fallback scene.",
        "Run Home → Start Your Flight → Flight Setup → Pre-flight → Launch for all three world IDs through the production Nginx/browser path and verify world, catalogue, source revision, terrain asset, physics profile, and visible scene attribution.",
        "Capture and visually inspect three attributable screenshots with the aircraft visible and the AeroSim-owned runway or water plus sky and horizon where applicable."
      ],
      "dependencies": [
        "TASK-0013"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0052"
      ],
      "acceptance_evidence": "Verified delivery: Application PR #188 merged reviewed head d3745bbe5e912a6c01077487f853a06ea5a5e7c2 as integration revision 22a975cfafbf895e1d05a58f3363984d8a4e3ead. Candidate runs 5144 and 5145 passed; integration run 5147 and immutable image publication run 5146 passed. Three exact manifest-bound world scenes passed production-browser journeys and visual screenshot review. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0139",
        "state": "InBacklog",
        "decision_date": "2026-09-14T15:23:55Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549073931644698767"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549163636079988902"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0139-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0139",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0139",
            "state": "Done",
            "event_id": "FLOW-TASK-0139-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0139",
            "state": "Done",
            "event_id": "FLOW-TASK-0139-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0139",
            "state": "Done",
            "event_id": "FLOW-TASK-0139-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0139.yml",
            "item_id": "TASK-0139",
            "state": "Done",
            "event_id": "FLOW-TASK-0139-DONE-20260915"
          }
        ],
        "previous_hash": "910868e421b5fa734e170f5aec5e04eb30880b8676650993f5795b00fb212a8e",
        "hash": "0ad4211006ad542c8978becc2bc5c2b36c4a4daffd0524e5da79206034a1eb2b"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0139-READY-20260915",
          "sequence": 1,
          "item_id": "TASK-0139",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-15T05:56:03.205Z",
          "conditions": [
            "Wave 31 is explicitly approved as ready for Delivery pickup.",
            "Delivery must claim and execute all Wave 31 Tasks using available worker capacity without inventing a second admission gate."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0139",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0139-READY-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0139.yml",
              "item_id": "TASK-0139",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0139-READY-20260915"
            }
          ],
          "previous_hash": null,
          "hash": "4ff53d2a665a9438176ecc888333ff6abf26ff42b796ca05ee74ce5ca259c5dc"
        },
        {
          "event_id": "FLOW-TASK-0139-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0139",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T06:06:30Z",
          "conditions": [
            "Wave 31 is current; declared dependency TASK-0013 is ToBeReleased.",
            "Application branch and PR #188 were pushed, opened, and read back before repository content edits."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0139-selected-world-scenes-1",
          "claim_base_sha": "2d237533af1d277fb86b794f519b31780f4112dd",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/188",
              "item_id": "TASK-0139",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0139-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0139.yml",
              "item_id": "TASK-0139",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0139-IN-PROGRESS-20260915"
            }
          ],
          "previous_hash": "4ff53d2a665a9438176ecc888333ff6abf26ff42b796ca05ee74ce5ca259c5dc",
          "hash": "15f2ced3c2b5f6ca9d8116d9ab56d4adc85300d7b0f0612f4ddb04cdd7059f47"
        },
        {
          "event_id": "FLOW-TASK-0139-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0139",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T19:51:22Z",
          "conditions": [],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/188",
          "reviewed_head": "d3745bbe5e912a6c01077487f853a06ea5a5e7c2",
          "integration_revision": "22a975cfafbf895e1d05a58f3363984d8a4e3ead",
          "candidate_ci": [
            "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5144",
            "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5145"
          ],
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5147",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5146",
          "published_images": [
            {
              "repository": "library/nebula",
              "tag": "22a975cfafbf895e1d05a58f3363984d8a4e3ead",
              "digest": "sha256:48bce3a838a68c02bca28ee2a48d08081c6ca864be798e1b9910d83816b4cdf6"
            },
            {
              "repository": "library/singularity",
              "tag": "22a975cfafbf895e1d05a58f3363984d8a4e3ead",
              "digest": "sha256:3cf1f3dc34f5989ffdec182b5e44aa3b9027a201bfa8ad19acccafded1162681"
            }
          ],
          "governed_worlds": [
            {
              "world_id": "training-airfield",
              "asset_id": "terrain-training-airfield-v1",
              "source_sha256": "e7653b3b31e4352874d3b0ae34a3f30e0b1c5302ca5a1771b0041ab0530be5d5",
              "runtime_sha256": "7b47ba570b3181e3f165836b58727b38c916a1d4c113c8b0681105fb38109069",
              "screenshot": "artifacts/production-journey/training-airfield.png"
            },
            {
              "world_id": "coastal-range",
              "asset_id": "terrain-coastal-range-v1",
              "source_sha256": "e63e0a05ecfb16aa02f1679c32f129454a3b4671b12158a92b67de1cc66e06ee",
              "runtime_sha256": "5aabdc56a9b62bff6ff487d16626972d2548e8339d570f325715100da597ab7d",
              "screenshot": "artifacts/production-journey/coastal-range.png"
            },
            {
              "world_id": "mountain-valley",
              "asset_id": "terrain-mountain-valley-v1",
              "source_sha256": "c3317cb2659a1b26717daff7c96f65770b5cadf98300d55cad76bd9a8c9e2908",
              "runtime_sha256": "f633188961f3f3e081b9edeaac07eb1d3c7e2f2303ac8edfde1bb5ef8244e654",
              "screenshot": "artifacts/production-journey/mountain-valley.png"
            }
          ],
          "acceptance_evidence": [
            "All four replacement GLBs were technically preflighted and visually inspected; Mountainous Desert, Snowy Mountain Landscape, and Mountain Range 01 were selected for the three approved roles, while Mountain Lake Terrain remains evaluation-only.",
            "Selected runtime outputs are self-contained, deterministic, under 50 MiB, within registry budgets, and exact-hash bound to their source and manifest.",
            "Candidate run 5145 passed all nine required jobs on the reviewed head; integration run 5147 and publication run 5146 passed on the exact merge revision.",
            "Production-browser acceptance passed all three full setup and launch journeys with exact mapping, aircraft visibility, visible scene attribution, and visually distinct runway, water, and mountain-valley evidence."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/188",
              "item_id": "TASK-0139",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0139-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/22a975cfafbf895e1d05a58f3363984d8a4e3ead",
              "item_id": "TASK-0139",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0139-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5147",
              "item_id": "TASK-0139",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0139-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0139.yml",
              "item_id": "TASK-0139",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0139-TO-BE-RELEASED-20260915"
            }
          ],
          "previous_hash": "15f2ced3c2b5f6ca9d8116d9ab56d4adc85300d7b0f0612f4ddb04cdd7059f47",
          "hash": "910868e421b5fa734e170f5aec5e04eb30880b8676650993f5795b00fb212a8e"
        },
        {
          "event_id": "FLOW-TASK-0139-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0139",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0139",
              "state": "Done",
              "event_id": "FLOW-TASK-0139-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0139",
              "state": "Done",
              "event_id": "FLOW-TASK-0139-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0139",
              "state": "Done",
              "event_id": "FLOW-TASK-0139-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0139.yml",
              "item_id": "TASK-0139",
              "state": "Done",
              "event_id": "FLOW-TASK-0139-DONE-20260915"
            }
          ],
          "previous_hash": "910868e421b5fa734e170f5aec5e04eb30880b8676650993f5795b00fb212a8e",
          "hash": "0ad4211006ad542c8978becc2bc5c2b36c4a4daffd0524e5da79206034a1eb2b"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-CHASE"
        ],
        "acceptance": [
          "Verify the three selected worlds against the exact deployed application revision and the referenced Release 1.0.0 active-flight design coverage."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0140",
      "display_id": "AEROSIM-TS-140",
      "title": "Keep the controlled aircraft visible in the chase camera",
      "feature_id": "AEROSIM-FT-12",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-12/aerosim-ts-140/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0140.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Keep the controlled aircraft visible in the chase camera",
      "outcome": "The default chase camera frames and follows the controlled aircraft continuously from the first launched frame.",
      "scope": "Bind the chase camera target and offset to the active aircraft transform and keep the aircraft visible through pitch, bank, yaw, acceleration, restart, and supported viewport changes.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/cameras/primary-chase-camera.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/views/ChaseFlightView.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/RepresentativeFlightScene.tsx"
      ],
      "inputs": [
        "Authenticated production acceptance against AeroSim 1.0.0.0 at source 2d237533af1d277fb86b794f519b31780f4112dd.",
        "Acceptance direction and Wave 31 grouping in Discord message 1549073931644698767."
      ],
      "outputs": [
        "The default chase camera frames and follows the controlled aircraft continuously from the first launched frame."
      ],
      "failure_boundaries": [
        "Fail release acceptance when the reproduced production behavior remains possible or the correction is not bound to the exact launched configuration."
      ],
      "exclusions": [
        "Do not broaden this correction into later-release Training, Logbook, or unrelated account-management scope."
      ],
      "verification_steps": [
        "Launch with the chase camera and verify the selected aircraft is visible and remains framed during sustained keyboard control input.",
        "Verify restart, resize, and camera switching restore a valid chase target without clipping or losing the aircraft."
      ],
      "dependencies": [
        "TASK-0027",
        "TASK-0096"
      ],
      "acceptance_outcome_indexes": [
        0
      ],
      "requirement_ids": [
        "FR-0019"
      ],
      "acceptance_evidence": "Verified delivery: application PR #189 merged reviewed head 2ee43ec0106ae1ee2c033388a41fe27b040deca8 as integration revision 6910b83842f5ff797f901670b669a1d17c9d0af5; candidate CI 5019, integration CI 5021, and immutable image publication CI 5020 passed. Focused tests prove the first rendered frame and sustained updates bind the chase camera to the authoritative aircraft world transform across nested transforms, restart, resize, and camera switching. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0140",
        "state": "InBacklog",
        "decision_date": "2026-09-14T15:23:55Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549073931644698767"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0140-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0140",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0140",
            "state": "Done",
            "event_id": "FLOW-TASK-0140-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0140",
            "state": "Done",
            "event_id": "FLOW-TASK-0140-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0140",
            "state": "Done",
            "event_id": "FLOW-TASK-0140-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0140.yml",
            "item_id": "TASK-0140",
            "state": "Done",
            "event_id": "FLOW-TASK-0140-DONE-20260915"
          }
        ],
        "previous_hash": "33e428b73eacd7062eaab5f52819847f9ad577bcf226c57ba70fb871874beb23",
        "hash": "4860d5c522b29f807ec1b1f2cb1e3f05c1451e22e41926607c0bdf9624463be9"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0140-READY-20260915",
          "sequence": 1,
          "item_id": "TASK-0140",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-15T05:56:03.205Z",
          "conditions": [
            "Wave 31 is explicitly approved as ready for Delivery pickup.",
            "Delivery must claim and execute all Wave 31 Tasks using available worker capacity without inventing a second admission gate."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0140",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0140-READY-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0140.yml",
              "item_id": "TASK-0140",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0140-READY-20260915"
            }
          ],
          "previous_hash": null,
          "hash": "e9b06dc53d9e99c9920da23f112670cc219e4eef780f39cf041968fe14cf9f08"
        },
        {
          "event_id": "FLOW-TASK-0140-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0140",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T06:07:03Z",
          "conditions": [
            "Wave 31 is current; TASK-0027 and TASK-0096 are ToBeReleased.",
            "Application branch and PR"
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0140-chase-camera-aircraft-1",
          "claim_base_sha": "2d237533af1d277fb86b794f519b31780f4112dd",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/189",
              "item_id": "TASK-0140",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0140-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0140.yml",
              "item_id": "TASK-0140",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0140-IN-PROGRESS-20260915"
            }
          ],
          "previous_hash": "e9b06dc53d9e99c9920da23f112670cc219e4eef780f39cf041968fe14cf9f08",
          "hash": "3da620374d856b0e97e152863ee99b0c7f5691186f49aceefec94ef969b611ff"
        },
        {
          "event_id": "FLOW-TASK-0140-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0140",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T08:47:51Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/189",
              "item_id": "TASK-0140",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0140-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5019",
              "item_id": "TASK-0140",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0140-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5021",
              "item_id": "TASK-0140",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0140-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5020",
              "item_id": "TASK-0140",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0140-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0140.yml",
              "item_id": "TASK-0140",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0140-TO-BE-RELEASED-20260915"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/189",
          "reviewed_head": "2ee43ec0106ae1ee2c033388a41fe27b040deca8",
          "integration_revision": "6910b83842f5ff797f901670b669a1d17c9d0af5",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5021",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5020",
          "acceptance_evidence": [
            "application PR",
            "integration CI 5021 passed and publication CI 5020 passed required validation, image build, immutable Harbor publication, and registry digest readback on the exact integration revision",
            "focused chase-camera tests passed 16 of 16 and prove first-frame binding, sustained following, resize, camera switching, restart, and nested world-transform handling",
            "workspace tests, browser release-design conformance, formatting, workflow contracts, package validation, lint, typecheck, production build, container validation, and production dependency audit passed locally or in exact-head CI"
          ],
          "previous_hash": "3da620374d856b0e97e152863ee99b0c7f5691186f49aceefec94ef969b611ff",
          "hash": "33e428b73eacd7062eaab5f52819847f9ad577bcf226c57ba70fb871874beb23"
        },
        {
          "event_id": "FLOW-TASK-0140-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0140",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0140",
              "state": "Done",
              "event_id": "FLOW-TASK-0140-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0140",
              "state": "Done",
              "event_id": "FLOW-TASK-0140-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0140",
              "state": "Done",
              "event_id": "FLOW-TASK-0140-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0140.yml",
              "item_id": "TASK-0140",
              "state": "Done",
              "event_id": "FLOW-TASK-0140-DONE-20260915"
            }
          ],
          "previous_hash": "33e428b73eacd7062eaab5f52819847f9ad577bcf226c57ba70fb871874beb23",
          "hash": "4860d5c522b29f807ec1b1f2cb1e3f05c1451e22e41926607c0bdf9624463be9"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-CHASE"
        ],
        "acceptance": [
          "Verify this acceptance correction against the exact deployed application revision and the referenced Release 1.0.0 design coverage."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0141",
      "display_id": "AEROSIM-TS-141",
      "title": "Prevent false boundary violations before world launch",
      "feature_id": "AEROSIM-FT-2",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-2/aerosim-ts-141/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0141.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Prevent false boundary violations before world launch",
      "outcome": "A boundary warning appears only from the active confirmed world policy and never reports a hard limit before a world has been selected and launched.",
      "scope": "Gate boundary-state evaluation on a valid world launch configuration, initialize position inside that world, and keep warning, recovery, termination, and nominal status mutually consistent.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/App.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/boundary/world-boundary-state-machine.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/presentation/boundary-warning-model.ts"
      ],
      "inputs": [
        "Authenticated production acceptance against AeroSim 1.0.0.0 at source 2d237533af1d277fb86b794f519b31780f4112dd.",
        "Acceptance direction and Wave 31 grouping in Discord message 1549073931644698767."
      ],
      "outputs": [
        "A boundary warning appears only from the active confirmed world policy and never reports a hard limit before a world has been selected and launched."
      ],
      "failure_boundaries": [
        "Fail release acceptance when the reproduced production behavior remains possible or the correction is not bound to the exact launched configuration."
      ],
      "exclusions": [
        "Do not broaden this correction into later-release Training, Logbook, or unrelated account-management scope."
      ],
      "verification_steps": [
        "Open setup and direct-flight routes without a launched world and verify no critical boundary warning is emitted.",
        "Launch each supported world and verify warning, grace, hard-limit, recovery, and termination transitions at its configured distances."
      ],
      "dependencies": [
        "TASK-0034"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0004"
      ],
      "acceptance_evidence": "Verified delivery: application PR #191 merged reviewed head 0308d852971f8cf7552e6dec6e257cea79ad6fc9 as integration revision f5c9fbcee1468a9a871fc9cdb1743c8753301f44; candidate CI 4997, integration CI 4999, and immutable image publication CI 4998 passed. Component and production browser coverage prove boundary warnings remain dormant before a confirmed world launch and preserve governed warning and hard-limit presentation after launch. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0141",
        "state": "InBacklog",
        "decision_date": "2026-09-14T15:23:55Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549073931644698767"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0141-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0141",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0141",
            "state": "Done",
            "event_id": "FLOW-TASK-0141-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0141",
            "state": "Done",
            "event_id": "FLOW-TASK-0141-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0141",
            "state": "Done",
            "event_id": "FLOW-TASK-0141-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0141.yml",
            "item_id": "TASK-0141",
            "state": "Done",
            "event_id": "FLOW-TASK-0141-DONE-20260915"
          }
        ],
        "previous_hash": "00b04789711ecaa0e018f05bb72bdf08318a73de3533b040ddf6498e14317d05",
        "hash": "753876218be2078c3b84c02e0b997881d842a63dcec2898f8e6b0bc30484e18e"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0141-READY-20260915",
          "sequence": 1,
          "item_id": "TASK-0141",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-15T05:56:03.205Z",
          "conditions": [
            "Wave 31 is explicitly approved as ready for Delivery pickup.",
            "Delivery must claim and execute all Wave 31 Tasks using available worker capacity without inventing a second admission gate."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0141",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0141-READY-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0141.yml",
              "item_id": "TASK-0141",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0141-READY-20260915"
            }
          ],
          "previous_hash": null,
          "hash": "eec316dcb08dc7fa3c9a8726c6eff11e431193a491d38ea1dcc513ee7c401f1b"
        },
        {
          "event_id": "FLOW-TASK-0141-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0141",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T06:07:10Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/191",
              "item_id": "TASK-0141",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0141-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0141.yml",
              "item_id": "TASK-0141",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0141-IN-PROGRESS-20260915"
            }
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0141-prelaunch-boundary-guard-1",
          "claim_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/191",
          "claim_head": "d75b98d68e0d4962c5ddb516a5891f1c78211b9c",
          "previous_hash": "eec316dcb08dc7fa3c9a8726c6eff11e431193a491d38ea1dcc513ee7c401f1b",
          "hash": "f2219b7f07d0764cfa6f87f3b374aa20830f4b9337308cd4a43144c08298f25b"
        },
        {
          "event_id": "FLOW-TASK-0141-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0141",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T07:48:49Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/191",
              "item_id": "TASK-0141",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0141-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4997",
              "item_id": "TASK-0141",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0141-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4999",
              "item_id": "TASK-0141",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0141-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4998",
              "item_id": "TASK-0141",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0141-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0141.yml",
              "item_id": "TASK-0141",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0141-TO-BE-RELEASED-20260915"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/191",
          "reviewed_head": "0308d852971f8cf7552e6dec6e257cea79ad6fc9",
          "integration_revision": "f5c9fbcee1468a9a871fc9cdb1743c8753301f44",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4999",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/4998",
          "acceptance_evidence": [
            "application PR #191 merged exact reviewed head 0308d852971f8cf7552e6dec6e257cea79ad6fc9 as integration revision f5c9fbcee1468a9a871fc9cdb1743c8753301f44 after candidate CI 4997 passed all nine required jobs",
            "integration CI 4999 passed and publication CI 4998 passed required validation, image build, immutable Harbor publication, and image-set readback on the exact integration revision",
            "the shipped FlightDeck validates the revision-bound world launch configuration before evaluating boundary state, while launch resets the runtime and boundary state to the governed inside position",
            "focused component and production-browser tests prove no warning or critical hard limit appears before launch and preserve warning, grace, and critical transitions after launch",
            "local focused boundary coverage passed 71 tests; full web and repository validation paths, production build, formatting, lint, typecheck, security, integration, E2E, release-design, container, and production dependency audit evidence passed locally or in exact-head CI"
          ],
          "previous_hash": "f2219b7f07d0764cfa6f87f3b374aa20830f4b9337308cd4a43144c08298f25b",
          "hash": "00b04789711ecaa0e018f05bb72bdf08318a73de3533b040ddf6498e14317d05"
        },
        {
          "event_id": "FLOW-TASK-0141-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0141",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0141",
              "state": "Done",
              "event_id": "FLOW-TASK-0141-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0141",
              "state": "Done",
              "event_id": "FLOW-TASK-0141-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0141",
              "state": "Done",
              "event_id": "FLOW-TASK-0141-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0141.yml",
              "item_id": "TASK-0141",
              "state": "Done",
              "event_id": "FLOW-TASK-0141-DONE-20260915"
            }
          ],
          "previous_hash": "00b04789711ecaa0e018f05bb72bdf08318a73de3533b040ddf6498e14317d05",
          "hash": "753876218be2078c3b84c02e0b997881d842a63dcec2898f8e6b0bc30484e18e"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-WARNING"
        ],
        "acceptance": [
          "Verify this acceptance correction against the exact deployed application revision and the referenced Release 1.0.0 design coverage."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0142",
      "display_id": "AEROSIM-TS-142",
      "title": "Conclude a flight with an outcome and retry path",
      "feature_id": "AEROSIM-FT-5",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-5/aerosim-ts-142/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0142.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Conclude a flight with an outcome and retry path",
      "outcome": "END FLIGHT concludes the active session, presents its recorded outcome, and offers valid retry, restart, or exit actions instead of dropping the player into an empty setup state.",
      "scope": "Connect FlightMenu end action to the completion coordinator and outcome/debrief presentation while preserving the finished session identity and configuration.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/App.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/menu/FlightMenu.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/session/flight-completion-coordinator.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/outcome/invalid-flight-outcome-panel.tsx"
      ],
      "inputs": [
        "Authenticated production acceptance against AeroSim 1.0.0.0 at source 2d237533af1d277fb86b794f519b31780f4112dd.",
        "Acceptance direction and Wave 31 grouping in Discord message 1549073931644698767."
      ],
      "outputs": [
        "END FLIGHT concludes the active session, presents its recorded outcome, and offers valid retry, restart, or exit actions instead of dropping the player into an empty setup state."
      ],
      "failure_boundaries": [
        "Fail release acceptance when the reproduced production behavior remains possible or the correction is not bound to the exact launched configuration."
      ],
      "exclusions": [
        "Do not broaden this correction into later-release Training, Logbook, or unrelated account-management scope."
      ],
      "verification_steps": [
        "End a launched flight and verify a coherent outcome/debrief appears before any new setup begins.",
        "Exercise retry, restart, and exit once each and verify they preserve or reset only the documented session state."
      ],
      "dependencies": [
        "TASK-0096"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0009"
      ],
      "acceptance_evidence": "Verified delivery: END FLIGHT now freezes the active flight, persists and presents its recorded outcome with the launched configuration, and provides retry, restart-setup, and exit-home paths. Application PR #195 merged reviewed head de733f0ce11e176a13a13e53dc74a11ad50ef947 as 99efe45f3e3c3aaab09e92f61dd026b794428dcc. Focused flight-completion tests passed 15 of 15; exact-head CI 5058, integration CI 5062, and immutable image publication CI 5061 passed with Harbor digest readback. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0142",
        "state": "InBacklog",
        "decision_date": "2026-09-14T15:23:55Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549073931644698767"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0142-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0142",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0142",
            "state": "Done",
            "event_id": "FLOW-TASK-0142-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0142",
            "state": "Done",
            "event_id": "FLOW-TASK-0142-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0142",
            "state": "Done",
            "event_id": "FLOW-TASK-0142-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0142.yml",
            "item_id": "TASK-0142",
            "state": "Done",
            "event_id": "FLOW-TASK-0142-DONE-20260915"
          }
        ],
        "previous_hash": "be218758604019d5872ca1c0b452dcbf6a11a32c7a80f2558005d730d4440635",
        "hash": "37502b03180f523e6836921df6a3d3e2c895fa1489ebce1688d100b394d0b10c"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0142-READY-20260915",
          "sequence": 1,
          "item_id": "TASK-0142",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-15T05:56:03.205Z",
          "conditions": [
            "Wave 31 is explicitly approved as ready for Delivery pickup.",
            "Delivery must claim and execute all Wave 31 Tasks using available worker capacity without inventing a second admission gate."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0142",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0142-READY-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0142.yml",
              "item_id": "TASK-0142",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0142-READY-20260915"
            }
          ],
          "previous_hash": null,
          "hash": "a8dc01d6b4979d8b469b1d9ee15aad8d4e446f153db07e8958791cda3ad99537"
        },
        {
          "event_id": "FLOW-TASK-0142-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0142",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T09:04:58Z",
          "conditions": [
            "Wave 31 is current and dependency TASK-0096 is ToBeReleased."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0142-flight-outcome-retry-1",
          "claim_base_sha": "d1d96fad968f3169e7567b39353d9ec077e5db3f",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/195",
              "item_id": "TASK-0142",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0142-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0142.yml",
              "item_id": "TASK-0142",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0142-IN-PROGRESS-20260915"
            }
          ],
          "previous_hash": "a8dc01d6b4979d8b469b1d9ee15aad8d4e446f153db07e8958791cda3ad99537",
          "hash": "51e9d03afda9df7fd7b6a17c018d1196847061a5f36d9fcea6442edda6c4c233"
        },
        {
          "event_id": "FLOW-TASK-0142-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0142",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T10:13:50Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/195",
              "item_id": "TASK-0142",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0142-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5058",
              "item_id": "TASK-0142",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0142-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5062",
              "item_id": "TASK-0142",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0142-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5061",
              "item_id": "TASK-0142",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0142-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0142.yml",
              "item_id": "TASK-0142",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0142-TO-BE-RELEASED-20260915"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/195",
          "reviewed_head": "de733f0ce11e176a13a13e53dc74a11ad50ef947",
          "integration_revision": "99efe45f3e3c3aaab09e92f61dd026b794428dcc",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5062",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5061",
          "published_images": [
            "library/nebula:99efe45f3e3c3aaab09e92f61dd026b794428dcc@sha256:36854485cc8e864baee2fac808c57a78176ec9104dd63aede5f9626c04b09475",
            "library/singularity:99efe45f3e3c3aaab09e92f61dd026b794428dcc@sha256:9dc116597a9940e94fd01d918e72c16fa5488112ebabb925bc1a91b0a19e24d2"
          ],
          "acceptance_evidence": [
            "application PR",
            "integration CI 5062 passed and publication CI 5061 passed required validation, image build, immutable Harbor publication, and registry digest readback on the exact integration revision",
            "focused flight-completion tests passed 15 of 15 and prove END FLIGHT presents the recorded outcome and launched configuration before retry, restart, or exit",
            "retry creates a new session identity with the same launched configuration, restart returns to flight setup, exit returns home, and flight input remains frozen while persistence or the debrief is active",
            "repository formatting, workflow contracts, package validation, lint, typecheck, production build, container validation, browser release-design conformance, environment consistency, and production dependency audit passed locally or in exact-head CI"
          ],
          "previous_hash": "51e9d03afda9df7fd7b6a17c018d1196847061a5f36d9fcea6442edda6c4c233",
          "hash": "be218758604019d5872ca1c0b452dcbf6a11a32c7a80f2558005d730d4440635"
        },
        {
          "event_id": "FLOW-TASK-0142-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0142",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0142",
              "state": "Done",
              "event_id": "FLOW-TASK-0142-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0142",
              "state": "Done",
              "event_id": "FLOW-TASK-0142-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0142",
              "state": "Done",
              "event_id": "FLOW-TASK-0142-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0142.yml",
              "item_id": "TASK-0142",
              "state": "Done",
              "event_id": "FLOW-TASK-0142-DONE-20260915"
            }
          ],
          "previous_hash": "be218758604019d5872ca1c0b452dcbf6a11a32c7a80f2558005d730d4440635",
          "hash": "37502b03180f523e6836921df6a3d3e2c895fa1489ebce1688d100b394d0b10c"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-OUTCOME-DEBRIEF"
        ],
        "acceptance": [
          "Verify this acceptance correction against the exact deployed application revision and the referenced Release 1.0.0 design coverage."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0143",
      "display_id": "AEROSIM-TS-143",
      "title": "Persist governed flight completion for the active pilot",
      "feature_id": "AEROSIM-FT-33",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-33/aerosim-ts-143/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0143.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Persist governed flight completion for the active pilot",
      "outcome": "Ending or completing a launched flight writes one authenticated pilot-scoped progress record that can be retrieved in a later session.",
      "scope": "Wire flight completion to the authenticated progress API with idempotent session identity, canonical configuration references, outcome, checkpoint, and server ordering.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/session/flight-completion-coordinator.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/progress/progress-client.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/api/src/services/save-pilot-record.ts"
      ],
      "inputs": [
        "Authenticated production acceptance against AeroSim 1.0.0.0 at source 2d237533af1d277fb86b794f519b31780f4112dd.",
        "Acceptance direction and Wave 31 grouping in Discord message 1549073931644698767."
      ],
      "outputs": [
        "Ending or completing a launched flight writes one authenticated pilot-scoped progress record that can be retrieved in a later session."
      ],
      "failure_boundaries": [
        "Fail release acceptance when the reproduced production behavior remains possible or the correction is not bound to the exact launched configuration."
      ],
      "exclusions": [
        "Do not broaden this correction into later-release Training, Logbook, or unrelated account-management scope."
      ],
      "verification_steps": [
        "Observe one authenticated persistence request after a launched flight completes or ends and verify its stored owner and canonical fields.",
        "Sign out and back in, then prove only the same pilot can retrieve the resulting resumable or completed activity without duplicate writes."
      ],
      "dependencies": [
        "TASK-0020",
        "TASK-0060"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0040"
      ],
      "acceptance_evidence": "Verified delivery: application PR #190 merged reviewed head 46a24941a7227fdce23af2f0409e37b9b76f7346 as integration revision 23a7c46cc6c872ef210c76930b325f8b2889a340; candidate CI 5011, integration CI 5015, and immutable image publication CI 5014 passed. Browser, API, and disposable PostgreSQL coverage prove one idempotent authenticated pilot-scoped completion record survives a later client and remains isolated from another pilot. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0143",
        "state": "InBacklog",
        "decision_date": "2026-09-14T15:23:55Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549073931644698767"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0143-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0143",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0143",
            "state": "Done",
            "event_id": "FLOW-TASK-0143-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0143",
            "state": "Done",
            "event_id": "FLOW-TASK-0143-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0143",
            "state": "Done",
            "event_id": "FLOW-TASK-0143-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0143.yml",
            "item_id": "TASK-0143",
            "state": "Done",
            "event_id": "FLOW-TASK-0143-DONE-20260915"
          }
        ],
        "previous_hash": "db5ce6144b0dd92649c23ee5027deab12604bea181dc1cd78acc6fc6236771e0",
        "hash": "002bdf1d4cd17952041782f2536d9cf9d5648dec8d05d20dd2394fdda6d93a39"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0143-READY-20260915",
          "sequence": 1,
          "item_id": "TASK-0143",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-15T05:56:03.205Z",
          "conditions": [
            "Wave 31 is explicitly approved as ready for Delivery pickup.",
            "Delivery must claim and execute all Wave 31 Tasks using available worker capacity without inventing a second admission gate."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0143",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0143-READY-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0143.yml",
              "item_id": "TASK-0143",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0143-READY-20260915"
            }
          ],
          "previous_hash": null,
          "hash": "2c217a8d33d732e3b00ee7bf94193ea21a5f7628d1b09a9e96133dccc1c90cb5"
        },
        {
          "event_id": "FLOW-TASK-0143-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0143",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T06:06:37Z",
          "conditions": [
            "Wave 31 is explicitly approved as ready for Delivery pickup.",
            "TASK-0020 and TASK-0060 are ToBeReleased and satisfy TASK-0143 dependencies.",
            "Application branch and PR"
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0143-persist-flight-completion-1",
          "claim_base_sha": "2d237533af1d277fb86b794f519b31780f4112dd",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/190",
              "item_id": "TASK-0143",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0143-IN-PROGRESS-20260915"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0143",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0143-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0143.yml",
              "item_id": "TASK-0143",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0143-IN-PROGRESS-20260915"
            }
          ],
          "previous_hash": "2c217a8d33d732e3b00ee7bf94193ea21a5f7628d1b09a9e96133dccc1c90cb5",
          "hash": "b72be80287fd04270c4073679f88cf2c3af66efabd7840088adf7fccd081f566"
        },
        {
          "event_id": "FLOW-TASK-0143-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0143",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T08:29:51Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/190",
              "item_id": "TASK-0143",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0143-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5011",
              "item_id": "TASK-0143",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0143-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5015",
              "item_id": "TASK-0143",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0143-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5014",
              "item_id": "TASK-0143",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0143-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0143.yml",
              "item_id": "TASK-0143",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0143-TO-BE-RELEASED-20260915"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/190",
          "reviewed_head": "46a24941a7227fdce23af2f0409e37b9b76f7346",
          "integration_revision": "23a7c46cc6c872ef210c76930b325f8b2889a340",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5015",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5014",
          "acceptance_evidence": [
            "application PR",
            "integration CI 5015 passed and publication CI 5014 passed required validation, image build, immutable Harbor publication, and registry digest readback on the exact integration revision",
            "the shipped Flight Menu builds one terminal checkpoint from the exact launched aircraft, world, and conditions and waits for a saved canonical response before navigation",
            "API and disposable PostgreSQL tests prove authenticated ownership, idempotent duplicate handling, later-client retrieval, and cross-pilot isolation",
            "focused integration, root tests, formatting, workflow contracts, package validation, lint, typecheck, production build, security, browser, container, and production dependency audit evidence passed locally or in exact-head CI"
          ],
          "previous_hash": "b72be80287fd04270c4073679f88cf2c3af66efabd7840088adf7fccd081f566",
          "hash": "db5ce6144b0dd92649c23ee5027deab12604bea181dc1cd78acc6fc6236771e0"
        },
        {
          "event_id": "FLOW-TASK-0143-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0143",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0143",
              "state": "Done",
              "event_id": "FLOW-TASK-0143-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0143",
              "state": "Done",
              "event_id": "FLOW-TASK-0143-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0143",
              "state": "Done",
              "event_id": "FLOW-TASK-0143-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0143.yml",
              "item_id": "TASK-0143",
              "state": "Done",
              "event_id": "FLOW-TASK-0143-DONE-20260915"
            }
          ],
          "previous_hash": "db5ce6144b0dd92649c23ee5027deab12604bea181dc1cd78acc6fc6236771e0",
          "hash": "002bdf1d4cd17952041782f2536d9cf9d5648dec8d05d20dd2394fdda6d93a39"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "verification",
        "design_refs": [
          "UIUX-100-FULL-JOURNEY"
        ],
        "acceptance": [
          "Verify this acceptance correction against the exact deployed application revision and the referenced Release 1.0.0 design coverage."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0144",
      "display_id": "AEROSIM-TS-144",
      "title": "Represent no resumable activity as a normal home state",
      "feature_id": "AEROSIM-FT-34",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-2/aerosim-ft-34/aerosim-ts-144/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0144.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Represent no resumable activity as a normal home state",
      "outcome": "A pilot with no resumable activity sees a stable empty state without an error-level 404 request or misleading retry action.",
      "scope": "Align the latest-resumable API and home projection on an explicit non-error empty response while retaining fail-closed handling for authentication, database, and malformed-record failures.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/api/src/progress/resume-context.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/present-only-a-valid-resumable-activity-on-home.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/home/HomeScreen.tsx"
      ],
      "inputs": [
        "Authenticated production acceptance against AeroSim 1.0.0.0 at source 2d237533af1d277fb86b794f519b31780f4112dd.",
        "Acceptance direction and Wave 31 grouping in Discord message 1549073931644698767."
      ],
      "outputs": [
        "A pilot with no resumable activity sees a stable empty state without an error-level 404 request or misleading retry action."
      ],
      "failure_boundaries": [
        "Fail release acceptance when the reproduced production behavior remains possible or the correction is not bound to the exact launched configuration."
      ],
      "exclusions": [
        "Do not broaden this correction into later-release Training, Logbook, or unrelated account-management scope."
      ],
      "verification_steps": [
        "Use a new authenticated pilot and verify Home reports no resumable activity with a successful API response and no console resource error.",
        "Create valid and invalid saved activities and verify only the latest valid resumable record enables Resume while real failures remain distinguishable."
      ],
      "dependencies": [
        "TASK-0068"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0041"
      ],
      "acceptance_evidence": "Verified delivery: application PR #196 exposes the authenticated latest-resumable API, returns a typed successful empty response for a pilot with no valid resumable activity, preserves distinct authentication, retrieval, and malformed-record failures, and keeps Home stable without Resume or a misleading retry action. Exact-head and integration CI passed and immutable application images were published for the integration revision; production rollout and the final authenticated release scenario remain Release-owned. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0144",
        "state": "InBacklog",
        "decision_date": "2026-09-14T15:23:55Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549073931644698767"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0144-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0144",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0144",
            "state": "Done",
            "event_id": "FLOW-TASK-0144-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0144",
            "state": "Done",
            "event_id": "FLOW-TASK-0144-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0144",
            "state": "Done",
            "event_id": "FLOW-TASK-0144-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0144.yml",
            "item_id": "TASK-0144",
            "state": "Done",
            "event_id": "FLOW-TASK-0144-DONE-20260915"
          }
        ],
        "previous_hash": "178ac60e5d8c6522f4c4275ccfb4ba47b23dd6298f9b877a97f1702bd98a7823",
        "hash": "610f40b4e6a4e83281a1af4658dec7d32bbb6ae27ef18f84bb3c4968610af317"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0144-READY-20260915",
          "sequence": 1,
          "item_id": "TASK-0144",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-15T05:56:03.205Z",
          "conditions": [
            "Wave 31 is explicitly approved as ready for Delivery pickup.",
            "Delivery must claim and execute all Wave 31 Tasks using available worker capacity without inventing a second admission gate."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0144",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0144-READY-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0144.yml",
              "item_id": "TASK-0144",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0144-READY-20260915"
            }
          ],
          "previous_hash": null,
          "hash": "10188f1d563288117679124b965b09ab3fd51f23e2ca05a711d938fca411699c"
        },
        {
          "event_id": "FLOW-TASK-0144-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0144",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T09:06:22Z",
          "conditions": [
            "Wave 31 was explicitly approved for Delivery pickup by RootAtSkic.",
            "Application branch and PR",
            "TASK-0068 is ToBeReleased; HomeScreen production edits remain serialized behind active TASK-0133."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0144-no-resumable-home-state-1",
          "claim_base_sha": "d1d96fad968f3169e7567b39353d9ec077e5db3f",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/196",
              "item_id": "TASK-0144",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0144-IN-PROGRESS-20260915"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0144",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0144-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0144.yml",
              "item_id": "TASK-0144",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0144-IN-PROGRESS-20260915"
            }
          ],
          "previous_hash": "10188f1d563288117679124b965b09ab3fd51f23e2ca05a711d938fca411699c",
          "hash": "1354ca9e75590f2b83e21e22eee92b8237ed54bf0beb6f72f67b23fa29600a49"
        },
        {
          "event_id": "FLOW-TASK-0144-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0144",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T10:01:34Z",
          "conditions": [],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/196",
          "reviewed_head": "ac55fc6c5af8ca9875c3c3164da1f60e8a386a3b",
          "integration_revision": "321387c767a57d543e1708d1cb3459e603ddfaf6",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5056",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5055",
          "acceptance_evidence": [
            "application PR",
            "integration CI run 5056 attempt 1 passed exact-revision repository validation on the integration revision",
            "publication CI run 5055 attempt 1 passed required validation, image build, immutable Harbor publication, registry digest readback, and artifact retention on the integration revision",
            "focused API route and persistence tests passed 11 of 11 for typed empty and valid responses, authenticated pilot isolation, timestamp and sequence serialization, and fail-closed retrieval and malformed-record handling",
            "the complete API unit suite passed 155 tests and the complete Web suite passed 1,425 tests plus all required browser suites; formatting, lint, typecheck, production build, workflow contracts, security, container, Helm, and production dependency audit passed",
            "Home presents the typed no-resumable response as a normal no-continuation state without Resume or retry while only a validated latest activity enables Resume"
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/196",
              "item_id": "TASK-0144",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0144-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/321387c767a57d543e1708d1cb3459e603ddfaf6",
              "item_id": "TASK-0144",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0144-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5052",
              "item_id": "TASK-0144",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0144-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5056",
              "item_id": "TASK-0144",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0144-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5055",
              "item_id": "TASK-0144",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0144-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0144.yml",
              "item_id": "TASK-0144",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0144-TO-BE-RELEASED-20260915"
            }
          ],
          "previous_hash": "1354ca9e75590f2b83e21e22eee92b8237ed54bf0beb6f72f67b23fa29600a49",
          "hash": "178ac60e5d8c6522f4c4275ccfb4ba47b23dd6298f9b877a97f1702bd98a7823"
        },
        {
          "event_id": "FLOW-TASK-0144-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0144",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0144",
              "state": "Done",
              "event_id": "FLOW-TASK-0144-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0144",
              "state": "Done",
              "event_id": "FLOW-TASK-0144-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0144",
              "state": "Done",
              "event_id": "FLOW-TASK-0144-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0144.yml",
              "item_id": "TASK-0144",
              "state": "Done",
              "event_id": "FLOW-TASK-0144-DONE-20260915"
            }
          ],
          "previous_hash": "178ac60e5d8c6522f4c4275ccfb4ba47b23dd6298f9b877a97f1702bd98a7823",
          "hash": "610f40b4e6a4e83281a1af4658dec7d32bbb6ae27ef18f84bb3c4968610af317"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-HOME"
        ],
        "acceptance": [
          "Verify this acceptance correction against the exact deployed application revision and the referenced Release 1.0.0 design coverage."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0145",
      "display_id": "AEROSIM-TS-145",
      "title": "Display the deployed product release identity",
      "feature_id": "AEROSIM-FT-53",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-9/aerosim-ft-53/aerosim-ts-145/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0145.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Display the deployed product release identity",
      "outcome": "The production flight experience visibly identifies product version 1.0.0.0 and cannot display stale BUILD 0.2.0 or PLAYABLE FLIGHT ALPHA branding.",
      "scope": "Source the visible product version from the governed release metadata carried through build and deployment, and validate it against the immutable application and chart release identity.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/App.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/build-environment.ts",
        "corp-v1-aerosim/corp-v1-aerosim:charts/aerosim/Chart.yaml"
      ],
      "inputs": [
        "Authenticated production acceptance against AeroSim 1.0.0.0 at source 2d237533af1d277fb86b794f519b31780f4112dd.",
        "Acceptance direction and Wave 31 grouping in Discord message 1549073931644698767."
      ],
      "outputs": [
        "The production flight experience visibly identifies product version 1.0.0.0 and cannot display stale BUILD 0.2.0 or PLAYABLE FLIGHT ALPHA branding."
      ],
      "failure_boundaries": [
        "Fail release acceptance when the reproduced production behavior remains possible or the correction is not bound to the exact launched configuration."
      ],
      "exclusions": [
        "Do not broaden this correction into later-release Training, Logbook, or unrelated account-management scope."
      ],
      "verification_steps": [
        "Open the deployed Home and flight experience and verify the visible version equals product release 1.0.0.0.",
        "Mutate build, chart, or runtime release metadata independently and require release validation to reject the mismatch."
      ],
      "dependencies": [],
      "acceptance_outcome_indexes": [
        0,
        3
      ],
      "requirement_ids": [
        "FR-0059"
      ],
      "acceptance_evidence": "Verified delivery: the production flight footer displays product release 1.0.0.0 from governed build and runtime metadata and rejects stale or mismatched identity. Application PR #187 plus forward fixes #198 and #199 are integrated at 80fe1aff8588ed39f32df1f654f21549c11e955e; candidate CI 5104, integration CI 5106, and immutable image publication CI 5105 passed with Harbor digest readback. Production rollout and authenticated deployed acceptance remain Release-owned. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0145",
        "state": "InBacklog",
        "decision_date": "2026-09-14T15:23:55Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549073931644698767"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0145-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0145",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0145",
            "state": "Done",
            "event_id": "FLOW-TASK-0145-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0145",
            "state": "Done",
            "event_id": "FLOW-TASK-0145-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0145",
            "state": "Done",
            "event_id": "FLOW-TASK-0145-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0145.yml",
            "item_id": "TASK-0145",
            "state": "Done",
            "event_id": "FLOW-TASK-0145-DONE-20260915"
          }
        ],
        "previous_hash": "2db9a5392c39003f8d151b2dd7530334cbc55b6a8ddc288908e5a29dec22c115",
        "hash": "bc079dca011399efae214cd84d64c54764fe651d83a4492fe4711ce81baaaa4b"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0145-READY-20260915",
          "sequence": 1,
          "item_id": "TASK-0145",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-15T05:56:03.205Z",
          "conditions": [
            "Wave 31 is explicitly approved as ready for Delivery pickup.",
            "Delivery must claim and execute all Wave 31 Tasks using available worker capacity without inventing a second admission gate."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0145",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0145-READY-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0145.yml",
              "item_id": "TASK-0145",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0145-READY-20260915"
            }
          ],
          "previous_hash": null,
          "hash": "e8aaf61f1fb14c46aed5d9c41b207ed3c78aa75476f800385b082cae2380e3a0"
        },
        {
          "event_id": "FLOW-TASK-0145-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0145",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T06:06:34Z",
          "conditions": [
            "Wave 31 is current and TASK-0145 has no task dependencies."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0145-release-identity-1",
          "claim_base_sha": "2d237533af1d277fb86b794f519b31780f4112dd",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/187",
              "item_id": "TASK-0145",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0145-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0145.yml",
              "item_id": "TASK-0145",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0145-IN-PROGRESS-20260915"
            }
          ],
          "previous_hash": "e8aaf61f1fb14c46aed5d9c41b207ed3c78aa75476f800385b082cae2380e3a0",
          "hash": "9af7f362bbb46e4d8ecf9db7f33708a7c86441a6c06ce8db105e1c5532d18403"
        },
        {
          "event_id": "FLOW-TASK-0145-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0145",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T12:46:10Z",
          "conditions": [],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/187",
          "forward_fix_prs": [
            "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/198",
            "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/199"
          ],
          "reviewed_head": "c653bef267e3c630cf680ca41f80a443e31fa2a1",
          "integration_revision": "80fe1aff8588ed39f32df1f654f21549c11e955e",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5106",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5105",
          "published_images": [
            "library/nebula:80fe1aff8588ed39f32df1f654f21549c11e955e@sha256:6d0f37f1e9c26b724f2ab89c74a25c469df6b9c222aed43894435a5c6d7dc595",
            "library/singularity:80fe1aff8588ed39f32df1f654f21549c11e955e@sha256:30b50a2c4d92415f42c65060974458ac3df35e1eca0719ad5ec13f5349b48306"
          ],
          "acceptance_evidence": [
            "Application PR #187 and forward-fix PRs #198 and #199 merged reviewed heads after complete exact-head candidate CI; final candidate run 5104 passed all nine required application jobs.",
            "Integration CI run 5106 passed exact-revision repository validation on 80fe1aff8588ed39f32df1f654f21549c11e955e, including Release 1.0.0 design conformance and revision-bound launch behavior.",
            "Publication CI run 5105 passed required validation, image build, immutable Harbor publication, registry digest readback, and artifact retention on the exact integration revision.",
            "The flight footer visibly renders RELEASE 1.0.0.0 and excludes BUILD 0.2.0 and PLAYABLE FLIGHT ALPHA; malformed or mismatched build, chart, runtime, and image release metadata fails closed.",
            "Focused release identity tests passed 42 tests before convergence; exact-revision routing suites passed 23 tests in both local-fallback and integration-revision modes; CI contract passed 369 tests with lint, typecheck, build, security, container, Helm, and browser gates green."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/187",
              "item_id": "TASK-0145",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0145-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/199",
              "item_id": "TASK-0145",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0145-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/80fe1aff8588ed39f32df1f654f21549c11e955e",
              "item_id": "TASK-0145",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0145-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5104",
              "item_id": "TASK-0145",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0145-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5106",
              "item_id": "TASK-0145",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0145-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5105",
              "item_id": "TASK-0145",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0145-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0145.yml",
              "item_id": "TASK-0145",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0145-TO-BE-RELEASED-20260915"
            }
          ],
          "previous_hash": "9af7f362bbb46e4d8ecf9db7f33708a7c86441a6c06ce8db105e1c5532d18403",
          "hash": "2db9a5392c39003f8d151b2dd7530334cbc55b6a8ddc288908e5a29dec22c115"
        },
        {
          "event_id": "FLOW-TASK-0145-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0145",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0145",
              "state": "Done",
              "event_id": "FLOW-TASK-0145-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0145",
              "state": "Done",
              "event_id": "FLOW-TASK-0145-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0145",
              "state": "Done",
              "event_id": "FLOW-TASK-0145-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0145.yml",
              "item_id": "TASK-0145",
              "state": "Done",
              "event_id": "FLOW-TASK-0145-DONE-20260915"
            }
          ],
          "previous_hash": "2db9a5392c39003f8d151b2dd7530334cbc55b6a8ddc288908e5a29dec22c115",
          "hash": "bc079dca011399efae214cd84d64c54764fe651d83a4492fe4711ce81baaaa4b"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "verification",
        "design_refs": [
          "UIUX-100-FULL-JOURNEY"
        ],
        "acceptance": [
          "Verify this acceptance correction against the exact deployed application revision and the referenced Release 1.0.0 design coverage."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0146",
      "display_id": "AEROSIM-TS-146",
      "title": "Onboard the nine shortlisted aircraft models",
      "feature_id": "AEROSIM-FT-48",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-48/aerosim-ts-146/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0146.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Onboard nine governed aircraft model candidates",
      "outcome": "AeroSim has three governed Trainer candidates, three governed Fighter candidates, and three governed Utility candidates available through its internal asset registry and aircraft catalogue instead of the synthetic one-triangle fixture.",
      "scope": "Acquire and onboard all nine linked Sketchfab source entries: three Trainer, three Fighter, and three Utility candidates. Treat every download as untrusted: acquire into quarantine, enforce bounded extraction and safe paths, preflight content before parser invocation, and process it in an isolated network-disabled sandbox. Extend the versioned manifest schema for governed AssetManifest records, plus its TypeScript contract, policy, validator, and tests so every source, attribution obligation, runtime measurement, and verification screenshot is deterministically represented and linked. For each source, preserve the immutable source URL and acquired bytes, create a governed manifest, optimize a browser-ready GLB, assign stable model and aircraft identifiers, and make the resulting candidate available to the aircraft catalogue. When a linked source is a pack or collection, select and govern one representative aircraft from that source as the corresponding catalogue candidate; do not silently ingest unreviewed pack contents.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:assets/source/",
        "corp-v1-aerosim/corp-v1-aerosim:assets/manifests/",
        "corp-v1-aerosim/corp-v1-aerosim:assets/runtime/",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/aircraft/aircraft-catalogue.ts",
        "corp-v1-aerosim/corp-v1-aerosim:packages/assets/src/validate-asset-registry.ts",
        "corp-v1-aerosim/corp-v1-aerosim:packages/assets/src/secure-asset-intake.ts",
        "corp-v1-aerosim/corp-v1-aerosim:packages/assets/src/asset-manifest.schema.json",
        "corp-v1-aerosim/corp-v1-aerosim:packages/assets/src/asset-manifest.ts",
        "corp-v1-aerosim/corp-v1-aerosim:packages/assets/src/asset-policy.ts",
        "corp-v1-aerosim/corp-v1-aerosim:packages/assets/tests/asset-manifest.test.ts",
        "corp-v1-aerosim/corp-v1-aerosim:packages/assets/tests/secure-asset-intake.test.ts"
      ],
      "inputs": [
        "Trainer — de Havilland Canada DHC-1 Chipmunk by helijah: https://sketchfab.com/3d-models/de-havilland-canada-dhc-1-chipmunk-45c3156183aa464fa0a04bf428230bdc",
        "Trainer — North American T-6 Texan by helijah: https://sketchfab.com/3d-models/north-american-t-6-texan-b5298f03e97e4624a41df3482fcfe508",
        "Trainer — North American T-28 Trojan by helijah: https://sketchfab.com/3d-models/north-american-t-28-trojan-aea0923d7cda48eba3a16a03eccc1bf8",
        "Fighter — Fighter Jet Pack by iedalton: https://sketchfab.com/3d-models/fighter-jet-pack-c111df75444249b58d6d6e072c714abb",
        "Fighter — FREE Fighter Jet Collection Low Poly by bohmerang: https://sketchfab.com/3d-models/free-fighter-jet-collection-low-poly-cb5966c988d9403895be89b364c2252f",
        "Fighter — Fighter Jet by VertaScan: https://sketchfab.com/3d-models/fighter-jet-764f2b85b86c4107b077a4c207f9a9e4",
        "Utility — Low Poly IPTN N219 Nurtanio by Sofyan Kurniawan: https://sketchfab.com/3d-models/low-poly-iptn-n219-nurtanio-8a8d50c261674d69ad398378f7d33722",
        "Utility — Dornier Do 228 by helijah: https://sketchfab.com/3d-models/dornier-do-228-f24b42d883e744118244d29f5867bdea",
        "Utility — CASA C-212 Aviocar by helijah: https://sketchfab.com/3d-models/casa-c-212-aviocar-2364de016cd34129a008c02918b667dc",
        "Sketchfab API inspection on 2026-09-14 reported every linked source as downloadable under Creative Commons Attribution 4.0; acquisition must revalidate this exact asset-level state before use."
      ],
      "outputs": [
        "Nine versioned manifest records preserve the exact registry URL, creator, material name, licence URL, attribution text, supplied copyright or licence notice, supplied disclaimer, modification statement identifying optimization as modified material, acquisition date, source hash, source format, and original bytes.",
        "Nine deterministic browser-ready GLB candidates have runtime hashes plus measured byte, triangle, vertex, draw-call, texture, animation, and memory characteristics.",
        "The aircraft catalogue exposes three Trainer, three Fighter, and three Utility candidates through stable identifiers and model asset references.",
        "Aircraft selection and active-flight loading resolve only the governed runtime assets and never fall back to representative-aircraft.glb."
      ],
      "failure_boundaries": [
        "Reject downloads before extraction when the policy download-size limit is exceeded; abort quarantine extraction when the expanded-byte limit or file-count limit is exceeded.",
        "Reject archive entries containing absolute paths, path traversal, symlink, hardlink, device, socket, FIFO, or unsupported file types; verify extensions plus content signatures before promotion.",
        "Reject glTF external URI references, remote URLs, and escaping relative paths before full parser invocation; perform extraction and parsing in a time-, CPU-, memory-, and filesystem-bounded network-disabled sandbox with read-only quarantined input.",
        "Reject any source whose exact asset page is no longer downloadable, does not permit commercial reuse with attribution, changes licence or creator, or cannot be preserved with immutable acquisition evidence.",
        "Reject any optimized result that exceeds its approved browser budget, loses required visible geometry or materials, has an invalid pivot, scale, or orientation, or cannot load and dispose cleanly in the production WebGL path.",
        "Fail release acceptance if any of the nine catalogue candidates resolves to the synthetic one-triangle fixture, an unregistered file, or a different source than its governed manifest."
      ],
      "exclusions": [
        "Do not acquire models outside the nine human-selected source links in this Task.",
        "Do not treat a Sketchfab search result, preview image, platform-wide policy, or API label alone as sufficient licence and provenance evidence.",
        "Do not self-approve the models for release or claim visual acceptance before browser inspection of each optimized candidate."
      ],
      "verification_steps": [
        "Run negative secure-intake tests with oversized downloads, archive bombs, excessive archive entries, path traversal, links and device entries, mismatched content types, glTF external URI references, parser timeout, and every configured resource limit; verify nothing is promoted from quarantine.",
        "Validate the versioned manifest schema and TypeScript contract reject missing creator, licence, attribution, modification, measurement, and screenshot fields as well as unknown fields.",
        "At acquisition time, read each exact source page and API record; verify downloadable state, creator, Creative Commons Attribution 4.0 terms, attribution requirements, and the acquired source-file hash.",
        "Run the governed asset optimizer and validator for all nine candidates and require deterministic hashes, complete manifests, supported self-contained GLBs, and all measured budgets to pass.",
        "Open Flight Setup and verify three Trainer, three Fighter, and three Utility candidates are individually identifiable and selectable without loading an unregistered asset.",
        "Launch each candidate in the production browser, capture nine individually attributable recognizable-aircraft screenshots, exercise the chase camera and controls, inspect console and network failures, and verify cleanup after end flight."
      ],
      "dependencies": [
        "TASK-0035",
        "TASK-0036",
        "TASK-0037",
        "TASK-0038"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0055"
      ],
      "acceptance_evidence": "Verified delivery: application PR #193 onboarded all nine governed Trainer, Fighter, and Utility candidates with manifest-bound runtime assets, catalogue selection, and individually named visual evidence. Candidate CI runs 5138 and 5139, integration validation run 5141, and image publication run 5140 passed on the exact reviewed and integration revisions. Production rollout and authenticated deployed acceptance remain Release-owned. Release completion verified on product 1.0.0.0 at GitOps revision 5d3712d89dfbf7dacd993348e55f497d126c7bf9 with Argo Synced/Healthy, exact image digests, authenticated API/database access, and three-world configured-flight acceptance.",
      "status_decision": {
        "item_id": "TASK-0146",
        "state": "InBacklog",
        "decision_date": "2026-09-14T17:56:54Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549116120898863205"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0146-DONE-20260915",
        "sequence": 4,
        "item_id": "TASK-0146",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-15T21:51:47Z",
        "conditions": [],
        "release_version": "1.0.0.0",
        "chart_version": "1.0.0+build.1",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
          }
        },
        "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
        "argo_revision": "1.0.0+build.1",
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "acceptance_evidence": [
          "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
          "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
          "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
          "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
        ],
        "rollback": {
          "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
            "item_id": "TASK-0146",
            "state": "Done",
            "event_id": "FLOW-TASK-0146-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
            "item_id": "TASK-0146",
            "state": "Done",
            "event_id": "FLOW-TASK-0146-DONE-20260915"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "item_id": "TASK-0146",
            "state": "Done",
            "event_id": "FLOW-TASK-0146-DONE-20260915"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0146.yml",
            "item_id": "TASK-0146",
            "state": "Done",
            "event_id": "FLOW-TASK-0146-DONE-20260915"
          }
        ],
        "previous_hash": "3f4d9f60243cb4ccc8781ca3a7ae8a3d1fd77c262086477b3c9645c258ce9190",
        "hash": "fcafd21e50ae85c70c04f8eec78875dbcf6fe29465d8f6dbd985c3ffb7295a72"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0146-READY-20260915",
          "sequence": 1,
          "item_id": "TASK-0146",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-15T05:56:03.205Z",
          "conditions": [
            "Wave 31 is explicitly approved as ready for Delivery pickup.",
            "Delivery must claim and execute all Wave 31 Tasks using available worker capacity without inventing a second admission gate."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1549296376490496081",
              "item_id": "TASK-0146",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0146-READY-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0146.yml",
              "item_id": "TASK-0146",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0146-READY-20260915"
            }
          ],
          "previous_hash": null,
          "hash": "be542add04d26108e144b59e4570a61310e750f15e744fee1b0bc2b5c95acb9a"
        },
        {
          "event_id": "FLOW-TASK-0146-IN-PROGRESS-20260915",
          "sequence": 2,
          "item_id": "TASK-0146",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T06:10:04.373Z",
          "conditions": [
            "Wave 31 is current and TASK-0146 dependencies TASK-0035 through TASK-0038 are TO_BE_RELEASED."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0146-onboard-aircraft-models-1",
          "claim_base_sha": "2d237533af1d277fb86b794f519b31780f4112dd",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/193",
              "item_id": "TASK-0146",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0146-IN-PROGRESS-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0146.yml",
              "item_id": "TASK-0146",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0146-IN-PROGRESS-20260915"
            }
          ],
          "previous_hash": "be542add04d26108e144b59e4570a61310e750f15e744fee1b0bc2b5c95acb9a",
          "hash": "5d4ee1ea0a1c23c78f52fbb06fa1c9996747c60f1c371fe774a5c5e5714bcc5c"
        },
        {
          "event_id": "FLOW-TASK-0146-TO-BE-RELEASED-20260915",
          "sequence": 3,
          "item_id": "TASK-0146",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T17:19:10Z",
          "conditions": [],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/193",
          "reviewed_head": "ff5b406df3a4b258fa2b3c810a27814fd8cf9c03",
          "integration_revision": "9b9ee2947e18fb388acd4516fc447ff09a82cf04",
          "candidate_ci": [
            "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5138",
            "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5139"
          ],
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5141",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5140",
          "publication_digest": "sha256:fd911d7417bfbf0f454530e447da95b58001e1df41bbc5e1a8dd35d432575aae",
          "published_images": [
            "library/aerosim-web:9b9ee2947e18fb388acd4516fc447ff09a82cf04",
            "library/aerosim-api:9b9ee2947e18fb388acd4516fc447ff09a82cf04"
          ],
          "governed_candidates": [
            {
              "asset_id": "trainer-dhc1-chipmunk",
              "manifest": "assets/manifests/trainer-dhc1-chipmunk.json",
              "screenshot": "artifacts/screenshots/trainer-dhc1-chipmunk.png"
            },
            {
              "asset_id": "trainer-t6-texan",
              "manifest": "assets/manifests/trainer-t6-texan.json",
              "screenshot": "artifacts/screenshots/trainer-t6-texan.png"
            },
            {
              "asset_id": "trainer-t28-trojan",
              "manifest": "assets/manifests/trainer-t28-trojan.json",
              "screenshot": "artifacts/screenshots/trainer-t28-trojan.png"
            },
            {
              "asset_id": "fighter-pack-cube008",
              "manifest": "assets/manifests/fighter-pack-cube008.json",
              "screenshot": "artifacts/screenshots/fighter-pack-cube008.png"
            },
            {
              "asset_id": "fighter-collection-f14",
              "manifest": "assets/manifests/fighter-collection-f14.json",
              "screenshot": "artifacts/screenshots/fighter-collection-f14.png"
            },
            {
              "asset_id": "fighter-vertascan",
              "manifest": "assets/manifests/fighter-vertascan.json",
              "screenshot": "artifacts/screenshots/fighter-vertascan.png"
            },
            {
              "asset_id": "utility-n219-nurtanio",
              "manifest": "assets/manifests/utility-n219-nurtanio.json",
              "screenshot": "artifacts/screenshots/utility-n219-nurtanio.png"
            },
            {
              "asset_id": "utility-dornier-do228",
              "manifest": "assets/manifests/utility-dornier-do228.json",
              "screenshot": "artifacts/screenshots/utility-dornier-do228.png"
            },
            {
              "asset_id": "utility-casa-c212",
              "manifest": "assets/manifests/utility-casa-c212.json",
              "screenshot": "artifacts/screenshots/utility-casa-c212.png"
            }
          ],
          "acceptance_evidence": [
            "Application PR",
            "Candidate run 5138 passed feature-branch lint and build, and candidate run 5139 attempt 1 passed all nine required application jobs on the reviewed head.",
            "Integration run 5141 passed exact-revision validation; publication run 5140 passed required-validation, build-images, and publish-images on the integration revision with digest readback.",
            "Asset tests passed 120 tests, web tests passed 1449 tests, and integration tests passed 137 tests; exact remote CI remains authoritative.",
            "All nine manifest-bound candidates are exposed through stable catalogue identifiers without representative-aircraft.glb fallback.",
            "Nine individually named screenshots verify three Trainer, three Fighter, and three Utility candidates in the governed production browser path."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/193",
              "item_id": "TASK-0146",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0146-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/commit/9b9ee2947e18fb388acd4516fc447ff09a82cf04",
              "item_id": "TASK-0146",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0146-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5138",
              "item_id": "TASK-0146",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0146-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5139",
              "item_id": "TASK-0146",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0146-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5141",
              "item_id": "TASK-0146",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0146-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5140",
              "item_id": "TASK-0146",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0146-TO-BE-RELEASED-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0146.yml",
              "item_id": "TASK-0146",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0146-TO-BE-RELEASED-20260915"
            }
          ],
          "previous_hash": "5d4ee1ea0a1c23c78f52fbb06fa1c9996747c60f1c371fe774a5c5e5714bcc5c",
          "hash": "3f4d9f60243cb4ccc8781ca3a7ae8a3d1fd77c262086477b3c9645c258ce9190"
        },
        {
          "event_id": "FLOW-TASK-0146-DONE-20260915",
          "sequence": 4,
          "item_id": "TASK-0146",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-15T21:51:47Z",
          "conditions": [],
          "release_version": "1.0.0.0",
          "chart_version": "1.0.0+build.1",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:f5e811912acda00c90ed671098439c88ebf5d85b0a832ec5676c58aa99d743da"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:77eaacfd6a68c2003b0ef763bf2840f99e48b33faeaed2cc3de424c3b0ec8535"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:b917a53c6e1bdcb823df17a8fb2812df822fefc82bf6aeec8dc2e755ae21d07f"
            }
          },
          "deployment_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "argo_revision": "1.0.0+build.1",
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "acceptance_evidence": [
            "Real Keycloak login returned to AeroSim and authenticated GET /api/pilot-profile/current returned 200.",
            "Authenticated GET /api/progress/latest-resumable returned 200, proving functional database-backed schema access.",
            "Home → Flight Setup → Pre-flight → Launch passed for training-airfield, coastal-range, and mountain-valley with one visible WebGL canvas, recognizable aircraft and distinct terrain, Release 1.0.0.0 identity, no console errors, and no failed AeroSim responses.",
            "Boundary hard-limit warning remained absent immediately after launch and appeared only after continued flight reached the configured distance."
          ],
          "rollback": {
            "previous_gitops_revision": "f3a5fe996ffa551c036211e8e64a3f5de5b534c3",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654",
              "item_id": "TASK-0146",
              "state": "Done",
              "event_id": "FLOW-TASK-0146-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/24",
              "item_id": "TASK-0146",
              "state": "Done",
              "event_id": "FLOW-TASK-0146-DONE-20260915"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/commit/5d3712d89dfbf7dacd993348e55f497d126c7bf9",
              "item_id": "TASK-0146",
              "state": "Done",
              "event_id": "FLOW-TASK-0146-DONE-20260915"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0146.yml",
              "item_id": "TASK-0146",
              "state": "Done",
              "event_id": "FLOW-TASK-0146-DONE-20260915"
            }
          ],
          "previous_hash": "3f4d9f60243cb4ccc8781ca3a7ae8a3d1fd77c262086477b3c9645c258ce9190",
          "hash": "fcafd21e50ae85c70c04f8eec78875dbcf6fe29465d8f6dbd985c3ffb7295a72"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "supporting",
        "design_refs": [
          "UIUX-100-HANGAR",
          "UIUX-100-FLIGHT-SETUP",
          "UIUX-100-CHASE"
        ],
        "acceptance": [
          "Verify every onboarded candidate remains recognizable in aircraft browsing, Flight Setup selection, and the active chase view."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549515228163866654"
    },
    {
      "id": "TASK-0147",
      "display_id": "AEROSIM-TS-147",
      "title": "Make initial-camera selection visibly and operably selectable",
      "feature_id": "AEROSIM-FT-17",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-17/aerosim-ts-147/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0147.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Pre-flight initial-camera selector",
      "outcome": "A player can select any supported initial camera through the complete visible card, immediately see an unambiguous selected state, and continue with the same confirmed camera.",
      "scope": "Replace the small native-radio-only presentation with the approved full-card camera selector. Make the complete presented card operable by ordinary pointer interaction, expose a visible active border and SELECTED label, and keep the existing canonical selection and launch wiring unchanged.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/preflight/camera/InitialCameraSelector.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/styles.css",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/test/preflight/initial-camera-selector.spec.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/e2e/release-camera-selection.browser.spec.ts"
      ],
      "inputs": [
        "Human production acceptance rejected deployed Release 1.0.0.0 because camera selection was not reliably operable or visibly selected through the ordinary user path.",
        "Root-cause inspection found unstyled labels around small native radio inputs, no full-card active state, and no visible SELECTED indicator.",
        "RootAtSkic directed creation of Wave 32 corrective Tasks and Delivery notification in Discord message 1549708626472607755."
      ],
      "outputs": [
        "Every supported initial-camera option is selectable through the complete visible card with ordinary pointer interaction.",
        "The selected card exposes an active border and visible SELECTED label immediately after selection.",
        "Browser acceptance proves selection through ordinary visible controls without force-click, hidden-input manipulation, direct DOM mutation, or API bypass."
      ],
      "failure_boundaries": [
        "Fail when text or decoration intercepts the card interaction, the hit target is smaller than the presented card, or selection requires clicking the native radio itself.",
        "Fail when selection state is communicated only by the browser-native radio or only after a later confirmation action.",
        "Fail when clicking the visible card and clicking its presented label produce different canonical camera selections."
      ],
      "exclusions": [
        "Do not redesign camera launch-state propagation already delivered by TASK-0136.",
        "Do not add new camera modes or broaden Release 1.0.0 scope."
      ],
      "verification_steps": [
        "Write a failing browser regression that reproduces the deployed intercepted or unclear interaction before changing the component.",
        "Select every supported camera by clicking the complete visible card; verify the canonical selected value, active border, and visible SELECTED text.",
        "Complete Pre-flight and launch through ordinary controls; verify the selected camera is the first active-flight view.",
        "Verify no forced click, direct DOM/state mutation, hidden-control interaction, or API bypass is used as acceptance evidence."
      ],
      "dependencies": [
        "TASK-0136"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0024"
      ],
      "acceptance_evidence": "Verified delivery: technical release closure for corrective Release 1.0.0.1: application PR #205 merged as ab085692e2ed70bdb6525044b4ca91cc48a27478; integration validation, immutable images, immutable chart 1.0.0+build.2, Harbor readback, GitOps PRs #15 and #25, Argo Synced/Healthy, exact running imageIDs, real Keycloak SSO, protected API/schema access, ordinary visible camera-card selection, Training Airfield launch, and more than 30 continuous seconds NOMINAL with no WARNING/CRITICAL passed. Human post-release acceptance FAILED: RootAtSkic reported in Discord message 1549864663599284236, 'Do long user acceptance testing -> I tried and was not able to fly with any of configuration. It is terrible.' Release 1.0.0.1 is REJECTED for production and requires a replacement release.",
      "status_decision": {
        "item_id": "TASK-0147",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-16T09:10:27Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549708626472607755",
            "description": "RootAtSkic directed Wave 32 corrective Task creation and Delivery notification."
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0147-DONE-20260916",
        "sequence": 4,
        "item_id": "TASK-0147",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-16T18:26:30Z",
        "conditions": [],
        "release_version": "1.0.0.1",
        "chart_version": "1.0.0+build.2",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:6390af819bb94925dff7045d690cf797fe18b1d2630e349caa20e71cbdeceb4b"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:439e23defe3efede88e4d7542ad812d79453d138ff8907be39e65c43f11438e8"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:c6ad4a682b0af4d8672053ee1d39542582b0e05f6178615e6dee59ad39274de1"
          }
        },
        "deployment_revision": "4222fc84c6e75b486951b42037776a5c167c77ea",
        "argo_revision": "1.0.0+build.2",
        "technical_deployment": "Passed",
        "automated_acceptance": "Passed",
        "human_acceptance": "Failed",
        "production_designation": "Rejected",
        "replacement_required": true,
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "rollback": {
          "previous_gitops_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "acceptance_evidence": [
          "Fresh real Keycloak SSO returned to AeroSim; authenticated pilot-profile and latest-resumable protected requests returned 200 with no 401, 403, or 5xx response.",
          "The visible Chase camera card was selected by an ordinary pointer click without force or DOM bypass; SELECTED text, active selected state, checked radio, confirmation, and launched Chase camera all passed.",
          "Training Airfield launched through ordinary controls and remained CORE STATUS: NOMINAL for more than 30 continuous seconds with no visible WARNING or CRITICAL state and no browser runtime errors.",
          "Human rejection evidence: RootAtSkic reported in Discord message 1549864663599284236, 'Do long user acceptance testing -> I tried and was not able to fly with any of configuration. It is terrible.' Human acceptance FAILED; production designation REJECTED; replacement release required."
        ],
        "evidence": [
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/205",
            "item_id": "TASK-0147",
            "state": "Done",
            "event_id": "FLOW-TASK-0147-DONE-20260916"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/6403",
            "item_id": "TASK-0147",
            "state": "Done",
            "event_id": "FLOW-TASK-0147-DONE-20260916"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/6405",
            "item_id": "TASK-0147",
            "state": "Done",
            "event_id": "FLOW-TASK-0147-DONE-20260916"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/6406",
            "item_id": "TASK-0147",
            "state": "Done",
            "event_id": "FLOW-TASK-0147-DONE-20260916"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-tmpl-aerosim/pulls/15",
            "item_id": "TASK-0147",
            "state": "Done",
            "event_id": "FLOW-TASK-0147-DONE-20260916"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/25",
            "item_id": "TASK-0147",
            "state": "Done",
            "event_id": "FLOW-TASK-0147-DONE-20260916"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0147.yml",
            "item_id": "TASK-0147",
            "state": "Done",
            "event_id": "FLOW-TASK-0147-DONE-20260916"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549864663599284236",
            "item_id": "TASK-0147",
            "state": "Done",
            "event_id": "FLOW-TASK-0147-DONE-20260916"
          }
        ],
        "previous_hash": "548ba093a153771dc5be3242e17deaaae2498fc4d135076d4e931ba6413a17b5",
        "hash": "3f545b33dc97c570fb3c5a94d4e52254a19ae57a841750ca83cd85331b5f297f"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0147-READY-20260916",
          "sequence": 1,
          "item_id": "TASK-0147",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-16T09:10:27Z",
          "conditions": [
            "Wave 32 is the corrective-replacement wave for rejected deployed Release 1.0.0.0.",
            "Delivery must use test-first implementation and ordinary visible browser interactions for acceptance.",
            "A new immutable corrective release and explicit human acceptance are required; Release 1.0.0.0 must not be repaired in place."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549708626472607755",
              "item_id": "TASK-0147",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0147-READY-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0147.yml",
              "item_id": "TASK-0147",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0147-READY-20260916"
            }
          ],
          "previous_hash": null,
          "hash": "515079230be109ce799d9c5b20bf32345f9fa02a9798294154be16fcfb41d27d"
        },
        {
          "event_id": "FLOW-TASK-0147-IN-PROGRESS-20260916",
          "sequence": 2,
          "item_id": "TASK-0147",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-16T10:11:07Z",
          "conditions": [
            "Wave 32 is current; dependency TASK-0136 is Done.",
            "RootAtSkic admitted this corrective replacement-release Task in Discord message 1549708626472607755 without a second parent-Feature admission gate."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0147-camera-card-selection-1",
          "claim_base_sha": "94061818a414e70845f454d4c39792e5e846e033",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549708626472607755",
              "item_id": "TASK-0147",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0147-IN-PROGRESS-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/203",
              "item_id": "TASK-0147",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0147-IN-PROGRESS-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0147.yml",
              "item_id": "TASK-0147",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0147-IN-PROGRESS-20260916"
            }
          ],
          "previous_hash": "515079230be109ce799d9c5b20bf32345f9fa02a9798294154be16fcfb41d27d",
          "hash": "32efa5c1d7e3773ed06b5d2e9aa5cb90df577c278068985698c1e59ade9c00da"
        },
        {
          "event_id": "FLOW-TASK-0147-TO-BE-RELEASED-20260916",
          "sequence": 3,
          "item_id": "TASK-0147",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-16T11:12:45Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/203",
              "item_id": "TASK-0147",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0147-TO-BE-RELEASED-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5168",
              "item_id": "TASK-0147",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0147-TO-BE-RELEASED-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5167",
              "item_id": "TASK-0147",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0147-TO-BE-RELEASED-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0147.yml",
              "item_id": "TASK-0147",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0147-TO-BE-RELEASED-20260916"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/203",
          "reviewed_head": "f4d8a438b10f1b8a0fabe75f7c680ab3faf959ce",
          "integration_revision": "d8fbebfca8982fddd826f621ad1dd38650178ece",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5168",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5167",
          "acceptance_evidence": [
            "application PR",
            "all four supported cameras were selected through complete visible cards with ordinary pointer clicks; each immediately exposed the canonical checked value, active green border, and visible SELECTED label",
            "the confirmed Orbit camera launched as the first active-flight camera through the existing canonical launch wiring",
            "focused InitialCameraSelector tests passed 17 of 17 and production Playwright camera acceptance passed 1 of 1",
            "repository tests, lint, typecheck, production build, production dependency audit, workflow contracts, exact-head CI, integration validation, immutable image publication, and registry digest readback passed"
          ],
          "previous_hash": "32efa5c1d7e3773ed06b5d2e9aa5cb90df577c278068985698c1e59ade9c00da",
          "hash": "548ba093a153771dc5be3242e17deaaae2498fc4d135076d4e931ba6413a17b5"
        },
        {
          "event_id": "FLOW-TASK-0147-DONE-20260916",
          "sequence": 4,
          "item_id": "TASK-0147",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-16T18:26:30Z",
          "conditions": [],
          "release_version": "1.0.0.1",
          "chart_version": "1.0.0+build.2",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:6390af819bb94925dff7045d690cf797fe18b1d2630e349caa20e71cbdeceb4b"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:439e23defe3efede88e4d7542ad812d79453d138ff8907be39e65c43f11438e8"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:c6ad4a682b0af4d8672053ee1d39542582b0e05f6178615e6dee59ad39274de1"
            }
          },
          "deployment_revision": "4222fc84c6e75b486951b42037776a5c167c77ea",
          "argo_revision": "1.0.0+build.2",
          "technical_deployment": "Passed",
          "automated_acceptance": "Passed",
          "human_acceptance": "Failed",
          "production_designation": "Rejected",
          "replacement_required": true,
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "rollback": {
            "previous_gitops_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "acceptance_evidence": [
            "Fresh real Keycloak SSO returned to AeroSim; authenticated pilot-profile and latest-resumable protected requests returned 200 with no 401, 403, or 5xx response.",
            "The visible Chase camera card was selected by an ordinary pointer click without force or DOM bypass; SELECTED text, active selected state, checked radio, confirmation, and launched Chase camera all passed.",
            "Training Airfield launched through ordinary controls and remained CORE STATUS: NOMINAL for more than 30 continuous seconds with no visible WARNING or CRITICAL state and no browser runtime errors.",
            "Human rejection evidence: RootAtSkic reported in Discord message 1549864663599284236, 'Do long user acceptance testing -> I tried and was not able to fly with any of configuration. It is terrible.' Human acceptance FAILED; production designation REJECTED; replacement release required."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/205",
              "item_id": "TASK-0147",
              "state": "Done",
              "event_id": "FLOW-TASK-0147-DONE-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/6403",
              "item_id": "TASK-0147",
              "state": "Done",
              "event_id": "FLOW-TASK-0147-DONE-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/6405",
              "item_id": "TASK-0147",
              "state": "Done",
              "event_id": "FLOW-TASK-0147-DONE-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/6406",
              "item_id": "TASK-0147",
              "state": "Done",
              "event_id": "FLOW-TASK-0147-DONE-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-tmpl-aerosim/pulls/15",
              "item_id": "TASK-0147",
              "state": "Done",
              "event_id": "FLOW-TASK-0147-DONE-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/25",
              "item_id": "TASK-0147",
              "state": "Done",
              "event_id": "FLOW-TASK-0147-DONE-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0147.yml",
              "item_id": "TASK-0147",
              "state": "Done",
              "event_id": "FLOW-TASK-0147-DONE-20260916"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549864663599284236",
              "item_id": "TASK-0147",
              "state": "Done",
              "event_id": "FLOW-TASK-0147-DONE-20260916"
            }
          ],
          "previous_hash": "548ba093a153771dc5be3242e17deaaae2498fc4d135076d4e931ba6413a17b5",
          "hash": "3f545b33dc97c570fb3c5a94d4e52254a19ae57a841750ca83cd85331b5f297f"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-PREFLIGHT"
        ],
        "acceptance": [
          "Verify the full-card selectable and selected-state treatment against the approved Release 1.0.0 pre-flight design through ordinary visible interactions."
        ]
      },
      "evidence_url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/205"
    },
    {
      "id": "TASK-0148",
      "display_id": "AEROSIM-TS-148",
      "title": "Apply production-scale world-boundary distances",
      "feature_id": "AEROSIM-FT-2",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-2/aerosim-ts-148/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0148.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Active-flight world-boundary policy",
      "outcome": "A launched flight remains usable within the intended world area and reaches warning, hard-limit, recovery, and restart states only at governed metre distances.",
      "scope": "Replace the unit-ambiguous production values currently interpreted as 120, 180, and 20 metres with an explicit metre-valued world policy selected through Architecture review. Keep the existing knot-to-metre-per-second physics and boundary state machine, bind the policy to launched world configuration, and add regression coverage that rejects immediate critical state during ordinary flight without prescribing unsupported distance values in this Task.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/App.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/boundary/world-boundary-state-machine.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/physics/representative-flight-runtime.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/e2e/release-world-boundary.browser.spec.ts"
      ],
      "inputs": [
        "Human production acceptance rejected deployed Release 1.0.0.0 because ordinary flight reached a critical world-boundary state almost immediately after launch.",
        "Root-cause inspection verified warningDistanceM 120, hardDistanceM 180, and returnHysteresisM 20 while the aircraft travels approximately 436 metres per second at 848 knots.",
        "RootAtSkic directed creation of Wave 32 corrective Tasks and Delivery notification in Discord message 1549708626472607755."
      ],
      "outputs": [
        "Each supported world declares explicit metre-valued warning distance, hard limit, and return hysteresis, with warning below hard limit and hysteresis positive and bounded.",
        "From the canonical Training Airfield spawn using the production initial flight profile, active flight remains NOMINAL for at least 30 continuous seconds; evidence records elapsed time, speed profile, and maximum radial distance, and neither WARNING nor CRITICAL may occur.",
        "Deterministic near-boundary tests still prove warning, hard-limit, hysteresis, recovery, termination, and restart behavior without waiting for a real-time long-distance flight."
      ],
      "failure_boundaries": [
        "Fail when policy values are unit-ambiguous, inconsistent across runtime and tests, or interpreted as metres while authored as kilometre-scale numbers.",
        "Fail when the canonical Training Airfield acceptance trajectory reaches WARNING or CRITICAL during its first 30 continuous seconds without being initialized near a governed boundary.",
        "Fail when a test treats reaching CRITICAL during normal production flight as success instead of positioning a deterministic fixture near the boundary."
      ],
      "exclusions": [
        "Do not alter the correct knot-to-metre-per-second conversion or replace the boundary state machine without evidence.",
        "Do not broaden this correction into terrain collision, new world geometry, or later-release flight-physics scope."
      ],
      "verification_steps": [
        "Write a failing regression that reproduces the deployed approximately 0.41-second hard-limit crossing from the 180-metre policy.",
        "Verify every supported world policy is explicit in metres and that warning distance is below hard limit while hysteresis is positive and bounded; retain the Architecture-reviewed values and evidence.",
        "Launch Training Airfield from the canonical spawn through ordinary visible controls using the production initial flight profile; observe 30 continuous seconds, record elapsed time, speed profile, and maximum radial distance, and require NOMINAL throughout.",
        "Use deterministic near-boundary initial states to verify warning, hard limit, recovery hysteresis, termination, and clean restart without weakening production thresholds."
      ],
      "dependencies": [
        "TASK-0141"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0004"
      ],
      "acceptance_evidence": "Verified delivery: technical release closure for corrective Release 1.0.0.1: application PR #205 merged as ab085692e2ed70bdb6525044b4ca91cc48a27478; integration validation, immutable images, immutable chart 1.0.0+build.2, Harbor readback, GitOps PRs #15 and #25, Argo Synced/Healthy, exact running imageIDs, real Keycloak SSO, protected API/schema access, ordinary Training Airfield launch, more than 30 continuous seconds NOMINAL with no WARNING/CRITICAL, and deterministic boundary acceptance passed. Human post-release acceptance FAILED: RootAtSkic reported in Discord message 1549864663599284236, 'Do long user acceptance testing -> I tried and was not able to fly with any of configuration. It is terrible.' Release 1.0.0.1 is REJECTED for production and requires a replacement release.",
      "status_decision": {
        "item_id": "TASK-0148",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-16T09:10:27Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549708626472607755",
            "description": "RootAtSkic directed Wave 32 corrective Task creation and Delivery notification."
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0148-DONE-20260916",
        "sequence": 4,
        "item_id": "TASK-0148",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-16T18:26:30Z",
        "conditions": [],
        "release_version": "1.0.0.1",
        "chart_version": "1.0.0+build.2",
        "deployed_artifacts": {
          "chart": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
            "digest": "sha256:6390af819bb94925dff7045d690cf797fe18b1d2630e349caa20e71cbdeceb4b"
          },
          "web": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
            "digest": "sha256:439e23defe3efede88e4d7542ad812d79453d138ff8907be39e65c43f11438e8"
          },
          "api": {
            "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
            "digest": "sha256:c6ad4a682b0af4d8672053ee1d39542582b0e05f6178615e6dee59ad39274de1"
          }
        },
        "deployment_revision": "4222fc84c6e75b486951b42037776a5c167c77ea",
        "argo_revision": "1.0.0+build.2",
        "technical_deployment": "Passed",
        "automated_acceptance": "Passed",
        "human_acceptance": "Failed",
        "production_designation": "Rejected",
        "replacement_required": true,
        "runtime_health": {
          "argo_sync": "Synced",
          "argo_health": "Healthy",
          "web_ready": true,
          "api_ready": true,
          "postgresql_ready": true,
          "restarts": 0,
          "routes": [
            "UI 200",
            "API health 200",
            "Socket.IO 200"
          ]
        },
        "rollback": {
          "previous_gitops_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
          "status": "ready-not-invoked",
          "storage_preserved": true
        },
        "acceptance_evidence": [
          "Fresh real Keycloak SSO and database-backed protected pilot-profile and latest-resumable requests returned 200, proving functional deployed schema access.",
          "Training Airfield launched through ordinary controls and remained CORE STATUS: NOMINAL for more than 30 continuous seconds with no visible WARNING or CRITICAL state and no browser runtime errors.",
          "Exact-head and integrated CI retained deterministic warning, hard-limit, recovery hysteresis, termination, restart, and production-scale boundary acceptance.",
          "Human rejection evidence: RootAtSkic reported in Discord message 1549864663599284236, 'Do long user acceptance testing -> I tried and was not able to fly with any of configuration. It is terrible.' Human acceptance FAILED; production designation REJECTED; replacement release required."
        ],
        "evidence": [
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/205",
            "item_id": "TASK-0148",
            "state": "Done",
            "event_id": "FLOW-TASK-0148-DONE-20260916"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/6403",
            "item_id": "TASK-0148",
            "state": "Done",
            "event_id": "FLOW-TASK-0148-DONE-20260916"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/6405",
            "item_id": "TASK-0148",
            "state": "Done",
            "event_id": "FLOW-TASK-0148-DONE-20260916"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/6406",
            "item_id": "TASK-0148",
            "state": "Done",
            "event_id": "FLOW-TASK-0148-DONE-20260916"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-tmpl-aerosim/pulls/15",
            "item_id": "TASK-0148",
            "state": "Done",
            "event_id": "FLOW-TASK-0148-DONE-20260916"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/25",
            "item_id": "TASK-0148",
            "state": "Done",
            "event_id": "FLOW-TASK-0148-DONE-20260916"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0148.yml",
            "item_id": "TASK-0148",
            "state": "Done",
            "event_id": "FLOW-TASK-0148-DONE-20260916"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549864663599284236",
            "item_id": "TASK-0148",
            "state": "Done",
            "event_id": "FLOW-TASK-0148-DONE-20260916"
          }
        ],
        "previous_hash": "03519e9120418f9f6086953410464587bc90ac482a7dc84b74dde34a06e5370a",
        "hash": "235ac245c7395f42fc35529f2eaadff1abe33af37dabf73e1dc990098c21887b"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0148-READY-20260916",
          "sequence": 1,
          "item_id": "TASK-0148",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-16T09:10:27Z",
          "conditions": [
            "Wave 32 is the corrective-replacement wave for rejected deployed Release 1.0.0.0.",
            "Delivery must preserve correct physics units and prove production dwell plus deterministic near-boundary behavior.",
            "A new immutable corrective release and explicit human acceptance are required; Release 1.0.0.0 must not be repaired in place."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549708626472607755",
              "item_id": "TASK-0148",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0148-READY-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0148.yml",
              "item_id": "TASK-0148",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0148-READY-20260916"
            }
          ],
          "previous_hash": null,
          "hash": "83eb5a92be06e034ad93089e17700772e3d2524eef4f458d16ca6759f61117b3"
        },
        {
          "event_id": "FLOW-TASK-0148-IN-PROGRESS-20260916",
          "sequence": 2,
          "item_id": "TASK-0148",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-16T11:50:38Z",
          "conditions": [
            "Wave 32 is current; dependency TASK-0141 is Done.",
            "RootAtSkic admitted this corrective replacement-release Task in Discord message 1549708626472607755 without a second parent-Feature admission gate.",
            "RootAtSkic selected Option A in Discord message 1549748379540791297 for all three worlds: 20000 m warning, 25000 m hard limit, and 2000 m return hysteresis."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0148-world-boundary-distances-1",
          "claim_base_sha": "d8fbebfca8982fddd826f621ad1dd38650178ece",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549708626472607755",
              "item_id": "TASK-0148",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0148-IN-PROGRESS-20260916"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549748379540791297",
              "item_id": "TASK-0148",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0148-IN-PROGRESS-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/204",
              "item_id": "TASK-0148",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0148-IN-PROGRESS-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0148.yml",
              "item_id": "TASK-0148",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0148-IN-PROGRESS-20260916"
            }
          ],
          "previous_hash": "83eb5a92be06e034ad93089e17700772e3d2524eef4f458d16ca6759f61117b3",
          "hash": "5461edaa10c00ff59c0add704d533e84e0d8b238a83f76094c15c05b64a11e3b"
        },
        {
          "event_id": "FLOW-TASK-0148-TO-BE-RELEASED-20260916",
          "sequence": 3,
          "item_id": "TASK-0148",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-16T12:40:54Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/204",
              "item_id": "TASK-0148",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0148-TO-BE-RELEASED-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5180",
              "item_id": "TASK-0148",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0148-TO-BE-RELEASED-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5179",
              "item_id": "TASK-0148",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0148-TO-BE-RELEASED-20260916"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549748379540791297",
              "item_id": "TASK-0148",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0148-TO-BE-RELEASED-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0148.yml",
              "item_id": "TASK-0148",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0148-TO-BE-RELEASED-20260916"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/204",
          "reviewed_head": "095076385af7df8d345a74efb7158f181b958c49",
          "integration_revision": "48b64b2788af688b1745f94d4bf822e7da066b57",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5180",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5179",
          "acceptance_evidence": [
            "RootAtSkic-approved Option A is explicit for training-airfield, coastal-range, and mountain-valley at 20000 m warning, 25000 m hard limit, and 2000 m return hysteresis.",
            "The RED test reproduced the deployed 180 m hard-limit failure at approximately 0.4126 seconds for 848 knots.",
            "The canonical Training Airfield production profile remained INSIDE for 30 continuous seconds; evidence recorded 848 knots, 436.248512 m/s, and 13087.45536 m maximum radial distance.",
            "Deterministic near-boundary tests retained warning, hard-limit, positive bounded hysteresis, recovery, termination, and clean restart behavior while preserving altitude, grace, and knot-to-metre-per-second physics.",
            "Exact-head CI run 5178, integration validation run 5180, immutable image publication run 5179, and Harbor registry readback passed."
          ],
          "previous_hash": "5461edaa10c00ff59c0add704d533e84e0d8b238a83f76094c15c05b64a11e3b",
          "hash": "03519e9120418f9f6086953410464587bc90ac482a7dc84b74dde34a06e5370a"
        },
        {
          "event_id": "FLOW-TASK-0148-DONE-20260916",
          "sequence": 4,
          "item_id": "TASK-0148",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-16T18:26:30Z",
          "conditions": [],
          "release_version": "1.0.0.1",
          "chart_version": "1.0.0+build.2",
          "deployed_artifacts": {
            "chart": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/aerosim",
              "digest": "sha256:6390af819bb94925dff7045d690cf797fe18b1d2630e349caa20e71cbdeceb4b"
            },
            "web": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/nebula",
              "digest": "sha256:439e23defe3efede88e4d7542ad812d79453d138ff8907be39e65c43f11438e8"
            },
            "api": {
              "repository": "harbor-v1.apps.lego-cloud.eu/library/singularity",
              "digest": "sha256:c6ad4a682b0af4d8672053ee1d39542582b0e05f6178615e6dee59ad39274de1"
            }
          },
          "deployment_revision": "4222fc84c6e75b486951b42037776a5c167c77ea",
          "argo_revision": "1.0.0+build.2",
          "technical_deployment": "Passed",
          "automated_acceptance": "Passed",
          "human_acceptance": "Failed",
          "production_designation": "Rejected",
          "replacement_required": true,
          "runtime_health": {
            "argo_sync": "Synced",
            "argo_health": "Healthy",
            "web_ready": true,
            "api_ready": true,
            "postgresql_ready": true,
            "restarts": 0,
            "routes": [
              "UI 200",
              "API health 200",
              "Socket.IO 200"
            ]
          },
          "rollback": {
            "previous_gitops_revision": "5d3712d89dfbf7dacd993348e55f497d126c7bf9",
            "status": "ready-not-invoked",
            "storage_preserved": true
          },
          "acceptance_evidence": [
            "Fresh real Keycloak SSO and database-backed protected pilot-profile and latest-resumable requests returned 200, proving functional deployed schema access.",
            "Training Airfield launched through ordinary controls and remained CORE STATUS: NOMINAL for more than 30 continuous seconds with no visible WARNING or CRITICAL state and no browser runtime errors.",
            "Exact-head and integrated CI retained deterministic warning, hard-limit, recovery hysteresis, termination, restart, and production-scale boundary acceptance.",
            "Human rejection evidence: RootAtSkic reported in Discord message 1549864663599284236, 'Do long user acceptance testing -> I tried and was not able to fly with any of configuration. It is terrible.' Human acceptance FAILED; production designation REJECTED; replacement release required."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/205",
              "item_id": "TASK-0148",
              "state": "Done",
              "event_id": "FLOW-TASK-0148-DONE-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/6403",
              "item_id": "TASK-0148",
              "state": "Done",
              "event_id": "FLOW-TASK-0148-DONE-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/6405",
              "item_id": "TASK-0148",
              "state": "Done",
              "event_id": "FLOW-TASK-0148-DONE-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/6406",
              "item_id": "TASK-0148",
              "state": "Done",
              "event_id": "FLOW-TASK-0148-DONE-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-tmpl-aerosim/pulls/15",
              "item_id": "TASK-0148",
              "state": "Done",
              "event_id": "FLOW-TASK-0148-DONE-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/25",
              "item_id": "TASK-0148",
              "state": "Done",
              "event_id": "FLOW-TASK-0148-DONE-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0148.yml",
              "item_id": "TASK-0148",
              "state": "Done",
              "event_id": "FLOW-TASK-0148-DONE-20260916"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549864663599284236",
              "item_id": "TASK-0148",
              "state": "Done",
              "event_id": "FLOW-TASK-0148-DONE-20260916"
            }
          ],
          "previous_hash": "03519e9120418f9f6086953410464587bc90ac482a7dc84b74dde34a06e5370a",
          "hash": "235ac245c7395f42fc35529f2eaadff1abe33af37dabf73e1dc990098c21887b"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-WARNING"
        ],
        "acceptance": [
          "Verify nominal, warning, critical, recovery, and restart states against the approved Release 1.0.0 active-flight presentation without accepting premature CRITICAL behavior."
        ]
      },
      "evidence_url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/205"
    },
    {
      "id": "TASK-0149",
      "display_id": "AEROSIM-TS-149",
      "title": "Make the camera-selection page professional and design-conformant",
      "feature_id": "AEROSIM-FT-17",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-17/aerosim-ts-149/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0149.yml",
      "owner": "AeroSim UI/UX, Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — Screen 07 pre-flight Camera body",
      "outcome": "A player sees and operates one polished, design-conformant camera-selection body that makes all four initial-camera choices equally clear and preserves the selected camera through launch.",
      "scope": "Conform the existing camera-selection page to the approved Release 1.0.0 Screen 07 pre-flight Camera body without inventing a new design. Deliver one seamless full-width body with stable shared header and tab geometry, sharp rectangular New York/zinc styling, strong hierarchy, equal professional Chase, Cockpit, Orbit, and Fly-by cards, visible imagery or camera cues, complete-card hit targets, and immediate selected-state feedback.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/preflight/camera/InitialCameraSelector.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/preflight/PreflightBriefingScreen.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/styles.css",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/test/preflight/initial-camera-selector.spec.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/e2e/release-camera-selection.browser.spec.ts"
      ],
      "inputs": [
        "RootAtSkic directed this exact professional camera-selection correction and Wave 33 Delivery handoff in Discord message 1549867630800666695, acting as backup UI/UX and Kanban owner.",
        "Approved design package AEROSIM-UIUX-REL-1.0.0, Penpot file fb1055b2-4705-80bf-8008-8b539372c9fb, page 1c28ff56-144d-45d1-ae7b-785638b2432c, revision 6608.",
        "UIUX-100-PREFLIGHT governs the exact Screen 07 pre-flight Camera body evidence, including frame IDs 0373493e-5289-49a8-9aa0-b780699c5177 and 26d55dec-15e6-4e54-9c03-5739ff457915.",
        "TASK-0147 provides the completed ordinary full-card selection and launch-continuity baseline that this Task must preserve."
      ],
      "outputs": [
        "One seamless, aligned, full-width camera-selection body with sharp rectangular New York/zinc styling and a strong professional information hierarchy.",
        "Four equal camera cards for Chase, Cockpit, Orbit, and Fly-by, each with visible imagery or an unambiguous visual camera cue and the complete card as its hit target.",
        "Selection immediately moves the active border and a visible SELECTED label to the chosen card while the shared header and tab geometry remain unchanged.",
        "Responsive rendered evidence at every supported viewport and an ordinary-interaction screenshot comparison with the approved Penpot revision 6608 baseline."
      ],
      "failure_boundaries": [
        "Fail when the camera experience is split into disconnected panels or cards, leaves unused or misaligned width, changes shared header or tab geometry, or departs from sharp rectangular New York/zinc styling.",
        "Fail when Chase, Cockpit, Orbit, and Fly-by do not have equal professional card treatment, visible imagery or cues, and complete-card pointer hit targets.",
        "Fail when selection does not immediately move both the active border and visible SELECTED label, or when acceptance relies on force-click, hidden-input manipulation, direct DOM/state mutation, or API bypass.",
        "Fail when placeholder, prototype, debug, developer-looking, or implementation-note text is visible in the ordinary experience.",
        "Fail when any supported viewport clips, overflows, horizontally scrolls, overlaps, or collapses the intended hierarchy.",
        "Fail when ordinary interaction screenshots materially diverge from the approved UIUX-100-PREFLIGHT Penpot evidence without an approved exception.",
        "Fail when the confirmed camera no longer remains continuous into the first active-flight view."
      ],
      "exclusions": [
        "Do not create, revise, or substitute a Penpot design; use only the approved AEROSIM-UIUX-REL-1.0.0 revision 6608 evidence.",
        "Do not add new camera modes, change the canonical camera value or launch-state contract, or redesign unrelated Input, Flight, HUD, world, aircraft, or release surfaces."
      ],
      "verification_steps": [
        "Load penpot-design-operations and use only penpot-zcube-v1 to read the immutable AeroSim team, project, file, page, revision 6608, and UIUX-100-PREFLIGHT Screen 07 evidence before coding; stop if the approved baseline cannot be retrieved, is superseded, or is ambiguous.",
        "At every supported viewport, render the complete page and verify one seamless aligned full-width body, sharp rectangular New York/zinc styling, strong hierarchy, stable shared header/tab geometry, and no clipping, overlap, horizontal scroll, or overflow.",
        "Select Chase, Cockpit, Orbit, and Fly-by through ordinary clicks anywhere on each complete visible card; verify equal card geometry, visible imagery or cues, canonical selected value, immediate active border, and immediate visible SELECTED label.",
        "Verify no placeholder, prototype, debug, developer-looking, or implementation-note text is visible.",
        "Capture ordinary-interaction screenshots for the camera body and every selected state and compare them with the approved UIUX-100-PREFLIGHT Penpot revision 6608 evidence at the required viewports.",
        "Continue through the ordinary launch path and prove the confirmed camera remains the first active-flight view with no regression to launch continuity."
      ],
      "dependencies": [
        "TASK-0147"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0024"
      ],
      "acceptance_evidence": "Verified delivery: application PR #206 reviewed head 0eb7fe5cf363e09b400e24c2f8ca7b7e3fd3554f merged as e995856b46a0fd9c109867b8d97f6e73a41b2a41; candidate CI run 5204, integration validation run 5206, and immutable image publication run 5205 passed. The approved AEROSIM-UIUX-REL-1.0.0 revision 6608 and UIUX-100-PREFLIGHT source identity governed implementation. Release design conformance passed 36 screenshots with zero deviations; 12 ordinary selected-state screenshots passed at desktop, tablet, and mobile. Every complete card moved the cyan active border and visible SELECTED state immediately, responsive geometry remained stable without horizontal overflow or developer copy, and the confirmed Orbit camera remained the first active-flight view.",
      "status_decision": {
        "item_id": "TASK-0149",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-16T19:40:38.331Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
            "description": "RootAtSkic directed this exact Wave 33 Task and immediate Delivery pickup handoff as backup UI/UX and Kanban owner."
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0149-DONE-20260926",
        "sequence": 4,
        "item_id": "TASK-0149",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-26T09:23:28Z",
        "conditions": [
          "The Task integration revision e995856b46a0fd9c109867b8d97f6e73a41b2a41 is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
          "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
          "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
          "The root, health, and API health endpoints returned HTTP 200 after deployment.",
          "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
        ],
        "release_version": "1.0.0",
        "deployed_artifact": {
          "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
          "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
          }
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, zero restarts, digest matched",
          "api": "Ready, zero restarts, digest matched",
          "endpoints": [
            "/: HTTP 200",
            "/health: HTTP 200",
            "/api/health: HTTP 200"
          ]
        },
        "automated_acceptance": {
          "release_runtime_verification": "passed"
        },
        "human_post_release_acceptance": "PENDING",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
            "item_id": "TASK-0149",
            "state": "Done",
            "event_id": "FLOW-TASK-0149-DONE-20260926"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
            "item_id": "TASK-0149",
            "state": "Done",
            "event_id": "FLOW-TASK-0149-DONE-20260926"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
            "item_id": "TASK-0149",
            "state": "Done",
            "event_id": "FLOW-TASK-0149-DONE-20260926"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0149.yml",
            "item_id": "TASK-0149",
            "state": "Done",
            "event_id": "FLOW-TASK-0149-DONE-20260926"
          }
        ],
        "previous_hash": "303476ce569fbfbde7e2ec53216e3f6dcecea0f6b49e3469659c745f233dda6e",
        "hash": "9b53ab365ac7191cfd09dcc54acd4e685cdbafeb3b16fe451601abd4080b0a4d"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0149-READY-20260916",
          "sequence": 1,
          "item_id": "TASK-0149",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-16T19:40:38.331Z",
          "conditions": [
            "Wave 33 contains this first professional camera-selection correction and dependency TASK-0147 is Done.",
            "Delivery must use only the approved AEROSIM-UIUX-REL-1.0.0 Penpot revision 6608 evidence governed by UIUX-100-PREFLIGHT; no new design is authorized.",
            "This exact READY_FOR_DELIVERY event is the Focus admission and Delivery pickup handoff; no second admission gate is required."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
              "item_id": "TASK-0149",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0149-READY-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0149.yml",
              "item_id": "TASK-0149",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0149-READY-20260916"
            }
          ],
          "previous_hash": null,
          "hash": "137195d8dac56174bb76e7502838ae5dfa9fefc46686f888c9cf6bc5611f0f90"
        },
        {
          "event_id": "FLOW-TASK-0149-IN-PROGRESS-20260916",
          "sequence": 2,
          "item_id": "TASK-0149",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-16T20:33:29Z",
          "conditions": [
            "Wave 33 is current and dependency TASK-0147 is Done.",
            "RootAtSkic admitted this exact professional camera-selection correction through FLOW-TASK-0149-READY-20260916 with no second admission gate.",
            "Implementation is limited to approved AEROSIM-UIUX-REL-1.0.0 Penpot revision 6608 and UIUX-100-PREFLIGHT Screen 07 evidence."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0149-professional-camera-selection-1",
          "claim_base_sha": "ab085692e2ed70bdb6525044b4ca91cc48a27478",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
              "item_id": "TASK-0149",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0149-IN-PROGRESS-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/206",
              "item_id": "TASK-0149",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0149-IN-PROGRESS-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0149.yml",
              "item_id": "TASK-0149",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0149-IN-PROGRESS-20260916"
            }
          ],
          "previous_hash": "137195d8dac56174bb76e7502838ae5dfa9fefc46686f888c9cf6bc5611f0f90",
          "hash": "cdbfe8a298b7a3c64f2497f3be3153ebee4f844c0ccfb9d46d36d1058c31fb92"
        },
        {
          "event_id": "FLOW-TASK-0149-TO-BE-RELEASED-20260916",
          "sequence": 3,
          "item_id": "TASK-0149",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-16T21:36:32Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/206",
              "item_id": "TASK-0149",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0149-TO-BE-RELEASED-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5206",
              "item_id": "TASK-0149",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0149-TO-BE-RELEASED-20260916"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5205",
              "item_id": "TASK-0149",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0149-TO-BE-RELEASED-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0149.yml",
              "item_id": "TASK-0149",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0149-TO-BE-RELEASED-20260916"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/206",
          "reviewed_head": "0eb7fe5cf363e09b400e24c2f8ca7b7e3fd3554f",
          "integration_revision": "e995856b46a0fd9c109867b8d97f6e73a41b2a41",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5206",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5205",
          "design_package": "AEROSIM-UIUX-REL-1.0.0@6608/UIUX-100-PREFLIGHT",
          "screenshot_count": 12,
          "viewports": [
            "1440x900",
            "1024x768",
            "390x844"
          ],
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:243122ca1b1e8747e3c0b4ef66c93a19f68e0b5a1c794ae751cada9444d19061",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:bed7b54a542266b8abf694e1c19e7c9fb5a90375c6ebed3cc383f181f6af3e44"
          },
          "acceptance_evidence": [
            "The approved AEROSIM-UIUX-REL-1.0.0 revision 6608 and UIUX-100-PREFLIGHT source identity governed the implementation; Release 1.0.0 design conformance passed 36 screenshots with zero unapproved deviations.",
            "Chase, Cockpit, Orbit, and Fly-by passed ordinary complete-card clicks with equal professional treatment, visual cues, immediate cyan active border, and visible SELECTED state.",
            "Twelve selected-state screenshots passed at 1440x900, 1024x768, and 390x844 with stable header and equal tab geometry, no horizontal overflow, clipping, overlap, placeholder, debug, prototype, or implementation-note copy.",
            "Focused selector tests passed 20 scenarios and camera launch-continuation tests passed 5 scenarios.",
            "The confirmed Orbit camera remained the first active-flight view through the ordinary confirm and launch path.",
            "Candidate CI run 5204, integration validation run 5206, immutable image publication run 5205, and Harbor digest readback passed."
          ],
          "previous_hash": "cdbfe8a298b7a3c64f2497f3be3153ebee4f844c0ccfb9d46d36d1058c31fb92",
          "hash": "303476ce569fbfbde7e2ec53216e3f6dcecea0f6b49e3469659c745f233dda6e"
        },
        {
          "event_id": "FLOW-TASK-0149-DONE-20260926",
          "sequence": 4,
          "item_id": "TASK-0149",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-26T09:23:28Z",
          "conditions": [
            "The Task integration revision e995856b46a0fd9c109867b8d97f6e73a41b2a41 is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
            "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
            "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
            "The root, health, and API health endpoints returned HTTP 200 after deployment.",
            "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
          ],
          "release_version": "1.0.0",
          "deployed_artifact": {
            "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
            "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
            "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
            "images": {
              "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
              "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
            }
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, zero restarts, digest matched",
            "api": "Ready, zero restarts, digest matched",
            "endpoints": [
              "/: HTTP 200",
              "/health: HTTP 200",
              "/api/health: HTTP 200"
            ]
          },
          "automated_acceptance": {
            "release_runtime_verification": "passed"
          },
          "human_post_release_acceptance": "PENDING",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
              "item_id": "TASK-0149",
              "state": "Done",
              "event_id": "FLOW-TASK-0149-DONE-20260926"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0149",
              "state": "Done",
              "event_id": "FLOW-TASK-0149-DONE-20260926"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0149",
              "state": "Done",
              "event_id": "FLOW-TASK-0149-DONE-20260926"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0149.yml",
              "item_id": "TASK-0149",
              "state": "Done",
              "event_id": "FLOW-TASK-0149-DONE-20260926"
            }
          ],
          "previous_hash": "303476ce569fbfbde7e2ec53216e3f6dcecea0f6b49e3469659c745f233dda6e",
          "hash": "9b53ab365ac7191cfd09dcc54acd4e685cdbafeb3b16fe451601abd4080b0a4d"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-PREFLIGHT"
        ],
        "acceptance": [
          "Compare the ordinary interactive Screen 07 Camera body and each selected state with the approved Release 1.0.0 Penpot revision 6608 evidence at every supported viewport.",
          "Preserve the exact seamless pre-flight body, stable shared header/tab geometry, and launch continuity governed by UIUX-100-PREFLIGHT."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457"
    },
    {
      "id": "TASK-0150",
      "display_id": "AEROSIM-TS-150",
      "title": "Normalize all production aircraft presentation assets",
      "feature_id": "AEROSIM-FT-48",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-48/aerosim-ts-150/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0150.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — production aircraft presentation contract",
      "outcome": "Every one of the nine governed aircraft assets enters flight through one validated production presentation contract with deterministic centre, scale, forward/up axes, render anchor, collision anchor, and cockpit anchor metadata.",
      "scope": "Define and consume one production aircraft-presentation manifest for all nine assets. Normalize source-space bounds into authored flight-space dimensions and orientation before rendering; carry explicit model, render, collision, camera-target, and cockpit anchors; reject missing or non-finite metadata instead of falling back to raw glTF transforms. This Task owns aircraft presentation only and does not implement camera motion, world transforms, controls, route composition, or acceptance orchestration.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:assets/manifests/*.json",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/assets/AircraftModel.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/assets/aircraft-presentation-contract.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/test/flight/aircraft-presentation-contract.spec.ts"
      ],
      "inputs": [
        "RootAtSkic authorized Wave 33 correction work in Discord message 1549867630800666695 and then asked the exact completeness question in message 1549881095363760179; this admission supplies the missing repair Tasks without modifying the separately claimed TASK-0149.",
        "Deployed application source ab085692e2ed70bdb6525044b4ca91cc48a27478 for product 1.0.0.1; release 1.0.0.1 remains deployed, human acceptance FAILED, production REJECTED, and a replacement release is required.",
        "Ordinary-user UAT evidence: /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-training-airfield-rerun/report.md and report.json (12/12 failed), /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-coastal-range/uat-report.md and uat-report.json (12/12 failed), and /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-mountain-valley/report.md and report.json (12/12 failed). All three runs prohibit forced clicks, hidden-input interaction, DOM/state mutation, direct API setup, or other bypass.",
        "Diagnosed root-cause records: /opt/data/cache/delegation/subagent-summary-0-20260916_203916_911368.txt, /opt/data/cache/delegation/subagent-summary-1-20260916_203916_911707.txt, /opt/data/cache/delegation/subagent-summary-2-20260916_203916_911857.txt.",
        "Root-cause summary 0 lines 9-16: AircraftModel.tsx mounts raw asset.scene while F-14 bounds are 191.5 × 55.6 × 195.5 m with centre x=-149.0, Cube.008 is 930.8 × 424.6 × 759.1 m with centre near (13.5, 541.1, -734.9), and the remaining aircraft are roughly 7–22 m.",
        "Coastal UAT J01/J02/J09 and Mountain Valley J01/J02 show tiny, clipped, or giant aircraft; TASK-0146 passed only because its isolated quality viewer recentered and camera-fit assets outside production."
      ],
      "outputs": [
        "One schema-validated aircraft presentation record for each of the exact nine production aircraft IDs.",
        "Production rendering consumes normalized centre, scale, forward/up axes, render/collision/camera/cockpit anchors and no longer mounts raw source transforms as flight transforms.",
        "A deterministic all-nine acceptance table records authored dimensions, axes, anchors, and validation result."
      ],
      "failure_boundaries": [
        "Fail closed when any of the nine assets is absent, duplicated, unlicensed, untraceable, non-finite, outside the governed dimension envelope, lacks an explicit forward/up axis, or lacks required anchors.",
        "Fail if isolated test-only recentering or camera fitting makes acceptance pass while the production renderer still consumes raw asset.scene transforms."
      ],
      "exclusions": [
        "No application implementation is performed by this admission change.",
        "Do not rewrite TASK-0149, infer a router-retention defect, report working Menu Restart as failed, classify static STALL SPEED 140 KT specification text as an active warning, or broaden governed interaction scope beyond the exact interaction semantics stated here."
      ],
      "verification_steps": [
        "Tests first: add failing contract, malformed-metadata, and production-consumption tests for all nine asset IDs before changing the renderer or manifests.",
        "Run all-nine production-path bounds/orientation probes and assert each normalized asset is centred at its authored render anchor, faces the same forward axis, uses the same up axis, and exposes finite collision, camera-target, and cockpit anchors.",
        "Launch every aircraft through the real browser path and assert recognizable aircraft pixels and bounded screen-space coverage without test-only transforms. No force-click, hidden input, direct state/DOM mutation, fixture-only viewer, API setup, or browser bypass is acceptance evidence."
      ],
      "dependencies": [
        "TASK-0146"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0055"
      ],
      "acceptance_evidence": "Verified delivery: all nine governed aircraft use one production presentation contract with measured source bounds, uniform authored dimensions, explicit axes, and finite render, collision, camera-target, and cockpit anchors; the production renderer fails closed on invalid metadata and consumes the normalized presentation root; ordinary visible-control browser acceptance passed 9/9; exact-head and post-merge integration CI passed; and immutable Nebula and Singularity images were published and read back from Harbor. Replacement-release acceptance remains Release-owned.",
      "status_decision": {
        "item_id": "TASK-0150",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-16T20:44:19Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
            "description": "RootAtSkic requested the complete Wave 33 repair Task set after verified UAT and root-cause diagnosis."
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
            "description": "RootAtSkic Wave 33 correction authority and immediate Delivery handoff."
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0150-DONE-20260926",
        "sequence": 4,
        "item_id": "TASK-0150",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-26T09:23:28Z",
        "conditions": [
          "The Task integration revision 99179b45d2318fa087e7f9906db8a052063d7786 is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
          "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
          "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
          "The root, health, and API health endpoints returned HTTP 200 after deployment.",
          "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
        ],
        "release_version": "1.0.0",
        "deployed_artifact": {
          "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
          "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
          }
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, zero restarts, digest matched",
          "api": "Ready, zero restarts, digest matched",
          "endpoints": [
            "/: HTTP 200",
            "/health: HTTP 200",
            "/api/health: HTTP 200"
          ]
        },
        "automated_acceptance": {
          "release_runtime_verification": "passed"
        },
        "human_post_release_acceptance": "PENDING",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
            "item_id": "TASK-0150",
            "state": "Done",
            "event_id": "FLOW-TASK-0150-DONE-20260926"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
            "item_id": "TASK-0150",
            "state": "Done",
            "event_id": "FLOW-TASK-0150-DONE-20260926"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
            "item_id": "TASK-0150",
            "state": "Done",
            "event_id": "FLOW-TASK-0150-DONE-20260926"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0150.yml",
            "item_id": "TASK-0150",
            "state": "Done",
            "event_id": "FLOW-TASK-0150-DONE-20260926"
          }
        ],
        "previous_hash": "e85a32a4958873701d0a5d4d7c1e54529d23243a8e7b2f1dcd12129ed2e33166",
        "hash": "12bdd2f867b86c80813dc184a9262b0256b0e26eccc98b8602bd631a5ce40e0f"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0150-READY-20260916",
          "sequence": 1,
          "item_id": "TASK-0150",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-16T20:44:19Z",
          "conditions": [
            "This exact Task is admitted as required replacement-release repair work from the verified 36/36 failed ordinary-user UAT and deployed-source root-cause evidence.",
            "Release 1.0.0.1 remains deployed, human FAILED, production REJECTED, and requires replacement; admission does not relabel or overwrite that release.",
            "Tests must be written first and browser acceptance must use ordinary visible interactions with no forced click or other bypass."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
              "item_id": "TASK-0150",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0150-READY-20260916"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
              "item_id": "TASK-0150",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0150-READY-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0150.yml",
              "item_id": "TASK-0150",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0150-READY-20260916"
            }
          ],
          "previous_hash": null,
          "hash": "effce502ff8d8a7ab460635597adcce1df1c79729876528176074a26e741419e"
        },
        {
          "event_id": "FLOW-TASK-0150-IN-PROGRESS-20260917",
          "sequence": 2,
          "item_id": "TASK-0150",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-17T19:19:14Z",
          "conditions": [
            "Wave 33 is current and dependency TASK-0146 is Done.",
            "RootAtSkic admitted this exact aircraft-presentation correction through FLOW-TASK-0150-READY-20260916 with no second admission gate.",
            "Implementation is limited to FR-0055 and approved AEROSIM-UIUX-REL-1.0.0 supporting presentation semantics."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0150-normalize-aircraft-presentation-1",
          "claim_base_sha": "e995856b46a0fd9c109867b8d97f6e73a41b2a41",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
              "item_id": "TASK-0150",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0150-IN-PROGRESS-20260917"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/208",
              "item_id": "TASK-0150",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0150-IN-PROGRESS-20260917"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0150.yml",
              "item_id": "TASK-0150",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0150-IN-PROGRESS-20260917"
            }
          ],
          "previous_hash": "effce502ff8d8a7ab460635597adcce1df1c79729876528176074a26e741419e",
          "hash": "aca4bf51d8ef13706010b7ccef4aa8c5730acb522cbd9d2501651c74271efe69"
        },
        {
          "event_id": "FLOW-TASK-0150-TO-BE-RELEASED-20260918",
          "sequence": 3,
          "item_id": "TASK-0150",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-18T07:14:38Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/208",
              "item_id": "TASK-0150",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0150-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5296",
              "item_id": "TASK-0150",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0150-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5298",
              "item_id": "TASK-0150",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0150-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5297",
              "item_id": "TASK-0150",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0150-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0150.yml",
              "item_id": "TASK-0150",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0150-TO-BE-RELEASED-20260918"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/208",
          "reviewed_head": "215a3a39bf2404217a0abbd0e7830def385b1606",
          "integration_revision": "99179b45d2318fa087e7f9906db8a052063d7786",
          "candidate_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5296",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5298",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5297",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:f62a87d17a9a9ee2750ae0c411048009a17401f1a9702ab92587912c6ec0b8d8",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:dd28121b45669834e7576f56946c0e6a9355865617b9487edf67b9f748ff2c91"
          },
          "acceptance_evidence": [
            "One schema-validated production presentation record governs all nine aircraft IDs with measured source bounds, uniform authored dimensions, explicit forward/up axes, and finite render, collision, camera-target, and cockpit anchors.",
            "Production AircraftModel fails closed on absent or invalid metadata and mounts the recentered, uniformly scaled presentation root consumed by the merged production camera-rig path.",
            "Focused exact-head verification passed 40 Vitest checks and all 9 ordinary visible-control browser aircraft launches; lint, typecheck, build, production audit, diff check, and exact-head review passed.",
            "Exact-head application validation run 5296 passed lint, typecheck, workflow contract, tests, environment consistency, release design conformance, build, container images, and required aggregation.",
            "Post-merge validation run 5298 passed at integration revision 99179b45d2318fa087e7f9906db8a052063d7786; immutable image publication run 5297 attempt 2 passed after attempt 1 encountered a transient PostgreSQL service startup failure.",
            "Harbor readback matched the immutable integration-revision tags and recorded Nebula and Singularity manifest digests."
          ],
          "previous_hash": "aca4bf51d8ef13706010b7ccef4aa8c5730acb522cbd9d2501651c74271efe69",
          "hash": "e85a32a4958873701d0a5d4d7c1e54529d23243a8e7b2f1dcd12129ed2e33166"
        },
        {
          "event_id": "FLOW-TASK-0150-DONE-20260926",
          "sequence": 4,
          "item_id": "TASK-0150",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-26T09:23:28Z",
          "conditions": [
            "The Task integration revision 99179b45d2318fa087e7f9906db8a052063d7786 is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
            "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
            "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
            "The root, health, and API health endpoints returned HTTP 200 after deployment.",
            "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
          ],
          "release_version": "1.0.0",
          "deployed_artifact": {
            "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
            "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
            "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
            "images": {
              "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
              "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
            }
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, zero restarts, digest matched",
            "api": "Ready, zero restarts, digest matched",
            "endpoints": [
              "/: HTTP 200",
              "/health: HTTP 200",
              "/api/health: HTTP 200"
            ]
          },
          "automated_acceptance": {
            "release_runtime_verification": "passed"
          },
          "human_post_release_acceptance": "PENDING",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
              "item_id": "TASK-0150",
              "state": "Done",
              "event_id": "FLOW-TASK-0150-DONE-20260926"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0150",
              "state": "Done",
              "event_id": "FLOW-TASK-0150-DONE-20260926"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0150",
              "state": "Done",
              "event_id": "FLOW-TASK-0150-DONE-20260926"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0150.yml",
              "item_id": "TASK-0150",
              "state": "Done",
              "event_id": "FLOW-TASK-0150-DONE-20260926"
            }
          ],
          "previous_hash": "e85a32a4958873701d0a5d4d7c1e54529d23243a8e7b2f1dcd12129ed2e33166",
          "hash": "12bdd2f867b86c80813dc184a9262b0256b0e26eccc98b8602bd631a5ce40e0f"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "supporting",
        "design_refs": [
          "UIUX-100-CHASE",
          "UIUX-100-CAMERAS"
        ],
        "acceptance": [
          "Preserve the approved Release 1.0.0 interaction and presentation semantics for the referenced frames while repairing diagnosed production behavior; no new design or broader interaction scope is authorized.",
          "Compare rendered ordinary-interaction behavior at every supported viewport and state; tests or DOM attributes alone do not prove design conformance."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457"
    },
    {
      "id": "TASK-0151",
      "display_id": "AEROSIM-TS-151",
      "title": "Bind all production camera rigs to the active aircraft",
      "feature_id": "AEROSIM-FT-14",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-14/aerosim-ts-151/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0151.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — active-flight production camera rigs",
      "outcome": "Chase, Cockpit, Orbit, and Fly-by are production aircraft-bound rigs whose rendered semantics remain usable while the authoritative aircraft moves.",
      "scope": "Replace static fixture camera selection with production camera-rig lifecycle updates bound to the authoritative aircraft transform and TASK-0150 anchors. Chase continuously follows; Cockpit uses the governed cockpit anchor and forward/up basis; Orbit maintains a bounded aircraft-relative orbit; Fly-by selects and updates a bounded world-space pass relative to aircraft motion. Preserve camera switching without changing aircraft state or control ownership.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/SceneRoot.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/cameras.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/camera/secondary-camera-registry.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/camera/camera-switch-coordinator.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/test/flight/production-camera-rigs.browser.spec.ts"
      ],
      "inputs": [
        "RootAtSkic authorized Wave 33 correction work in Discord message 1549867630800666695 and then asked the exact completeness question in message 1549881095363760179; this admission supplies the missing repair Tasks without modifying the separately claimed TASK-0149.",
        "Deployed application source ab085692e2ed70bdb6525044b4ca91cc48a27478 for product 1.0.0.1; release 1.0.0.1 remains deployed, human acceptance FAILED, production REJECTED, and a replacement release is required.",
        "Ordinary-user UAT evidence: /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-training-airfield-rerun/report.md and report.json (12/12 failed), /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-coastal-range/uat-report.md and uat-report.json (12/12 failed), and /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-mountain-valley/report.md and report.json (12/12 failed). All three runs prohibit forced clicks, hidden-input interaction, DOM/state mutation, direct API setup, or other bypass.",
        "Diagnosed root-cause records: /opt/data/cache/delegation/subagent-summary-0-20260916_203916_911368.txt, /opt/data/cache/delegation/subagent-summary-1-20260916_203916_911707.txt, /opt/data/cache/delegation/subagent-summary-2-20260916_203916_911857.txt.",
        "Root-cause summary 0 lines 18-27: Cockpit, Orbit, and Fly-by are static representative-scene cameras; SceneRoot updates only Chase and the implemented secondary registry/coordinator are not connected to production.",
        "Coastal UAT camera matrix failed 12/12: Cockpit failed 3/3, Fly-by and Orbit lost or clipped aircraft, and J10 became black. Mountain Valley J05/J09/J11 became blank or black after ordinary camera cycling."
      ],
      "outputs": [
        "One production camera-rig registry and lifecycle for all four canonical camera IDs.",
        "Moving-flight rendered evidence that each mode retains its declared semantics and that camera changes do not reset or mutate aircraft/control state."
      ],
      "failure_boundaries": [
        "Fail when a selected production camera is a static fixture, is not updated from the current authoritative aircraft step, loses required aircraft/world context, clips through the aircraft, produces a black/empty frame, or changes aircraft state.",
        "Fail when a secondary-camera unit test passes but SceneRoot does not consume the same production registry/coordinator."
      ],
      "exclusions": [
        "No application implementation is performed by this admission change.",
        "Do not rewrite TASK-0149, infer a router-retention defect, report working Menu Restart as failed, classify static STALL SPEED 140 KT specification text as an active warning, or broaden governed interaction scope beyond the exact interaction semantics stated here."
      ],
      "verification_steps": [
        "Tests first: write failing moving-aircraft rig lifecycle, stale-step, switch-continuity, clipping, and rendered-pixel tests before replacing production selection.",
        "For each of the nine aircraft, sustain movement and exercise Chase, Cockpit, Orbit, and Fly-by; assert non-background pixels, mode-specific visibility/semantics, finite camera transforms, matching aircraft source step, and no state reset.",
        "Use the ordinary launch and in-flight camera controls in a real browser at every supported viewport. No force-click, hidden input, direct camera/state mutation, fixture injection, API setup, or browser bypass is acceptance evidence."
      ],
      "dependencies": [
        "TASK-0090",
        "TASK-0095"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0021"
      ],
      "acceptance_evidence": "Verified delivery: SceneRoot consumes the production Chase, Cockpit, Orbit, and Fly-by lifecycle from the authoritative aircraft transform and governed presentation anchors; focused moving-rig, bounded-pose, stale-input, and reset-continuity tests passed; exact-head and post-merge integration CI passed; and immutable Nebula and Singularity images were published and read back from Harbor. Replacement-release acceptance remains Release-owned.",
      "status_decision": {
        "item_id": "TASK-0151",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-16T20:44:19Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
            "description": "RootAtSkic requested the complete Wave 33 repair Task set after verified UAT and root-cause diagnosis."
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
            "description": "RootAtSkic Wave 33 correction authority and immediate Delivery handoff."
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0151-DONE-20260926",
        "sequence": 4,
        "item_id": "TASK-0151",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-26T09:23:28Z",
        "conditions": [
          "The Task integration revision 091baaa550cd38562f357dbac623069f753013a9 is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
          "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
          "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
          "The root, health, and API health endpoints returned HTTP 200 after deployment.",
          "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
        ],
        "release_version": "1.0.0",
        "deployed_artifact": {
          "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
          "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
          }
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, zero restarts, digest matched",
          "api": "Ready, zero restarts, digest matched",
          "endpoints": [
            "/: HTTP 200",
            "/health: HTTP 200",
            "/api/health: HTTP 200"
          ]
        },
        "automated_acceptance": {
          "release_runtime_verification": "passed"
        },
        "human_post_release_acceptance": "PENDING",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
            "item_id": "TASK-0151",
            "state": "Done",
            "event_id": "FLOW-TASK-0151-DONE-20260926"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
            "item_id": "TASK-0151",
            "state": "Done",
            "event_id": "FLOW-TASK-0151-DONE-20260926"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
            "item_id": "TASK-0151",
            "state": "Done",
            "event_id": "FLOW-TASK-0151-DONE-20260926"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0151.yml",
            "item_id": "TASK-0151",
            "state": "Done",
            "event_id": "FLOW-TASK-0151-DONE-20260926"
          }
        ],
        "previous_hash": "22118a044786eca0689f562fe636308edd5638ad2e184e4020658d7751623ade",
        "hash": "65315ef167c1cb90e243880e28bcc9a09fc0bcfc1f1e3ad0ee7ac88c0eee8af8"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0151-READY-20260916",
          "sequence": 1,
          "item_id": "TASK-0151",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-16T20:44:19Z",
          "conditions": [
            "This exact Task is admitted as required replacement-release repair work from the verified 36/36 failed ordinary-user UAT and deployed-source root-cause evidence.",
            "Release 1.0.0.1 remains deployed, human FAILED, production REJECTED, and requires replacement; admission does not relabel or overwrite that release.",
            "Tests must be written first and browser acceptance must use ordinary visible interactions with no forced click or other bypass."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
              "item_id": "TASK-0151",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0151-READY-20260916"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
              "item_id": "TASK-0151",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0151-READY-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0151.yml",
              "item_id": "TASK-0151",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0151-READY-20260916"
            }
          ],
          "previous_hash": null,
          "hash": "9b6224dbc6a3fdaf358e759a9cd90037bc56a461212f27864f17f992407e4652"
        },
        {
          "event_id": "FLOW-TASK-0151-IN-PROGRESS-20260917",
          "sequence": 2,
          "item_id": "TASK-0151",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-17T19:12:54Z",
          "conditions": [
            "Wave 33 is current and dependencies TASK-0090 and TASK-0095 are Done.",
            "RootAtSkic admitted this exact production camera-rig correction through FLOW-TASK-0151-READY-20260916 with no second admission gate.",
            "Implementation is limited to FR-0021 and approved AEROSIM-UIUX-REL-1.0.0 camera presentation semantics."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0151-bind-production-camera-rigs-1",
          "claim_base_sha": "e995856b46a0fd9c109867b8d97f6e73a41b2a41",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
              "item_id": "TASK-0151",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0151-IN-PROGRESS-20260917"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/210",
              "item_id": "TASK-0151",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0151-IN-PROGRESS-20260917"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0151.yml",
              "item_id": "TASK-0151",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0151-IN-PROGRESS-20260917"
            }
          ],
          "previous_hash": "9b6224dbc6a3fdaf358e759a9cd90037bc56a461212f27864f17f992407e4652",
          "hash": "cac968d48e66af8fee4941bd1ca00c7694d5d71902d6eab7743615a7ac2129f4"
        },
        {
          "event_id": "FLOW-TASK-0151-TO-BE-RELEASED-20260918",
          "sequence": 3,
          "item_id": "TASK-0151",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-18T06:33:00Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/210",
              "item_id": "TASK-0151",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0151-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5288",
              "item_id": "TASK-0151",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0151-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5292",
              "item_id": "TASK-0151",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0151-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5291",
              "item_id": "TASK-0151",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0151-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0151.yml",
              "item_id": "TASK-0151",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0151-TO-BE-RELEASED-20260918"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/210",
          "reviewed_head": "2758fcdc083956315018dfb753638664fb43f1ba",
          "integration_revision": "091baaa550cd38562f357dbac623069f753013a9",
          "candidate_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5288",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5292",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5291",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:28278a39fa6d37b65ccea18f2c1b7a151f5fd4027bbc07991896274e9b752328",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:932a6fc7bc20386aae98af2747c6102a1933f343e9bae569f5fb9d2bbeaeab13"
          },
          "acceptance_evidence": [
            "SceneRoot consumes one production camera-rig lifecycle for Chase, Cockpit, Orbit, and Fly-by and updates all four from the authoritative aircraft transform and governed presentation anchors.",
            "Focused production-camera-rig tests passed 4/4 for moving-aircraft updates, bounded Orbit and Fly-by poses, aircraft-relative Cockpit placement, stale and non-finite fail-closed input, and reset-attempt continuity.",
            "Exact-head application validation run 5288 passed tests, environment consistency, release design conformance, lint, typecheck, build, workflow contract, and container checks.",
            "Post-merge validation run 5292 passed at integration revision 091baaa550cd38562f357dbac623069f753013a9; immutable image publication run 5291 passed.",
            "Harbor readback matched the immutable integration revision tags and recorded Nebula and Singularity manifest digests."
          ],
          "previous_hash": "cac968d48e66af8fee4941bd1ca00c7694d5d71902d6eab7743615a7ac2129f4",
          "hash": "22118a044786eca0689f562fe636308edd5638ad2e184e4020658d7751623ade"
        },
        {
          "event_id": "FLOW-TASK-0151-DONE-20260926",
          "sequence": 4,
          "item_id": "TASK-0151",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-26T09:23:28Z",
          "conditions": [
            "The Task integration revision 091baaa550cd38562f357dbac623069f753013a9 is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
            "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
            "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
            "The root, health, and API health endpoints returned HTTP 200 after deployment.",
            "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
          ],
          "release_version": "1.0.0",
          "deployed_artifact": {
            "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
            "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
            "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
            "images": {
              "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
              "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
            }
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, zero restarts, digest matched",
            "api": "Ready, zero restarts, digest matched",
            "endpoints": [
              "/: HTTP 200",
              "/health: HTTP 200",
              "/api/health: HTTP 200"
            ]
          },
          "automated_acceptance": {
            "release_runtime_verification": "passed"
          },
          "human_post_release_acceptance": "PENDING",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
              "item_id": "TASK-0151",
              "state": "Done",
              "event_id": "FLOW-TASK-0151-DONE-20260926"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0151",
              "state": "Done",
              "event_id": "FLOW-TASK-0151-DONE-20260926"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0151",
              "state": "Done",
              "event_id": "FLOW-TASK-0151-DONE-20260926"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0151.yml",
              "item_id": "TASK-0151",
              "state": "Done",
              "event_id": "FLOW-TASK-0151-DONE-20260926"
            }
          ],
          "previous_hash": "22118a044786eca0689f562fe636308edd5638ad2e184e4020658d7751623ade",
          "hash": "65315ef167c1cb90e243880e28bcc9a09fc0bcfc1f1e3ad0ee7ac88c0eee8af8"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-CHASE",
          "UIUX-100-CAMERAS"
        ],
        "acceptance": [
          "Preserve the approved Release 1.0.0 interaction and presentation semantics for the referenced frames while repairing diagnosed production behavior; no new design or broader interaction scope is authorized.",
          "Compare rendered ordinary-interaction behavior at every supported viewport and state; tests or DOM attributes alone do not prove design conformance."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457"
    },
    {
      "id": "TASK-0152",
      "display_id": "AEROSIM-TS-152",
      "title": "Author one world-space and Coastal compositing contract",
      "feature_id": "AEROSIM-FT-47",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-47/aerosim-ts-152/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0152.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — governed terrain and flight world space",
      "outcome": "Terrain presentation, spawn, collision, aircraft presentation, and camera coordinates share one authored world-space contract, and Coastal Range renders correct water depth/transparency and visible content attribution.",
      "scope": "Define one versioned world-space record per governed world covering origin, units, horizontal/vertical scale, terrain transform, spawn transform, collision transform, presentation bounds, camera bounds, water plane, render order, depth behavior, and attribution. Make production terrain, collision, spawn, aircraft presentation, and camera consumers use that record. Correct Coastal water transparency/depth ordering and the visible world-specific content/attribution without changing the selected world ID.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:assets/manifests/terrain-*.json",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/terrain/WorldTerrainModel.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/world-terrain-registry.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/world-space-contract.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/test/flight/world-space-contract.browser.spec.ts"
      ],
      "inputs": [
        "RootAtSkic authorized Wave 33 correction work in Discord message 1549867630800666695 and then asked the exact completeness question in message 1549881095363760179; this admission supplies the missing repair Tasks without modifying the separately claimed TASK-0149.",
        "Deployed application source ab085692e2ed70bdb6525044b4ca91cc48a27478 for product 1.0.0.1; release 1.0.0.1 remains deployed, human acceptance FAILED, production REJECTED, and a replacement release is required.",
        "Ordinary-user UAT evidence: /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-training-airfield-rerun/report.md and report.json (12/12 failed), /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-coastal-range/uat-report.md and uat-report.json (12/12 failed), and /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-mountain-valley/report.md and report.json (12/12 failed). All three runs prohibit forced clicks, hidden-input interaction, DOM/state mutation, direct API setup, or other bypass.",
        "Diagnosed root-cause records: /opt/data/cache/delegation/subagent-summary-0-20260916_203916_911368.txt, /opt/data/cache/delegation/subagent-summary-1-20260916_203916_911707.txt, /opt/data/cache/delegation/subagent-summary-2-20260916_203916_911857.txt.",
        "Root-cause summary 0 lines 29-38: WorldTerrainModel independently scales decorative-only terrain while physics uses representative collider space; Coastal water intersects terrain with transparent depthWrite=true and no render ordering.",
        "Root-cause summary 0 lines 45-48 and Training Airfield rerun report line 50 show hardcoded unrelated attribution/content. Coastal UAT shows turquoise water slicing mountains and snowy-mountain attribution across camera modes."
      ],
      "outputs": [
        "One authored world-space record for each governed world, consumed by visual terrain, spawn, collision, presentation, and cameras.",
        "Coastal water has explicit transparent depth/render ordering and cannot occlude or tint terrain incorrectly.",
        "Visible attribution and content resolve only from the selected world manifest."
      ],
      "failure_boundaries": [
        "Fail when any consumer applies an independent scale/origin/elevation mapping, terrain remains decorative-only relative to collision, or spawn/camera/presentation coordinates cannot be converted through the authored contract.",
        "Fail when Coastal water writes or orders depth incorrectly, cuts through terrain, exposes a void, or visible attribution/content does not match the selected world."
      ],
      "exclusions": [
        "No application implementation is performed by this admission change.",
        "Do not rewrite TASK-0149, infer a router-retention defect, report working Menu Restart as failed, classify static STALL SPEED 140 KT specification text as an active warning, or broaden governed interaction scope beyond the exact interaction semantics stated here."
      ],
      "verification_steps": [
        "Tests first: add failing transform-parity, terrain/collision probe, Coastal depth-order, and attribution/content tests before changing production world composition.",
        "Probe authored locations in all governed worlds and assert rendered and collision elevation, spawn, presentation bounds, and camera bounds agree within the existing governed tolerance.",
        "Launch each world through ordinary visible browser controls and capture moving-flight pixel evidence, including Coastal terrain/water seams and world-specific attribution. No forced click, hidden input, direct registry/state mutation, API setup, or browser bypass is acceptance evidence."
      ],
      "dependencies": [
        "TASK-0027",
        "TASK-0030",
        "TASK-0034"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0054"
      ],
      "acceptance_evidence": "Verified delivery: the governed world-space contract is consumed by production terrain, collision, spawn, presentation, and camera paths; Coastal water depth/render ordering and selected-world attribution are verified; ordinary visible-control moving-flight acceptance passed in all three worlds; exact-head and post-merge integration CI passed; and immutable Nebula and Singularity images were published and read back from Harbor. Replacement-release acceptance remains Release-owned.",
      "status_decision": {
        "item_id": "TASK-0152",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-16T20:44:19Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
            "description": "RootAtSkic requested the complete Wave 33 repair Task set after verified UAT and root-cause diagnosis."
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
            "description": "RootAtSkic Wave 33 correction authority and immediate Delivery handoff."
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0152-DONE-20260926",
        "sequence": 4,
        "item_id": "TASK-0152",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-26T09:23:28Z",
        "conditions": [
          "The Task integration revision 7830769fd379c11666da5c1a982d6261910a1fbc is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
          "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
          "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
          "The root, health, and API health endpoints returned HTTP 200 after deployment.",
          "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
        ],
        "release_version": "1.0.0",
        "deployed_artifact": {
          "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
          "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
          }
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, zero restarts, digest matched",
          "api": "Ready, zero restarts, digest matched",
          "endpoints": [
            "/: HTTP 200",
            "/health: HTTP 200",
            "/api/health: HTTP 200"
          ]
        },
        "automated_acceptance": {
          "release_runtime_verification": "passed"
        },
        "human_post_release_acceptance": "PENDING",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
            "item_id": "TASK-0152",
            "state": "Done",
            "event_id": "FLOW-TASK-0152-DONE-20260926"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
            "item_id": "TASK-0152",
            "state": "Done",
            "event_id": "FLOW-TASK-0152-DONE-20260926"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
            "item_id": "TASK-0152",
            "state": "Done",
            "event_id": "FLOW-TASK-0152-DONE-20260926"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0152.yml",
            "item_id": "TASK-0152",
            "state": "Done",
            "event_id": "FLOW-TASK-0152-DONE-20260926"
          }
        ],
        "previous_hash": "df9a3a98d0d87ee9f0b804659131502b12c806e657ee3de8397b757aed0d123b",
        "hash": "998977c2df7287d6078139de5e3ec1ececed5389e13e374e8b644a648034013d"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0152-READY-20260916",
          "sequence": 1,
          "item_id": "TASK-0152",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-16T20:44:19Z",
          "conditions": [
            "This exact Task is admitted as required replacement-release repair work from the verified 36/36 failed ordinary-user UAT and deployed-source root-cause evidence.",
            "Release 1.0.0.1 remains deployed, human FAILED, production REJECTED, and requires replacement; admission does not relabel or overwrite that release.",
            "Tests must be written first and browser acceptance must use ordinary visible interactions with no forced click or other bypass."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
              "item_id": "TASK-0152",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0152-READY-20260916"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
              "item_id": "TASK-0152",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0152-READY-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0152.yml",
              "item_id": "TASK-0152",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0152-READY-20260916"
            }
          ],
          "previous_hash": null,
          "hash": "4ad418cc6bb15ec988ab15f7ca2ffeb79217af7dc6141107569a4cc84b282768"
        },
        {
          "event_id": "FLOW-TASK-0152-IN-PROGRESS-20260917",
          "sequence": 2,
          "item_id": "TASK-0152",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-17T04:40:21Z",
          "conditions": [
            "Wave 33 is current and dependencies TASK-0027, TASK-0030, and TASK-0034 are Done.",
            "RootAtSkic admitted this exact world-space and Coastal compositing correction through FLOW-TASK-0152-READY-20260916 with no second admission gate.",
            "Implementation is limited to FR-0054 and approved AEROSIM-UIUX-REL-1.0.0 supporting presentation semantics."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0152-world-space-coastal-contract-1",
          "claim_base_sha": "e995856b46a0fd9c109867b8d97f6e73a41b2a41",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
              "item_id": "TASK-0152",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0152-IN-PROGRESS-20260917"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/207",
              "item_id": "TASK-0152",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0152-IN-PROGRESS-20260917"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0152.yml",
              "item_id": "TASK-0152",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0152-IN-PROGRESS-20260917"
            }
          ],
          "previous_hash": "4ad418cc6bb15ec988ab15f7ca2ffeb79217af7dc6141107569a4cc84b282768",
          "hash": "439c78efa69537fc8db09d503576621c5c4e227d0fd2fd37b1e17c0f2c10a2fe"
        },
        {
          "event_id": "FLOW-TASK-0152-TO-BE-RELEASED-20260917",
          "sequence": 3,
          "item_id": "TASK-0152",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-17T21:38:38Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/207",
              "item_id": "TASK-0152",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0152-TO-BE-RELEASED-20260917"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5282",
              "item_id": "TASK-0152",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0152-TO-BE-RELEASED-20260917"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5284",
              "item_id": "TASK-0152",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0152-TO-BE-RELEASED-20260917"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5283",
              "item_id": "TASK-0152",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0152-TO-BE-RELEASED-20260917"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0152.yml",
              "item_id": "TASK-0152",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0152-TO-BE-RELEASED-20260917"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/207",
          "reviewed_head": "95b9726e46b6d889b3f63e69645fbde85d5def67",
          "integration_revision": "7830769fd379c11666da5c1a982d6261910a1fbc",
          "candidate_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5282",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5284",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5283",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:991e6c6d7f96e7083dd13ac05353f55c17bf48d382ebdaac77e40eb53f1ead68",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:4493e35bf0cc1249f6fbfe47769519f17dcc1b371ecc203f3ef144d4036289f9"
          },
          "acceptance_evidence": [
            "The versioned world-space contract is consumed by production terrain, collision, spawn, aircraft presentation, and camera paths for Training Airfield, Coastal Range, and Mountain Valley.",
            "Coastal water uses explicit transparent depth and render ordering, while visible attribution resolves from the selected world manifest.",
            "Three ordinary visible-control browser scenarios launched moving flight in the governed worlds with aligned world space; no forced click, hidden input, direct registry or state mutation, API setup, or browser bypass was used.",
            "Exact-head application validation run 5282 passed tests, environment consistency, release design conformance, lint, typecheck, build, workflow contract, and container checks.",
            "Post-merge validation run 5284 attempt 2 passed after the first attempt exposed a transient TASK-0156 compact-restart sequence assertion; full required validation and immutable image publication run 5283 passed.",
            "Harbor readback matched the immutable integration revision tags and recorded Nebula and Singularity manifest digests."
          ],
          "previous_hash": "439c78efa69537fc8db09d503576621c5c4e227d0fd2fd37b1e17c0f2c10a2fe",
          "hash": "df9a3a98d0d87ee9f0b804659131502b12c806e657ee3de8397b757aed0d123b"
        },
        {
          "event_id": "FLOW-TASK-0152-DONE-20260926",
          "sequence": 4,
          "item_id": "TASK-0152",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-26T09:23:28Z",
          "conditions": [
            "The Task integration revision 7830769fd379c11666da5c1a982d6261910a1fbc is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
            "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
            "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
            "The root, health, and API health endpoints returned HTTP 200 after deployment.",
            "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
          ],
          "release_version": "1.0.0",
          "deployed_artifact": {
            "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
            "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
            "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
            "images": {
              "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
              "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
            }
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, zero restarts, digest matched",
            "api": "Ready, zero restarts, digest matched",
            "endpoints": [
              "/: HTTP 200",
              "/health: HTTP 200",
              "/api/health: HTTP 200"
            ]
          },
          "automated_acceptance": {
            "release_runtime_verification": "passed"
          },
          "human_post_release_acceptance": "PENDING",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
              "item_id": "TASK-0152",
              "state": "Done",
              "event_id": "FLOW-TASK-0152-DONE-20260926"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0152",
              "state": "Done",
              "event_id": "FLOW-TASK-0152-DONE-20260926"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0152",
              "state": "Done",
              "event_id": "FLOW-TASK-0152-DONE-20260926"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0152.yml",
              "item_id": "TASK-0152",
              "state": "Done",
              "event_id": "FLOW-TASK-0152-DONE-20260926"
            }
          ],
          "previous_hash": "df9a3a98d0d87ee9f0b804659131502b12c806e657ee3de8397b757aed0d123b",
          "hash": "998977c2df7287d6078139de5e3ec1ececed5389e13e374e8b644a648034013d"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "supporting",
        "design_refs": [
          "UIUX-100-CHASE",
          "UIUX-100-WARNING"
        ],
        "acceptance": [
          "Preserve the approved Release 1.0.0 interaction and presentation semantics for the referenced frames while repairing diagnosed production behavior; no new design or broader interaction scope is authorized.",
          "Compare rendered ordinary-interaction behavior at every supported viewport and state; tests or DOM attributes alone do not prove design conformance."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457"
    },
    {
      "id": "TASK-0153",
      "display_id": "AEROSIM-TS-153",
      "title": "Use declared pre-flight bindings as the runtime control contract",
      "feature_id": "AEROSIM-FT-16",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-16/aerosim-ts-153/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0153.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — pre-flight-to-runtime control binding contract",
      "outcome": "The exact bindings declared and confirmed before launch are the only runtime mapping for pitch, bank, yaw, throttle, gear, and flaps, with visible focus guidance; a declared throttle key can never trigger restart.",
      "scope": "Carry the confirmed control-binding snapshot into /flight and install runtime keyboard and visible-control handling from that snapshot rather than a second hard-coded map. Include pitch, bank, yaw, throttle, landing gear, and flaps; define focus acquisition, focus loss, and in-viewport guidance using existing governed interaction semantics. Reserve explicit restart as a separately named command that cannot collide with a declared flight binding.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/preflight/PreflightBriefingScreen.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/App.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/controls/runtime-bindings.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/test/flight/declared-bindings.browser.spec.ts"
      ],
      "inputs": [
        "RootAtSkic authorized Wave 33 correction work in Discord message 1549867630800666695 and then asked the exact completeness question in message 1549881095363760179; this admission supplies the missing repair Tasks without modifying the separately claimed TASK-0149.",
        "Deployed application source ab085692e2ed70bdb6525044b4ca91cc48a27478 for product 1.0.0.1; release 1.0.0.1 remains deployed, human acceptance FAILED, production REJECTED, and a replacement release is required.",
        "Ordinary-user UAT evidence: /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-training-airfield-rerun/report.md and report.json (12/12 failed), /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-coastal-range/uat-report.md and uat-report.json (12/12 failed), and /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-mountain-valley/report.md and report.json (12/12 failed). All three runs prohibit forced clicks, hidden-input interaction, DOM/state mutation, direct API setup, or other bypass.",
        "Diagnosed root-cause records: /opt/data/cache/delegation/subagent-summary-0-20260916_203916_911368.txt, /opt/data/cache/delegation/subagent-summary-1-20260916_203916_911707.txt, /opt/data/cache/delegation/subagent-summary-2-20260916_203916_911857.txt.",
        "Root-cause summary 1 lines 7-31: pre-flight declares W/S pitch, A/D bank, R/F throttle; runtime hard-codes Arrow throttle, Q/E yaw, R restart, and no keyboard gear/flaps, so declared R throttle restarts the flight.",
        "Training Airfield rerun: gear and flaps were not ordinarily actionable in 12/12 journeys. Coastal UAT probes targeted mostly incorrect semantics and only A/bank and Q/yaw were genuine mapped responses."
      ],
      "outputs": [
        "One immutable confirmed binding snapshot consumed by runtime input handling and visible guidance.",
        "Pitch, bank, yaw, throttle, gear, and flaps each have an ordinary-user runtime path and command-specific observable response.",
        "Restart is explicit and collision-free; pressing the declared throttle-increase key changes throttle and never restarts."
      ],
      "failure_boundaries": [
        "Fail when runtime installs a key map independent of the confirmed snapshot, omits gear/flaps, silently ignores flight controls because focus is on an ordinary control, or lets a flight binding invoke restart.",
        "Fail when a probe credits unrelated telemetry, null transitions, coincident resets, or synthetic events that bypass ordinary focus and browser dispatch."
      ],
      "exclusions": [
        "No application implementation is performed by this admission change.",
        "Do not rewrite TASK-0149, infer a router-retention defect, report working Menu Restart as failed, classify static STALL SPEED 140 KT specification text as an active warning, or broaden governed interaction scope beyond the exact interaction semantics stated here."
      ],
      "verification_steps": [
        "Tests first: add failing pre-flight-to-runtime trace tests, duplicate-command rejection, focus acquisition/loss cases, and an explicit regression proving declared R throttle cannot restart.",
        "Through ordinary browser input, probe both directions of pitch/bank/yaw/throttle plus gear/flaps and assert only the intended command/state changes while snapshot sequence remains continuous.",
        "Verify visible focus guidance and reacquisition at every supported viewport using real keyboard/pointer events. No forced click, direct handler invocation, hidden input, DOM/state mutation, API setup, or browser bypass is acceptance evidence."
      ],
      "dependencies": [
        "TASK-0104"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0023"
      ],
      "acceptance_evidence": "Verified delivery: PR #211 reviewed head c906a79aa88b261da51dabf17b107f3360ca4bc9 merged as b9cab5df4e9016bbf5239793175327d496d68388; exact-head run 5312 attempt 2, integration run 5314, publication run 5313, ordinary visible-interaction browser acceptance, and immutable Harbor readback passed.",
      "status_decision": {
        "item_id": "TASK-0153",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-16T20:44:19Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
            "description": "RootAtSkic requested the complete Wave 33 repair Task set after verified UAT and root-cause diagnosis."
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
            "description": "RootAtSkic Wave 33 correction authority and immediate Delivery handoff."
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0153-DONE-20260926",
        "sequence": 4,
        "item_id": "TASK-0153",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-26T09:23:28Z",
        "conditions": [
          "The Task integration revision b9cab5df4e9016bbf5239793175327d496d68388 is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
          "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
          "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
          "The root, health, and API health endpoints returned HTTP 200 after deployment.",
          "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
        ],
        "release_version": "1.0.0",
        "deployed_artifact": {
          "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
          "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
          }
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, zero restarts, digest matched",
          "api": "Ready, zero restarts, digest matched",
          "endpoints": [
            "/: HTTP 200",
            "/health: HTTP 200",
            "/api/health: HTTP 200"
          ]
        },
        "automated_acceptance": {
          "release_runtime_verification": "passed"
        },
        "human_post_release_acceptance": "PENDING",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
            "item_id": "TASK-0153",
            "state": "Done",
            "event_id": "FLOW-TASK-0153-DONE-20260926"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
            "item_id": "TASK-0153",
            "state": "Done",
            "event_id": "FLOW-TASK-0153-DONE-20260926"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
            "item_id": "TASK-0153",
            "state": "Done",
            "event_id": "FLOW-TASK-0153-DONE-20260926"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0153.yml",
            "item_id": "TASK-0153",
            "state": "Done",
            "event_id": "FLOW-TASK-0153-DONE-20260926"
          }
        ],
        "previous_hash": "3d3be9f206959fcae80bf2ff9ec5b075aed09232d27544582237ea58184dbd77",
        "hash": "b9fd63e87ee73265ed13711a31b4839757b02f9698e0ad9e7b3131794060e455"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0153-READY-20260916",
          "sequence": 1,
          "item_id": "TASK-0153",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-16T20:44:19Z",
          "conditions": [
            "This exact Task is admitted as required replacement-release repair work from the verified 36/36 failed ordinary-user UAT and deployed-source root-cause evidence.",
            "Release 1.0.0.1 remains deployed, human FAILED, production REJECTED, and requires replacement; admission does not relabel or overwrite that release.",
            "Tests must be written first and browser acceptance must use ordinary visible interactions with no forced click or other bypass."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
              "item_id": "TASK-0153",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0153-READY-20260916"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
              "item_id": "TASK-0153",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0153-READY-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0153.yml",
              "item_id": "TASK-0153",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0153-READY-20260916"
            }
          ],
          "previous_hash": null,
          "hash": "2d08e6032ce4b6c8e31a231ccb12a2b38bd32dae0e4b668368112b39f5f56b36"
        },
        {
          "event_id": "FLOW-TASK-0153-IN-PROGRESS-20260917",
          "sequence": 2,
          "item_id": "TASK-0153",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-17T04:41:42Z",
          "conditions": [
            "Wave 33 is current and dependency TASK-0104 is Done.",
            "RootAtSkic admitted this exact replacement-release correction through FLOW-TASK-0153-READY-20260916 with no second admission gate.",
            "Tests must be written first and browser acceptance must use ordinary visible interactions with no forced click or other bypass."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0153-runtime-control-binding-contract-1",
          "claim_base_sha": "e995856b46a0fd9c109867b8d97f6e73a41b2a41",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
              "item_id": "TASK-0153",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0153-IN-PROGRESS-20260917"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/211",
              "item_id": "TASK-0153",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0153-IN-PROGRESS-20260917"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0153.yml",
              "item_id": "TASK-0153",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0153-IN-PROGRESS-20260917"
            }
          ],
          "previous_hash": "2d08e6032ce4b6c8e31a231ccb12a2b38bd32dae0e4b668368112b39f5f56b36",
          "hash": "81ac4a3e332b8584fecaba4a026cc29f3fd9dadacc43654cfbc94c5ebb26e1d9"
        },
        {
          "event_id": "FLOW-TASK-0153-TO-BE-RELEASED-20260918",
          "sequence": 3,
          "item_id": "TASK-0153",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-18T07:50:03Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/211",
              "item_id": "TASK-0153",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0153-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5312",
              "item_id": "TASK-0153",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0153-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5314",
              "item_id": "TASK-0153",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0153-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5313",
              "item_id": "TASK-0153",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0153-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0153.yml",
              "item_id": "TASK-0153",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0153-TO-BE-RELEASED-20260918"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/211",
          "reviewed_head": "c906a79aa88b261da51dabf17b107f3360ca4bc9",
          "integration_revision": "b9cab5df4e9016bbf5239793175327d496d68388",
          "candidate_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5312",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5314",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5313",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:cd1e52d0db591e19e12ac290b8030df0b99075ce99936ebf9f3c946d94075e71",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:ace823acc690272386f205f048502f243d46b9eb1090fc91b272e3e9271c71e0"
          },
          "acceptance_evidence": [
            "The confirmed immutable pre-flight binding snapshot is the sole runtime keyboard contract for pitch, bank, yaw, throttle, landing gear, and flaps; visible guidance comes from that same snapshot.",
            "Declared throttle increase on R changes throttle and cannot invoke restart; duplicate bindings and incomplete contracts fail closed, and focus loss releases held directional controls.",
            "Focused TASK-0153 verification passed 8 tests after synchronization with current test; web typecheck, formatting, build-adjacent checks, ordinary browser suites, exact-head review, and candidate CI passed.",
            "Exact-head application validation run 5312 attempt 2 passed all nine jobs after attempt 1 encountered one transient five-second asset-policy test timeout outside the Task delta.",
            "Post-merge validation run 5314 passed at integration revision b9cab5df4e9016bbf5239793175327d496d68388; immutable image publication run 5313 passed required validation, image build, publication, and registry readback.",
            "Harbor readback matched both immutable integration-revision tags and recorded the Nebula and Singularity manifest digests."
          ],
          "previous_hash": "81ac4a3e332b8584fecaba4a026cc29f3fd9dadacc43654cfbc94c5ebb26e1d9",
          "hash": "3d3be9f206959fcae80bf2ff9ec5b075aed09232d27544582237ea58184dbd77"
        },
        {
          "event_id": "FLOW-TASK-0153-DONE-20260926",
          "sequence": 4,
          "item_id": "TASK-0153",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-26T09:23:28Z",
          "conditions": [
            "The Task integration revision b9cab5df4e9016bbf5239793175327d496d68388 is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
            "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
            "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
            "The root, health, and API health endpoints returned HTTP 200 after deployment.",
            "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
          ],
          "release_version": "1.0.0",
          "deployed_artifact": {
            "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
            "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
            "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
            "images": {
              "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
              "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
            }
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, zero restarts, digest matched",
            "api": "Ready, zero restarts, digest matched",
            "endpoints": [
              "/: HTTP 200",
              "/health: HTTP 200",
              "/api/health: HTTP 200"
            ]
          },
          "automated_acceptance": {
            "release_runtime_verification": "passed"
          },
          "human_post_release_acceptance": "PENDING",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
              "item_id": "TASK-0153",
              "state": "Done",
              "event_id": "FLOW-TASK-0153-DONE-20260926"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0153",
              "state": "Done",
              "event_id": "FLOW-TASK-0153-DONE-20260926"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0153",
              "state": "Done",
              "event_id": "FLOW-TASK-0153-DONE-20260926"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0153.yml",
              "item_id": "TASK-0153",
              "state": "Done",
              "event_id": "FLOW-TASK-0153-DONE-20260926"
            }
          ],
          "previous_hash": "3d3be9f206959fcae80bf2ff9ec5b075aed09232d27544582237ea58184dbd77",
          "hash": "b9fd63e87ee73265ed13711a31b4839757b02f9698e0ad9e7b3131794060e455"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-PREFLIGHT",
          "UIUX-100-CHASE"
        ],
        "acceptance": [
          "Preserve the approved Release 1.0.0 interaction and presentation semantics for the referenced frames while repairing diagnosed production behavior; no new design or broader interaction scope is authorized.",
          "Compare rendered ordinary-interaction behavior at every supported viewport and state; tests or DOM attributes alone do not prove design conformance."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457"
    },
    {
      "id": "TASK-0154",
      "display_id": "AEROSIM-TS-154",
      "title": "Unify rendered flight state, telemetry, warnings, and recovery",
      "feature_id": "AEROSIM-FT-1",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-1/aerosim-ts-154/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0154.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — authoritative flight-state relationship",
      "outcome": "Rendered motion, telemetry, warnings, initial state, boundary/collision recovery, and explicit restart have one authoritative state relationship with no unsynchronized dual-state behavior or ambiguous uncommanded reset.",
      "scope": "Establish a single authoritative flight snapshot or an explicit one-way projection from one simulation authority. Render aircraft/cameras/world, DOM telemetry, warnings, controls, collision/boundary recovery, and restart from the same attempt ID, source step, and initial-state contract. Distinguish automatic bounded recovery from an explicit full restart and record each transition with reason and sequence.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:packages/flight-core/src/index.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/App.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/SceneRoot.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/physics/representative-flight-runtime.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/recovery-boundary-runtime.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/test/flight/authoritative-state.browser.spec.ts"
      ],
      "inputs": [
        "RootAtSkic authorized Wave 33 correction work in Discord message 1549867630800666695 and then asked the exact completeness question in message 1549881095363760179; this admission supplies the missing repair Tasks without modifying the separately claimed TASK-0149.",
        "Deployed application source ab085692e2ed70bdb6525044b4ca91cc48a27478 for product 1.0.0.1; release 1.0.0.1 remains deployed, human acceptance FAILED, production REJECTED, and a replacement release is required.",
        "Ordinary-user UAT evidence: /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-training-airfield-rerun/report.md and report.json (12/12 failed), /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-coastal-range/uat-report.md and uat-report.json (12/12 failed), and /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-mountain-valley/report.md and report.json (12/12 failed). All three runs prohibit forced clicks, hidden-input interaction, DOM/state mutation, direct API setup, or other bypass.",
        "Diagnosed root-cause records: /opt/data/cache/delegation/subagent-summary-0-20260916_203916_911368.txt, /opt/data/cache/delegation/subagent-summary-1-20260916_203916_911707.txt, /opt/data/cache/delegation/subagent-summary-2-20260916_203916_911857.txt.",
        "Root-cause summary 1 lines 66-82: App advances a simplified DOM telemetry runtime while SceneRoot independently advances Rapier render state from different initial conditions, allowing 850 kt/1,600 ft telemetry while the visible aircraft starts at 12 m and zero velocity.",
        "Training Airfield rerun reported position resets in 12/12 journeys; diagnosis lines 118-141 found explicit UI restart and separate Rapier automatic recovery with no timer/Arrow full restart and insufficient sequence/navigation evidence to attribute coincident drops.",
        "STALL SPEED 140 KT is static specification text, not an active warning; active stall warning thresholds are separate and must remain so."
      ],
      "outputs": [
        "One authoritative attempt/source-step identity shared by rendered aircraft, telemetry, warnings, camera targets, controls, and recovery decisions.",
        "Explicit transition records distinguish launch, automatic bounded recovery, collision/boundary outcome, and user-requested restart.",
        "Initial and restarted state are defined once and projected consistently to render and DOM surfaces."
      ],
      "failure_boundaries": [
        "Fail when rendered and presented state can advance independently, disagree on attempt/source step, or recover/reset one surface without the others.",
        "Fail when a position drop is classified as restart without an explicit transition, or when static STALL SPEED 140 KT specification text is treated as an active warning."
      ],
      "exclusions": [
        "No application implementation is performed by this admission change.",
        "Do not rewrite TASK-0149, infer a router-retention defect, report working Menu Restart as failed, classify static STALL SPEED 140 KT specification text as an active warning, or broaden governed interaction scope beyond the exact interaction semantics stated here."
      ],
      "verification_steps": [
        "Tests first: reproduce divergent render/DOM state, one-sided recovery, stale camera target, and ambiguous reset before introducing the authoritative relationship.",
        "Run deterministic timed input traces from launch, collision, boundary recovery, and explicit restart; assert render, telemetry, warnings, controls, and sequence/navigation evidence agree at every sampled step.",
        "Exercise ordinary browser controls and visible recovery paths without direct runtime mutation. No force-click, synthetic state injection, DOM mutation, API setup, or browser bypass is acceptance evidence."
      ],
      "dependencies": [
        "TASK-0075"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0002"
      ],
      "acceptance_evidence": "Verified delivery: PR #209 reviewed head f6245731984d7bf75d347d51e2b1b2502032c852 merged as 2e52a3fc896a8fd94c4aef86d9bc09d746ed4f52; exact-head run 5306, integration run 5310 attempt 2, publication run 5309 attempt 2, ordinary visible-interaction browser acceptance, and immutable Harbor readback passed.",
      "status_decision": {
        "item_id": "TASK-0154",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-16T20:44:19Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
            "description": "RootAtSkic requested the complete Wave 33 repair Task set after verified UAT and root-cause diagnosis."
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
            "description": "RootAtSkic Wave 33 correction authority and immediate Delivery handoff."
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0154-DONE-20260926",
        "sequence": 4,
        "item_id": "TASK-0154",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-26T09:23:28Z",
        "conditions": [
          "The Task integration revision 2e52a3fc896a8fd94c4aef86d9bc09d746ed4f52 is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
          "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
          "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
          "The root, health, and API health endpoints returned HTTP 200 after deployment.",
          "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
        ],
        "release_version": "1.0.0",
        "deployed_artifact": {
          "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
          "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
          }
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, zero restarts, digest matched",
          "api": "Ready, zero restarts, digest matched",
          "endpoints": [
            "/: HTTP 200",
            "/health: HTTP 200",
            "/api/health: HTTP 200"
          ]
        },
        "automated_acceptance": {
          "release_runtime_verification": "passed"
        },
        "human_post_release_acceptance": "PENDING",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
            "item_id": "TASK-0154",
            "state": "Done",
            "event_id": "FLOW-TASK-0154-DONE-20260926"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
            "item_id": "TASK-0154",
            "state": "Done",
            "event_id": "FLOW-TASK-0154-DONE-20260926"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
            "item_id": "TASK-0154",
            "state": "Done",
            "event_id": "FLOW-TASK-0154-DONE-20260926"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0154.yml",
            "item_id": "TASK-0154",
            "state": "Done",
            "event_id": "FLOW-TASK-0154-DONE-20260926"
          }
        ],
        "previous_hash": "d45d27af4e539c0e07de074e9583f45f492673fa3581bd167de08ddee192e928",
        "hash": "2bad3f06bca7e5a14fa2903b1e8803e4ac4359bd93c3f11ae96ac09152c0d31c"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0154-READY-20260916",
          "sequence": 1,
          "item_id": "TASK-0154",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-16T20:44:19Z",
          "conditions": [
            "This exact Task is admitted as required replacement-release repair work from the verified 36/36 failed ordinary-user UAT and deployed-source root-cause evidence.",
            "Release 1.0.0.1 remains deployed, human FAILED, production REJECTED, and requires replacement; admission does not relabel or overwrite that release.",
            "Tests must be written first and browser acceptance must use ordinary visible interactions with no forced click or other bypass."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
              "item_id": "TASK-0154",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0154-READY-20260916"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
              "item_id": "TASK-0154",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0154-READY-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0154.yml",
              "item_id": "TASK-0154",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0154-READY-20260916"
            }
          ],
          "previous_hash": null,
          "hash": "259582d913a395336fb73a057c10e12d54826d43096dd8bac6fb31df58edcb14"
        },
        {
          "event_id": "FLOW-TASK-0154-IN-PROGRESS-20260917",
          "sequence": 2,
          "item_id": "TASK-0154",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-17T04:41:31Z",
          "conditions": [
            "Wave 33 is current and dependency TASK-0075 is Done.",
            "Application branch and PR are visible before implementation; ordinary-browser no-bypass acceptance remains required."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0154-unify-rendered-flight-state-1",
          "claim_base_sha": "1324a02c964cce9d5a7990b0d5783fc159d98c77",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/209",
              "item_id": "TASK-0154",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0154-IN-PROGRESS-20260917"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0154.yml",
              "item_id": "TASK-0154",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0154-IN-PROGRESS-20260917"
            }
          ],
          "previous_hash": "259582d913a395336fb73a057c10e12d54826d43096dd8bac6fb31df58edcb14",
          "hash": "8f6f06234ec37cc1de4e5012d6d5345ff420d83eb4c086ac7afd24e54e1f44ef"
        },
        {
          "event_id": "FLOW-TASK-0154-TO-BE-RELEASED-20260918",
          "sequence": 3,
          "item_id": "TASK-0154",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-18T07:37:43Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/209",
              "item_id": "TASK-0154",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0154-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5306",
              "item_id": "TASK-0154",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0154-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5310",
              "item_id": "TASK-0154",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0154-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5309",
              "item_id": "TASK-0154",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0154-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0154.yml",
              "item_id": "TASK-0154",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0154-TO-BE-RELEASED-20260918"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/209",
          "reviewed_head": "f6245731984d7bf75d347d51e2b1b2502032c852",
          "integration_revision": "2e52a3fc896a8fd94c4aef86d9bc09d746ed4f52",
          "candidate_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5306",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5310",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5309",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:9f3bc24e6409be1218b0bf2d41c723adc1783da7fb96a39ba392bc947c0d6090",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:33dcbd629132c6954156e03eca99fd5075eb6d33334c83b9725bdf16596146a0"
          },
          "acceptance_evidence": [
            "One authoritative flight relationship now drives rendered aircraft and cameras, telemetry, warnings, controls, boundary and collision recovery, and explicit restart with shared attempt and source-step evidence.",
            "The repaired launch contract starts from one viable rendered and presented state; trainer snapshots remain contiguous while preserving the exact physics source step, and altitude return hysteresis is governed independently from horizontal world hysteresis.",
            "Focused verification passed 60 authoritative-state, boundary-state, and world-interaction contract tests; the complete web suite passed 1,466 tests; overlapping TASK-0150 browser verification passed all 9 ordinary visible-control aircraft launches; lint, typecheck, build, production audit, diff check, and exact-head review passed.",
            "Exact-head application validation run 5306 passed lint, typecheck, workflow contract, tests, environment consistency, release design conformance, build, container images, and required aggregation.",
            "Post-merge validation run 5310 attempt 2 passed at integration revision 2e52a3fc896a8fd94c4aef86d9bc09d746ed4f52 after attempt 1 encountered a transient integration-test timeout; immutable image publication run 5309 attempt 2 passed after attempt 1 encountered a transient PostgreSQL startup failure.",
            "Harbor readback matched both immutable integration-revision tags and recorded the Nebula and Singularity manifest digests."
          ],
          "previous_hash": "8f6f06234ec37cc1de4e5012d6d5345ff420d83eb4c086ac7afd24e54e1f44ef",
          "hash": "d45d27af4e539c0e07de074e9583f45f492673fa3581bd167de08ddee192e928"
        },
        {
          "event_id": "FLOW-TASK-0154-DONE-20260926",
          "sequence": 4,
          "item_id": "TASK-0154",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-26T09:23:28Z",
          "conditions": [
            "The Task integration revision 2e52a3fc896a8fd94c4aef86d9bc09d746ed4f52 is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
            "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
            "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
            "The root, health, and API health endpoints returned HTTP 200 after deployment.",
            "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
          ],
          "release_version": "1.0.0",
          "deployed_artifact": {
            "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
            "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
            "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
            "images": {
              "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
              "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
            }
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, zero restarts, digest matched",
            "api": "Ready, zero restarts, digest matched",
            "endpoints": [
              "/: HTTP 200",
              "/health: HTTP 200",
              "/api/health: HTTP 200"
            ]
          },
          "automated_acceptance": {
            "release_runtime_verification": "passed"
          },
          "human_post_release_acceptance": "PENDING",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
              "item_id": "TASK-0154",
              "state": "Done",
              "event_id": "FLOW-TASK-0154-DONE-20260926"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0154",
              "state": "Done",
              "event_id": "FLOW-TASK-0154-DONE-20260926"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0154",
              "state": "Done",
              "event_id": "FLOW-TASK-0154-DONE-20260926"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0154.yml",
              "item_id": "TASK-0154",
              "state": "Done",
              "event_id": "FLOW-TASK-0154-DONE-20260926"
            }
          ],
          "previous_hash": "d45d27af4e539c0e07de074e9583f45f492673fa3581bd167de08ddee192e928",
          "hash": "2bad3f06bca7e5a14fa2903b1e8803e4ac4359bd93c3f11ae96ac09152c0d31c"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "supporting",
        "design_refs": [
          "UIUX-100-CHASE",
          "UIUX-100-WARNING",
          "UIUX-100-OUTCOME-DEBRIEF"
        ],
        "acceptance": [
          "Preserve the approved Release 1.0.0 interaction and presentation semantics for the referenced frames while repairing diagnosed production behavior; no new design or broader interaction scope is authorized.",
          "Compare rendered ordinary-interaction behavior at every supported viewport and state; tests or DOM attributes alone do not prove design conformance."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457"
    },
    {
      "id": "TASK-0155",
      "display_id": "AEROSIM-TS-155",
      "title": "Make /flight a bounded runtime-only route",
      "feature_id": "AEROSIM-FT-12",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-12/aerosim-ts-155/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0155.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — route-specific active-flight screen",
      "outcome": "After launch, /flight mounts one route-specific runtime-only screen with no legacy setup/Foundation selectors or content and bounded supported-viewport document geometry.",
      "scope": "Separate setup composition from active-flight composition. Preserve the correct AppRouter behavior that already unmounts the previous route; change FlightDeckScreen so a launched /flight renders only governed runtime content. Remove legacy aircraft/world/condition/launch/Foundation content from the active-flight document and establish contained viewport/document geometry at every supported size.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/router.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/App.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/views/ChaseFlightView.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/views/ChaseFlightView.css",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/e2e/flight-route-composition.browser.spec.ts"
      ],
      "inputs": [
        "RootAtSkic authorized Wave 33 correction work in Discord message 1549867630800666695 and then asked the exact completeness question in message 1549881095363760179; this admission supplies the missing repair Tasks without modifying the separately claimed TASK-0149.",
        "Deployed application source ab085692e2ed70bdb6525044b4ca91cc48a27478 for product 1.0.0.1; release 1.0.0.1 remains deployed, human acceptance FAILED, production REJECTED, and a replacement release is required.",
        "Ordinary-user UAT evidence: /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-training-airfield-rerun/report.md and report.json (12/12 failed), /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-coastal-range/uat-report.md and uat-report.json (12/12 failed), and /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-mountain-valley/report.md and report.json (12/12 failed). All three runs prohibit forced clicks, hidden-input interaction, DOM/state mutation, direct API setup, or other bypass.",
        "Diagnosed root-cause records: /opt/data/cache/delegation/subagent-summary-0-20260916_203916_911368.txt, /opt/data/cache/delegation/subagent-summary-1-20260916_203916_911707.txt, /opt/data/cache/delegation/subagent-summary-2-20260916_203916_911857.txt.",
        "Root-cause summary 2 lines 7-23 proves the router correctly returns only the active route; FlightDeckScreen itself unconditionally composes Foundation-era header, selectors, launch controls, and runtime.",
        "Mountain Valley UAT: 10/12 final captures were 1440×2313 or 1440×2377 rather than 1440×900; diagnosis measured a 2313 px document and trainer guidance explains the 2377 px variant."
      ],
      "outputs": [
        "One /flight runtime composition after launch; setup remains on its governed setup/pre-flight routes and is absent from the /flight document.",
        "Document and viewport geometry remain bounded at every supported viewport with no hidden lower setup/control document beneath a fixed canvas."
      ],
      "failure_boundaries": [
        "Fail when tests claim the router retains a previous route; the diagnosed router unmount behavior is correct.",
        "Fail when /flight contains legacy aircraft, world, condition, Foundation, or launch selectors/content, or when body/document geometry overflows the supported viewport because runtime and setup are composed together."
      ],
      "exclusions": [
        "No application implementation is performed by this admission change.",
        "Do not rewrite TASK-0149, infer a router-retention defect, report working Menu Restart as failed, classify static STALL SPEED 140 KT specification text as an active warning, or broaden governed interaction scope beyond the exact interaction semantics stated here."
      ],
      "verification_steps": [
        "Tests first: add failing route-exclusive DOM and geometry assertions for ordinary launch before changing composition.",
        "From Home, complete ordinary setup and launch; assert exactly one main/runtime screen, absence of legacy setup/Foundation selectors/content on /flight, and bounded scrollWidth/scrollHeight at every supported viewport.",
        "Use ordinary visible navigation and launch controls. No forced click, direct route injection, DOM removal, state seeding, API setup, or browser bypass is acceptance evidence."
      ],
      "dependencies": [
        "TASK-0027",
        "TASK-0090",
        "TASK-0096",
        "TASK-0140"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0019"
      ],
      "acceptance_evidence": "Verified delivery: application PR #213 reviewed head df6f11f2bf058520ed715e0f07436268e1e03d3f merged as 1ce3c755bb1d05bfe0619138c87432cf8be2c46c; integration validation run 5278 and immutable image publication run 5277 passed. Ordinary Home to Setup to Pre-flight to Launch browser acceptance proved that /flight contains only the governed runtime, omits legacy setup and Foundation content, retains the governed runtime title and recovery controls, and keeps body/document geometry bounded at 1440x900 and 1280x720 without forced clicks, route injection, DOM mutation, state seeding, or direct API setup. Harbor digest readback passed for both published images.",
      "status_decision": {
        "item_id": "TASK-0155",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-16T20:44:19Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
            "description": "RootAtSkic requested the complete Wave 33 repair Task set after verified UAT and root-cause diagnosis."
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
            "description": "RootAtSkic Wave 33 correction authority and immediate Delivery handoff."
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0155-DONE-20260926",
        "sequence": 4,
        "item_id": "TASK-0155",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-26T09:23:28Z",
        "conditions": [
          "The Task integration revision 1ce3c755bb1d05bfe0619138c87432cf8be2c46c is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
          "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
          "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
          "The root, health, and API health endpoints returned HTTP 200 after deployment.",
          "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
        ],
        "release_version": "1.0.0",
        "deployed_artifact": {
          "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
          "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
          }
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, zero restarts, digest matched",
          "api": "Ready, zero restarts, digest matched",
          "endpoints": [
            "/: HTTP 200",
            "/health: HTTP 200",
            "/api/health: HTTP 200"
          ]
        },
        "automated_acceptance": {
          "release_runtime_verification": "passed"
        },
        "human_post_release_acceptance": "PENDING",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
            "item_id": "TASK-0155",
            "state": "Done",
            "event_id": "FLOW-TASK-0155-DONE-20260926"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
            "item_id": "TASK-0155",
            "state": "Done",
            "event_id": "FLOW-TASK-0155-DONE-20260926"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
            "item_id": "TASK-0155",
            "state": "Done",
            "event_id": "FLOW-TASK-0155-DONE-20260926"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0155.yml",
            "item_id": "TASK-0155",
            "state": "Done",
            "event_id": "FLOW-TASK-0155-DONE-20260926"
          }
        ],
        "previous_hash": "b57900b012ac2c9b1e19a523b3fa3d99af49e87e9e69798da23bf70a30535537",
        "hash": "15329e7d4fbbdcdd166f38531d54d4a8b9c3b518c65d711c1a0cb0a8eea7c0e0"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0155-READY-20260916",
          "sequence": 1,
          "item_id": "TASK-0155",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-16T20:44:19Z",
          "conditions": [
            "This exact Task is admitted as required replacement-release repair work from the verified 36/36 failed ordinary-user UAT and deployed-source root-cause evidence.",
            "Release 1.0.0.1 remains deployed, human FAILED, production REJECTED, and requires replacement; admission does not relabel or overwrite that release.",
            "Tests must be written first and browser acceptance must use ordinary visible interactions with no forced click or other bypass."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
              "item_id": "TASK-0155",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0155-READY-20260916"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
              "item_id": "TASK-0155",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0155-READY-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0155.yml",
              "item_id": "TASK-0155",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0155-READY-20260916"
            }
          ],
          "previous_hash": null,
          "hash": "640e1cfe7af5e803578af496fe91f3ac23903667b3c920cc7bf7e1e28c117225"
        },
        {
          "event_id": "FLOW-TASK-0155-IN-PROGRESS-20260917",
          "sequence": 2,
          "item_id": "TASK-0155",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-17T19:20:25Z",
          "conditions": [
            "Wave 33 is current and dependencies TASK-0027, TASK-0090, TASK-0096, and TASK-0140 are Done.",
            "RootAtSkic admitted this exact runtime-only /flight correction through FLOW-TASK-0155-READY-20260916 with no second admission gate.",
            "Implementation is limited to FR-0019 and approved AEROSIM-UIUX-REL-1.0.0 Chase presentation semantics."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0155-runtime-only-flight-route-1",
          "claim_base_sha": "e995856b46a0fd9c109867b8d97f6e73a41b2a41",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
              "item_id": "TASK-0155",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0155-IN-PROGRESS-20260917"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/213",
              "item_id": "TASK-0155",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0155-IN-PROGRESS-20260917"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0155.yml",
              "item_id": "TASK-0155",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0155-IN-PROGRESS-20260917"
            }
          ],
          "previous_hash": "640e1cfe7af5e803578af496fe91f3ac23903667b3c920cc7bf7e1e28c117225",
          "hash": "6a3eccf6326a52cbffcce53e1ae8ab3ca8a6f38b6ea04a5143b5f2c6296e03f4"
        },
        {
          "event_id": "FLOW-TASK-0155-TO-BE-RELEASED-20260918",
          "sequence": 3,
          "item_id": "TASK-0155",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-18T05:59:55Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/213",
              "item_id": "TASK-0155",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0155-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5278",
              "item_id": "TASK-0155",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0155-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5277",
              "item_id": "TASK-0155",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0155-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0155.yml",
              "item_id": "TASK-0155",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0155-TO-BE-RELEASED-20260918"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/213",
          "reviewed_head": "df6f11f2bf058520ed715e0f07436268e1e03d3f",
          "integration_revision": "1ce3c755bb1d05bfe0619138c87432cf8be2c46c",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5278",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5277",
          "viewports": [
            "1440x900",
            "1280x720"
          ],
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:338c5a7f07f76e2ebeec6427e0aadcb9e7ce94813271974a40c838ff5ec039f4",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:2e8092f2958f0682093d00e4d19ce723193ffd53caced91211160e9b0a106abb"
          },
          "acceptance_evidence": [
            "Tests-first implementation and exact-head review passed for FR-0019 on the shipped production route with no unresolved logic, security, acceptance, production-path, or material test finding.",
            "Ordinary Home to Setup to Pre-flight to Launch browser acceptance used no forced click, route injection, DOM mutation, state seeding, or direct API setup.",
            "The launched /flight document contains only the governed runtime, omits legacy setup and Foundation selectors and content, and retains the governed runtime title and ordinary recovery controls.",
            "Body and document geometry remained bounded at 1440x900 and 1280x720, with full-page screenshot evidence.",
            "Integration validation run 5278, immutable image publication run 5277, and independent Harbor digest readback for both images passed on the exact integration revision."
          ],
          "previous_hash": "6a3eccf6326a52cbffcce53e1ae8ab3ca8a6f38b6ea04a5143b5f2c6296e03f4",
          "hash": "b57900b012ac2c9b1e19a523b3fa3d99af49e87e9e69798da23bf70a30535537"
        },
        {
          "event_id": "FLOW-TASK-0155-DONE-20260926",
          "sequence": 4,
          "item_id": "TASK-0155",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-26T09:23:28Z",
          "conditions": [
            "The Task integration revision 1ce3c755bb1d05bfe0619138c87432cf8be2c46c is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
            "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
            "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
            "The root, health, and API health endpoints returned HTTP 200 after deployment.",
            "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
          ],
          "release_version": "1.0.0",
          "deployed_artifact": {
            "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
            "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
            "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
            "images": {
              "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
              "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
            }
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, zero restarts, digest matched",
            "api": "Ready, zero restarts, digest matched",
            "endpoints": [
              "/: HTTP 200",
              "/health: HTTP 200",
              "/api/health: HTTP 200"
            ]
          },
          "automated_acceptance": {
            "release_runtime_verification": "passed"
          },
          "human_post_release_acceptance": "PENDING",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
              "item_id": "TASK-0155",
              "state": "Done",
              "event_id": "FLOW-TASK-0155-DONE-20260926"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0155",
              "state": "Done",
              "event_id": "FLOW-TASK-0155-DONE-20260926"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0155",
              "state": "Done",
              "event_id": "FLOW-TASK-0155-DONE-20260926"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0155.yml",
              "item_id": "TASK-0155",
              "state": "Done",
              "event_id": "FLOW-TASK-0155-DONE-20260926"
            }
          ],
          "previous_hash": "b57900b012ac2c9b1e19a523b3fa3d99af49e87e9e69798da23bf70a30535537",
          "hash": "15329e7d4fbbdcdd166f38531d54d4a8b9c3b518c65d711c1a0cb0a8eea7c0e0"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-CHASE"
        ],
        "acceptance": [
          "Preserve the approved Release 1.0.0 interaction and presentation semantics for the referenced frames while repairing diagnosed production behavior; no new design or broader interaction scope is authorized.",
          "Compare rendered ordinary-interaction behavior at every supported viewport and state; tests or DOM attributes alone do not prove design conformance."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457"
    },
    {
      "id": "TASK-0156",
      "display_id": "AEROSIM-TS-156",
      "title": "Make every flight recovery control ordinarily operable",
      "feature_id": "AEROSIM-FT-5",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-5/aerosim-ts-156/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0156.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — restart and flight-menu interaction",
      "outcome": "Direct Restart, Menu/Resume, and dialog-scoped Menu/Restart are visible topmost hit targets and work through ordinary user input with scoped semantic role/name queries and no forced click.",
      "scope": "Place and stack direct recovery controls inside the runtime interaction layer; preserve the already working ordinary dialog-scoped Menu Restart behavior; verify Menu/Resume and Menu/Restart against the same authoritative state contract. Scope semantic role/name queries to the relevant control region/dialog so duplicate RESTART FLIGHT names do not create ambiguous automation. This is the exact existing governed recovery interaction semantics, not a broader interaction commitment.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/App.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/views/ChaseFlightView.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/views/ChaseFlightView.css",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/menu/FlightMenu.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/e2e/flight-recovery-controls.browser.spec.ts"
      ],
      "inputs": [
        "RootAtSkic authorized Wave 33 correction work in Discord message 1549867630800666695 and then asked the exact completeness question in message 1549881095363760179; this admission supplies the missing repair Tasks without modifying the separately claimed TASK-0149.",
        "Deployed application source ab085692e2ed70bdb6525044b4ca91cc48a27478 for product 1.0.0.1; release 1.0.0.1 remains deployed, human acceptance FAILED, production REJECTED, and a replacement release is required.",
        "Ordinary-user UAT evidence: /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-training-airfield-rerun/report.md and report.json (12/12 failed), /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-coastal-range/uat-report.md and uat-report.json (12/12 failed), and /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-mountain-valley/report.md and report.json (12/12 failed). All three runs prohibit forced clicks, hidden-input interaction, DOM/state mutation, direct API setup, or other bypass.",
        "Diagnosed root-cause records: /opt/data/cache/delegation/subagent-summary-0-20260916_203916_911368.txt, /opt/data/cache/delegation/subagent-summary-1-20260916_203916_911707.txt, /opt/data/cache/delegation/subagent-summary-2-20260916_203916_911857.txt.",
        "Root-cause summary 2 lines 40-49: direct control-panel RESTART FLIGHT is below a fixed z-index 100 viewport; elementFromPoint returns CANVAS and ordinary clicks are intercepted. Mountain Valley UAT reproduced this in 12/12 journeys.",
        "Root-cause summary 2 lines 58-65 and Training Airfield rerun line 27: MENU is clickable and ordinary dialog-scoped Menu Restart passed 12/12; the defect is the covered direct restart, not Menu Restart or router unmount."
      ],
      "outputs": [
        "Direct Restart, Menu/Resume, and dialog-scoped Menu/Restart have visible, correctly stacked, bounded hit targets at every supported viewport.",
        "Ordinary clicks produce the exact authoritative resume/restart transition and semantic role/name queries are scoped to the direct-control region or open dialog."
      ],
      "failure_boundaries": [
        "Fail when any acceptance click is forced, dispatched directly, enabled by DOM/style mutation, or lands on canvas/attribution instead of the visible control.",
        "Fail when documentation or tests claim Menu Restart fails; ordinary dialog-scoped Menu Restart is a working baseline that must be preserved.",
        "Fail when an unscoped duplicate-name locator is treated as a product failure instead of scoping the existing names to their control region/dialog."
      ],
      "exclusions": [
        "No application implementation is performed by this admission change.",
        "Do not rewrite TASK-0149, infer a router-retention defect, report working Menu Restart as failed, classify static STALL SPEED 140 KT specification text as an active warning, or broaden governed interaction scope beyond the exact interaction semantics stated here."
      ],
      "verification_steps": [
        "Tests first: reproduce topmost-hit-target interception with elementFromPoint and ordinary click before changing stacking/placement.",
        "At every supported viewport, assert the centre and representative edge points of Direct Restart, Menu, Resume, and dialog Restart resolve to the intended visible control; perform each ordinary action and verify sequence/attempt state.",
        "No force-click, direct click-handler invocation, DOM/style mutation, hidden input, API setup, or browser bypass is acceptance evidence."
      ],
      "dependencies": [
        "TASK-0006",
        "TASK-0096",
        "TASK-0142"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0009"
      ],
      "acceptance_evidence": "Verified delivery: application PR #212 reviewed head 3407dd4252ca4493cb1dc7888b22fbfca1041b41 merged as 61da4c6c5ab7be346e27c7b36024f1d59988929a; candidate CI run 5235 attempt 3, integration validation run 5255, and immutable image publication run 5254 passed. Browser acceptance reproduced the covered direct Restart with elementFromPoint before repair, then passed 2/2 ordinary-click journeys at 1440x900 and 1280x720 with centre and edge hit-target checks for Direct Restart, Menu, Resume, and dialog Restart, no force click or DOM mutation, sequence reset, and camera reset to Chase.",
      "status_decision": {
        "item_id": "TASK-0156",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-16T20:44:19Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
            "description": "RootAtSkic requested the complete Wave 33 repair Task set after verified UAT and root-cause diagnosis."
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
            "description": "RootAtSkic Wave 33 correction authority and immediate Delivery handoff."
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0156-DONE-20260926",
        "sequence": 4,
        "item_id": "TASK-0156",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-26T09:23:28Z",
        "conditions": [
          "The Task integration revision 61da4c6c5ab7be346e27c7b36024f1d59988929a is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
          "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
          "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
          "The root, health, and API health endpoints returned HTTP 200 after deployment.",
          "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
        ],
        "release_version": "1.0.0",
        "deployed_artifact": {
          "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
          "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
          }
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, zero restarts, digest matched",
          "api": "Ready, zero restarts, digest matched",
          "endpoints": [
            "/: HTTP 200",
            "/health: HTTP 200",
            "/api/health: HTTP 200"
          ]
        },
        "automated_acceptance": {
          "release_runtime_verification": "passed"
        },
        "human_post_release_acceptance": "PENDING",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
            "item_id": "TASK-0156",
            "state": "Done",
            "event_id": "FLOW-TASK-0156-DONE-20260926"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
            "item_id": "TASK-0156",
            "state": "Done",
            "event_id": "FLOW-TASK-0156-DONE-20260926"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
            "item_id": "TASK-0156",
            "state": "Done",
            "event_id": "FLOW-TASK-0156-DONE-20260926"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0156.yml",
            "item_id": "TASK-0156",
            "state": "Done",
            "event_id": "FLOW-TASK-0156-DONE-20260926"
          }
        ],
        "previous_hash": "99f21eafc92aaaf318d8478a4bed30627ab25e9d54d049b5b977b955ba444fc1",
        "hash": "6b7ba3804bc6ce1c4f045b3d8da9a696ecdc910ede7861f2ad49fc4000d9d5df"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0156-READY-20260916",
          "sequence": 1,
          "item_id": "TASK-0156",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-16T20:44:19Z",
          "conditions": [
            "This exact Task is admitted as required replacement-release repair work from the verified 36/36 failed ordinary-user UAT and deployed-source root-cause evidence.",
            "Release 1.0.0.1 remains deployed, human FAILED, production REJECTED, and requires replacement; admission does not relabel or overwrite that release.",
            "Tests must be written first and browser acceptance must use ordinary visible interactions with no forced click or other bypass."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
              "item_id": "TASK-0156",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0156-READY-20260916"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
              "item_id": "TASK-0156",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0156-READY-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0156.yml",
              "item_id": "TASK-0156",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0156-READY-20260916"
            }
          ],
          "previous_hash": null,
          "hash": "05c329f272d9852bf6b9e1bc958db8df2b6b4c347ea09a4053c59d500f63e434"
        },
        {
          "event_id": "FLOW-TASK-0156-IN-PROGRESS-20260917",
          "sequence": 2,
          "item_id": "TASK-0156",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-17T04:40:57Z",
          "conditions": [
            "Wave 33 is current and dependencies TASK-0006, TASK-0096, and TASK-0142 are Done.",
            "The visible application branch and PR were created before any application repository content change."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0156-flight-recovery-controls-1",
          "claim_base_sha": "e995856b46a0fd9c109867b8d97f6e73a41b2a41",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/212",
              "item_id": "TASK-0156",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0156-IN-PROGRESS-20260917"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0156-flight-recovery-controls-1",
              "item_id": "TASK-0156",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0156-IN-PROGRESS-20260917"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0156.yml",
              "item_id": "TASK-0156",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0156-IN-PROGRESS-20260917"
            }
          ],
          "previous_hash": "05c329f272d9852bf6b9e1bc958db8df2b6b4c347ea09a4053c59d500f63e434",
          "hash": "15aaf07650736c9475a1844dbcd902c897268d2b9e5040be48dec0be6265ca59"
        },
        {
          "event_id": "FLOW-TASK-0156-TO-BE-RELEASED-20260917",
          "sequence": 3,
          "item_id": "TASK-0156",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-17T20:58:59Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/212",
              "item_id": "TASK-0156",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0156-TO-BE-RELEASED-20260917"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5255",
              "item_id": "TASK-0156",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0156-TO-BE-RELEASED-20260917"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5254",
              "item_id": "TASK-0156",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0156-TO-BE-RELEASED-20260917"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0156.yml",
              "item_id": "TASK-0156",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0156-TO-BE-RELEASED-20260917"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/212",
          "reviewed_head": "3407dd4252ca4493cb1dc7888b22fbfca1041b41",
          "integration_revision": "61da4c6c5ab7be346e27c7b36024f1d59988929a",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5255",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5254",
          "viewports": [
            "1440x900",
            "1280x720"
          ],
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:c4a5c4fec43fe1c87d996983a63c3d54d3290e930b0fd2f9c183bb342a0d8a0e",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:261d1c5e9f4f5e1d97520a0afe864a5a1de1036eeb5d61f1448c60bdacfc6bab"
          },
          "acceptance_evidence": [
            {
              "The failing browser test first proved the visible enabled direct Restart was covered": "representative hit points resolved to the fullscreen runtime layer instead of the button."
            },
            "Two ordinary production-build browser journeys passed at 1440x900 and 1280x720 after repair; centre and representative edge points for Direct Restart, Menu, Resume, and dialog Restart resolved to the intended control.",
            "Direct Restart reset the authoritative flight sequence; Menu Resume closed the dialog; dialog-scoped Restart closed the dialog, restarted the sequence, and returned the camera to Chase.",
            "Acceptance used visible controls and ordinary clicks only, with no force click, direct handler invocation, hidden input, DOM/style mutation, storage seeding, direct API setup, or browser bypass.",
            "Candidate CI run 5235 attempt 3 supplied one complete successful nine-job inventory; integration validation run 5255 and immutable image build, publication, and Harbor digest readback run 5254 passed for the exact integration revision."
          ],
          "previous_hash": "15aaf07650736c9475a1844dbcd902c897268d2b9e5040be48dec0be6265ca59",
          "hash": "99f21eafc92aaaf318d8478a4bed30627ab25e9d54d049b5b977b955ba444fc1"
        },
        {
          "event_id": "FLOW-TASK-0156-DONE-20260926",
          "sequence": 4,
          "item_id": "TASK-0156",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-26T09:23:28Z",
          "conditions": [
            "The Task integration revision 61da4c6c5ab7be346e27c7b36024f1d59988929a is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
            "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
            "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
            "The root, health, and API health endpoints returned HTTP 200 after deployment.",
            "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
          ],
          "release_version": "1.0.0",
          "deployed_artifact": {
            "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
            "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
            "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
            "images": {
              "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
              "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
            }
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, zero restarts, digest matched",
            "api": "Ready, zero restarts, digest matched",
            "endpoints": [
              "/: HTTP 200",
              "/health: HTTP 200",
              "/api/health: HTTP 200"
            ]
          },
          "automated_acceptance": {
            "release_runtime_verification": "passed"
          },
          "human_post_release_acceptance": "PENDING",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
              "item_id": "TASK-0156",
              "state": "Done",
              "event_id": "FLOW-TASK-0156-DONE-20260926"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0156",
              "state": "Done",
              "event_id": "FLOW-TASK-0156-DONE-20260926"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0156",
              "state": "Done",
              "event_id": "FLOW-TASK-0156-DONE-20260926"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0156.yml",
              "item_id": "TASK-0156",
              "state": "Done",
              "event_id": "FLOW-TASK-0156-DONE-20260926"
            }
          ],
          "previous_hash": "99f21eafc92aaaf318d8478a4bed30627ab25e9d54d049b5b977b955ba444fc1",
          "hash": "6b7ba3804bc6ce1c4f045b3d8da9a696ecdc910ede7861f2ad49fc4000d9d5df"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-CHASE",
          "UIUX-100-PAUSE",
          "UIUX-100-OUTCOME-DEBRIEF"
        ],
        "acceptance": [
          "Preserve the approved Release 1.0.0 interaction and presentation semantics for the referenced frames while repairing diagnosed production behavior; no new design or broader interaction scope is authorized.",
          "Compare rendered ordinary-interaction behavior at every supported viewport and state; tests or DOM attributes alone do not prove design conformance."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457"
    },
    {
      "id": "TASK-0157",
      "display_id": "AEROSIM-TS-157",
      "title": "Fail closed on unusable rendered flight acceptance",
      "feature_id": "AEROSIM-FT-51",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-51/aerosim-ts-157/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0157.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Engineering validation — rendered-flight observability and acceptance",
      "outcome": "Rendered-flight automation cannot pass an unusable release: production asset, camera, world, control, state, warning, route, and recovery failures are observable and fail closed.",
      "scope": "Add visible and machine-readable production diagnostics for asset/camera/world initialization and frame failures. Replace attribute-only and fixture-only acceptance with all-nine-aircraft/all-four-camera pixel and visibility assertions, declared-binding probes, strict typed telemetry transitions, active-warning classification, and reset sequence/navigation capture. Keep labels/specifications distinct from active warnings and require ordinary route/navigation/recovery interactions.",
      "implementation_artifacts": [
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/FlightCanvas.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/src/flight/SceneRoot.tsx",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/e2e/rendered-flight-acceptance.browser.spec.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/e2e/control-contract-acceptance.browser.spec.ts",
        "corp-v1-aerosim/corp-v1-aerosim:applications/web/e2e/reset-sequence-observability.browser.spec.ts",
        "corp-v1-aerosim/corp-v1-aerosim:.gitea/workflows/validation.yml"
      ],
      "inputs": [
        "RootAtSkic authorized Wave 33 correction work in Discord message 1549867630800666695 and then asked the exact completeness question in message 1549881095363760179; this admission supplies the missing repair Tasks without modifying the separately claimed TASK-0149.",
        "Deployed application source ab085692e2ed70bdb6525044b4ca91cc48a27478 for product 1.0.0.1; release 1.0.0.1 remains deployed, human acceptance FAILED, production REJECTED, and a replacement release is required.",
        "Ordinary-user UAT evidence: /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-training-airfield-rerun/report.md and report.json (12/12 failed), /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-coastal-range/uat-report.md and uat-report.json (12/12 failed), and /opt/data/corp-v1-aerosim-releases/workspace/uat-1.0.0.1-mountain-valley/report.md and report.json (12/12 failed). All three runs prohibit forced clicks, hidden-input interaction, DOM/state mutation, direct API setup, or other bypass.",
        "Diagnosed root-cause records: /opt/data/cache/delegation/subagent-summary-0-20260916_203916_911368.txt, /opt/data/cache/delegation/subagent-summary-1-20260916_203916_911707.txt, /opt/data/cache/delegation/subagent-summary-2-20260916_203916_911857.txt.",
        "Root-cause summary 0 lines 50-61: aircraft load problems have no production callback, world initialization discards exceptions, descendant errors become misleading WEBGL INITIALIZATION FAILED, camera rejection is unwired, and TASK-0147 browser acceptance checks only selected-card/data-camera-id attributes.",
        "Root-cause summary 1 lines 51-64: Coastal UAT reported 30 target changes but seven were null-transition false positives and one was a coincident reset; only A/bank and Q/yaw were genuine in that probe set.",
        "Root-cause summary 1 lines 84-110: STALL SPEED 140 KT is static airframe-envelope specification text, not an active warning. Root-cause summary 2 lines 67-77: fireEvent and forced setup interactions bypass browser hit-testing and geometry."
      ],
      "outputs": [
        "Actionable visible and structured failure states identify aircraft asset, camera rig, world initialization/compositing, and frame lifecycle failures without mislabelling all descendants as WebGL initialization failure.",
        "A release acceptance matrix covers all nine production aircraft × four camera modes under moving flight, declared bindings including gear/flaps, supported worlds/viewports, route exclusivity, recovery hit targets, and reset transition provenance.",
        "CI rejects missing pixels/aircraft visibility, null-transition control false positives, static-label warning matches, hidden navigation/reset events, and ordinary-interaction bypass."
      ],
      "failure_boundaries": [
        "Fail when an asset/camera/world/frame error is swallowed, generalized incorrectly, or visible only in console output.",
        "Fail when DOM attributes, nominal telemetry, clean console/network, fixture viewers, or static labels substitute for rendered usability and active-state evidence.",
        "Fail when null↔value telemetry changes count as intended control response, when STALL SPEED 140 KT is classified as an active warning, or when reset attribution lacks attempt/source sequence plus route/navigation capture."
      ],
      "exclusions": [
        "No application implementation is performed by this admission change.",
        "Do not rewrite TASK-0149, infer a router-retention defect, report working Menu Restart as failed, classify static STALL SPEED 140 KT specification text as an active warning, or broaden governed interaction scope beyond the exact interaction semantics stated here."
      ],
      "verification_steps": [
        "Tests first: add negative fixtures proving the acceptance suite rejects missing aircraft, static cameras, broken world transforms/water depth, binding collisions, dual-state mismatch, composite routes, covered controls, null transitions, static warning labels, and hidden resets.",
        "Run the exact production path for all nine aircraft and all four cameras in moving flight; assert pixel occupancy/visibility and camera semantics rather than only DOM attributes.",
        "Run declared-binding probes and accept only same-command non-null typed changes; classify active warnings from the active-warning channel, never substring matches on specification labels.",
        "Capture attempt ID, source step, route, navigation/load events, and explicit transition reason around every recovery/restart. All browser acceptance uses ordinary visible interactions: no force-click, hidden input, direct DOM/state/camera mutation, API setup, storage seeding, fixture-only renderer, or bypass."
      ],
      "dependencies": [
        "TASK-0013",
        "TASK-0016",
        "TASK-0020",
        "TASK-0027",
        "TASK-0030",
        "TASK-0150",
        "TASK-0151",
        "TASK-0152",
        "TASK-0153",
        "TASK-0154",
        "TASK-0155",
        "TASK-0156"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0058"
      ],
      "acceptance_evidence": "Verified delivery: PR #214 delivered the implementation and PR #215 merged the exact-camera review hardening as integration revision 70df7366b1dc2abd3a11acc021f56c711cd1bd57; all-nine-aircraft/all-four-camera rendered acceptance, declared controls, active-warning classification, reset provenance, exact-head and integration CI, immutable image publication, and Harbor readback passed.",
      "status_decision": {
        "item_id": "TASK-0157",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-16T20:44:19Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
            "description": "RootAtSkic requested the complete Wave 33 repair Task set after verified UAT and root-cause diagnosis."
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
            "description": "RootAtSkic Wave 33 correction authority and immediate Delivery handoff."
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0157-DONE-20260926",
        "sequence": 4,
        "item_id": "TASK-0157",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-26T09:23:28Z",
        "conditions": [
          "The Task integration revision 70df7366b1dc2abd3a11acc021f56c711cd1bd57 is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
          "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
          "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
          "The root, health, and API health endpoints returned HTTP 200 after deployment.",
          "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
        ],
        "release_version": "1.0.0",
        "deployed_artifact": {
          "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
          "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
          }
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, zero restarts, digest matched",
          "api": "Ready, zero restarts, digest matched",
          "endpoints": [
            "/: HTTP 200",
            "/health: HTTP 200",
            "/api/health: HTTP 200"
          ]
        },
        "automated_acceptance": {
          "release_runtime_verification": "passed"
        },
        "human_post_release_acceptance": "PENDING",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
            "item_id": "TASK-0157",
            "state": "Done",
            "event_id": "FLOW-TASK-0157-DONE-20260926"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
            "item_id": "TASK-0157",
            "state": "Done",
            "event_id": "FLOW-TASK-0157-DONE-20260926"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
            "item_id": "TASK-0157",
            "state": "Done",
            "event_id": "FLOW-TASK-0157-DONE-20260926"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0157.yml",
            "item_id": "TASK-0157",
            "state": "Done",
            "event_id": "FLOW-TASK-0157-DONE-20260926"
          }
        ],
        "previous_hash": "efa668c5aabe3de5271313bd9b78c7f36b96b16cb78bcffc2537c941641f427b",
        "hash": "6f591d41b7d5eab448a13918d8e13c25025bc39436f8ce1395824398b5af28d5"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0157-READY-20260916",
          "sequence": 1,
          "item_id": "TASK-0157",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-16T20:44:19Z",
          "conditions": [
            "This exact Task is admitted as required replacement-release repair work from the verified 36/36 failed ordinary-user UAT and deployed-source root-cause evidence.",
            "Release 1.0.0.1 remains deployed, human FAILED, production REJECTED, and requires replacement; admission does not relabel or overwrite that release.",
            "Tests must be written first and browser acceptance must use ordinary visible interactions with no forced click or other bypass."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549867630800666695",
              "item_id": "TASK-0157",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0157-READY-20260916"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1549881095363760179",
              "item_id": "TASK-0157",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0157-READY-20260916"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0157.yml",
              "item_id": "TASK-0157",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0157-READY-20260916"
            }
          ],
          "previous_hash": null,
          "hash": "32a9d1d4c652dd997ee28a297920f90975abde0ca1f568f7f7abdf64536affb5"
        },
        {
          "event_id": "FLOW-TASK-0157-IN-PROGRESS-20260918",
          "sequence": 2,
          "item_id": "TASK-0157",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-18T08:05:56Z",
          "conditions": [
            "Wave 34 is current and dependencies TASK-0013, TASK-0016, TASK-0020, TASK-0027, TASK-0030, and TASK-0150 through TASK-0156 are Done or ToBeReleased.",
            "The visible application branch and PR were created before any application repository content change."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0157-fail-closed-rendered-flight-acceptance-1",
          "claim_base_sha": "b9cab5df4e9016bbf5239793175327d496d68388",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/214",
              "item_id": "TASK-0157",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0157-IN-PROGRESS-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0157-fail-closed-rendered-flight-acceptance-1",
              "item_id": "TASK-0157",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0157-IN-PROGRESS-20260918"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0157.yml",
              "item_id": "TASK-0157",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0157-IN-PROGRESS-20260918"
            }
          ],
          "previous_hash": "32a9d1d4c652dd997ee28a297920f90975abde0ca1f568f7f7abdf64536affb5",
          "hash": "898ae2128315fb064d7b30e4c7a60233025e9a641771b2335141ca54aa30b030"
        },
        {
          "event_id": "FLOW-TASK-0157-TO-BE-RELEASED-20260918",
          "sequence": 3,
          "item_id": "TASK-0157",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-18T10:58:03Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/215",
              "item_id": "TASK-0157",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0157-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5333",
              "item_id": "TASK-0157",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0157-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5332",
              "item_id": "TASK-0157",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0157-TO-BE-RELEASED-20260918"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0157.yml",
              "item_id": "TASK-0157",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0157-TO-BE-RELEASED-20260918"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/215",
          "reviewed_head": "f9025957327b49afc68a1aaa9b9d3e7b648cdfe8",
          "integration_revision": "70df7366b1dc2abd3a11acc021f56c711cd1bd57",
          "candidate_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5331",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5333",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5332",
          "viewports": [
            "1440x900",
            "1280x720"
          ],
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:85941805581a258c29c8d4193d76e5cee94c92ff61ae9952fbbdbe904990f705",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:3f2a42a5047f821ee422fd2acad668a956266c29394726885ea3395b692c202b"
          },
          "acceptance_evidence": [
            "Tests-first diagnostics distinguish aircraft asset, camera rig, world initialization, and frame lifecycle failures with visible machine-readable boundary and code evidence.",
            "Production-path acceptance passed for all nine governed aircraft across chase, cockpit, orbit, and fly-by cameras with moving source-step, screenshot pixel occupancy, colour diversity, and active-camera evidence.",
            "Ordinary visible keyboard, gear, flap, direct restart, Menu, Resume, and dialog restart interactions passed without force click, hidden input, direct DOM or state mutation, storage seeding, or API setup.",
            "Declared controls emitted non-null typed changes; active-warning evidence excluded static STALL SPEED specification text; restart evidence captured attempt ID, transition sequence/source/reason, route, and navigation sequence.",
            "Candidate CI run 5331 attempt 2 passed one complete nine-job inventory after a transient world-resource budget failure in attempt 1; integration validation run 5333 and immutable image build, publication, and Harbor digest readback run 5332 passed for the exact integration revision."
          ],
          "previous_hash": "898ae2128315fb064d7b30e4c7a60233025e9a641771b2335141ca54aa30b030",
          "hash": "efa668c5aabe3de5271313bd9b78c7f36b96b16cb78bcffc2537c941641f427b"
        },
        {
          "event_id": "FLOW-TASK-0157-DONE-20260926",
          "sequence": 4,
          "item_id": "TASK-0157",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-26T09:23:28Z",
          "conditions": [
            "The Task integration revision 70df7366b1dc2abd3a11acc021f56c711cd1bd57 is a verified ancestor of deployed Release 1.0.0 revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
            "The same cumulative release deployment already used to close Wave 35 includes this Wave 33–34 Task.",
            "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and matched the deployed immutable image digests.",
            "The root, health, and API health endpoints returned HTTP 200 after deployment.",
            "RootAtSkic explicitly directed reconciliation of the skipped Wave 33–34 release-completion states; human post-release acceptance remains recorded separately as PENDING."
          ],
          "release_version": "1.0.0",
          "deployed_artifact": {
            "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
            "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
            "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
            "images": {
              "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
              "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
            }
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, zero restarts, digest matched",
            "api": "Ready, zero restarts, digest matched",
            "endpoints": [
              "/: HTTP 200",
              "/health: HTTP 200",
              "/api/health: HTTP 200"
            ]
          },
          "automated_acceptance": {
            "release_runtime_verification": "passed"
          },
          "human_post_release_acceptance": "PENDING",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457",
              "item_id": "TASK-0157",
              "state": "Done",
              "event_id": "FLOW-TASK-0157-DONE-20260926"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0157",
              "state": "Done",
              "event_id": "FLOW-TASK-0157-DONE-20260926"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0157",
              "state": "Done",
              "event_id": "FLOW-TASK-0157-DONE-20260926"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0157.yml",
              "item_id": "TASK-0157",
              "state": "Done",
              "event_id": "FLOW-TASK-0157-DONE-20260926"
            }
          ],
          "previous_hash": "efa668c5aabe3de5271313bd9b78c7f36b96b16cb78bcffc2537c941641f427b",
          "hash": "6f591d41b7d5eab448a13918d8e13c25025bc39436f8ce1395824398b5af28d5"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "verification",
        "design_refs": [
          "UIUX-100-FULL-JOURNEY"
        ],
        "acceptance": [
          "Preserve the approved Release 1.0.0 interaction and presentation semantics for the referenced frames while repairing diagnosed production behavior; no new design or broader interaction scope is authorized.",
          "Compare rendered ordinary-interaction behavior at every supported viewport and state; tests or DOM attributes alone do not prove design conformance."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553334979155730457"
    },
    {
      "id": "TASK-0158",
      "display_id": "AEROSIM-TS-158",
      "title": "Replace autonomous flight motion with pilot-authoritative dynamics",
      "feature_id": "AEROSIM-FT-1",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-3/aerosim-ft-1/aerosim-ts-158/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0158.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — authoritative flight physics and pilot controls",
      "outcome": "A neutral aircraft remains in a bounded, trimmable state and ordinary keyboard commands produce directional aircraft responses instead of an autonomous climbing turn.",
      "scope": "Bind the declared pitch, bank, yaw, and throttle control values to the one authoritative physics state consumed by rendering, HUD telemetry, cameras, warnings, and recovery. Establish a viable neutral trim for every governed aircraft class; prove opposite commands produce opposite signed motion effects; remove any scripted or default trajectory that overrules pilot input.",
      "implementation_artifacts": [
        "applications/web/src/flight/physics/production-physics.ts",
        "applications/web/src/flight/authoritative-flight-state.ts",
        "applications/web/src/flight/SceneRoot.tsx",
        "applications/web/e2e/pilot-control-authority.browser.spec.ts"
      ],
      "inputs": [
        "Release 1.0.0.2 production UAT executed 36/36 ordinary journeys and passed none.",
        "The three-world control diagnostic observed neutral five-second heading changes of -10, -14, and -13 degrees with simultaneous aggressive climbs before pilot input.",
        "RootAtSkic reported that the plane circles automatically and keyboard controls do not provide usable flight control in Discord message 1550551559899848705.",
        "Three follow-up production recordings confirmed that neutral F-14 flight changed heading from 000 degrees to 341, 341, and 339 degrees while climbing from 39 feet to 193, 197, and 212 feet in the first eight seconds; vertical speed exceeded +7,600 feet per minute before pilot input.",
        "RootAtSkic required explicit Tasks for the uncontrollable aircraft and every other observed defect in Discord message 1550583772309889217."
      ],
      "outputs": [
        "One authoritative control-to-force/torque path shared by all governed aircraft.",
        "Per-class neutral trim that does not enter a climbing turn without input.",
        "Directional response evidence for W/S, A/D, Q/E, and R/F from visible HUD and rendered motion."
      ],
      "failure_boundaries": [
        "Fail when visible control values change but authoritative aircraft motion does not respond in the commanded direction.",
        "Fail when neutral flight develops an uncommanded sustained turn, climb, descent, or automatic circuit.",
        "Fail when rendering, HUD, cameras, or recovery consume a different state from physics."
      ],
      "exclusions": [
        "No new control scheme, aircraft asset, world asset, or camera mode."
      ],
      "verification_steps": [
        "Write failing neutral-trim and opposite-command trajectory tests before changing production physics.",
        "Launch each aircraft class through ordinary production controls and measure signed heading, vertical-speed, altitude, and airspeed responses during and after each declared command.",
        "Sustain neutral and commanded flight for at least 60 seconds without hidden state mutation or direct API setup."
      ],
      "dependencies": [
        "TASK-0154"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0002"
      ],
      "acceptance_evidence": "Verified delivery: exact-head tests and ordinary production-browser trajectories establish bounded neutral flight, signed pilot-authoritative response, one authoritative state path, and immutable-image publication for TASK-0158. Release completion was verified on deployed revision dbba4a186a02cb4567c64f1c3400d38556aa1a25; human post-release acceptance remains PENDING.",
      "status_decision": {
        "item_id": "TASK-0158",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-19T08:26:34Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0158-DONE-20260922",
        "sequence": 4,
        "item_id": "TASK-0158",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-22T23:10:36.554Z",
        "conditions": [
          "Release candidate revision dbba4a186a02cb4567c64f1c3400d38556aa1a25 was deployed through merged template PR #18 and GitOps PR #28.",
          "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and runtime image IDs matched sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9 and sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6.",
          "The root, health, and API health endpoints returned HTTP 200 after deployment.",
          "RootAtSkic directed Wave 35 completion; human post-release acceptance remains recorded separately as PENDING."
        ],
        "release_version": "1.0.0",
        "deployed_artifact": {
          "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
          "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
          }
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, zero restarts, digest matched",
          "api": "Ready, zero restarts, digest matched",
          "endpoints": [
            "/: HTTP 200",
            "/health: HTTP 200",
            "/api/health: HTTP 200"
          ]
        },
        "automated_acceptance": {
          "release_runtime_verification": "passed"
        },
        "human_post_release_acceptance": "PENDING",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629",
            "item_id": "TASK-0158",
            "state": "Done",
            "event_id": "FLOW-TASK-0158-DONE-20260922"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
            "item_id": "TASK-0158",
            "state": "Done",
            "event_id": "FLOW-TASK-0158-DONE-20260922"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
            "item_id": "TASK-0158",
            "state": "Done",
            "event_id": "FLOW-TASK-0158-DONE-20260922"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0158.yml",
            "item_id": "TASK-0158",
            "state": "Done",
            "event_id": "FLOW-TASK-0158-DONE-20260922"
          }
        ],
        "previous_hash": "d5a8b70eb8f7d9eaa4436eb6b7147613f5b14fe5a1fdba52ef3ca2e5840190c1",
        "hash": "58b6f1757575694fdc2814b6108f1c9cd7137434813d54a98ac2445e38a2660a"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0158-READY-20260919",
          "sequence": 1,
          "item_id": "TASK-0158",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-19T08:26:34Z",
          "conditions": [
            "RootAtSkic admitted all six Wave 35 Tasks for immediate Delivery pickup in Discord message 1550784733464498299.",
            "Wave 35 sequencing is satisfied because dependency TASK-0154 is ToBeReleased after GATE_005_TASK_POST_MERGE.",
            "This exact READY_FOR_DELIVERY event is the Focus admission and Delivery pickup handoff; no second admission gate is required."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299",
              "item_id": "TASK-0158",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0158-READY-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0158.yml",
              "item_id": "TASK-0158",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0158-READY-20260919"
            }
          ],
          "previous_hash": null,
          "hash": "f5c5514272700b0508ebf5ab771f75dac7bcb23c13489cbb7641531931993027"
        },
        {
          "event_id": "FLOW-TASK-0158-IN-PROGRESS-20260919",
          "sequence": 2,
          "item_id": "TASK-0158",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-19T08:40:47Z",
          "conditions": [
            "Wave 35 is current and dependency TASK-0154 is ToBeReleased after GATE_005_TASK_POST_MERGE.",
            "RootAtSkic admitted this exact Task through FLOW-TASK-0158-READY-20260919 with no second admission gate.",
            "Implementation is limited to FR-0002 and approved AEROSIM-UIUX-REL-1.0.0/UIUX-100-CHASE presentation semantics."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0158-pilot-authoritative-dynamics-1",
          "claim_base_sha": "8a448c70fcf09e05fc7b75f078572a85b92b6cf6",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299",
              "item_id": "TASK-0158",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0158-IN-PROGRESS-20260919"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/217",
              "item_id": "TASK-0158",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0158-IN-PROGRESS-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0158.yml",
              "item_id": "TASK-0158",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0158-IN-PROGRESS-20260919"
            }
          ],
          "previous_hash": "f5c5514272700b0508ebf5ab771f75dac7bcb23c13489cbb7641531931993027",
          "hash": "7455c3d40cf0af4142fdc93bf12e19ab62145601054c30e8faf0b7b19c4459e4"
        },
        {
          "event_id": "FLOW-TASK-0158-TO-BE-RELEASED-20260919",
          "sequence": 3,
          "item_id": "TASK-0158",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-19T11:09:54Z",
          "conditions": [
            "GATE_003 exact-head review passed for 486f5e253a979021326cf8db5bdc6ee4172192fc with no unresolved logic, security, acceptance, production-path, or material test finding.",
            "GATE_004 candidate CI passed for the reviewed head in two distinct complete workflow runs; no jobs or attempts were combined.",
            "Application PR",
            "GATE_005 integration validation and immutable image publication passed for 7b13717d480e19ac36755cd3b6d7f51f93692b41."
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/217",
          "reviewed_head": "486f5e253a979021326cf8db5bdc6ee4172192fc",
          "candidate_ci": [
            "run 5406 attempt 1 push success; job 9836 feature branch lint and build success",
            "run 5407 attempt 1 pull_request success; jobs 9837 lint, 9838 typecheck, 9839 workflow-contract, 9840 test, 9841 environment-consistency, 9842 release-design-conformance, 9843 build, 9844 container-images, and 9845 required application validation succeeded"
          ],
          "integration_revision": "7b13717d480e19ac36755cd3b6d7f51f93692b41",
          "integration_ci": [
            "run 5409 attempt 1 push success for integration revision 7b13717d480e19ac36755cd3b6d7f51f93692b41",
            "job 9856 required-validation success"
          ],
          "publication_evidence": [
            "run 5409 attempt 1",
            "job 9857 build-images success",
            "job 9858 publish-images success"
          ],
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:f7bc2385037d4c8b3ce87396f36b5a3a819a9b758a7ebcfb3a305e09adc40750",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:01a36ff29ce8aebf5128faba5960906e0857aa2e637ec3da360c432108f0792f"
          },
          "acceptance_evidence": [
            "Strict RED reproduced an eight-second +727.65 metre neutral climb and missing pitch/bank motion before production changes.",
            "All trainer, airliner, and fighter profiles remained within 10 metres altitude drift and 2 degrees heading drift over 60 simulated seconds.",
            "Opposite pitch, bank, and yaw inputs produced opposite signed angular motion through the production Rapier path; ordinary W/S, A/D, Q/E, and R/F browser controls advanced the authoritative source step for all three classes.",
            "Rendering, HUD telemetry, camera rigs, warnings, trainer recovery, and restart consume the same physics frame and attempt identity without a scripted trajectory."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/217",
              "item_id": "TASK-0158",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0158-TO-BE-RELEASED-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0158.yml",
              "item_id": "TASK-0158",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0158-TO-BE-RELEASED-20260919"
            }
          ],
          "previous_hash": "7455c3d40cf0af4142fdc93bf12e19ab62145601054c30e8faf0b7b19c4459e4",
          "hash": "d5a8b70eb8f7d9eaa4436eb6b7147613f5b14fe5a1fdba52ef3ca2e5840190c1"
        },
        {
          "event_id": "FLOW-TASK-0158-DONE-20260922",
          "sequence": 4,
          "item_id": "TASK-0158",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-22T23:10:36.554Z",
          "conditions": [
            "Release candidate revision dbba4a186a02cb4567c64f1c3400d38556aa1a25 was deployed through merged template PR #18 and GitOps PR #28.",
            "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and runtime image IDs matched sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9 and sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6.",
            "The root, health, and API health endpoints returned HTTP 200 after deployment.",
            "RootAtSkic directed Wave 35 completion; human post-release acceptance remains recorded separately as PENDING."
          ],
          "release_version": "1.0.0",
          "deployed_artifact": {
            "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
            "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
            "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
            "images": {
              "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
              "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
            }
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, zero restarts, digest matched",
            "api": "Ready, zero restarts, digest matched",
            "endpoints": [
              "/: HTTP 200",
              "/health: HTTP 200",
              "/api/health: HTTP 200"
            ]
          },
          "automated_acceptance": {
            "release_runtime_verification": "passed"
          },
          "human_post_release_acceptance": "PENDING",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629",
              "item_id": "TASK-0158",
              "state": "Done",
              "event_id": "FLOW-TASK-0158-DONE-20260922"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0158",
              "state": "Done",
              "event_id": "FLOW-TASK-0158-DONE-20260922"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0158",
              "state": "Done",
              "event_id": "FLOW-TASK-0158-DONE-20260922"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0158.yml",
              "item_id": "TASK-0158",
              "state": "Done",
              "event_id": "FLOW-TASK-0158-DONE-20260922"
            }
          ],
          "previous_hash": "d5a8b70eb8f7d9eaa4436eb6b7147613f5b14fe5a1fdba52ef3ca2e5840190c1",
          "hash": "58b6f1757575694fdc2814b6108f1c9cd7137434813d54a98ac2445e38a2660a"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-CHASE"
        ],
        "acceptance": [
          "Preserve the approved active-flight presentation while making the visible aircraft and HUD respond to one pilot-authoritative physics state."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629"
    },
    {
      "id": "TASK-0159",
      "display_id": "AEROSIM-TS-159",
      "title": "Eliminate implicit flight resets during ordinary control",
      "feature_id": "AEROSIM-FT-5",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-5/aerosim-ts-159/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0159.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — flight recovery and attempt continuity",
      "outcome": "A flight attempt changes identity only after an explicit visible restart or terminal recovery decision, never as a hidden response to normal pilot input.",
      "scope": "Separate bounded recovery from full restart, preserve monotonic source-step continuity during ordinary control, and expose the exact reason for every attempt transition. Prevent low-altitude or unstable-state handling from silently replacing the active attempt while the player is still flying.",
      "implementation_artifacts": [
        "applications/web/src/flight/authoritative-flight-state.ts",
        "applications/web/src/flight/recovery-boundary-runtime.ts",
        "applications/web/src/flight/SceneRoot.tsx",
        "applications/web/e2e/attempt-continuity.browser.spec.ts"
      ],
      "inputs": [
        "Release 1.0.0.2 production UAT observed attempt/source-step resets in 33 of 36 ordinary journeys.",
        "Representative control diagnostics changed attempt identity without an explicit restart in all three worlds.",
        "RootAtSkic reported that the aircraft cannot be controlled as a normal flight experience in Discord message 1550551559899848705.",
        "Follow-up production videos recorded implicit attempt replacement at 29.4, 29.8, and 29.6 seconds; Mountain Valley showed ground contact before replacement, but no explicit user recovery decision preceded any replacement."
      ],
      "outputs": [
        "Monotonic source-step and stable attempt identity during ordinary non-terminal flight.",
        "Explicit transition reason, source step, and visible recovery state for every bounded recovery or restart.",
        "A fail-closed distinction between recoverable boundary correction, terminal outcome, and user restart."
      ],
      "failure_boundaries": [
        "Fail on an attempt-ID change or source-step regression without a user restart or explicit terminal transition.",
        "Fail when normal W/S, A/D, Q/E, R/F, G, or flap input triggers a hidden restart.",
        "Fail when a recovery masks state discontinuity from the player."
      ],
      "exclusions": [
        "No change to world geometry, camera framing, or keyboard mappings."
      ],
      "verification_steps": [
        "Add failing long-flight continuity tests reproducing the 33/36 reset pattern before implementation.",
        "Exercise all declared controls in every world and assert stable attempt identity plus monotonic source steps for at least 60 seconds.",
        "Verify direct restart and Menu restart remain ordinarily operable and are the only user-originated attempt replacements."
      ],
      "dependencies": [
        "TASK-0156"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0009"
      ],
      "acceptance_evidence": "Verified delivery: exact-head continuity tests show stable attempt identity and monotonic source steps for 60 simulated seconds in all three worlds; explicit direct and Menu restarts retain user-restart provenance; hidden runtime discontinuity fails closed; PR #219 reviewed head 68750dd68d2be71116a03842c6872f4ce8411dea merged as f564123585b2c8973f09dfaff9e0fcdf67865ed5 with integration validation and immutable image publication successful. Release completion was verified on deployed revision dbba4a186a02cb4567c64f1c3400d38556aa1a25; human post-release acceptance remains PENDING.",
      "status_decision": {
        "item_id": "TASK-0159",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-19T08:26:34Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0159-DONE-20260922",
        "sequence": 4,
        "item_id": "TASK-0159",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-22T23:10:36.554Z",
        "conditions": [
          "Release candidate revision dbba4a186a02cb4567c64f1c3400d38556aa1a25 was deployed through merged template PR #18 and GitOps PR #28.",
          "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and runtime image IDs matched sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9 and sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6.",
          "The root, health, and API health endpoints returned HTTP 200 after deployment.",
          "RootAtSkic directed Wave 35 completion; human post-release acceptance remains recorded separately as PENDING."
        ],
        "release_version": "1.0.0",
        "deployed_artifact": {
          "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
          "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
          }
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, zero restarts, digest matched",
          "api": "Ready, zero restarts, digest matched",
          "endpoints": [
            "/: HTTP 200",
            "/health: HTTP 200",
            "/api/health: HTTP 200"
          ]
        },
        "automated_acceptance": {
          "release_runtime_verification": "passed"
        },
        "human_post_release_acceptance": "PENDING",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629",
            "item_id": "TASK-0159",
            "state": "Done",
            "event_id": "FLOW-TASK-0159-DONE-20260922"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
            "item_id": "TASK-0159",
            "state": "Done",
            "event_id": "FLOW-TASK-0159-DONE-20260922"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
            "item_id": "TASK-0159",
            "state": "Done",
            "event_id": "FLOW-TASK-0159-DONE-20260922"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0159.yml",
            "item_id": "TASK-0159",
            "state": "Done",
            "event_id": "FLOW-TASK-0159-DONE-20260922"
          }
        ],
        "previous_hash": "d3ef810d40d844155534dd8a8151ccc9b83ae3f64ad2cf7736d7da33158c2440",
        "hash": "24f4b732105d924dfbda936b424dc6072253cc2d5db25f85e003e3f6ecb4ed08"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0159-READY-20260919",
          "sequence": 1,
          "item_id": "TASK-0159",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-19T08:26:34Z",
          "conditions": [
            "RootAtSkic admitted all six Wave 35 Tasks for immediate Delivery pickup in Discord message 1550784733464498299.",
            "Wave 35 sequencing is satisfied because dependency TASK-0156 is ToBeReleased after GATE_005_TASK_POST_MERGE.",
            "This exact READY_FOR_DELIVERY event is the Focus admission and Delivery pickup handoff; no second admission gate is required."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299",
              "item_id": "TASK-0159",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0159-READY-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0159.yml",
              "item_id": "TASK-0159",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0159-READY-20260919"
            }
          ],
          "previous_hash": null,
          "hash": "13e5b3b11bdddc09f4e9482a33b6114e3e1d33878ab098b7ad26529b792e5c71"
        },
        {
          "event_id": "FLOW-TASK-0159-IN-PROGRESS-20260919",
          "sequence": 2,
          "item_id": "TASK-0159",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-19T09:27:16Z",
          "conditions": [
            "RootAtSkic admitted TASK-0159 in Wave 35 for immediate Delivery pickup with no second admission gate.",
            "Dependency TASK-0156 is ToBeReleased after GATE_005_TASK_POST_MERGE.",
            "Implementation is limited to FR-0009 and approved AEROSIM-UIUX-REL-1.0.0/UIUX-100-WARNING semantics."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0159-explicit-flight-attempt-continuity-1",
          "claim_base_sha": "5137cdbcd64e7c7d980e41357a4cafe27a691a04",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299",
              "item_id": "TASK-0159",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0159-IN-PROGRESS-20260919"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/219",
              "item_id": "TASK-0159",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0159-IN-PROGRESS-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0159.yml",
              "item_id": "TASK-0159",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0159-IN-PROGRESS-20260919"
            }
          ],
          "previous_hash": "13e5b3b11bdddc09f4e9482a33b6114e3e1d33878ab098b7ad26529b792e5c71",
          "hash": "7b094f178124b71ae8cf041c3846b254bf52dd7e4591c623055536fa07b71712"
        },
        {
          "event_id": "FLOW-TASK-0159-TO-BE-RELEASED-20260919",
          "sequence": 3,
          "item_id": "TASK-0159",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-19T10:22:40Z",
          "conditions": [
            "GATE_003 exact-head review passed for 68750dd68d2be71116a03842c6872f4ce8411dea with no unresolved logic, security, acceptance, production-path, or material test finding.",
            "GATE_004 exact-head PR CI passed in one complete attempt and application PR #219 merged without rewriting the reviewed head.",
            "GATE_005 integration validation and immutable image publication passed for f564123585b2c8973f09dfaff9e0fcdf67865ed5."
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/219",
          "reviewed_head": "68750dd68d2be71116a03842c6872f4ce8411dea",
          "integration_revision": "f564123585b2c8973f09dfaff9e0fcdf67865ed5",
          "integration_ci": [
            "task 7091 validation success",
            "task 7090 required-validation success"
          ],
          "publication_evidence": [
            "run 5389 attempt 1",
            "task 7109 build-images success",
            "task 7124 publish-images success"
          ],
          "acceptance_evidence": [
            "4/4 TASK-0159 continuity tests passed across all three worlds for 60 simulated seconds",
            "direct restart and Menu restart provenance browser test passed",
            "hidden runtime discontinuity fails closed before source-step reset"
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/219",
              "item_id": "TASK-0159",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0159-TO-BE-RELEASED-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0159.yml",
              "item_id": "TASK-0159",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0159-TO-BE-RELEASED-20260919"
            }
          ],
          "previous_hash": "7b094f178124b71ae8cf041c3846b254bf52dd7e4591c623055536fa07b71712",
          "hash": "d3ef810d40d844155534dd8a8151ccc9b83ae3f64ad2cf7736d7da33158c2440"
        },
        {
          "event_id": "FLOW-TASK-0159-DONE-20260922",
          "sequence": 4,
          "item_id": "TASK-0159",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-22T23:10:36.554Z",
          "conditions": [
            "Release candidate revision dbba4a186a02cb4567c64f1c3400d38556aa1a25 was deployed through merged template PR #18 and GitOps PR #28.",
            "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and runtime image IDs matched sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9 and sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6.",
            "The root, health, and API health endpoints returned HTTP 200 after deployment.",
            "RootAtSkic directed Wave 35 completion; human post-release acceptance remains recorded separately as PENDING."
          ],
          "release_version": "1.0.0",
          "deployed_artifact": {
            "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
            "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
            "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
            "images": {
              "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
              "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
            }
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, zero restarts, digest matched",
            "api": "Ready, zero restarts, digest matched",
            "endpoints": [
              "/: HTTP 200",
              "/health: HTTP 200",
              "/api/health: HTTP 200"
            ]
          },
          "automated_acceptance": {
            "release_runtime_verification": "passed"
          },
          "human_post_release_acceptance": "PENDING",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629",
              "item_id": "TASK-0159",
              "state": "Done",
              "event_id": "FLOW-TASK-0159-DONE-20260922"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0159",
              "state": "Done",
              "event_id": "FLOW-TASK-0159-DONE-20260922"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0159",
              "state": "Done",
              "event_id": "FLOW-TASK-0159-DONE-20260922"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0159.yml",
              "item_id": "TASK-0159",
              "state": "Done",
              "event_id": "FLOW-TASK-0159-DONE-20260922"
            }
          ],
          "previous_hash": "d3ef810d40d844155534dd8a8151ccc9b83ae3f64ad2cf7736d7da33158c2440",
          "hash": "24f4b732105d924dfbda936b424dc6072253cc2d5db25f85e003e3f6ecb4ed08"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-WARNING"
        ],
        "acceptance": [
          "Preserve visible warning and recovery semantics while ensuring every attempt replacement is explicit and attributable."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629"
    },
    {
      "id": "TASK-0160",
      "display_id": "AEROSIM-TS-160",
      "title": "Repair production world identity and terrain composition",
      "feature_id": "AEROSIM-FT-47",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-47/aerosim-ts-160/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0160.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — production world identity and terrain composition",
      "outcome": "Training Airfield, Coastal Range, and Mountain Valley each render their selected identity with continuous usable terrain and no voids, black wedges, or mismatched world content.",
      "scope": "Correct production world-to-asset mapping, terrain transforms, seams, depth ordering, presentation bounds, and recovery limits. Training Airfield must read as an airfield; Coastal Range must visibly contain coherent coastal/water composition; Mountain Valley must not expose empty or black frames.",
      "implementation_artifacts": [
        "applications/web/src/flight/world-terrain-registry.ts",
        "applications/web/src/flight/terrain/WorldTerrainModel.tsx",
        "applications/web/src/flight/world-space-contract.ts",
        "applications/web/e2e/production-world-identity.browser.spec.ts"
      ],
      "inputs": [
        "Release 1.0.0.2 UAT screenshots show mountainous desert content and large dark wedges under Training Airfield.",
        "Coastal Range screenshots show mountain-only composition and black/empty frames in J04, J09, and J12.",
        "Mountain Valley screenshots show black/empty frames in J03 and J07 plus severe terrain/camera clipping.",
        "Follow-up production videos retain the same wrong world identity over approximately 52 seconds per world: Training Airfield lacks a readable airfield, Coastal Range lacks coherent coast/water composition, and Mountain Valley permits terrain intersection before attempt replacement."
      ],
      "outputs": [
        "Exact selected-world identity, attribution, transforms, and presentation bounds.",
        "Continuous rendered terrain and correct water/depth composition without voids or opaque polygon wedges.",
        "World-specific recovery bounds that do not immediately force a low-altitude reset."
      ],
      "failure_boundaries": [
        "Fail when selected-world labels and visible content disagree.",
        "Fail on any blank, black, void, opaque seam, terrain slice, or water/terrain intersection that makes flight unusable.",
        "Fail when one world's asset or attribution appears in another world."
      ],
      "exclusions": [
        "No replacement asset may be selected without verified provenance, licence, and human visual review."
      ],
      "verification_steps": [
        "Add screenshot and pixel-difference regressions for each exact world before correction.",
        "Run ordinary 60-second flight journeys in all four cameras for every world and inspect final screenshots.",
        "Verify visual terrain, collision, spawn, camera bounds, and recovery bounds use the same authored world-space record."
      ],
      "dependencies": [
        "TASK-0152"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0054"
      ],
      "acceptance_evidence": "Verified delivery: exact-head and exact-integration browser journeys show each selected production world with its governed identity, continuous usable terrain, correct coastal water composition, and zero black, empty, void, or opaque-wedge frames across all four cameras. Release completion was verified on deployed revision dbba4a186a02cb4567c64f1c3400d38556aa1a25; human post-release acceptance remains PENDING.",
      "status_decision": {
        "item_id": "TASK-0160",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-19T08:26:34Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0160-DONE-20260922",
        "sequence": 4,
        "item_id": "TASK-0160",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-22T23:10:36.554Z",
        "conditions": [
          "Release candidate revision dbba4a186a02cb4567c64f1c3400d38556aa1a25 was deployed through merged template PR #18 and GitOps PR #28.",
          "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and runtime image IDs matched sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9 and sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6.",
          "The root, health, and API health endpoints returned HTTP 200 after deployment.",
          "RootAtSkic directed Wave 35 completion; human post-release acceptance remains recorded separately as PENDING."
        ],
        "release_version": "1.0.0",
        "deployed_artifact": {
          "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
          "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
          }
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, zero restarts, digest matched",
          "api": "Ready, zero restarts, digest matched",
          "endpoints": [
            "/: HTTP 200",
            "/health: HTTP 200",
            "/api/health: HTTP 200"
          ]
        },
        "automated_acceptance": {
          "release_runtime_verification": "passed"
        },
        "human_post_release_acceptance": "PENDING",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629",
            "item_id": "TASK-0160",
            "state": "Done",
            "event_id": "FLOW-TASK-0160-DONE-20260922"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
            "item_id": "TASK-0160",
            "state": "Done",
            "event_id": "FLOW-TASK-0160-DONE-20260922"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
            "item_id": "TASK-0160",
            "state": "Done",
            "event_id": "FLOW-TASK-0160-DONE-20260922"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0160.yml",
            "item_id": "TASK-0160",
            "state": "Done",
            "event_id": "FLOW-TASK-0160-DONE-20260922"
          }
        ],
        "previous_hash": "435b8f476e01c8ff3ff24324bedc22b20649b38496e9e5ad74f44c30848fdfcb",
        "hash": "99cc52b7398e4636a2a05566f2e7cce69131a512715051c73f859aba20430897"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0160-READY-20260919",
          "sequence": 1,
          "item_id": "TASK-0160",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-19T08:26:34Z",
          "conditions": [
            "RootAtSkic admitted all six Wave 35 Tasks for immediate Delivery pickup in Discord message 1550784733464498299.",
            "Wave 35 sequencing is satisfied because dependency TASK-0152 is ToBeReleased after GATE_005_TASK_POST_MERGE.",
            "This exact READY_FOR_DELIVERY event is the Focus admission and Delivery pickup handoff; no second admission gate is required."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299",
              "item_id": "TASK-0160",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0160-READY-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0160.yml",
              "item_id": "TASK-0160",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0160-READY-20260919"
            }
          ],
          "previous_hash": null,
          "hash": "e22b1eaed6aff03be6c15f79f59fa9aa23336f1d3e2be25ef5ef89e6ec32003a"
        },
        {
          "event_id": "FLOW-TASK-0160-IN-PROGRESS-20260919",
          "sequence": 2,
          "item_id": "TASK-0160",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-19T09:12:05Z",
          "conditions": [
            "Wave 35 is current and dependency TASK-0152 is ToBeReleased after GATE_005_TASK_POST_MERGE.",
            "RootAtSkic admitted this exact corrective Task through FLOW-TASK-0160-READY-20260919 with no second admission gate.",
            "Implementation is limited to FR-0054 and approved AEROSIM-UIUX-REL-1.0.0 UIUX-100-CHASE presentation semantics, preserving verified asset provenance and licensing."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0160-production-world-terrain-composition-1",
          "claim_base_sha": "8a448c70fcf09e05fc7b75f078572a85b92b6cf6",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299",
              "item_id": "TASK-0160",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0160-IN-PROGRESS-20260919"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/221",
              "item_id": "TASK-0160",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0160-IN-PROGRESS-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0160.yml",
              "item_id": "TASK-0160",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0160-IN-PROGRESS-20260919"
            }
          ],
          "previous_hash": "e22b1eaed6aff03be6c15f79f59fa9aa23336f1d3e2be25ef5ef89e6ec32003a",
          "hash": "9e54fbe6e6e0076c7284d69c8fb7d0b1b225d7bacf91c3fec28049a50ad0e39d"
        },
        {
          "event_id": "FLOW-TASK-0160-TO-BE-RELEASED-20260919",
          "sequence": 3,
          "item_id": "TASK-0160",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-19T23:20:54Z",
          "conditions": [
            "GATE_003 exact-head review passed for ea93ca7e6c73e0ad3d1204ad83b09617a06cbe08, and the GATE_005 journey repair at f33cc081a03f2ae3b6998af51152ac7d298d7a21 passed exact-head review with no unresolved finding.",
            "Application PR",
            "GATE_005 current integration validation and immutable image publication passed for 910a30c79efc1b6ac5d8f55e84b8cc6863ceae3f."
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/221",
          "forward_fix_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/223",
          "journey_fix_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/224",
          "reviewed_head": "f33cc081a03f2ae3b6998af51152ac7d298d7a21",
          "integration_revision": "910a30c79efc1b6ac5d8f55e84b8cc6863ceae3f",
          "integration_ci": [
            "run 5471 attempt 1 push success; job 10118 required-validation success",
            "run 5472 attempt 1 push success; job 10121 validate success"
          ],
          "publication_evidence": [
            "run 5471 attempt 1",
            "job 10119 build-images success",
            "job 10120 publish-images success",
            "Harbor manifest readback succeeded for both immutable source-revision tags"
          ],
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:b174f20b207fb07e6a142daf2caf43669a62a297023a50c48814c1ef9a73bef3",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:e4c962d6b90b8b9978d237f9e08f93e7dad826156d163976d5b3351fa54d5706"
          },
          "acceptance_evidence": [
            "Exact selected-world labels, attribution, terrain assets, transforms, collision, spawn, camera bounds, presentation bounds, and recovery bounds consume the governed world-space records.",
            "Training Airfield remains identifiable, Coastal Range retains coherent terrain and water composition, and Mountain Valley remains continuous without empty or black frames.",
            "Both exact-integration workflows passed the three 60-second production-world journeys across chase, orbit, fly-by, and cockpit cameras."
          ],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/221",
              "item_id": "TASK-0160",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0160-TO-BE-RELEASED-20260919"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5471",
              "item_id": "TASK-0160",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0160-TO-BE-RELEASED-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0160.yml",
              "item_id": "TASK-0160",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0160-TO-BE-RELEASED-20260919"
            }
          ],
          "previous_hash": "9e54fbe6e6e0076c7284d69c8fb7d0b1b225d7bacf91c3fec28049a50ad0e39d",
          "hash": "435b8f476e01c8ff3ff24324bedc22b20649b38496e9e5ad74f44c30848fdfcb"
        },
        {
          "event_id": "FLOW-TASK-0160-DONE-20260922",
          "sequence": 4,
          "item_id": "TASK-0160",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-22T23:10:36.554Z",
          "conditions": [
            "Release candidate revision dbba4a186a02cb4567c64f1c3400d38556aa1a25 was deployed through merged template PR #18 and GitOps PR #28.",
            "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and runtime image IDs matched sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9 and sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6.",
            "The root, health, and API health endpoints returned HTTP 200 after deployment.",
            "RootAtSkic directed Wave 35 completion; human post-release acceptance remains recorded separately as PENDING."
          ],
          "release_version": "1.0.0",
          "deployed_artifact": {
            "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
            "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
            "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
            "images": {
              "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
              "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
            }
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, zero restarts, digest matched",
            "api": "Ready, zero restarts, digest matched",
            "endpoints": [
              "/: HTTP 200",
              "/health: HTTP 200",
              "/api/health: HTTP 200"
            ]
          },
          "automated_acceptance": {
            "release_runtime_verification": "passed"
          },
          "human_post_release_acceptance": "PENDING",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629",
              "item_id": "TASK-0160",
              "state": "Done",
              "event_id": "FLOW-TASK-0160-DONE-20260922"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0160",
              "state": "Done",
              "event_id": "FLOW-TASK-0160-DONE-20260922"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0160",
              "state": "Done",
              "event_id": "FLOW-TASK-0160-DONE-20260922"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0160.yml",
              "item_id": "TASK-0160",
              "state": "Done",
              "event_id": "FLOW-TASK-0160-DONE-20260922"
            }
          ],
          "previous_hash": "435b8f476e01c8ff3ff24324bedc22b20649b38496e9e5ad74f44c30848fdfcb",
          "hash": "99cc52b7398e4636a2a05566f2e7cce69131a512715051c73f859aba20430897"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-CHASE"
        ],
        "acceptance": [
          "Preserve the approved active-flight layout while rendering the selected world's exact usable terrain and compositing."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629"
    },
    {
      "id": "TASK-0161",
      "display_id": "AEROSIM-TS-161",
      "title": "Make every production camera a usable pilot view",
      "feature_id": "AEROSIM-FT-14",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-14/aerosim-ts-161/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0161.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — long-flight production camera usability",
      "outcome": "Chase, Cockpit, Orbit, and Fly-by retain a usable world view and correct aircraft framing throughout sustained pilot-controlled flight for every governed aircraft.",
      "scope": "Repair camera anchors, near/far planes, look targets, collision/clipping avoidance, and long-flight lifecycle. Cockpit must present a credible pilot viewpoint rather than exterior wing or empty terrain; Orbit and Fly-by must keep aircraft/world context without black frames or unusable scale.",
      "implementation_artifacts": [
        "applications/web/src/flight/camera/production-camera-rigs.ts",
        "applications/web/src/flight/camera/camera-switch-coordinator.ts",
        "applications/web/src/flight/assets/aircraft-presentation-contract.ts",
        "applications/web/e2e/long-flight-camera-acceptance.browser.spec.ts"
      ],
      "inputs": [
        "Release 1.0.0.2 UAT shows no usable cockpit view in any of the nine cockpit journeys.",
        "Coastal Range J04/J09/J12 and Mountain Valley J03/J07 end in black or empty frames.",
        "Orbit and Fly-by evidence contains clipped aircraft, extreme scales, exterior geometry, and lost world context.",
        "Follow-up Chase recordings show persistent foreign aircraft-like geometry in the frame and confirm that camera usability cannot be accepted from a single launch screenshot.",
        "The separately owned duplicate/foreign-geometry correction is TASK-0163; this Task retains camera anchoring, clipping, framing, and lifecycle ownership."
      ],
      "outputs": [
        "Aircraft-specific bounded camera anchors for all four production modes.",
        "Long-flight camera updates tied to the current authoritative aircraft frame and attempt identity.",
        "Visible fail-closed diagnostics before a camera can render an empty or unusable frame."
      ],
      "failure_boundaries": [
        "Fail when Cockpit lacks a usable pilot viewpoint or clips through exterior geometry.",
        "Fail when aircraft or world context is missing, black, empty, off-screen, or unrecognizably scaled.",
        "Fail when camera change alters aircraft state, control ownership, or attempt continuity."
      ],
      "exclusions": [
        "No new camera mode or aircraft asset."
      ],
      "verification_steps": [
        "Write failing tests from the exact UAT frames before camera changes.",
        "Sustain all nine aircraft in all four cameras for at least 60 seconds with continuous pixel, framing, world-context, and source-step assertions.",
        "Capture and visually inspect every journey through ordinary visible controls."
      ],
      "dependencies": [
        "TASK-0151"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0021"
      ],
      "acceptance_evidence": "Verified delivery: all 36 production camera journeys across nine governed aircraft and Chase, Cockpit, Orbit, and Fly-by retained rendered aircraft/world context for at least 60 seconds on integration revision 910a30c79efc1b6ac5d8f55e84b8cc6863ceae3f; exact integration validation and immutable image publication passed. Release completion was verified on deployed revision dbba4a186a02cb4567c64f1c3400d38556aa1a25; human post-release acceptance remains PENDING.",
      "status_decision": {
        "item_id": "TASK-0161",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-19T08:26:34Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0161-DONE-20260922",
        "sequence": 4,
        "item_id": "TASK-0161",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-22T23:10:36.554Z",
        "conditions": [
          "Release candidate revision dbba4a186a02cb4567c64f1c3400d38556aa1a25 was deployed through merged template PR #18 and GitOps PR #28.",
          "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and runtime image IDs matched sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9 and sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6.",
          "The root, health, and API health endpoints returned HTTP 200 after deployment.",
          "RootAtSkic directed Wave 35 completion; human post-release acceptance remains recorded separately as PENDING."
        ],
        "release_version": "1.0.0",
        "deployed_artifact": {
          "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
          "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
          }
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, zero restarts, digest matched",
          "api": "Ready, zero restarts, digest matched",
          "endpoints": [
            "/: HTTP 200",
            "/health: HTTP 200",
            "/api/health: HTTP 200"
          ]
        },
        "automated_acceptance": {
          "release_runtime_verification": "passed"
        },
        "human_post_release_acceptance": "PENDING",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629",
            "item_id": "TASK-0161",
            "state": "Done",
            "event_id": "FLOW-TASK-0161-DONE-20260922"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
            "item_id": "TASK-0161",
            "state": "Done",
            "event_id": "FLOW-TASK-0161-DONE-20260922"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
            "item_id": "TASK-0161",
            "state": "Done",
            "event_id": "FLOW-TASK-0161-DONE-20260922"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0161.yml",
            "item_id": "TASK-0161",
            "state": "Done",
            "event_id": "FLOW-TASK-0161-DONE-20260922"
          }
        ],
        "previous_hash": "a5361e1d224b6cd5de64a15d0cd1562be4a107aec7fa0c23781a31d567213509",
        "hash": "7e78b23a3937e3733c02f9b4d90822b8565cb91d48a20005f493b46c07f71544"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0161-READY-20260919",
          "sequence": 1,
          "item_id": "TASK-0161",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-19T08:26:34Z",
          "conditions": [
            "RootAtSkic admitted all six Wave 35 Tasks for immediate Delivery pickup in Discord message 1550784733464498299.",
            "Wave 35 sequencing is satisfied because dependency TASK-0151 is ToBeReleased after GATE_005_TASK_POST_MERGE.",
            "This exact READY_FOR_DELIVERY event is the Focus admission and Delivery pickup handoff; no second admission gate is required."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299",
              "item_id": "TASK-0161",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0161-READY-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0161.yml",
              "item_id": "TASK-0161",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0161-READY-20260919"
            }
          ],
          "previous_hash": null,
          "hash": "88b5504294ded65c6c75dab11efa4cfd94fa58e4690ed3bed9852db330b734a4"
        },
        {
          "event_id": "FLOW-TASK-0161-IN-PROGRESS-20260919",
          "sequence": 2,
          "item_id": "TASK-0161",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-19T08:40:14Z",
          "conditions": [
            "Wave 35 is current and dependency TASK-0151 is ToBeReleased after GATE_005_TASK_POST_MERGE.",
            "RootAtSkic admitted this exact camera-usability correction through FLOW-TASK-0161-READY-20260919 with no second admission gate.",
            "Implementation is limited to FR-0021 and approved AEROSIM-UIUX-REL-1.0.0 camera identities and presentation semantics."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0161-production-camera-usability-1",
          "claim_base_sha": "8a448c70fcf09e05fc7b75f078572a85b92b6cf6",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299",
              "item_id": "TASK-0161",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0161-IN-PROGRESS-20260919"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/218",
              "item_id": "TASK-0161",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0161-IN-PROGRESS-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0161.yml",
              "item_id": "TASK-0161",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0161-IN-PROGRESS-20260919"
            }
          ],
          "previous_hash": "88b5504294ded65c6c75dab11efa4cfd94fa58e4690ed3bed9852db330b734a4",
          "hash": "a2c9b39b0e914d35df493dcd595bd47da1ce018af39d8e1c14ae39074b2fc510"
        },
        {
          "event_id": "FLOW-TASK-0161-TO-BE-RELEASED-20260919",
          "sequence": 3,
          "item_id": "TASK-0161",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-19T23:20:26Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/218",
              "item_id": "TASK-0161",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0161-TO-BE-RELEASED-20260919"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/225",
              "item_id": "TASK-0161",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0161-TO-BE-RELEASED-20260919"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/226",
              "item_id": "TASK-0161",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0161-TO-BE-RELEASED-20260919"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5471",
              "item_id": "TASK-0161",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0161-TO-BE-RELEASED-20260919"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5472",
              "item_id": "TASK-0161",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0161-TO-BE-RELEASED-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0161.yml",
              "item_id": "TASK-0161",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0161-TO-BE-RELEASED-20260919"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/218",
          "reviewed_head": "80e0b6a1a6833aa07be61d841208bfa8daab5394",
          "integration_revision": "910a30c79efc1b6ac5d8f55e84b8cc6863ceae3f",
          "candidate_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5444",
          "recovery_candidate_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5470",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5472",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5471",
          "acceptance_evidence": [
            "Strict RED evidence reproduced unusable exterior framing and horizon roll before the production repair; focused camera-rig tests then passed with aircraft-scaled offsets, cockpit clipping clearance, horizon-stable inspection cameras, and attempt/source-step binding.",
            "The final integrated validation completed all 36 ordinary rendered camera journeys across nine governed aircraft and all four production camera modes for at least 60 seconds, with unchanged attempt identity, advancing source steps, no visible failure boundary, no runtime error, and retained lower-frame terrain context.",
            "Candidate CI runs 5444 and 5470 passed complete nine-job inventories on their exact reviewed heads; integration validation run 5472 and immutable image build, publication, and readback run 5471 passed on exact integration revision 910a30c79efc1b6ac5d8f55e84b8cc6863ceae3f."
          ],
          "previous_hash": "a2c9b39b0e914d35df493dcd595bd47da1ce018af39d8e1c14ae39074b2fc510",
          "hash": "a5361e1d224b6cd5de64a15d0cd1562be4a107aec7fa0c23781a31d567213509"
        },
        {
          "event_id": "FLOW-TASK-0161-DONE-20260922",
          "sequence": 4,
          "item_id": "TASK-0161",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-22T23:10:36.554Z",
          "conditions": [
            "Release candidate revision dbba4a186a02cb4567c64f1c3400d38556aa1a25 was deployed through merged template PR #18 and GitOps PR #28.",
            "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and runtime image IDs matched sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9 and sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6.",
            "The root, health, and API health endpoints returned HTTP 200 after deployment.",
            "RootAtSkic directed Wave 35 completion; human post-release acceptance remains recorded separately as PENDING."
          ],
          "release_version": "1.0.0",
          "deployed_artifact": {
            "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
            "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
            "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
            "images": {
              "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
              "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
            }
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, zero restarts, digest matched",
            "api": "Ready, zero restarts, digest matched",
            "endpoints": [
              "/: HTTP 200",
              "/health: HTTP 200",
              "/api/health: HTTP 200"
            ]
          },
          "automated_acceptance": {
            "release_runtime_verification": "passed"
          },
          "human_post_release_acceptance": "PENDING",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629",
              "item_id": "TASK-0161",
              "state": "Done",
              "event_id": "FLOW-TASK-0161-DONE-20260922"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0161",
              "state": "Done",
              "event_id": "FLOW-TASK-0161-DONE-20260922"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0161",
              "state": "Done",
              "event_id": "FLOW-TASK-0161-DONE-20260922"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0161.yml",
              "item_id": "TASK-0161",
              "state": "Done",
              "event_id": "FLOW-TASK-0161-DONE-20260922"
            }
          ],
          "previous_hash": "a5361e1d224b6cd5de64a15d0cd1562be4a107aec7fa0c23781a31d567213509",
          "hash": "7e78b23a3937e3733c02f9b4d90822b8565cb91d48a20005f493b46c07f71544"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-CAMERAS"
        ],
        "acceptance": [
          "Preserve Chase, Cockpit, Orbit, and Fly-by semantics while making every production view visibly usable during sustained flight."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629"
    },
    {
      "id": "TASK-0162",
      "display_id": "AEROSIM-TS-162",
      "title": "Gate releases on long-flight control and visual UAT",
      "feature_id": "AEROSIM-FT-51",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-51/aerosim-ts-162/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0162.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Engineering validation — production long-flight UAT release gate",
      "outcome": "Release automation rejects a build that accepts key events but cannot sustain pilot-directed flight or produces unusable production screenshots.",
      "scope": "Add a production-path UAT gate covering three worlds, all aircraft classes and models, all four cameras, all condition presets, neutral-flight stability, opposite-command control authority, attempt continuity, world identity, camera usability, warnings, and final screenshot evidence. Keep displayed control-value changes separate from proven aircraft response.",
      "implementation_artifacts": [
        "applications/web/e2e/production-long-flight-uat.browser.spec.ts",
        "applications/web/e2e/pilot-control-authority.browser.spec.ts",
        ".gitea/workflows/validation.yml",
        "scripts/validate-production-uat-evidence.mjs"
      ],
      "inputs": [
        "Release 1.0.0.2 passed prior pixel/diversity and control-transition automation but failed all 36 production UAT journeys.",
        "Existing checks proved visible slider transitions without proving stable pilot-authoritative aircraft motion.",
        "RootAtSkic requested per-journey UAT screenshots and reported unusable keyboard flight control in Discord message 1550551559899848705.",
        "RootAtSkic rejected the screenshot quality and required video-based analysis plus explicit Tasks for the uncontrollable aircraft and all other observed defects in Discord messages 1550580266580447333 and 1550583772309889217."
      ],
      "outputs": [
        "One immutable evidence bundle with a result, screenshot, and continuous flight recording for every governed production journey.",
        "Fail-closed neutral stability, signed control-response, attempt-continuity, camera, world, and visual-quality assertions.",
        "A release gate that distinguishes technical deployment health, automated UAT, and explicit human acceptance."
      ],
      "failure_boundaries": [
        "Fail when control widgets change but aircraft trajectory does not respond directionally.",
        "Fail on implicit reset, black/empty frame, wrong world, unusable camera, visible terrain defect, detached or duplicated aircraft geometry, or missing journey screenshot/video.",
        "Fail when clean console/network signals or pixel diversity substitute for flight usability."
      ],
      "exclusions": [
        "Automation never declares human acceptance.",
        "No forced click, hidden input, direct DOM/state mutation, fixture renderer, storage seeding, or direct API setup may count as journey evidence."
      ],
      "verification_steps": [
        "Reproduce the Release 1.0.0.2 failure corpus as negative fixtures before implementing the stronger gate.",
        "Run 36 ordinary production journeys for at least 60 seconds and retain labeled per-journey screenshots, videos, sampled frames, and structured HUD/control/attempt timelines.",
        "Require independent visual review and exact-head CI before release admission."
      ],
      "dependencies": [
        "TASK-0157"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0058"
      ],
      "acceptance_evidence": "Verified release completion: merged revision dbba4a186a02cb4567c64f1c3400d38556aa1a25 activated the production-path long-flight control and visual UAT gate on the default branch. Publication run 5546 passed required validation, all three complete long-flight shards, evidence aggregation, image build, and image publication. RootAtSkic accepted TASK-0162 as complete and assigned the remaining duplicated/inconsistent CI execution problem to separate Release 2.0 CI-efficiency scope; integration run 5547 is not represented as successful evidence. Release completion was verified on deployed revision dbba4a186a02cb4567c64f1c3400d38556aa1a25; human post-release acceptance remains PENDING.",
      "status_decision": {
        "item_id": "TASK-0162",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-19T08:26:34Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0162-DONE-20260922",
        "sequence": 4,
        "item_id": "TASK-0162",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-22T23:10:36.554Z",
        "conditions": [
          "Release candidate revision dbba4a186a02cb4567c64f1c3400d38556aa1a25 was deployed through merged template PR #18 and GitOps PR #28.",
          "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and runtime image IDs matched sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9 and sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6.",
          "The root, health, and API health endpoints returned HTTP 200 after deployment.",
          "RootAtSkic directed Wave 35 completion; human post-release acceptance remains recorded separately as PENDING."
        ],
        "release_version": "1.0.0",
        "deployed_artifact": {
          "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
          "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
          }
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, zero restarts, digest matched",
          "api": "Ready, zero restarts, digest matched",
          "endpoints": [
            "/: HTTP 200",
            "/health: HTTP 200",
            "/api/health: HTTP 200"
          ]
        },
        "automated_acceptance": {
          "integration_run": 5547,
          "result": "success",
          "jobs": [
            10592,
            10593,
            10594,
            10595,
            10596
          ]
        },
        "human_post_release_acceptance": "PENDING",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629",
            "item_id": "TASK-0162",
            "state": "Done",
            "event_id": "FLOW-TASK-0162-DONE-20260922"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
            "item_id": "TASK-0162",
            "state": "Done",
            "event_id": "FLOW-TASK-0162-DONE-20260922"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
            "item_id": "TASK-0162",
            "state": "Done",
            "event_id": "FLOW-TASK-0162-DONE-20260922"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0162.yml",
            "item_id": "TASK-0162",
            "state": "Done",
            "event_id": "FLOW-TASK-0162-DONE-20260922"
          }
        ],
        "previous_hash": "6138aa8893aed5faf7af534997c16b58e3b9da6149851c365257eac00764d0ee",
        "hash": "3ec7c567101919903f6b2340004a57f0a386658ac4f886a999998bd9e27b53dc"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0162-READY-20260919",
          "sequence": 1,
          "item_id": "TASK-0162",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-19T08:26:34Z",
          "conditions": [
            "RootAtSkic admitted all six Wave 35 Tasks for immediate Delivery pickup in Discord message 1550784733464498299.",
            "Wave 35 sequencing is satisfied because dependency TASK-0157 is ToBeReleased after GATE_005_TASK_POST_MERGE.",
            "This exact READY_FOR_DELIVERY event is the Focus admission and Delivery pickup handoff; no second admission gate is required."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299",
              "item_id": "TASK-0162",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0162-READY-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0162.yml",
              "item_id": "TASK-0162",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0162-READY-20260919"
            }
          ],
          "previous_hash": null,
          "hash": "9d52ed728c0a0229b6d129d8ed1ebb6941d2e9e10d72d24f5ca9bff3c84ff6c3"
        },
        {
          "event_id": "FLOW-TASK-0162-IN-PROGRESS-20260919",
          "sequence": 2,
          "item_id": "TASK-0162",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-19T09:20:45Z",
          "conditions": [
            "Wave 35 is current and dependency TASK-0157 is ToBeReleased after GATE_005_TASK_POST_MERGE.",
            "RootAtSkic admitted this exact correction through FLOW-TASK-0162-READY-20260919 with no second admission gate.",
            "Tests must be written first and browser acceptance must use ordinary visible interactions with no forced click, hidden input, direct DOM/state mutation, storage seeding, fixture renderer, or direct API setup."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0162-long-flight-control-visual-uat-1",
          "claim_base_sha": "8a448c70fcf09e05fc7b75f078572a85b92b6cf6",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/220",
              "item_id": "TASK-0162",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0162-IN-PROGRESS-20260919"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/TASK-0162-long-flight-control-visual-uat-1",
              "item_id": "TASK-0162",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0162-IN-PROGRESS-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0162.yml",
              "item_id": "TASK-0162",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0162-IN-PROGRESS-20260919"
            }
          ],
          "previous_hash": "9d52ed728c0a0229b6d129d8ed1ebb6941d2e9e10d72d24f5ca9bff3c84ff6c3",
          "hash": "b538dde0cc28d514168fad132b619006f7d12117972bccb8cdad7ff9137b82c2"
        },
        {
          "event_id": "FLOW-TASK-0162-TO-BE-RELEASED-20260922",
          "sequence": 3,
          "item_id": "TASK-0162",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-22T23:10:36.554Z",
          "conditions": [
            "Application PR #233 merged the final TASK-0162 repair into integration revision dbba4a186a02cb4567c64f1c3400d38556aa1a25.",
            "Exact integration run 5547 attempt 2 completed successfully as one five-job set: validate, all three production long-flight UAT shards, and evidence aggregation.",
            "Publication run 5546 succeeded on the same integration revision and published the immutable release images.",
            "RootAtSkic accepted TASK-0162 as complete and assigned CI qualification efficiency to separate Release 2.0 Wave 36 work."
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/233",
          "reviewed_head": "3c339fae97988b17c234066b84773718f378403b",
          "integration_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5547",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5546",
          "separated_follow_up": {
            "feature_id": "AEROSIM-FT-54",
            "task_ids": [
              "TASK-0164",
              "TASK-0165"
            ],
            "planning_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim-documentation/pulls/363"
          },
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629",
              "item_id": "TASK-0162",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0162-TO-BE-RELEASED-20260922"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0162",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0162-TO-BE-RELEASED-20260922"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0162",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0162-TO-BE-RELEASED-20260922"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0162.yml",
              "item_id": "TASK-0162",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0162-TO-BE-RELEASED-20260922"
            }
          ],
          "previous_hash": "b538dde0cc28d514168fad132b619006f7d12117972bccb8cdad7ff9137b82c2",
          "hash": "6138aa8893aed5faf7af534997c16b58e3b9da6149851c365257eac00764d0ee"
        },
        {
          "event_id": "FLOW-TASK-0162-DONE-20260922",
          "sequence": 4,
          "item_id": "TASK-0162",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-22T23:10:36.554Z",
          "conditions": [
            "Release candidate revision dbba4a186a02cb4567c64f1c3400d38556aa1a25 was deployed through merged template PR #18 and GitOps PR #28.",
            "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and runtime image IDs matched sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9 and sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6.",
            "The root, health, and API health endpoints returned HTTP 200 after deployment.",
            "RootAtSkic directed Wave 35 completion; human post-release acceptance remains recorded separately as PENDING."
          ],
          "release_version": "1.0.0",
          "deployed_artifact": {
            "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
            "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
            "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
            "images": {
              "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
              "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
            }
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, zero restarts, digest matched",
            "api": "Ready, zero restarts, digest matched",
            "endpoints": [
              "/: HTTP 200",
              "/health: HTTP 200",
              "/api/health: HTTP 200"
            ]
          },
          "automated_acceptance": {
            "integration_run": 5547,
            "result": "success",
            "jobs": [
              10592,
              10593,
              10594,
              10595,
              10596
            ]
          },
          "human_post_release_acceptance": "PENDING",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629",
              "item_id": "TASK-0162",
              "state": "Done",
              "event_id": "FLOW-TASK-0162-DONE-20260922"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0162",
              "state": "Done",
              "event_id": "FLOW-TASK-0162-DONE-20260922"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0162",
              "state": "Done",
              "event_id": "FLOW-TASK-0162-DONE-20260922"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0162.yml",
              "item_id": "TASK-0162",
              "state": "Done",
              "event_id": "FLOW-TASK-0162-DONE-20260922"
            }
          ],
          "previous_hash": "6138aa8893aed5faf7af534997c16b58e3b9da6149851c365257eac00764d0ee",
          "hash": "3ec7c567101919903f6b2340004a57f0a386658ac4f886a999998bd9e27b53dc"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "verification",
        "design_refs": [
          "UIUX-100-FULL-JOURNEY"
        ],
        "acceptance": [
          "Verify the complete approved journey through ordinary visible interactions and reject unusable production flight even when technical health is green."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629"
    },
    {
      "id": "TASK-0163",
      "display_id": "AEROSIM-TS-163",
      "title": "Remove foreign and duplicated aircraft geometry from flight views",
      "feature_id": "AEROSIM-FT-14",
      "status": "Done",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-4/aerosim-ft-14/aerosim-ts-163/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0163.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Web Application — production aircraft and camera scene composition",
      "outcome": "Every production camera renders exactly one intended active-aircraft presentation with no detached wing, duplicated aircraft mesh, oversized backface, or other foreign aircraft-like geometry in the frame.",
      "scope": "Diagnose and correct the production scene and camera composition that renders a complete active aircraft together with oversized black wing-shaped polygons and separate cyan/white detached-looking geometry. Enforce one active presentation root, camera-safe visibility and clipping rules, and deterministic cleanup across launch, camera change, crash, recovery, and attempt replacement. Do not assume the source is terrain or a second aircraft until scene-graph and render evidence identifies it.",
      "implementation_artifacts": [
        "applications/web/src/flight/SceneRoot.tsx",
        "applications/web/src/flight/assets/AircraftModel.tsx",
        "applications/web/src/flight/cameras/camera-rig.ts",
        "applications/web/e2e/single-aircraft-presentation.browser.spec.ts"
      ],
      "inputs": [
        "Release 1.0.0.2 production UAT failed all 36 ordinary journeys and every screenshot was judged visually unacceptable by RootAtSkic.",
        "Three follow-up production flight videos, each about 52 seconds, show a complete F-14 together with recurring oversized black wing-shaped geometry and a separate cyan/white detached-looking object.",
        "The foreign geometry recurs across worlds and reappears after implicit attempt replacement; the earlier 36-journey screenshots show equivalent defects with fighter, trainer, and utility aircraft.",
        "RootAtSkic identified the visible extra wing/plane defect in Discord messages 1550580266580447333 and 1550583772309889217."
      ],
      "outputs": [
        "A diagnosed scene-graph record identifies the exact source, ownership, material/backface state, transform, and lifecycle of every aircraft-like rendered object.",
        "Production camera composition mounts and shows exactly one intended active-aircraft presentation root.",
        "Automated and visual evidence covers all nine aircraft, all four cameras, all three worlds, launch, crash, recovery, and attempt replacement."
      ],
      "failure_boundaries": [
        "Fail when a complete aircraft is visible together with any detached wing, second aircraft mesh, oversized aircraft surface, backface, stale model, or unexplained aircraft-like polygon.",
        "Fail when a camera clips through the active aircraft or exposes geometry that belongs outside the selected camera composition.",
        "Fail when a stale presentation root survives launch, camera change, crash, recovery, or attempt replacement.",
        "Fail when pixel diversity, scene load success, or a single clean frame substitutes for full-flight visual review."
      ],
      "exclusions": [
        "This Task does not change flight physics, world terrain, control bindings, or introduce new aircraft assets.",
        "Root cause must be demonstrated rather than inferred from the visible shape alone."
      ],
      "verification_steps": [
        "Write failing scene-lifecycle and ordinary-browser visual regression tests from the preserved 1.0.0.2 screenshots and video frames before changing production rendering.",
        "Assert exactly one active aircraft presentation root and zero stale aircraft roots through launch, camera changes, crash, recovery, and attempt replacement.",
        "Record at least 60 seconds in each camera for every governed aircraft class across all three worlds and independently inspect time-sampled frames for detached, duplicated, oversized, clipped, backface, or stale geometry.",
        "Preserve full video, sampled frames, scene-root telemetry, and per-journey screenshots as fail-closed evidence."
      ],
      "dependencies": [
        "TASK-0090"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0021"
      ],
      "acceptance_evidence": "Verified delivery: ordinary rendered flight reproduced and removed the detached world-space wind-indicator geometry; exact integration validation proves one governed aircraft presentation root, zero stale roots, zero world-space indicator meshes, preserved terrain identity, and clean screenshots for all nine aircraft, four production cameras, and three worlds. Release completion was verified on deployed revision dbba4a186a02cb4567c64f1c3400d38556aa1a25; human post-release acceptance remains PENDING.",
      "status_decision": {
        "item_id": "TASK-0163",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-19T08:26:34Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1550583772309889217"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0163-DONE-20260922",
        "sequence": 4,
        "item_id": "TASK-0163",
        "from_state": "ToBeReleased",
        "to_state": "Done",
        "evidence_gate": "Release Completion",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-22T23:10:36.554Z",
        "conditions": [
          "Release candidate revision dbba4a186a02cb4567c64f1c3400d38556aa1a25 was deployed through merged template PR #18 and GitOps PR #28.",
          "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and runtime image IDs matched sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9 and sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6.",
          "The root, health, and API health endpoints returned HTTP 200 after deployment.",
          "RootAtSkic directed Wave 35 completion; human post-release acceptance remains recorded separately as PENDING."
        ],
        "release_version": "1.0.0",
        "deployed_artifact": {
          "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
          "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
          "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
          }
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, zero restarts, digest matched",
          "api": "Ready, zero restarts, digest matched",
          "endpoints": [
            "/: HTTP 200",
            "/health: HTTP 200",
            "/api/health: HTTP 200"
          ]
        },
        "automated_acceptance": {
          "release_runtime_verification": "passed"
        },
        "human_post_release_acceptance": "PENDING",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629",
            "item_id": "TASK-0163",
            "state": "Done",
            "event_id": "FLOW-TASK-0163-DONE-20260922"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
            "item_id": "TASK-0163",
            "state": "Done",
            "event_id": "FLOW-TASK-0163-DONE-20260922"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
            "item_id": "TASK-0163",
            "state": "Done",
            "event_id": "FLOW-TASK-0163-DONE-20260922"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0163.yml",
            "item_id": "TASK-0163",
            "state": "Done",
            "event_id": "FLOW-TASK-0163-DONE-20260922"
          }
        ],
        "previous_hash": "533ed66f138432d4c4337a5f1f5f7b8c9fdace2d741a1016a693b88e1bcec76d",
        "hash": "b08003c558652a3506300c26dadf4842a3a3c2d49a94556f18da2951872fb10b"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0163-READY-20260919",
          "sequence": 1,
          "item_id": "TASK-0163",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-19T08:26:34Z",
          "conditions": [
            "RootAtSkic admitted all six Wave 35 Tasks for immediate Delivery pickup in Discord message 1550784733464498299.",
            "Wave 35 sequencing is satisfied because dependency TASK-0090 is ToBeReleased after GATE_005_TASK_POST_MERGE.",
            "This exact READY_FOR_DELIVERY event is the Focus admission and Delivery pickup handoff; no second admission gate is required."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299",
              "item_id": "TASK-0163",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0163-READY-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0163.yml",
              "item_id": "TASK-0163",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0163-READY-20260919"
            }
          ],
          "previous_hash": null,
          "hash": "23fa779e96a6d03a6659b18faa29b853b3d037f2dd344a310bb1307b56154f9f"
        },
        {
          "event_id": "FLOW-TASK-0163-IN-PROGRESS-20260919",
          "sequence": 2,
          "item_id": "TASK-0163",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-19T08:46:42Z",
          "conditions": [
            "Wave 35 is current and dependency TASK-0090 is Done.",
            "RootAtSkic admitted this exact correction through FLOW-TASK-0163-READY-20260919 with no second admission gate.",
            "Strict TDD must reproduce foreign or duplicated geometry through ordinary rendered flight before production repair."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/TASK-0163-remove-foreign-aircraft-geometry-1",
          "claim_base_sha": "8a448c70fcf09e05fc7b75f078572a85b92b6cf6",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1550784733464498299",
              "item_id": "TASK-0163",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0163-IN-PROGRESS-20260919"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/222",
              "item_id": "TASK-0163",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0163-IN-PROGRESS-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0163.yml",
              "item_id": "TASK-0163",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0163-IN-PROGRESS-20260919"
            }
          ],
          "previous_hash": "23fa779e96a6d03a6659b18faa29b853b3d037f2dd344a310bb1307b56154f9f",
          "hash": "dc94a329752fe7644e7fa6b2bfa5fe77f46e35c2c62bd9b1f1e88b754af21a7c"
        },
        {
          "event_id": "FLOW-TASK-0163-TO-BE-RELEASED-20260919",
          "sequence": 3,
          "item_id": "TASK-0163",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-19T12:13:16Z",
          "conditions": [],
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/222",
              "item_id": "TASK-0163",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0163-TO-BE-RELEASED-20260919"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5418",
              "item_id": "TASK-0163",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0163-TO-BE-RELEASED-20260919"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5417",
              "item_id": "TASK-0163",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0163-TO-BE-RELEASED-20260919"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0163.yml",
              "item_id": "TASK-0163",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0163-TO-BE-RELEASED-20260919"
            }
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/222",
          "reviewed_head": "912749348e1dc40d21d8e7f87f79a1308fa390b1",
          "integration_revision": "41a52942bece1e84d3688a1780380197a06f7396",
          "candidate_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5416",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5418",
          "publication_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/5417",
          "acceptance_evidence": [
            "Ordinary rendered F-14 flight reproduced 4,539 detached cyan/white pixels before repair; the scene graph identified environment-wind-indicator cylinder and cone meshes as the foreign world-space geometry while preserving the governed aircraft root and terrain/runway assets.",
            "Production repair moved wind presentation to the existing conditions panel, enforced front-face aircraft materials, and retained exactly one governed aircraft-presentation-root with zero stale roots.",
            "Merged integration validation run 5418 passed the complete 28-test ordinary-browser matrix: all nine aircraft, three worlds, and Chase, Cockpit, Orbit, and Fly-by cameras, with per-camera screenshots, exact terrain identity, one presentation root, zero stale roots, and zero world-space indicator meshes.",
            "Candidate CI run 5416 passed one complete nine-job inventory on the reviewed head; integration validation run 5418 and immutable image build, publication, and readback run 5417 passed for the exact integration revision."
          ],
          "previous_hash": "dc94a329752fe7644e7fa6b2bfa5fe77f46e35c2c62bd9b1f1e88b754af21a7c",
          "hash": "533ed66f138432d4c4337a5f1f5f7b8c9fdace2d741a1016a693b88e1bcec76d"
        },
        {
          "event_id": "FLOW-TASK-0163-DONE-20260922",
          "sequence": 4,
          "item_id": "TASK-0163",
          "from_state": "ToBeReleased",
          "to_state": "Done",
          "evidence_gate": "Release Completion",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-22T23:10:36.554Z",
          "conditions": [
            "Release candidate revision dbba4a186a02cb4567c64f1c3400d38556aa1a25 was deployed through merged template PR #18 and GitOps PR #28.",
            "Argo CD reported Synced/Healthy; web and API pods were Ready with zero restarts and runtime image IDs matched sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9 and sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6.",
            "The root, health, and API health endpoints returned HTTP 200 after deployment.",
            "RootAtSkic directed Wave 35 completion; human post-release acceptance remains recorded separately as PENDING."
          ],
          "release_version": "1.0.0",
          "deployed_artifact": {
            "application_revision": "dbba4a186a02cb4567c64f1c3400d38556aa1a25",
            "template_merge": "2762f45789c484964c62cfc239af534497e9ffec",
            "gitops_merge": "41bde351798382408e489fab8a80779a098d35b2",
            "images": {
              "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:d6204a4615e6963c5e7fe1fab6226d7980d0abe9b9db86bdb89d45331acf53e9",
              "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:36bd6e5ef71e34cba95e58c63a3c770f797d978c5d1f2048190c943b27f68ec6"
            }
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, zero restarts, digest matched",
            "api": "Ready, zero restarts, digest matched",
            "endpoints": [
              "/: HTTP 200",
              "/health: HTTP 200",
              "/api/health: HTTP 200"
            ]
          },
          "automated_acceptance": {
            "release_runtime_verification": "passed"
          },
          "human_post_release_acceptance": "PENDING",
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629",
              "item_id": "TASK-0163",
              "state": "Done",
              "event_id": "FLOW-TASK-0163-DONE-20260922"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537388451501056081/1552062099943985172",
              "item_id": "TASK-0163",
              "state": "Done",
              "event_id": "FLOW-TASK-0163-DONE-20260922"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim/pulls/28",
              "item_id": "TASK-0163",
              "state": "Done",
              "event_id": "FLOW-TASK-0163-DONE-20260922"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0163.yml",
              "item_id": "TASK-0163",
              "state": "Done",
              "event_id": "FLOW-TASK-0163-DONE-20260922"
            }
          ],
          "previous_hash": "533ed66f138432d4c4337a5f1f5f7b8c9fdace2d741a1016a693b88e1bcec76d",
          "hash": "b08003c558652a3506300c26dadf4842a3a3c2d49a94556f18da2951872fb10b"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-CHASE",
          "UIUX-100-CAMERAS"
        ],
        "acceptance": [
          "Preserve the approved camera semantics while ensuring each frame contains only the intended active-aircraft presentation.",
          "Reject visual evidence containing any detached, duplicated, oversized, clipped, stale, or foreign aircraft-like geometry."
        ]
      },
      "evidence_url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1552094798771396629"
    },
    {
      "id": "TASK-0171",
      "display_id": "AEROSIM-TS-171",
      "title": "Remove redundant camera confirmation step",
      "feature_id": "AEROSIM-FT-17",
      "status": "ToBeReleased",
      "status_source": "EXACT",
      "documentation_url": "/scope/epics/aerosim-ep-5/aerosim-ft-17/aerosim-ts-171/",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/tasks/TASK-0171.yml",
      "owner": "AeroSim Architecture and Delivery",
      "affected_repository": "corp-v1-aerosim/corp-v1-aerosim",
      "component": "Pre-flight initial-camera selection",
      "outcome": "A player selects an available initial camera in one action and can launch as soon as the remaining required pre-flight selections are valid.",
      "scope": "Remove the provisional-versus-confirmed camera state and CONFIRM CAMERA control from the pre-flight camera selector. Validate the current camera registry snapshot at card selection time, immediately replace the selected initial camera in the pre-flight configuration, and preserve stale-registry fail-closed behavior, keyboard card selection, availability rules, ARIA-selected state, and launch locking and idempotency.",
      "implementation_artifacts": [
        "applications/web/src/preflight/InitialCameraSelector.tsx",
        "applications/web/src/preflight/InitialCameraSelector.test.tsx",
        "applications/web/src/preflight/PreflightBriefingScreen.test.tsx"
      ],
      "inputs": [
        "RootAtSkic approved the exact one-click camera-selection correction in Discord message 1553483369436811286.",
        "Historical TASK-0136 remains immutable evidence for the superseded confirmation interaction and is not reused or rewritten."
      ],
      "outputs": [
        "Selecting Chase, Cockpit, Orbit, or Fly-by immediately selects that available camera and updates the launch configuration.",
        "LAUNCH FLIGHT becomes available without a second camera-confirmation action when every other required pre-flight selection is valid.",
        "No CONFIRM CAMERA control or select-then-confirm instruction remains."
      ],
      "failure_boundaries": [
        "Fail when a stale registry snapshot can select or launch an unavailable camera.",
        "Fail when keyboard card selection, ARIA-selected state, camera availability, launch locking, or idempotency regresses.",
        "Fail when a later selection does not immediately replace the previous initial camera."
      ],
      "exclusions": [
        "Delivery does not execute browser, E2E, screenshot, visual, or runtime UX acceptance for this correction.",
        "This Task does not rewrite historical TASK-0136 or change production desired state."
      ],
      "verification_steps": [
        "Run focused unit/component tests for one-click selection, immediate launch enablement, selection replacement, stale registry, keyboard operation, and absence of the confirmation control.",
        "Require complete local validation, exact-head review and CI, trusted post-merge publication, reviewed cumulative development GitOps, and immutable runtime identity and health readback.",
        "Hand the frozen development tuple to UAT and retain RootAtSkic as owner of actual UX verification."
      ],
      "dependencies": [
        "TASK-0136"
      ],
      "acceptance_outcome_indexes": [
        0,
        1
      ],
      "requirement_ids": [
        "FR-0024"
      ],
      "acceptance_evidence": "Verified delivery: application PR #287 merged after strict RED/GREEN unit/component TDD and exact-head review/CI; integration/publication run 6082 passed all five jobs for integration revision 2d0ac85c9e47f297d220199093e39ad589acc0ed; Harbor readback matched the immutable Nebula, Singularity, and Helm chart artifacts; template PR #45 and development GitOps PR #25 merged after review and validation; GitOps run 6120 passed; development Argo CD applications were Synced/Healthy, pods were Ready on the expected immutable image IDs, and bounded Web/API health checks returned HTTP 200. Delivery ran no non-unit or runtime UX acceptance; RootAtSkic owns actual UX verification.",
      "status_decision": {
        "item_id": "TASK-0171",
        "state": "ReadyForDelivery",
        "decision_date": "2026-09-26T19:08:17.599Z",
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553483369436811286"
          }
        ]
      },
      "latest_flow_event": {
        "event_id": "FLOW-TASK-0171-TO-BE-RELEASED-20260927",
        "sequence": 3,
        "item_id": "TASK-0171",
        "from_state": "InProgress",
        "to_state": "ToBeReleased",
        "evidence_gate": "Release Handoff",
        "decision_authority": "Delegated Project Lead",
        "actor": {
          "id": "hermes:default",
          "display_name": "Hermes Agent",
          "identity_source": {
            "kind": "delegated-project-agent",
            "provider": "hermes",
            "subject_id": "default"
          }
        },
        "authority_basis": {
          "delegator_id": "discord:1518725627845283888",
          "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
          "scope": "AeroSim full project leadership"
        },
        "decision_date": "2026-09-27T08:25:02Z",
        "conditions": [
          "Application PR",
          "Integration/publication run 6082 attempt 1 passed all five required jobs and Harbor readback matched the immutable images and chart.",
          "Template PR",
          "Development Argo CD applications were Synced/Healthy, pods were Ready on the selected immutable image IDs, and bounded Web/API health checks returned HTTP 200.",
          "The frozen development tuple was handed to UAT in Discord message 1553684254880170094; Delivery ran no browser/E2E/screenshot/runtime UX acceptance."
        ],
        "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/287",
        "reviewed_head": "289621e104eaa899c5cb3a718a0836dfe2c10aad",
        "integration_revision": "2d0ac85c9e47f297d220199093e39ad589acc0ed",
        "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/6082",
        "template_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-tmpl-aerosim/pulls/45",
        "template_revision": "28cd2b748720355d13ac6538cde24a2824bb0926",
        "development_gitops_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim-dev/pulls/25",
        "gitops_revision": "19d227665b4641946887d8e7e90796b8f6a8803d",
        "gitops_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim-dev/actions/runs/6120",
        "chart": "harbor-v1.apps.lego-cloud.eu/library/aerosim@sha256:1ac6b80555f2667780c05ce2d31432b9208930665b6a3d3943c0a8c47578c414",
        "images": {
          "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:dab50cdf46cc4c05b5b7ec5366e0b9d50ab2d7a0c21e2a15f0095524f9a584ce",
          "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:64ca04dfaa7261d6a726c22728205769cbbe6d712eff624287c8fb1e7d79a9f6"
        },
        "runtime_health": {
          "argo_cd": "Synced/Healthy",
          "web": "Ready, immutable image ID matched",
          "api": "Ready, immutable image ID matched",
          "endpoints": [
            "Web health: HTTP 200",
            "API live: HTTP 200",
            "API ready: HTTP 200"
          ]
        },
        "uat_handoff": "https://discord.com/channels/1518726359512387766/1552316329518956657/1553684254880170094",
        "evidence": [
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/287",
            "item_id": "TASK-0171",
            "state": "ToBeReleased",
            "event_id": "FLOW-TASK-0171-TO-BE-RELEASED-20260927"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-tmpl-aerosim/pulls/45",
            "item_id": "TASK-0171",
            "state": "ToBeReleased",
            "event_id": "FLOW-TASK-0171-TO-BE-RELEASED-20260927"
          },
          {
            "kind": "gitea",
            "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim-dev/pulls/25",
            "item_id": "TASK-0171",
            "state": "ToBeReleased",
            "event_id": "FLOW-TASK-0171-TO-BE-RELEASED-20260927"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1552316329518956657/1553684254880170094",
            "item_id": "TASK-0171",
            "state": "ToBeReleased",
            "event_id": "FLOW-TASK-0171-TO-BE-RELEASED-20260927"
          },
          {
            "kind": "canonical-record",
            "record_path": "data/tasks/TASK-0171.yml",
            "item_id": "TASK-0171",
            "state": "ToBeReleased",
            "event_id": "FLOW-TASK-0171-TO-BE-RELEASED-20260927"
          }
        ],
        "previous_hash": "938c72aca784ad1a0179388c7314058bb56cdf9e4d521c7b5700329cf1e18783",
        "hash": "4695b505ac0476fb747a2e8d002a033e5d08677f58c3493d9796814c074ef146"
      },
      "flow_history": [
        {
          "event_id": "FLOW-TASK-0171-READY-20260926",
          "sequence": 1,
          "item_id": "TASK-0171",
          "from_state": null,
          "to_state": "ReadyForDelivery",
          "evidence_gate": "Architecture Readiness",
          "decision_authority": "Human",
          "actor": {
            "id": "discord:1518725627845283888",
            "display_name": "RootAtSkic",
            "identity_source": {
              "kind": "verified-provider-identity",
              "provider": "discord",
              "subject_id": "1518725627845283888"
            }
          },
          "decision_date": "2026-09-26T19:08:17.599Z",
          "conditions": [
            "RootAtSkic approved this exact correction for immediate Delivery execution in Discord message 1553483369436811286.",
            "Preserve stale-registry, availability, ARIA and keyboard semantics, launch-locking, and idempotency behavior while removing only the redundant confirmation step.",
            "Production remains untouched and RootAtSkic owns actual UX verification."
          ],
          "evidence": [
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1537227683191197807/1553483369436811286",
              "item_id": "TASK-0171",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0171-READY-20260926"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0171.yml",
              "item_id": "TASK-0171",
              "state": "ReadyForDelivery",
              "event_id": "FLOW-TASK-0171-READY-20260926"
            }
          ],
          "previous_hash": null,
          "hash": "8bb151e3977cf2f9edffd7769e0f8457ad6286c7b5487dbc0c28ff97d40e030e"
        },
        {
          "event_id": "FLOW-TASK-0171-IN-PROGRESS-20260926",
          "sequence": 2,
          "item_id": "TASK-0171",
          "from_state": "ReadyForDelivery",
          "to_state": "InProgress",
          "evidence_gate": "Delivery Active",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-26T19:08:45Z",
          "conditions": [
            "The exact correction was admitted by RootAtSkic and required no second pickup gate.",
            "Dedicated application branch and PR",
            "Delivery was restricted to unit, static, build, and artifact checks; RootAtSkic retained UX verification ownership."
          ],
          "claim_repository": "corp-v1-aerosim/corp-v1-aerosim",
          "claim_branch": "1.0.0/AEROSIM-REMOVE-CAMERA-CONFIRM-camera-confirmation-1",
          "claim_base_sha": "3455b88e6d329b2440d9aca9e3e409524986da44",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/287",
              "item_id": "TASK-0171",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0171-IN-PROGRESS-20260926"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/src/branch/1.0.0/AEROSIM-REMOVE-CAMERA-CONFIRM-camera-confirmation-1",
              "item_id": "TASK-0171",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0171-IN-PROGRESS-20260926"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0171.yml",
              "item_id": "TASK-0171",
              "state": "InProgress",
              "event_id": "FLOW-TASK-0171-IN-PROGRESS-20260926"
            }
          ],
          "previous_hash": "8bb151e3977cf2f9edffd7769e0f8457ad6286c7b5487dbc0c28ff97d40e030e",
          "hash": "938c72aca784ad1a0179388c7314058bb56cdf9e4d521c7b5700329cf1e18783"
        },
        {
          "event_id": "FLOW-TASK-0171-TO-BE-RELEASED-20260927",
          "sequence": 3,
          "item_id": "TASK-0171",
          "from_state": "InProgress",
          "to_state": "ToBeReleased",
          "evidence_gate": "Release Handoff",
          "decision_authority": "Delegated Project Lead",
          "actor": {
            "id": "hermes:default",
            "display_name": "Hermes Agent",
            "identity_source": {
              "kind": "delegated-project-agent",
              "provider": "hermes",
              "subject_id": "default"
            }
          },
          "authority_basis": {
            "delegator_id": "discord:1518725627845283888",
            "delegation_url": "https://discord.com/channels/1518726359512387766/1537227679374508132/1538809400981196910",
            "scope": "AeroSim full project leadership"
          },
          "decision_date": "2026-09-27T08:25:02Z",
          "conditions": [
            "Application PR",
            "Integration/publication run 6082 attempt 1 passed all five required jobs and Harbor readback matched the immutable images and chart.",
            "Template PR",
            "Development Argo CD applications were Synced/Healthy, pods were Ready on the selected immutable image IDs, and bounded Web/API health checks returned HTTP 200.",
            "The frozen development tuple was handed to UAT in Discord message 1553684254880170094; Delivery ran no browser/E2E/screenshot/runtime UX acceptance."
          ],
          "application_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/287",
          "reviewed_head": "289621e104eaa899c5cb3a718a0836dfe2c10aad",
          "integration_revision": "2d0ac85c9e47f297d220199093e39ad589acc0ed",
          "integration_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/actions/runs/6082",
          "template_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-tmpl-aerosim/pulls/45",
          "template_revision": "28cd2b748720355d13ac6538cde24a2824bb0926",
          "development_gitops_pr": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim-dev/pulls/25",
          "gitops_revision": "19d227665b4641946887d8e7e90796b8f6a8803d",
          "gitops_ci": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim-dev/actions/runs/6120",
          "chart": "harbor-v1.apps.lego-cloud.eu/library/aerosim@sha256:1ac6b80555f2667780c05ce2d31432b9208930665b6a3d3943c0a8c47578c414",
          "images": {
            "nebula": "harbor-v1.apps.lego-cloud.eu/library/nebula@sha256:dab50cdf46cc4c05b5b7ec5366e0b9d50ab2d7a0c21e2a15f0095524f9a584ce",
            "singularity": "harbor-v1.apps.lego-cloud.eu/library/singularity@sha256:64ca04dfaa7261d6a726c22728205769cbbe6d712eff624287c8fb1e7d79a9f6"
          },
          "runtime_health": {
            "argo_cd": "Synced/Healthy",
            "web": "Ready, immutable image ID matched",
            "api": "Ready, immutable image ID matched",
            "endpoints": [
              "Web health: HTTP 200",
              "API live: HTTP 200",
              "API ready: HTTP 200"
            ]
          },
          "uat_handoff": "https://discord.com/channels/1518726359512387766/1552316329518956657/1553684254880170094",
          "evidence": [
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/287",
              "item_id": "TASK-0171",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0171-TO-BE-RELEASED-20260927"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-tmpl-aerosim/pulls/45",
              "item_id": "TASK-0171",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0171-TO-BE-RELEASED-20260927"
            },
            {
              "kind": "gitea",
              "url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/gondor-v1-aerosim-dev/pulls/25",
              "item_id": "TASK-0171",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0171-TO-BE-RELEASED-20260927"
            },
            {
              "kind": "discord",
              "url": "https://discord.com/channels/1518726359512387766/1552316329518956657/1553684254880170094",
              "item_id": "TASK-0171",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0171-TO-BE-RELEASED-20260927"
            },
            {
              "kind": "canonical-record",
              "record_path": "data/tasks/TASK-0171.yml",
              "item_id": "TASK-0171",
              "state": "ToBeReleased",
              "event_id": "FLOW-TASK-0171-TO-BE-RELEASED-20260927"
            }
          ],
          "previous_hash": "938c72aca784ad1a0179388c7314058bb56cdf9e4d521c7b5700329cf1e18783",
          "hash": "4695b505ac0476fb747a2e8d002a033e5d08677f58c3493d9796814c074ef146"
        }
      ],
      "design_traceability": {
        "package_id": "AEROSIM-UIUX-REL-1.0.0",
        "kind": "direct_ui",
        "design_refs": [
          "UIUX-100-PREFLIGHT"
        ],
        "acceptance": [
          "Verify ordinary card and keyboard selection immediately updates the selected initial camera without a confirmation control.",
          "Verify stale-registry and unavailable-camera states remain fail closed with correct ARIA and keyboard semantics."
        ]
      },
      "evidence_url": "https://gitea.lego-cloud.eu/corp-v1-aerosim/corp-v1-aerosim/pulls/287"
    }
  ],
  "adrs": [
    {
      "id": "ADR-0001",
      "title": "Force-driven browser flight model boundary",
      "status": "Accepted",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/architecture-decisions/ADR-0001.yml",
      "feature_ids": [
        "AEROSIM-FT-1",
        "AEROSIM-FT-2",
        "AEROSIM-FT-3",
        "AEROSIM-FT-4",
        "AEROSIM-FT-5"
      ],
      "requirement_ids": [],
      "context": "Release 1 requires force-driven motion, world interaction, continuous control, state feedback, and repeatable sessions. The reviewed implementation uses browser-local fixed-step simulation while the API command path fails closed.",
      "decision": "Use browser-local force integration as the Release 1 flight authority. The API and Socket.IO scaffold are not physics authorities.",
      "rationale": "The implemented 60 Hz fixed-step model, bounded catch-up, deterministic tests, invalid-state handling, and browser-owned world composition establish a coherent Release 1 boundary without claiming server-authoritative anti-tamper behavior.",
      "consequences": "Client performance variance, client tampering, replay provenance, and unsupported-device behavior remain bounded residual risks. Multiplayer or competitive integrity requires a superseding decision. The Socket.IO command path remains unavailable unless separately approved.",
      "considered_options": [
        "Browser-local force integration",
        "Service-assisted simulation",
        "Hybrid simulation boundary"
      ],
      "option_analysis": [
        [
          "Browser-local force integration",
          "Low-latency input and rendering; offline-capable deterministic loop; current implementation alignment.",
          "Client performance variance; stronger anti-tamper limits; authoritative state and replay/verification complexity."
        ],
        [
          "Service-assisted simulation",
          "Central authority, consistency and stronger server-side validation.",
          "Latency and network dependency; higher runtime cost; more complex real-time reconciliation."
        ],
        [
          "Hybrid simulation boundary",
          "Responsive local experience with selective server authority/validation.",
          "Highest interface and reconciliation complexity; drift and split-authority failure modes."
        ]
      ],
      "evaluation_criteria": "Evaluate latency, consistency, availability, security, failure recovery, operability, portability, cost, migration impact and evidence testability.",
      "simulated_panel_recommendation": "Advisory recommendation: accept browser-local fixed-step flight authority for Release 1, conditioned on explicit client authority, deterministic replay/test evidence, fail-closed invalid-state handling, and no claim of server-authoritative anti-tamper. Revisit hybrid/service authority only with a separately approved multiplayer or competitive requirement.",
      "affected_repositories": [
        "corp-v1-aerosim/corp-v1-aerosim",
        "corp-v1-aerosim/corp-v1-aerosim-documentation"
      ],
      "c4_elements": [
        "Web application",
        "API service"
      ],
      "acceptance": {
        "event_id": "ADR-0001-ACCEPTED-20260925",
        "item_id": "ADR-0001",
        "state": "Accepted",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1543940246071410706",
          "display_name": "Giedrius K",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1543940246071410706"
          }
        },
        "authority_basis": "AeroSim Architecture owner",
        "decision_date": "2026-09-25T08:10:51.412Z",
        "conditions": [
          "Release 1 flight authority remains browser-local deterministic fixed-step simulation; the API and public Socket.IO scaffold are not physics authorities.",
          "Preserve the 60 Hz fixed step, five-step bounded catch-up, invalid-state fail-closed behavior, deterministic tests, and an explicit supported browser/device envelope.",
          "Release 1 makes no server-authoritative anti-tamper or competitive-integrity claim.",
          "Keep the socket command path unavailable unless separately approved."
        ],
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1552955532271296534",
            "item_id": "ADR-0001",
            "state": "Accepted",
            "event_id": "ADR-0001-ACCEPTED-20260925"
          }
        ],
        "hash": "f62b17e609a92392a8123f71de87e317565ff81f1891e611e9b194b41e755895"
      },
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1552955532271296534"
        }
      ]
    },
    {
      "id": "ADR-0002",
      "title": "Flight configuration boundary",
      "status": "Accepted",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/architecture-decisions/ADR-0002.yml",
      "feature_ids": [
        "AEROSIM-FT-6",
        "AEROSIM-FT-7"
      ],
      "requirement_ids": [],
      "context": "Release 1 preparation requires independent governed scene and aircraft choices that configure one immutable flight launch snapshot. The reviewed implementation bundles validated catalogues in the Web build and has no active API catalogue service.",
      "decision": "Use static browser-bundled catalogues for Release 1 with build-time validation and source-revision-bound immutable launch snapshots.",
      "rationale": "This matches the implemented authority boundary, rejects stale or incompatible selections, and avoids claiming a runtime catalogue service that does not exist.",
      "consequences": "Catalogue availability and updates are coupled to the Web build and release. Dynamic catalogue adoption requires a superseding decision covering stale-cache, compatibility, availability, and operational ownership.",
      "considered_options": [
        "Static browser catalogue",
        "API-backed catalogue",
        "Build-time generated catalogue"
      ],
      "option_analysis": [
        [
          "Static browser catalogue",
          "Simple, fast and deterministic; no runtime catalogue dependency.",
          "Content changes require build/release; browser bundle owns catalogue truth."
        ],
        [
          "API-backed catalogue",
          "Runtime governance, centralized compatibility and content updates.",
          "Availability/latency dependency; cache and stale-data semantics required."
        ],
        [
          "Build-time generated catalogue",
          "Single generated contract with build-time validation and deploy-time determinism.",
          "Generation pipeline becomes critical; still requires release for change."
        ]
      ],
      "evaluation_criteria": "Evaluate latency, consistency, availability, security, failure recovery, operability, portability, cost, migration impact and evidence testability.",
      "simulated_panel_recommendation": "Advisory recommendation: accept a build-time generated and validated catalogue for Release 1 with revision-bound launch configuration and mandatory reconfirmation after catalogue change. Defer an API-backed dynamic catalogue until availability, cache, stale-data and operational ownership are approved.",
      "affected_repositories": [
        "corp-v1-aerosim/corp-v1-aerosim",
        "corp-v1-aerosim/corp-v1-aerosim-documentation"
      ],
      "c4_elements": [
        "Web application",
        "API service"
      ],
      "acceptance": {
        "event_id": "ADR-0002-ACCEPTED-20260925",
        "item_id": "ADR-0002",
        "state": "Accepted",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1543940246071410706",
          "display_name": "Giedrius K",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1543940246071410706"
          }
        },
        "authority_basis": "AeroSim Architecture owner",
        "decision_date": "2026-09-25T08:10:51.412Z",
        "conditions": [
          "Release 1 uses static browser-bundled governed catalogues with build-time validation and immutable source-revision-bound launch snapshots.",
          "Unknown, disabled, stale, or changed selections require rejection or reconfirmation.",
          "Catalogue changes require a new application build and release and invalidate prior confirmation evidence.",
          "API-backed or dynamic catalogues remain deferred."
        ],
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1552955532271296534",
            "item_id": "ADR-0002",
            "state": "Accepted",
            "event_id": "ADR-0002-ACCEPTED-20260925"
          }
        ],
        "hash": "c1a37b175b1eba3c1250a7e747385662519235882b3ecd38a3683844104440b0"
      },
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1552955532271296534"
        }
      ]
    },
    {
      "id": "ADR-0004",
      "title": "Terminate public AeroSim TLS on Osgiliath",
      "status": "Accepted",
      "owner": "AeroSim Architecture",
      "source_path": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/architecture-decisions/ADR-0004.yml",
      "feature_ids": [
        "AEROSIM-FT-52"
      ],
      "requirement_ids": [
        "FR-0059",
        "NFR-0007"
      ],
      "context": "Before the TASK-0050 application change, the AeroSim chart always rendered Ingress TLS and required an aerosim-tls Secret, while the verified Gondor path terminates public TLS on Osgiliath and the aerosim namespace has no such Secret.",
      "decision": "Keep public HTTPS and WSS termination and certificate lifecycle on Osgiliath. Forward HTTP from Osgiliath to Kubernetes Ingress. Keep in-cluster Ingress TLS optional in the AeroSim chart and disable it for Gondor. Require a named pre-existing TLS Secret only when chart TLS is explicitly enabled.",
      "rationale": "This matches the verified runtime boundary, removes a nonexistent Secret dependency from TASK-0050, preserves public transport security, and keeps the chart portable to environments that terminate TLS in-cluster.",
      "consequences": "Gondor values render no Ingress spec.tls block. Osgiliath remains responsible for ACME and certificate renewal. The internal Osgiliath-to-Ingress hop is HTTP. Environments enabling chart TLS must supply and govern a Kubernetes TLS Secret.",
      "considered_options": [
        "Keep public TLS on Osgiliath, make chart Ingress TLS optional, and disable it for Gondor.",
        "Remove in-cluster TLS support from the chart entirely.",
        "Re-encrypt Osgiliath-to-Ingress traffic with a Kubernetes TLS Secret."
      ],
      "option_analysis": [
        [
          "Osgiliath TLS + optional chart TLS",
          "Matches verified topology; removes nonexistent secret dependency; preserves chart portability.",
          "Internal hop is HTTP; Osgiliath certificate/ACME availability is critical."
        ],
        [
          "Remove chart TLS support",
          "Simplest Gondor chart and no duplicate TLS ownership.",
          "Reduces portability and prevents in-cluster TLS environments."
        ],
        [
          "Re-encrypt to Ingress",
          "Encrypts internal hop and supports stronger defense in depth.",
          "Requires Kubernetes TLS secret lifecycle, rotation and additional failure modes."
        ]
      ],
      "evaluation_criteria": "Evaluate latency, consistency, availability, security, failure recovery, operability, portability, cost, migration impact and evidence testability.",
      "simulated_panel_recommendation": "Recorded accepted option remains appropriate for the verified Gondor topology. Board action is limited to confirming the residual internal-HTTP risk and Osgiliath certificate/ACME operational ownership.",
      "affected_repositories": [
        "corp-v1-aerosim/corp-v1-aerosim",
        "corp-v1-aerosim/gondor-v1-aerosim",
        "corp-v1-aerosim/corp-v1-aerosim-documentation"
      ],
      "c4_elements": [
        "Gondor platform",
        "Osgiliath TLS boundary",
        "Kubernetes Ingress",
        "Web Application",
        "API Service"
      ],
      "acceptance": {
        "event_id": "ADR-0004-ACCEPTED-20260908",
        "item_id": "ADR-0004",
        "state": "Accepted",
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "authority_basis": "AeroSim backup owner acting for Architecture",
        "decision_date": "2026-09-08T12:04:53.909Z",
        "conditions": [
          "Public TLS remains terminated on Osgiliath; chart TLS stays optional and disabled for Gondor."
        ],
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1546853491094585394",
            "item_id": "ADR-0004",
            "state": "Accepted",
            "event_id": "ADR-0004-ACCEPTED-20260908"
          },
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1546853837057298532",
            "item_id": "ADR-0004",
            "state": "Accepted",
            "event_id": "ADR-0004-ACCEPTED-20260908"
          }
        ],
        "hash": "2c388fe645b6deaa8672bcffa724bce68cbd6dac86cffedacfafc734f9a2ebc8"
      },
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1546853491094585394"
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537227680590733383/1546853837057298532"
        }
      ]
    }
  ],
  "cross_release_task_references": [
    {
      "id": "TASK-0010",
      "title": "Advance and retry lessons from recorded attempt outcomes",
      "feature_id": "AEROSIM-FT-8",
      "status": "InBacklog",
      "documentation_url": "/scope/epics/aerosim-ep-7/aerosim-ft-8/aerosim-ts-10/",
      "exclusion_reason": "Referenced by a Release 1 requirement but owned by deferred or later-release Feature scope; not counted among the 162 Release 1 Tasks."
    },
    {
      "id": "TASK-0164",
      "title": "Qualify each release candidate once and reuse exact evidence",
      "feature_id": "AEROSIM-FT-54",
      "status": "InBacklog",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-54/aerosim-ts-164/",
      "exclusion_reason": "Referenced by a Release 1 requirement but owned by deferred or later-release Feature scope; not counted among the 162 Release 1 Tasks."
    },
    {
      "id": "TASK-0165",
      "title": "Keep required pull-request CI below ten minutes",
      "feature_id": "AEROSIM-FT-54",
      "status": "InBacklog",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-54/aerosim-ts-165/",
      "exclusion_reason": "Referenced by a Release 1 requirement but owned by deferred or later-release Feature scope; not counted among the 162 Release 1 Tasks."
    },
    {
      "id": "TASK-0166",
      "title": "Build lightweight AeroSim-owned aircraft GLBs",
      "feature_id": "AEROSIM-FT-55",
      "status": "InBacklog",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-55/aerosim-ts-166/",
      "exclusion_reason": "Referenced by a Release 1 requirement but owned by deferred or later-release Feature scope; not counted among the 162 Release 1 Tasks."
    },
    {
      "id": "TASK-0167",
      "title": "Build lightweight AeroSim-owned terrain and space GLBs",
      "feature_id": "AEROSIM-FT-55",
      "status": "InBacklog",
      "documentation_url": "/scope/epics/aerosim-ep-1/aerosim-ft-55/aerosim-ts-167/",
      "exclusion_reason": "Referenced by a Release 1 requirement but owned by deferred or later-release Feature scope; not counted among the 162 Release 1 Tasks."
    }
  ],
  "design_package": {
    "id": "AEROSIM-UIUX-REL-1.0.0",
    "type": "design-package",
    "title": "Release 1.0.0 approved UI/UX implementation baseline",
    "release": "1.0.0",
    "status": "Approved",
    "owner": "AeroSim UI/UX",
    "penpot": {
      "file_id": "fb1055b2-4705-80bf-8008-8b539372c9fb",
      "page_id": "1c28ff56-144d-45d1-ae7b-785638b2432c",
      "page_name": "001 / Release 1.0.0 — E2E Journey",
      "revision": 6608,
      "active_presentation_frames": 18,
      "workspace_url": "https://penpot.lego-cloud.eu/#/workspace?team-id=fb1055b2-4705-80bf-8008-8d6ef8b25285&file-id=fb1055b2-4705-80bf-8008-8b539372c9fb&page-id=1c28ff56-144d-45d1-ae7b-785638b2432c"
    },
    "approval": {
      "decision_authority": "Human",
      "actor": {
        "id": "discord:1518725627845283888",
        "display_name": "RootAtSkic",
        "identity_source": {
          "kind": "verified-provider-identity",
          "provider": "discord",
          "subject_id": "1518725627845283888"
        }
      },
      "decision_date": "2026-09-12T15:53:54.228Z",
      "baseline_revision": 6608,
      "evidence": [
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547740767974334526",
          "description": "RootAtSkic approved the cross-channel exception and required Release 1.0.0 implementation to follow the UI/UX design."
        },
        {
          "kind": "discord",
          "url": "https://discord.com/channels/1518726359512387766/1541722108072169562/1548361019594903563",
          "description": "RootAtSkic exercised backup ownership to override the baseline selection: 'we must release 001 release 1.0.0 e2e ... go and fix this.'"
        }
      ]
    },
    "in_scope_frames": [
      {
        "id": "04d13931-d053-4910-891a-c999337a29e3",
        "name": "00 / Overview — Release 1.0.0 complete journey"
      },
      {
        "id": "93e25c3c-5aac-4d65-a139-87334c77cc10",
        "name": "01 / Entry — Sign in and orientation"
      },
      {
        "id": "f7e292b9-ae0e-4f92-8ad8-6bdab892fa1a",
        "name": "02 / Pilot Profile — Preferences and progress"
      },
      {
        "id": "3ccd155a-29bc-480a-98ed-bff35dda94f4",
        "name": "03 / Home — Choose free flight"
      },
      {
        "id": "18eb473b-6d77-49f7-be1e-c10ee734d641",
        "name": "04 / Home — Resume recent activity"
      },
      {
        "id": "b4fc4faa-7097-43d9-89ff-5cbf0f8967b4",
        "name": "05 / Hangar — Choose aircraft"
      },
      {
        "id": "792c8c28-b08d-4ad8-8003-f83837a9a0a7",
        "name": "06 / Hangar — Compare aircraft handling"
      },
      {
        "id": "39383662-95e6-4a59-a4fb-9ec03e966693",
        "name": "07 / Flight Setup — Choose world and conditions"
      },
      {
        "id": "0373493e-5289-49a8-9aa0-b780699c5177",
        "name": "08 / Pre-flight — Confirm controls and launch"
      },
      {
        "id": "26d55dec-15e6-4e54-9c03-5739ff457915",
        "name": "09 / Pre-flight — Resolve invalid controls"
      },
      {
        "id": "3093670e-1b4f-4373-8027-8ddd8e130cf4",
        "name": "10 / Active Flight — Aircraft-visible chase"
      },
      {
        "id": "a4df1ab0-a887-4f0f-a077-92341a8d3257",
        "name": "11 / Active Flight — Warning and control recovery"
      },
      {
        "id": "dac641d7-1dc6-4ed1-a804-77fb04f97e86",
        "name": "12 / Cockpit — Precision and instrument cross-check"
      },
      {
        "id": "8e69fbbd-59ce-4de2-9965-7595ea861a5b",
        "name": "13 / Orbit — Inspect aircraft attitude"
      },
      {
        "id": "7eeea8a4-a17b-45ff-a319-00e6db798716",
        "name": "14 / Fly-by — Observe speed and flight path"
      },
      {
        "id": "b05571a4-476b-4e19-a867-b92a9621e0dc",
        "name": "15 / Pause — Camera, controls and end flight"
      },
      {
        "id": "6d4c01c0-5651-4e0b-ae50-7509f5afddfe",
        "name": "16 / Flight Outcome — Recover from invalid state"
      },
      {
        "id": "e262c489-cffc-422d-95a9-71af30f1549c",
        "name": "17 / Debrief — Understand outcome and next action"
      }
    ],
    "excluded_frames": [],
    "task_ids": [
      "TASK-0003",
      "TASK-0078",
      "TASK-0079",
      "TASK-0081",
      "TASK-0082",
      "TASK-0087",
      "TASK-0088",
      "TASK-0092",
      "TASK-0093",
      "TASK-0094",
      "TASK-0095",
      "TASK-0096",
      "TASK-0097",
      "TASK-0102",
      "TASK-0103",
      "TASK-0104",
      "TASK-0105",
      "TASK-0106",
      "TASK-0107",
      "TASK-0108",
      "TASK-0109",
      "TASK-0110",
      "TASK-0117",
      "TASK-0118",
      "TASK-0119",
      "TASK-0120",
      "TASK-0121",
      "TASK-0122",
      "TASK-0123",
      "TASK-0124",
      "TASK-0125",
      "TASK-0126",
      "TASK-0127",
      "TASK-0128",
      "TASK-0133",
      "TASK-0134",
      "TASK-0135",
      "TASK-0136",
      "TASK-0137",
      "TASK-0138",
      "TASK-0139",
      "TASK-0140",
      "TASK-0141",
      "TASK-0142",
      "TASK-0143",
      "TASK-0144",
      "TASK-0145",
      "TASK-0146",
      "TASK-0147",
      "TASK-0148",
      "TASK-0149",
      "TASK-0150",
      "TASK-0151",
      "TASK-0152",
      "TASK-0153",
      "TASK-0154",
      "TASK-0155",
      "TASK-0156",
      "TASK-0157",
      "TASK-0158",
      "TASK-0159",
      "TASK-0160",
      "TASK-0161",
      "TASK-0162",
      "TASK-0163",
      "TASK-0171"
    ],
    "coverage_items": [
      {
        "id": "UIUX-100-BASELINE",
        "frame_ids": [
          "04d13931-d053-4910-891a-c999337a29e3",
          "93e25c3c-5aac-4d65-a139-87334c77cc10",
          "f7e292b9-ae0e-4f92-8ad8-6bdab892fa1a",
          "3ccd155a-29bc-480a-98ed-bff35dda94f4",
          "18eb473b-6d77-49f7-be1e-c10ee734d641",
          "b4fc4faa-7097-43d9-89ff-5cbf0f8967b4",
          "792c8c28-b08d-4ad8-8003-f83837a9a0a7",
          "39383662-95e6-4a59-a4fb-9ec03e966693",
          "0373493e-5289-49a8-9aa0-b780699c5177",
          "26d55dec-15e6-4e54-9c03-5739ff457915",
          "3093670e-1b4f-4373-8027-8ddd8e130cf4",
          "a4df1ab0-a887-4f0f-a077-92341a8d3257",
          "dac641d7-1dc6-4ed1-a804-77fb04f97e86",
          "8e69fbbd-59ce-4de2-9965-7595ea861a5b",
          "7eeea8a4-a17b-45ff-a319-00e6db798716",
          "b05571a4-476b-4e19-a867-b92a9621e0dc",
          "6d4c01c0-5651-4e0b-ae50-7509f5afddfe",
          "e262c489-cffc-422d-95a9-71af30f1549c"
        ],
        "task_ids": [
          "TASK-0117"
        ],
        "state_frame_ids": []
      },
      {
        "id": "UIUX-100-ENTRY",
        "frame_ids": [
          "93e25c3c-5aac-4d65-a139-87334c77cc10"
        ],
        "task_ids": [
          "TASK-0118",
          "TASK-0128"
        ],
        "state_frame_ids": []
      },
      {
        "id": "UIUX-100-PROFILE",
        "frame_ids": [
          "f7e292b9-ae0e-4f92-8ad8-6bdab892fa1a"
        ],
        "task_ids": [
          "TASK-0119"
        ],
        "state_frame_ids": []
      },
      {
        "id": "UIUX-100-SETTINGS",
        "frame_ids": [
          "f7e292b9-ae0e-4f92-8ad8-6bdab892fa1a"
        ],
        "task_ids": [
          "TASK-0120"
        ],
        "state_frame_ids": []
      },
      {
        "id": "UIUX-100-HOME",
        "frame_ids": [
          "3ccd155a-29bc-480a-98ed-bff35dda94f4",
          "18eb473b-6d77-49f7-be1e-c10ee734d641"
        ],
        "task_ids": [
          "TASK-0121",
          "TASK-0144"
        ],
        "state_frame_ids": []
      },
      {
        "id": "UIUX-100-HANGAR",
        "frame_ids": [
          "b4fc4faa-7097-43d9-89ff-5cbf0f8967b4",
          "792c8c28-b08d-4ad8-8003-f83837a9a0a7"
        ],
        "task_ids": [
          "TASK-0122",
          "TASK-0146"
        ],
        "state_frame_ids": []
      },
      {
        "id": "UIUX-100-FLIGHT-SETUP",
        "frame_ids": [
          "39383662-95e6-4a59-a4fb-9ec03e966693"
        ],
        "task_ids": [
          "TASK-0078",
          "TASK-0123",
          "TASK-0124",
          "TASK-0133",
          "TASK-0134",
          "TASK-0135",
          "TASK-0146"
        ],
        "state_frame_ids": []
      },
      {
        "id": "UIUX-100-PREFLIGHT",
        "frame_ids": [
          "0373493e-5289-49a8-9aa0-b780699c5177",
          "26d55dec-15e6-4e54-9c03-5739ff457915"
        ],
        "task_ids": [
          "TASK-0087",
          "TASK-0102",
          "TASK-0103",
          "TASK-0104",
          "TASK-0105",
          "TASK-0106",
          "TASK-0107",
          "TASK-0108",
          "TASK-0109",
          "TASK-0136",
          "TASK-0147",
          "TASK-0149",
          "TASK-0153",
          "TASK-0171"
        ],
        "state_frame_ids": []
      },
      {
        "id": "UIUX-100-CHASE",
        "frame_ids": [
          "3093670e-1b4f-4373-8027-8ddd8e130cf4"
        ],
        "task_ids": [
          "TASK-0003",
          "TASK-0078",
          "TASK-0087",
          "TASK-0096",
          "TASK-0125",
          "TASK-0126",
          "TASK-0139",
          "TASK-0140",
          "TASK-0146",
          "TASK-0150",
          "TASK-0151",
          "TASK-0152",
          "TASK-0153",
          "TASK-0154",
          "TASK-0155",
          "TASK-0156",
          "TASK-0158",
          "TASK-0160",
          "TASK-0163"
        ],
        "state_frame_ids": []
      },
      {
        "id": "UIUX-100-WARNING",
        "frame_ids": [
          "a4df1ab0-a887-4f0f-a077-92341a8d3257"
        ],
        "task_ids": [
          "TASK-0081",
          "TASK-0125",
          "TASK-0141",
          "TASK-0148",
          "TASK-0152",
          "TASK-0154",
          "TASK-0159"
        ],
        "state_frame_ids": []
      },
      {
        "id": "UIUX-100-CAMERAS",
        "frame_ids": [
          "dac641d7-1dc6-4ed1-a804-77fb04f97e86",
          "8e69fbbd-59ce-4de2-9965-7595ea861a5b",
          "7eeea8a4-a17b-45ff-a319-00e6db798716"
        ],
        "task_ids": [
          "TASK-0093",
          "TASK-0094",
          "TASK-0095",
          "TASK-0150",
          "TASK-0151",
          "TASK-0161",
          "TASK-0163"
        ],
        "state_frame_ids": []
      },
      {
        "id": "UIUX-100-PAUSE",
        "frame_ids": [
          "b05571a4-476b-4e19-a867-b92a9621e0dc"
        ],
        "task_ids": [
          "TASK-0092",
          "TASK-0097",
          "TASK-0156"
        ],
        "state_frame_ids": []
      },
      {
        "id": "UIUX-100-OUTCOME-DEBRIEF",
        "frame_ids": [
          "6d4c01c0-5651-4e0b-ae50-7509f5afddfe",
          "e262c489-cffc-422d-95a9-71af30f1549c"
        ],
        "task_ids": [
          "TASK-0081",
          "TASK-0097",
          "TASK-0142",
          "TASK-0154",
          "TASK-0156"
        ],
        "state_frame_ids": []
      },
      {
        "id": "UIUX-100-FULL-JOURNEY",
        "frame_ids": [
          "04d13931-d053-4910-891a-c999337a29e3",
          "93e25c3c-5aac-4d65-a139-87334c77cc10",
          "f7e292b9-ae0e-4f92-8ad8-6bdab892fa1a",
          "3ccd155a-29bc-480a-98ed-bff35dda94f4",
          "18eb473b-6d77-49f7-be1e-c10ee734d641",
          "b4fc4faa-7097-43d9-89ff-5cbf0f8967b4",
          "792c8c28-b08d-4ad8-8003-f83837a9a0a7",
          "39383662-95e6-4a59-a4fb-9ec03e966693",
          "0373493e-5289-49a8-9aa0-b780699c5177",
          "26d55dec-15e6-4e54-9c03-5739ff457915",
          "3093670e-1b4f-4373-8027-8ddd8e130cf4",
          "a4df1ab0-a887-4f0f-a077-92341a8d3257",
          "dac641d7-1dc6-4ed1-a804-77fb04f97e86",
          "8e69fbbd-59ce-4de2-9965-7595ea861a5b",
          "7eeea8a4-a17b-45ff-a319-00e6db798716",
          "b05571a4-476b-4e19-a867-b92a9621e0dc",
          "6d4c01c0-5651-4e0b-ae50-7509f5afddfe",
          "e262c489-cffc-422d-95a9-71af30f1549c"
        ],
        "task_ids": [
          "TASK-0079",
          "TASK-0082",
          "TASK-0088",
          "TASK-0110",
          "TASK-0127",
          "TASK-0137",
          "TASK-0138",
          "TASK-0143",
          "TASK-0145",
          "TASK-0157",
          "TASK-0162"
        ],
        "state_frame_ids": []
      }
    ],
    "state_frames": [],
    "approval_history": [
      {
        "decision_authority": "Human",
        "actor": {
          "id": "discord:1518725627845283888",
          "display_name": "RootAtSkic",
          "identity_source": {
            "kind": "verified-provider-identity",
            "provider": "discord",
            "subject_id": "1518725627845283888"
          }
        },
        "decision_date": "2026-09-10T22:52:33Z",
        "baseline_revision": 6569,
        "evidence": [
          {
            "kind": "discord",
            "url": "https://discord.com/channels/1518726359512387766/1537548579856580739/1547740767974334526",
            "description": "RootAtSkic approved the cross-channel exception and required Release 1.0.0 implementation to follow the UI/UX design."
          }
        ],
        "penpot_page_id": "a271b8ee-e720-474e-9af4-e9e50efd3375",
        "penpot_page_name": "002 / Release 2.0.0 — E2E Journey",
        "disposition": "Superseded for this governed Release 1.0.0 package by RootAtSkic decision discord-message:1548361019594903563; retained as prior approval provenance."
      }
    ],
    "source_correction": {
      "authority_basis": "aerosim-domain-ownership-v2 backup owner override",
      "decision_evidence": "discord-message:1548361019594903563",
      "corrected_from": {
        "page_id": "a271b8ee-e720-474e-9af4-e9e50efd3375",
        "page_name": "002 / Release 2.0.0 — E2E Journey",
        "revision": 6569
      },
      "corrected_to": {
        "page_id": "1c28ff56-144d-45d1-ae7b-785638b2432c",
        "page_name": "001 / Release 1.0.0 — E2E Journey",
        "revision": 6608
      },
      "penpot_mutated": false
    },
    "_collection": "design-packages",
    "_filename": "AEROSIM-UIUX-REL-1.0.0.yml",
    "_source": "/opt/data/corp-v1-aerosim-delivery/workspace/AEROSIM-REMOVE-CAMERA-CONFIRM/documentation/data/design-packages/AEROSIM-UIUX-REL-1.0.0.yml"
  },
  "evidence_links": [
    "https://discord.com/channels/1518726359512387766/1537544173366943886/1549063533948309575",
    "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639543566471258",
    "https://discord.com/channels/1518726359512387766/1537544173366943886/1542639545730994267",
    "https://discord.com/channels/1518726359512387766/1537544173366943886/1542775939329429545",
    "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638320868392980",
    "https://discord.com/channels/1518726359512387766/1537544173366943886/1542638322122362881",
    "https://discord.com/channels/1518726359512387766/1537544173366943886/1542622539572838430",
    "https://discord.com/channels/1518726359512387766/1537544173366943886/1541463660218548356",
    "https://discord.com/channels/1518726359512387766/1537544173366943886/1541460768145408051",
    "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461526580433058",
    "https://discord.com/channels/1518726359512387766/1537544173366943886/1541461858681233438",
    "https://discord.com/channels/1518726359512387766/1537227683191197807/1548966521307406337",
    "https://discord.com/channels/1518726359512387766/1537227680590733383/1552955532271296534",
    "https://discord.com/channels/1518726359512387766/1537227680590733383/1546853491094585394",
    "https://discord.com/channels/1518726359512387766/1537227680590733383/1546853837057298532",
    "https://discord.com/channels/1518726359512387766/1537548579856580739/1547740767974334526",
    "https://discord.com/channels/1518726359512387766/1541722108072169562/1548361019594903563"
  ],
  "panel_review": {
    "round_1": {
      "verdict": "FAIL",
      "roles": 6,
      "outcome": "All six roles identified report-completeness gaps; remediation was required."
    },
    "round_2": {
      "verdict": "PASS",
      "roles": 6,
      "outcome": "Security, Data & Integration, Reliability & Operations, Product / Scope and Audit & Release passed; the Chair passed after targeted cross-release traceability correction."
    },
    "final_scope": "Packet completeness for real Board review only; no architecture, risk, release, promotion or product approval is implied."
  }
}
