EVIDENCE_DIR=/home/yeff/public_html/devon/_evidence/ui_1to1_audit_20260409_201950 [FILES] total 912 drwxr-xr-x 2 root root 20480 Apr 8 23:46 . drwxr-xr-x 11 root root 4096 Apr 9 08:12 .. -rwxr-xr-x 1 root root 1757 Mar 28 14:58 acs.md -rwxr-xr-x 1 root root 1569 Mar 31 09:40 app_security_canonical.json -rwxr-xr-x 1 root root 1594 Mar 31 09:40 approval_canonization_policy.json -rwxr-xr-x 1 root root 1419 Apr 1 03:46 brps.md -rw-r--r-- 1 root root 25489 Mar 23 10:06 canonical_matrix_v1.json -rw-r--r-- 1 root root 3887 Mar 23 10:06 card_contract_minimums.json -rwxr-xr-x 1 root root 2383 Mar 29 15:50 cas.md -rwxr-xr-x 1 root root 498 Mar 29 15:54 ccc.md -rwxr-xr-x 1 root root 1287 Mar 28 14:58 cdms.md -rwxr-xr-x 1 root root 3353 Mar 29 16:23 cfc.md -rwxr-xr-x 1 root root 1091 Mar 31 19:38 cgs.md -rwxr-xr-x 1 root root 1315 Mar 31 19:38 css.md -rwxr-xr-x 1 root root 1564 Mar 31 09:40 delivery_security_canonical.json -rw-r--r-- 1 root root 9063 Mar 23 10:06 deployment_order_canonical.json -rwxr-xr-x 1 root root 15315 Apr 9 00:20 devon_continuity.md -rwxr-xr-x 1 root root 14091 Apr 9 00:20 devon_continuity.md.bak.checkpoint_20260409_002039 -rwxr-xr-x 1 root root 1420 Apr 9 12:11 devon_panel_chat_checkpoint.md -rwxr-xr-x 1 root root 1878 Mar 28 16:39 devon_panel_chat_checkpoint.md.bak.20260409_121120 -rw-r--r-- 1 root root 950 Apr 9 20:18 docker_runtime.json -rw-r--r-- 1 root root 3383 Apr 9 20:18 host_runtime.json -rwxr-xr-x 1 root root 2025 Apr 2 13:03 host_security_canonical.json -rwxr-xr-x 1 root root 46294 Apr 9 00:01 hub_index.json -rwxr-xr-x 1 root root 29425 Mar 29 18:10 hub_index.json.STABLE_OK.20260329_182357 -rwxr-xr-x 1 root root 41845 Apr 9 00:01 hub_index.json.bak.refactor_20260409_000105 -rwxr-xr-x 1 root root 1390 Mar 31 09:40 knowledge_ingestion_canonical.json -rwxr-xr-x 1 root root 1432 Mar 31 09:40 learning_governance_canonical.json -rwxr-xr-x 1 root root 2012 Mar 29 15:50 lpc.md -rwxr-xr-x 1 root root 50962 Apr 9 08:49 master_architecture_index.md -rwxr-xr-x 1 root root 50015 Apr 9 08:46 master_architecture_index.md.bak.add_canon_root_20260409_084626 -rwxr-xr-x 1 root root 50551 Apr 9 08:49 master_architecture_index.md.bak.add_context_rule_20260409_084908 -rwxr-xr-x 1 root root 48049 Apr 8 23:34 master_architecture_index.md.bak.cleanup_20260408_233424 -rwxr-xr-x 1 root root 48200 Apr 8 23:55 master_architecture_index.md.bak.refactor_20260408_235522 -rw-r--r-- 1 root root 3871 Mar 23 10:06 memory_canonical_architecture.json -rwxr-xr-x 1 root root 3046 Mar 31 09:40 memory_isolation_canonical.json -rwxr-xr-x 1 root root 1564 Mar 31 09:40 memory_lifecycle_canonical.json -rwxr-xr-x 1 root root 1550 Mar 31 09:40 module_security_canonical.json -rw-r--r-- 1 root root 3885 Apr 8 23:55 monitoring_canonical.json -rwxr-xr-x 1 root root 3347 Mar 28 14:53 ncs.md -rwxr-xr-x 1 root root 1596 Mar 28 15:43 nrc.md -rwxr-xr-x 1 root root 2300 Apr 1 03:46 oac.md -rwxr-xr-x 1 root root 2023 Mar 31 19:38 ofc.md -rwxr-xr-x 1 root root 482 Mar 29 15:54 ofms.md -rw-r--r-- 1 root root 11738 Mar 23 10:06 panel_canonical_tree.json -rw-r--r-- 1 root root 15856 Mar 23 10:06 panel_component_contract.json -rw-r--r-- 1 root root 3270 Mar 23 10:06 panel_content_index.json -rw-r--r-- 1 root root 5828 Mar 23 10:06 panel_data_contract.json -rw-r--r-- 1 root root 2479 Mar 23 10:06 panel_manifest.json -rw-r--r-- 1 root root 2900 Mar 23 10:06 panel_navigation_spec.json -rw-r--r-- 1 root root 1978 Mar 23 10:06 panel_runtime_bridge.json -rw-r--r-- 1 root root 1947 Mar 23 10:06 panel_sync_contract.json -rw-r--r-- 1 root root 9400 Mar 23 10:06 panel_ui_blueprint.json -rwxr-xr-x 1 root root 1364 Mar 31 09:40 planning_reasoning_canonical.json -rw-r--r-- 1 root root 5476 Apr 6 19:31 project_progress.json -rwxr-xr-x 1 root root 2102 Apr 2 16:01 project_progress_canonical.json -rw-r--r-- 1 root root 6352 Apr 2 16:34 project_progress_model.json -rw-r--r-- 1 root root 7429 Mar 23 10:06 project_scope_canonical.json -rwxr-xr-x 1 root root 552 Mar 29 15:54 ris.md -rw-r--r-- 1 root root 1862 Apr 8 23:34 runtime_row_semantics_canonical.json -rwxr-xr-x 1 root root 1577 Mar 31 09:40 runtime_security_canonical.json -rw-r--r-- 1 root root 54425 Apr 6 19:31 runtime_snapshot.json -rw-r--r-- 1 root root 110988 Apr 9 20:18 runtime_status.json -rw-r--r-- 1 root root 1656 Mar 23 10:06 sandbox_environment_canonical.json -rwxr-xr-x 1 root root 3911 Apr 1 03:46 sec.md -rwxr-xr-x 1 root root 3239 Apr 2 13:03 security_monitoring_canonical.json -rw-r--r-- 1 root root 2324 Mar 23 10:06 server_registry_canonical.json -rw-r--r-- 1 root root 1360 Apr 8 23:55 sse_bridge_canonical.json -rwxr-xr-x 1 root root 1332 Mar 28 14:58 sts.md -rw-r--r-- 1 root root 6914 Mar 23 10:06 subcategory_pipelines.json -rwxr-xr-x 1 root root 1376 Mar 31 09:40 tool_execution_canonical.json [JS DATA BINDINGS] /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:2: const DATA_BASE = "data/"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:81: const res = await fetch(DATA_BASE + file, { cache: "no-store" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:464: getJson("panel_content_index.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:466: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:467: getJson("host_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:468: getJson("docker_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:469: getJson("runtime_status.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:497: openJson("host_runtime.json", state.hostRuntime); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:500: openJson("docker_runtime.json", state.dockerRuntime); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:503: openJson("runtime_status.json", state.runtimeStatus); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:2: const DATA_BASE = "data/"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:91: const res = await fetch(DATA_BASE + file, { cache: "no-store" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:224: row.runtime_status ?? /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:529: const projectProgress = state.projectProgress && state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:530: ? state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:535: getJson("project_progress.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:542: global_project_progress: { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:549: reason_if_missing: "project_progress.json could not be loaded", /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:793: els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts."; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1059: async function getJsonOptional(name) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1074: getJson("panel_content_index.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1075: getJson("panel_navigation_spec.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1076: getJson("panel_canonical_tree.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1077: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1082: getJsonOptional("host_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1083: getJsonOptional("docker_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1084: getJsonOptional("runtime_status.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1120: openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1123: openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1126: openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1169: return fetch(RUNTIME_ENDPOINT) /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:2: const DATA_BASE = "data/"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:81: const res = await fetch(DATA_BASE + file, { cache: "no-store" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:491: async function getJsonOptional(name) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:506: getJson("panel_content_index.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:508: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:513: getJsonOptional("host_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:514: getJsonOptional("docker_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:515: getJsonOptional("runtime_status.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:544: openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:547: openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:550: openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:2: const DATA_BASE = "data/"; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:91: const res = await fetch(DATA_BASE + file, { cache: "no-store" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:483: const projectProgress = state.projectProgress && state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:484: ? state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:489: getJson("project_progress.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:496: global_project_progress: { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:503: reason_if_missing: "project_progress.json could not be loaded", /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:759: els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts."; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1055: async function getJsonOptional(name) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1070: getJson("panel_content_index.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1071: getJson("panel_navigation_spec.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1072: getJson("panel_canonical_tree.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1074: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1079: getJsonOptional("host_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1080: getJsonOptional("docker_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1081: getJsonOptional("runtime_status.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1117: openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1120: openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1123: openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:1166: return fetch(RUNTIME_ENDPOINT) /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:2: const DATA_BASE = "data/"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:61: const res = await fetch(DATA_BASE + file, { cache: "no-store" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:446: getJson("panel_content_index.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:448: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:449: getJson("host_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:450: getJson("docker_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:451: getJson("runtime_status.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:479: openJson("host_runtime.json", state.hostRuntime); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:482: openJson("docker_runtime.json", state.dockerRuntime); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-093703:485: openJson("runtime_status.json", state.runtimeStatus); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:2: const DATA_BASE = "data/"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:91: const res = await fetch(DATA_BASE + file, { cache: "no-store" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:218: row.runtime_status ?? /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:523: const projectProgress = state.projectProgress && state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:524: ? state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:529: getJson("project_progress.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:536: global_project_progress: { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:543: reason_if_missing: "project_progress.json could not be loaded", /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:763: els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts."; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1029: async function getJsonOptional(name) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1055: getJson("panel_content_index.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1056: getJson("panel_navigation_spec.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1057: getJson("panel_canonical_tree.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1058: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1063: getJsonOptional("host_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1064: getJsonOptional("docker_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1065: getJsonOptional("runtime_status.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1097: openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1100: openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1103: openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.refactor_ui_20260409_081202:1146: return fetch(RUNTIME_ENDPOINT) /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:2: const DATA_BASE = "data/"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:91: const res = await fetch(DATA_BASE + file, { cache: "no-store" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:405: const projectProgress = state.projectProgress && state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:406: ? state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:411: getJson("project_progress.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:418: global_project_progress: { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:425: reason_if_missing: "project_progress.json could not be loaded", /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:919: async function getJsonOptional(name) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:934: getJson("panel_content_index.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:935: getJson("panel_navigation_spec.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:936: getJson("panel_canonical_tree.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:938: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:943: getJsonOptional("host_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:944: getJsonOptional("docker_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:945: getJsonOptional("runtime_status.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:981: openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:984: openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:987: openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.semantic_contract_ui_20260403_160922:1030: return fetch(RUNTIME_ENDPOINT) /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:2: const DATA_BASE = "data/"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:91: const res = await fetch(DATA_BASE + file, { cache: "no-store" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:505: const projectProgress = state.projectProgress && state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:506: ? state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:511: getJson("project_progress.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:518: global_project_progress: { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:525: reason_if_missing: "project_progress.json could not be loaded", /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:782: els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts."; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1048: async function getJsonOptional(name) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1063: getJson("panel_content_index.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1064: getJson("panel_navigation_spec.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1065: getJson("panel_canonical_tree.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1067: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1072: getJsonOptional("host_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1073: getJsonOptional("docker_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1074: getJsonOptional("runtime_status.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1110: openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1113: openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1116: openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.fix_runtime_snapshot_boundary_20260405_164823:1159: return fetch(RUNTIME_ENDPOINT) /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:2: const DATA_BASE = "data/"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:91: const res = await fetch(DATA_BASE + file, { cache: "no-store" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:374: const projectProgress = state.projectProgress && state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:375: ? state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:380: getJson("project_progress.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:387: global_project_progress: { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:394: reason_if_missing: "project_progress.json could not be loaded", /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:885: async function getJsonOptional(name) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:900: getJson("panel_content_index.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:901: getJson("panel_navigation_spec.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:902: getJson("panel_canonical_tree.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:904: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:909: getJsonOptional("host_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:910: getJsonOptional("docker_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:911: getJsonOptional("runtime_status.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:947: openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:950: openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:953: openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.target_section_fix2_20260403_032033:996: return fetch(RUNTIME_ENDPOINT) /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:2: const DATA_BASE = "data/"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:81: const res = await fetch(DATA_BASE + file, { cache: "no-store" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:492: async function getJsonOptional(name) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:507: getJson("panel_content_index.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:509: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:514: getJsonOptional("host_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:515: getJsonOptional("docker_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:516: getJsonOptional("runtime_status.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:545: openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:548: openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_162550:551: openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:2: const DATA_BASE = "data/"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:91: const res = await fetch(DATA_BASE + file, { cache: "no-store" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:218: row.runtime_status ?? /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:523: const projectProgress = state.projectProgress && state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:524: ? state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:529: getJson("project_progress.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:536: global_project_progress: { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:543: reason_if_missing: "project_progress.json could not be loaded", /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:787: els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts."; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1053: async function getJsonOptional(name) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1068: getJson("panel_content_index.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1069: getJson("panel_navigation_spec.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1070: getJson("panel_canonical_tree.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1071: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1076: getJsonOptional("host_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1077: getJsonOptional("docker_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1078: getJsonOptional("runtime_status.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1114: openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1117: openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1120: openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.zone_shell_finalize_20260407_112808:1163: return fetch(RUNTIME_ENDPOINT) /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:2: const DATA_BASE = "data/"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:91: const res = await fetch(DATA_BASE + file, { cache: "no-store" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:453: const projectProgress = state.projectProgress && state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:454: ? state.projectProgress.global_project_progress /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:459: getJson("project_progress.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:466: global_project_progress: { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:473: reason_if_missing: "project_progress.json could not be loaded", /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:729: els.selectedStageDesc.textContent = "Stage Completion % comes from the sovereign stage_rollup.progress_pct emitted by runtime_status.json. The UI must read the stage rollup, not infer completion from visible row counts."; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:987: async function getJsonOptional(name) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1002: getJson("panel_content_index.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1003: getJson("panel_navigation_spec.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1004: getJson("panel_canonical_tree.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1006: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1011: getJsonOptional("host_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1012: getJsonOptional("docker_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1013: getJsonOptional("runtime_status.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1049: openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1052: openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1055: openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.hub_nav_real_20260404_134045:1098: return fetch(RUNTIME_ENDPOINT) /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:2: const DATA_BASE = "data/"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:81: const res = await fetch(DATA_BASE + file, { cache: "no-store" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:494: async function getJsonOptional(name) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:509: getJson("panel_content_index.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:511: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:516: getJsonOptional("host_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:517: getJsonOptional("docker_runtime.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:518: getJsonOptional("runtime_status.json") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:547: openJson("host_runtime.json", state.hostRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:550: openJson("docker_runtime.json", state.dockerRuntime || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_161436:553: openJson("runtime_status.json", state.runtimeStatus || { status: "MISSING", reason: "runtime export not present on panel" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:2: const DATA_BASE = "data/"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:85: const res = await fetch(DATA_BASE + file, { cache: "no-store" }); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:706: async function getJsonOptional(name) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:721: getJson("panel_content_index.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:723: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260330_162514:728: getJsonOptional("host_runtime.json"), [MASTER VS JSON TOKENS] ===== CODE TOKENS FROM MASTER ===== MISSING /home/yeff/public_html/devon/canon/ MISSING /home/yeff/public_html/devon/context_dump.sh MISSING /home/yeff/public_html/devon/panel/data/ MISSING /opt/devon/bin/build_runtime_contracts.py MISSING /opt/devon/canon/runtime_expected_manifest.json MISSING /opt/devon/canon/runtime_probe_registry.json PASS /panel/data MISSING 0% MISSING MISSING / not eligible MISSING build_runtime_contracts.py MISSING collect_runtime.py MISSING completionRows == 0 MISSING counts_toward_completion PASS deployment_stage MISSING display_in_cards MISSING display_in_donuts PASS docker_runtime.json MISSING export_panel_runtime.sh PASS host_runtime.json MISSING progress_pct MISSING project_progress.json MISSING rollup_source PASS row_kind MISSING runtime_snapshot.json PASS runtime_status.json PASS semantic_scope MISSING source_contract MISSING stage_rollup MISSING stage_rollup.progress_pct MISSING status_resolution PASS subcategory MISSING ui_group ===== HEADINGS FROM MASTER ===== MISSING DEVON - MASTER ARCHITECTURE INDEX MISSING Checkpoint 2026-04-03 — Semantic Runtime Reading Canon MISSING Validated closure MISSING Mandatory semantic runtime rule MISSING Mandatory UI reading rule MISSING Canonical closure reached on 2026-04-03 MISSING Operational implication MISSING Material Devon runtime-contract artifacts now validated MISSING 1. SYSTEM IDENTITY MISSING 1.1 OPERATIONAL CONTEXT RULE MISSING 2. GLOBAL STATUS MODEL MISSING 3. SUPREME REFERENCE LAW MISSING 4. CANONICAL ROOT MISSING 4.1 DATA ROOT (UI / Runtime / Contracts) MISSING 4.2 GOVERNANCE ROOT (Operational Canon) MISSING 5. DOCUMENTATION MODEL MISSING 6. DOCUMENT PRECEDENCE RULE MISSING 7. CANONICAL ORGANIZATION MODEL MISSING 8. LAYERED CANONICAL INDEX MISSING 8.1 STRATEGY LAYER MISSING 8.1.1 System Root and Registration MISSING 8.1.2 Project Scope MISSING 8.1.3 Deployment Order MISSING 8.1.4 Sandbox Environment MISSING 8.1.5 Server Registry MISSING 8.2 ARCHITECTURE LAYER MISSING 8.2.1 Cognitive Architecture MISSING 8.2.2 Governance Model MISSING 8.2.3 Artifact Canon and Structure MISSING 8.2.4 Contracts and Schemas MISSING 8.2.5 Naming MISSING 8.2.6 State Legitimacy and Transitions MISSING 8.2.7 Deployment Structure MISSING 8.2.8 Deterministic Orchestration and Cognitive Flow MISSING 8.2.9 Role Interaction Context MISSING 8.2.10 Operational Flow Mapping MISSING 8.2.11 Panel Canonical Tree MISSING 8.2.12 Panel Navigation MISSING 8.2.13 Panel UI Blueprint MISSING 8.2.14 Canonical Matrix MISSING 8.3 DELIVERY LAYER MISSING 8.3.1 Build, Release and Promotion MISSING 8.3.2 Release Artifact Hygiene and Supply-Chain Evidence MISSING 8.3.3 Operational Flows Canon MISSING 8.3.4 Subcategory Pipelines MISSING 8.3.5 Panel Content Index MISSING 8.3.6 Panel Manifest MISSING 8.4 RUNTIME LAYER MISSING 8.4.1 Container Topology and Isolation MISSING 8.4.2 Latency and Performance MISSING 8.4.3 Noise Reduction MISSING 8.4.4 Observability and Audit MISSING 8.4.5 Distribution and Packaging Observability MISSING 8.4.6 Panel Runtime Bridge MISSING 8.4.7 Runtime Status and Host/Docker Runtime Records MISSING 8.5 TRUST LAYER MISSING 8.5.1 Security Governance MISSING 8.6 MEMORY LAYER MISSING 8.6.1 Memory Architecture MISSING 8.6.2 Memory Isolation and Partitioning MISSING 8.6.3 Memory Lifecycle and Consolidation MISSING 8.6.4 Learning Governance MISSING 8.6.5 Planning and Reasoning MISSING 8.6.6 Tool Execution and Permission Model MISSING 8.6.7 Knowledge Ingestion and Indexing MISSING 8.7 MONITORING LAYER MISSING 8.7.1 Monitoring Authority MISSING 8.7.2 SSE Bridge MISSING 9. PHASE REGISTRY MISSING Phase 01 - Overview & Scope MISSING Phase 02 - Architecture & Engineering Canon MISSING Phase 02 Process-Spec MISSING P02-01 Cognitive Architecture Spec MISSING P02-02 Governance Model MISSING P02-03 Artifact Canon and Structure MISSING P02-04 Contracts and Schemas MISSING P02-05 Naming and State Legitimacy MISSING P02-06 Deployment Structure and Contextual Boundaries MISSING Phase 02 Category Completion MISSING Phase 03 - Cognitive Flow Canon MISSING Phase 03 Process-Spec MISSING P03-01 Deterministic Orchestration and Cognitive Flow MISSING P03-02 Cognitive Component Context MISSING P03-03 Latency and Performance Context MISSING P03-04 Noise and Runtime Context References MISSING Phase 03 Category Completion MISSING Phase 04 - Containerization Canon MISSING Phase 04 Process-Spec MISSING P04-01 Container Topology Definition MISSING P04-02 Service Networking and Reverse Proxy Boundaries MISSING P04-03 Volumes, Persistent State and Artifact Storage MISSING P04-04 Runtime Bootstrap Readiness MISSING Phase 04 Category Completion MISSING Phase 05 - Latency & Performance Canon MISSING Phase 06 - Noise Reduction Canon MISSING Phase 07 - Observability & Audit Canon MISSING Phase 08 - Security Canon MISSING Phase 09 - Operational Flows Canon MISSING Phase 10 - Monitoring & Real-time Observability MISSING 10. CROSS-DOCUMENT RULES MISSING 11. COMPLETE CANONICAL FILE REGISTRY MISSING 11.1 Authority and Satellite Markdown Files MISSING 11.2 Structured Canonical JSON Files MISSING 11.3 Runtime and Support JSON Files MISSING 12. CANONICAL DEPENDENCY MATRIX MISSING 12.1 Memory Domain MISSING 12.2 Learning Domain MISSING 12.3 Planning / Reasoning Domain MISSING 12.4 Tool Execution Domain MISSING 12.5 Knowledge Ingestion Domain MISSING 13. CANONICAL PROCESS SPEC MODEL MISSING 13.0 Canonical execution hierarchy PASS Phase MISSING Category MISSING Process bucket MISSING Item MISSING 13.1 Mandatory process-spec fields MISSING 13.2 Canonical process rules MISSING 13.3 Required DH and UI alignment MISSING 13.4 Process-spec priority MISSING 14. CANONICAL INTEGRITY RULES MISSING 15. FAILURE MODES MISSING 16. ARCHITECTURAL COMPLETENESS CRITERIA MISSING 17. COMPLETENESS RULE MISSING 18. MASTER RULE FOR FUTURE EXPANSION [JS TREE LOGIC] /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:23: subcategoryGrid: document.getElementById("subcategory-grid"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:130: function runtimeSubcategoryRows(stageKey, subcategory) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:132: return String(row.subcategory || "unmapped") === String(subcategory || "unmapped"); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:136: function groupBySubcategory(rows) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:139: const key = row.subcategory || "unmapped"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:144: return { subcategory: entry[0], items: entry[1] }; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:234: function renderNav() { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:235: const items = (state.contentIndex.content_index || []).slice().sort(function (a, b) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:241: items.forEach(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:242: const stageKey = normStageKey(item.label); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:251: '' + item.label + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:252: 'Order ' + item.deployment_order + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:313: const items = state.runtimeStatus.runtime_snapshot || []; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:314: els.pipelineRuntimeCount.textContent = items.length + " runtime rows"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:317: if (!items.length) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:318: els.pipelineRuntimeBoard.innerHTML = '

No runtime rows

Status is MISSING.

'; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:322: items.forEach(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:324: div.className = "pipeline-item"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:326: '

' + titleize(item.deployment_stage) + ' / ' + titleize(item.technology) + '

', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:327: '

Current step: ' + (item.current_step ? titleize(item.current_step) : "—") + '

', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:329: '' + safeUpper(item.overall_status) + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:330: '' + valueOrDash(item.progress_pct, "%") + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:331: 'last run: ' + valueOrDash(item.last_run_at, "") + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:335: openJson(item.runtime_id, item); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:342: const navItem = (state.contentIndex.content_index || []).find(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:343: return normStageKey(item.label) === stageKey; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:349: const groups = groupBySubcategory(rows); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:351: els.heroTitle.textContent = navItem ? navItem.label : titleize(stageKey); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:353: els.stageOrderBadge.textContent = navItem ? ("ORDER " + navItem.deployment_order) : "—"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:354: els.selectedStageName.textContent = navItem ? navItem.label : titleize(stageKey); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:355: els.selectedStageDesc.textContent = "Completion based on all required items in this stage."; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:356: els.selectedStageTotal.textContent = rows.length + " required items"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:404: els.subcategoryGrid.innerHTML = ""; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:407: const subCounts = countStatuses(group.items); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:412: '

' + titleize(group.subcategory) + '

', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:413: '' + group.items.length + ' rows', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:417: ? donutMarkup(subCounts, "subcategory completion") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:418: : missingDonutMarkup("subcategory completion"); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:426: els.subcategoryGrid.appendChild(card); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:435: const item = document.createElement("div"); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:436: item.className = "row-item"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:437: item.innerHTML = [ /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:438: '

' + row.matrix_id + ' / ' + titleize(row.subcategory) + '

', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:447: item.addEventListener("click", function () { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:450: els.rowTable.appendChild(item); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:466: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325-114840:482: renderNav(); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:30: subcategoryGrid: document.getElementById("subcategory-grid"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:49: canonicalTree: null, /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:132: function getContentItems() { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:143: if (state.canonicalTree && Array.isArray(state.canonicalTree.layer_tree)) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:144: return state.canonicalTree.layer_tree.map(function (layer) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:149: phase_origin: [], /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:160: function getStageItemsForLayer(layerKey) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:161: return getContentItems() /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:162: .filter(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:163: return String(item.canonical_layer_key || "") === String(layerKey || ""); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:171: function contentStageKey(item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:173: (item && (item.stage_key || item.target_section || item.nav_id || "")) || "" /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:178: const navItem = getContentItems().find(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:179: return normStageKey(item.stage_key) === stageKey; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:182: (navItem && Array.isArray(navItem.stage_aliases)) ? navItem.stage_aliases.map(normStageKey) : [] /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:197: return runtimeRowKind(row) === "item_runtime"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:217: return normStageKey(row.deployment_stage || "") + ":" + normStageKey(row.subcategory || "unmapped"); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:245: const navItem = (state.contentIndex.content_index || []).find(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:246: return contentStageKey(item) === stageKey; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:249: (navItem && Array.isArray(navItem.stage_aliases)) ? navItem.stage_aliases.map(normStageKey) : [] /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:268: function runtimeSubcategoryRows(stageKey, subcategory, canonicalItems, runtimeSnapshot) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:270: return String(row.subcategory || "unmapped") === String(subcategory || "unmapped"); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:274: const items = Array.isArray(canonicalItems) ? canonicalItems : []; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:275: const expectedUiGroup = normStageKey(stageKey || "") + ":" + normStageKey(subcategory || "unmapped"); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:278: items /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:284: items /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:317: && String(row.subcategory || "unmapped") === String(subcategory || "unmapped") /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:321: const hasItemRuntimeFail = result.some(function (row) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:322: return runtimeRowKind(row) === "item_runtime" && safeUpper(row.status) === "FAIL"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:325: if (hasMatrixFail && !hasItemRuntimeFail) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:327: row_kind: "item_runtime", /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:329: subcategory: subcategory || "unmapped", /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:336: evidence_source: "runtime_subcategoryRows_fail_overlay" /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:405: function groupBySubcategory(rows) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:408: const key = row.subcategory || "unmapped"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:413: return { subcategory: entry[0], items: entry[1] }; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:423: const rows = runtimeSubcategoryRows(stageKey, group.subcategory, group.items, runtimeSnapshot) || []; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:582: function renderNav() { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:598: 'L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '' /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:602: const items = getStageItemsForLayer(group.layer_key); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:604: items.forEach(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:605: const stageKey = normStageKey(item.stage_key); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:606: const groups = groupBySubcategory(stageRows(stageKey)); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:608: const authorityDocCount = Array.isArray(item.authority_docs) ? item.authority_docs.length : 0; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:615: '' + item.label + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:616: 'Order ' + item.deployment_order + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:733: const items = ((state.runtimeStatus && state.runtimeStatus.runtime_snapshot) || []).filter(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:734: return runtimeRowVisibleInCards(item); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:736: els.pipelineRuntimeCount.textContent = items.length + " runtime rows"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:739: if (!items.length) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:740: els.pipelineRuntimeBoard.innerHTML = '

No runtime rows

Status is MISSING.

'; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:744: items.forEach(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:746: div.className = "pipeline-item"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:748: '

' + titleize(item.deployment_stage) + ' / ' + titleize(item.technology) + '

', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:749: '

Kind: ' + titleize(runtimeRowKind(item)) + ' • Group: ' + runtimeRowUiGroup(item) + '

', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:751: '' + runtimeRowStatus(item) + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:752: '' + valueOrDash(item.progress_pct, "%") + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:753: 'counts ' + (runtimeRowCountsTowardCompletion(item) ? 'yes' : 'no') + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:757: openJson(item.runtime_id || item.item_id || "runtime_row", item); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:765: const navItem = (state.contentIndex.content_index || []).find(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:766: return contentStageKey(item) === normalizedStageKey; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:774: const groups = groupBySubcategory(rows); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:775: const authorityDocs = navItem && Array.isArray(navItem.authority_docs) ? navItem.authority_docs : []; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:789: els.heroTitle.textContent = navItem ? navItem.label : titleize(normalizedStageKey); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:791: els.stageOrderBadge.textContent = navItem ? ("ORDER " + navItem.deployment_order) : "—"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:792: els.selectedStageName.textContent = navItem ? navItem.label : titleize(normalizedStageKey); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:813: renderAuthorityDocs(navItem); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:849: function renderAuthorityDocs(navItem) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:850: const docs = navItem && Array.isArray(navItem.authority_docs) ? navItem.authority_docs : []; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:879: div.className = "doc-link-item"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:885: '' + (doc.phase || "phase-unmapped") + '' /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:896: els.subcategoryGrid.innerHTML = ""; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:899: const runtimeGroup = runtimeSubcategoryRows(stageKey, group.subcategory, group.items, runtimeSnapshot); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:906: : ((group.items && group.items.length) || 0); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:912: '

' + titleize(group.subcategory) + '

', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:926: els.subcategoryGrid.appendChild(card); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:936: const item = document.createElement("div"); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:937: item.className = "row-item"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:944: item.innerHTML = [ /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:945: '

' + (row.matrix_id || "runtime") + ' / ' + titleize(row.subcategory || "unmapped") + '

', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:955: item.addEventListener("click", function () { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:958: els.rowTable.appendChild(item); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:990: ? els.pipelineRuntimeBoard.querySelectorAll(".pipeline-item").length /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1021: pipeline_runtime_items: runtimeBoardCount, /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1076: getJson("panel_canonical_tree.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1077: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1091: state.canonicalTree = core[4]; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1100: renderNav(); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1106: const firstItem = ((state.contentIndex.content_index || []).find(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1107: return !!item.stage_key; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1109: if (firstItem) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.final_matrix_purge_20260407_105807:1110: selectStage(normStageKey(firstItem.stage_key)); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:23: subcategoryGrid: document.getElementById("subcategory-grid"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:130: function runtimeSubcategoryRows(stageKey, subcategory) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:132: return String(row.subcategory || "unmapped") === String(subcategory || "unmapped"); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:194: function groupBySubcategory(rows) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:197: const key = row.subcategory || "unmapped"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:202: return { subcategory: entry[0], items: entry[1] }; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:292: function renderNav() { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:293: const items = (state.contentIndex.content_index || []).slice().sort(function (a, b) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:299: items.forEach(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:300: const stageKey = normStageKey(item.label); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:310: '' + item.label + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:311: 'Order ' + item.deployment_order + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:372: const items = ((state.runtimeStatus && state.runtimeStatus.runtime_snapshot) || []); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:373: els.pipelineRuntimeCount.textContent = items.length + " runtime rows"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:376: if (!items.length) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:377: els.pipelineRuntimeBoard.innerHTML = '

No runtime rows

Status is MISSING.

'; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:381: items.forEach(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:383: div.className = "pipeline-item"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:385: '

' + titleize(item.deployment_stage) + ' / ' + titleize(item.technology) + '

', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:386: '

Current step: ' + (item.current_step ? titleize(item.current_step) : "—") + '

', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:388: '' + safeUpper(item.overall_status) + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:389: '' + valueOrDash(item.progress_pct, "%") + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:390: 'last run: ' + valueOrDash(item.last_run_at, "") + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:394: openJson(item.runtime_id, item); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:401: const navItem = (state.contentIndex.content_index || []).find(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:402: return normStageKey(item.label) === normalizedStageKey; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:408: const groups = groupBySubcategory(rows); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:410: els.heroTitle.textContent = navItem ? navItem.label : titleize(normalizedStageKey); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:412: els.stageOrderBadge.textContent = navItem ? ("ORDER " + navItem.deployment_order) : "—"; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:413: els.selectedStageName.textContent = navItem ? navItem.label : titleize(normalizedStageKey); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:463: els.subcategoryGrid.innerHTML = ""; /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:466: const runtimeGroup = runtimeSubcategoryRows(stageKey, group.subcategory); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:473: '

' + titleize(group.subcategory) + '

', /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:487: els.subcategoryGrid.appendChild(card); /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:508: getJson("subcategory_pipelines.json"), /home/yeff/public_html/devon/panel/assets/js/panel.js.bak.20260325_163606:529: renderNav(); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:30: subcategoryGrid: document.getElementById("subcategory-grid"), /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:49: canonicalTree: null, /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:125: function getContentItems() { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:136: if (state.canonicalTree && Array.isArray(state.canonicalTree.layer_tree)) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:137: return state.canonicalTree.layer_tree.map(function (layer) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:142: phase_origin: [], /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:153: function getStageItemsForLayer(layerKey) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:154: return getContentItems() /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:155: .filter(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:156: return String(item.canonical_layer_key || "") === String(layerKey || ""); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:164: function contentStageKey(item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:166: (item && (item.stage_key || item.target_section || item.nav_id || "")) || "" /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:171: const navItem = getContentItems().find(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:172: return normStageKey(item.stage_key) === stageKey; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:175: (navItem && Array.isArray(navItem.stage_aliases)) ? navItem.stage_aliases.map(normStageKey) : [] /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:190: return runtimeRowKind(row) === "item_runtime"; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:210: return normStageKey(row.deployment_stage || "") + ":" + normStageKey(row.subcategory || "unmapped"); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:220: const navItem = (state.contentIndex.content_index || []).find(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:221: return contentStageKey(item) === stageKey; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:224: (navItem && Array.isArray(navItem.stage_aliases)) ? navItem.stage_aliases.map(normStageKey) : [] /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:243: function runtimeSubcategoryRows(stageKey, subcategory, canonicalItems) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:245: return String(row.subcategory || "unmapped") === String(subcategory || "unmapped"); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:249: const items = Array.isArray(canonicalItems) ? canonicalItems : []; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:250: const expectedUiGroup = normStageKey(stageKey || "") + ":" + normStageKey(subcategory || "unmapped"); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:253: items /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:259: items /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:292: && String(row.subcategory || "unmapped") === String(subcategory || "unmapped") /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:296: const hasItemRuntimeFail = result.some(function (row) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:297: return runtimeRowKind(row) === "item_runtime" && safeUpper(row.status) === "FAIL"; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:300: if (hasMatrixFail && !hasItemRuntimeFail) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:302: row_kind: "item_runtime", /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:304: subcategory: subcategory || "unmapped", /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:311: evidence_source: "runtime_subcategoryRows_fail_overlay" /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:380: function groupBySubcategory(rows) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:383: const key = row.subcategory || "unmapped"; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:388: return { subcategory: entry[0], items: entry[1] }; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:536: function renderNav() { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:552: 'L' + String(group.installation_order || "—") + ' • ' + ((group.phase_origin || []).join(", ") || "phase-unmapped") + '' /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:556: const items = getStageItemsForLayer(group.layer_key); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:558: items.forEach(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:559: const stageKey = normStageKey(item.stage_key); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:561: const authorityDocCount = Array.isArray(item.authority_docs) ? item.authority_docs.length : 0; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:568: '' + item.label + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:569: 'Order ' + item.deployment_order + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:699: const items = ((state.runtimeStatus && state.runtimeStatus.runtime_snapshot) || []).filter(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:700: return runtimeRowVisibleInCards(item); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:702: els.pipelineRuntimeCount.textContent = items.length + " runtime rows"; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:705: if (!items.length) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:706: els.pipelineRuntimeBoard.innerHTML = '

No runtime rows

Status is MISSING.

'; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:710: items.forEach(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:712: div.className = "pipeline-item"; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:714: '

' + titleize(item.deployment_stage) + ' / ' + titleize(item.technology) + '

', /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:715: '

Kind: ' + titleize(runtimeRowKind(item)) + ' • Group: ' + runtimeRowUiGroup(item) + '

', /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:717: '' + runtimeRowStatus(item) + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:718: '' + valueOrDash(item.progress_pct, "%") + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:719: 'counts ' + (runtimeRowCountsTowardCompletion(item) ? 'yes' : 'no') + '', /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:723: openJson(item.runtime_id || item.item_id || "runtime_row", item); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:731: const navItem = (state.contentIndex.content_index || []).find(function (item) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:732: return contentStageKey(item) === normalizedStageKey; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:740: const groups = groupBySubcategory(rows); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:741: const authorityDocs = navItem && Array.isArray(navItem.authority_docs) ? navItem.authority_docs : []; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:755: els.heroTitle.textContent = navItem ? navItem.label : titleize(normalizedStageKey); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:757: els.stageOrderBadge.textContent = navItem ? ("ORDER " + navItem.deployment_order) : "—"; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:758: els.selectedStageName.textContent = navItem ? navItem.label : titleize(normalizedStageKey); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:779: renderAuthorityDocs(navItem); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:814: function renderAuthorityDocs(navItem) { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:815: const docs = navItem && Array.isArray(navItem.authority_docs) ? navItem.authority_docs : []; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:844: div.className = "doc-link-item"; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:850: '' + (doc.phase || "phase-unmapped") + '' /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:861: els.subcategoryGrid.innerHTML = ""; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:864: const runtimeGroup = runtimeSubcategoryRows(stageKey, group.subcategory, group.items); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:871: : ((group.items && group.items.length) || 0); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:877: '

' + titleize(group.subcategory) + '

', /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:891: els.subcategoryGrid.appendChild(card); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:903: row.item_id || "", /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:905: row.subcategory || "", /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:912: const runtimeGroup = runtimeSubcategoryRows(stageKey, group.subcategory, group.items) /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:927: els.rowTable.innerHTML = '

MISSING runtime evidence

'; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:932: const item = document.createElement("div"); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:933: item.className = "row-item"; /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:937: item.innerHTML = [ /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:938: '

' + titleize(row.subcategory || "unmapped") + ' / ' + titleize(row.technology || "runtime") + '

', /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:948: item.addEventListener("click", function () { /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:949: openJson(row.runtime_id || row.item_id || "runtime_row", row); /home/yeff/public_html/devon/panel/assets/js/panel.js.broken_after_nav_patch_20260405_144740:952: els.rowTable.appendChild(item);