735 lines
24 KiB
JSON
735 lines
24 KiB
JSON
{
|
|
"schema_version": 1,
|
|
"schema_contract": {
|
|
"id": "chimera-gfx-phase-0.8-remediation-v1",
|
|
"shared_schema_available": false,
|
|
"validator": "tools/validate_phase08_remediation.py",
|
|
"reason": "Existing artifact and controlled-runtime schemas describe built runtime artifacts and cannot represent an offline blocked evidence contract without misleading artifact semantics."
|
|
},
|
|
"phase_id": "0.8R",
|
|
"phase": "offline_remediation",
|
|
"status": "READ_ONLY_PREFLIGHT_BLOCKED",
|
|
"date": "2026-07-18",
|
|
"historical_identity": {
|
|
"source_commit": "2c944d6d65a08f7e1c02f518721cde061b999329",
|
|
"status": "READ_ONLY_PREFLIGHT_BLOCKED",
|
|
"historical_validation_report": {
|
|
"reported_date": "2026-07-18",
|
|
"host_tests": "17/17 passed",
|
|
"manifest_and_safety_checks": "passed",
|
|
"secret_scan": "passed across 558 text files",
|
|
"classification": "historical_report_not_current_hardware_evidence"
|
|
}
|
|
},
|
|
"immutable_evidence": [
|
|
{
|
|
"path": "docs/runtime/phase-0.8-read-only-preflight.md",
|
|
"role": "historical_human_readable_preflight_record",
|
|
"sha256": "3fbe086175a6048176075f447ec1482074928e3b5282db97ea2169395fe1d508"
|
|
},
|
|
{
|
|
"path": "manifests/runtime/phase-0.8-read-only-preflight.json",
|
|
"role": "historical_machine_readable_preflight_record",
|
|
"sha256": "47d7f452f8799979fe99b3e6d56859f03544112725bf7e5b349eba5ed81b3322"
|
|
},
|
|
{
|
|
"path": "tests/test_phase08_preflight.py",
|
|
"role": "historical_fail_closed_regression_test",
|
|
"sha256": "8a4ad7c70de28ffe3148fd3fd1f68c36a872c53c691c9068e1ff163970863c48"
|
|
}
|
|
],
|
|
"authorization": {
|
|
"authorized": false,
|
|
"installation_authorized": false,
|
|
"lifecycle_authorized": false,
|
|
"execution_authorized": false,
|
|
"transfer_authorized": false,
|
|
"automatic_retry": false
|
|
},
|
|
"activity": {
|
|
"hardware_observed": false,
|
|
"ps5_connected": false,
|
|
"files_transferred": false,
|
|
"target_execution_performed": false,
|
|
"target_mutation_performed": false,
|
|
"target_artifact_created": false,
|
|
"collector_implemented": false,
|
|
"target_build_performed": false
|
|
},
|
|
"firmware_runtime_behavior": "UNPROVEN",
|
|
"stock_identities": {
|
|
"classification": "reference_only",
|
|
"current_device_observed": false,
|
|
"elfldr": {
|
|
"size": 397000,
|
|
"sha256": "092d16ee0ede0c494947efd38d1a17bbd7cc4b022d3858ea898833c188c703e8",
|
|
"current_device_match": "UNPROVEN"
|
|
},
|
|
"payload_manager": {
|
|
"size": 2050320,
|
|
"sha256": "518740adbacccb9094fadb07dd424c53ee290f38306449ccc9d6957fdf813c0b",
|
|
"current_device_match": "UNPROVEN"
|
|
}
|
|
},
|
|
"payload_manager_backup": {
|
|
"classification": "hard_blocker",
|
|
"on_device_proven": false,
|
|
"byte_exact_proven": false,
|
|
"creation_allowed_in_strict_read_only_phase": false,
|
|
"result": "HARD_STOP-GATE"
|
|
},
|
|
"claim_boundaries": {
|
|
"hardware_safety_proven": false,
|
|
"firmware_behavior_proven": false,
|
|
"absence_of_volatile_effects_proven": false,
|
|
"no_persistent_write_found_equals_side_effect_free": false,
|
|
"host_tests_are_hardware_evidence": false,
|
|
"missing_observation_means_safe_absence": false
|
|
},
|
|
"side_effect_categories": [
|
|
{
|
|
"id": "A",
|
|
"name": "PERSISTENT_MUTATION",
|
|
"definition": "File creation/write/delete/rename, configuration or autoload changes, metadata changes, or persistent platform-state changes."
|
|
},
|
|
{
|
|
"id": "B",
|
|
"name": "PROCESS_OR_SERVICE_WIDE_MUTATION",
|
|
"definition": "Global flags, functional counters, autoload state, service state, process signaling, or retry state."
|
|
},
|
|
{
|
|
"id": "C",
|
|
"name": "VOLATILE_TECHNICAL_EFFECT",
|
|
"definition": "Socket acceptance, temporary buffers, allocation, scheduler activity, kernel counters, caches, audit or logging paths, and temporary process-local state."
|
|
},
|
|
{
|
|
"id": "D",
|
|
"name": "OBSERVATION",
|
|
"definition": "Firmware, file metadata, hashes, process/listener state, configuration contents, rollback identities, or storage conditions."
|
|
}
|
|
],
|
|
"payload_manager_source": {
|
|
"origin": "itsPLK/ps5-payload-manager",
|
|
"release": "v0.3.1",
|
|
"commit": "cfbc70f30f419b09bf2b52283f7409e2d3117ee1",
|
|
"files": [
|
|
{
|
|
"path": "include/pldmgr.h",
|
|
"sha256": "01c693a3248dce7a663dd4ed9c73ce5f3a4443b5f2bd210746d94993dee27b91"
|
|
},
|
|
{
|
|
"path": "src/http_server.c",
|
|
"sha256": "35cf5d8f0dd44cf64ceab5e4b0ecc09413c82d7e9946ba9de2ca4b1898631fdd"
|
|
},
|
|
{
|
|
"path": "src/autoload.c",
|
|
"sha256": "7051cab3ee1a3e0b9f6498000565eb9e160b9c63efa1771f250e98ec3aa4ae67"
|
|
},
|
|
{
|
|
"path": "src/log_server.c",
|
|
"sha256": "659095f43df1bbe8eb24acb165f027edc277af1e60aabb26ba9e3920b233d6f1"
|
|
},
|
|
{
|
|
"path": "src/config.c",
|
|
"sha256": "2fa05a2781f7e41555653ea0fa2923c21bca7bb24c0062c722e0ae13be757b58"
|
|
},
|
|
{
|
|
"path": "src/payload_mgr.c",
|
|
"sha256": "c2a442c2cc26ce85b5c63db12102b22e7ca552761eb1bf0acfd650c24e05e761"
|
|
},
|
|
{
|
|
"path": "src/sources.c",
|
|
"sha256": "a7a4a5cafccfba74902d6ed21ba001e6a9f62d4dff840ac38882d04827162c96"
|
|
},
|
|
{
|
|
"path": "src/process_mgr.c",
|
|
"sha256": "5b1b1be70878ccc56d13295362b78da7faaf8e3b7c009472be8d65a9db9ad97c"
|
|
}
|
|
]
|
|
},
|
|
"side_effect_findings": [
|
|
{
|
|
"id": "options_any_endpoint",
|
|
"http_method": "OPTIONS",
|
|
"endpoint": "*",
|
|
"handler_function": "http_on_request",
|
|
"writes_server_active_flag": false,
|
|
"writes_autoload_triggered": false,
|
|
"reads_filesystem_or_configuration": false,
|
|
"categories": [
|
|
"C"
|
|
],
|
|
"other_effects": [
|
|
"network request acceptance and response handling",
|
|
"response allocation and transport effects",
|
|
"cache, audit, scheduler, and kernel-counter effects remain unproven"
|
|
],
|
|
"source_references": [
|
|
"src/http_server.c:131-147"
|
|
],
|
|
"strict_read_only_preflight_suitable": false,
|
|
"reason": "OPTIONS does not produce the required evidence set and the transport's volatile effects are not proven absent."
|
|
},
|
|
{
|
|
"id": "get_version",
|
|
"http_method": "GET",
|
|
"endpoint": "/version",
|
|
"handler_function": "http_on_request",
|
|
"writes_server_active_flag": true,
|
|
"writes_autoload_triggered": false,
|
|
"reads_filesystem_or_configuration": false,
|
|
"categories": [
|
|
"B",
|
|
"C"
|
|
],
|
|
"other_effects": [
|
|
"writes process-global server_active_flag",
|
|
"network request and response effects remain"
|
|
],
|
|
"source_references": [
|
|
"src/http_server.c:131-152",
|
|
"src/http_server.c:835-838",
|
|
"src/log_server.c:20-23"
|
|
],
|
|
"strict_read_only_preflight_suitable": false,
|
|
"reason": "The informational response still follows a process-wide state mutation."
|
|
},
|
|
{
|
|
"id": "get_log",
|
|
"http_method": "GET",
|
|
"endpoint": "/log",
|
|
"handler_function": "http_on_request -> log_build_json",
|
|
"writes_server_active_flag": true,
|
|
"writes_autoload_triggered": false,
|
|
"reads_filesystem_or_configuration": false,
|
|
"categories": [
|
|
"B",
|
|
"C",
|
|
"D"
|
|
],
|
|
"other_effects": [
|
|
"locks and reads the in-process log ring",
|
|
"allocates a response buffer"
|
|
],
|
|
"source_references": [
|
|
"src/http_server.c:131-152",
|
|
"src/http_server.c:826-834",
|
|
"src/log_server.c:20-23",
|
|
"src/log_server.c:111-127"
|
|
],
|
|
"strict_read_only_preflight_suitable": false,
|
|
"reason": "It mutates process-global state and does not provide the required device evidence."
|
|
},
|
|
{
|
|
"id": "get_autoload_status",
|
|
"http_method": "GET",
|
|
"endpoint": "/autoload_status",
|
|
"handler_function": "http_on_request -> pldmgr_autoload_get_status -> config_read",
|
|
"writes_server_active_flag": true,
|
|
"writes_autoload_triggered": true,
|
|
"reads_filesystem_or_configuration": true,
|
|
"categories": [
|
|
"B",
|
|
"C",
|
|
"D"
|
|
],
|
|
"other_effects": [
|
|
"changes the functional autoload frontend-ready flag",
|
|
"can release the autoload worker from its frontend wait",
|
|
"reads /data/pldmgr/autoload.txt",
|
|
"reads /data/pldmgr/pldmgr_config.txt",
|
|
"atime, audit, cache, and metadata effects remain unproven"
|
|
],
|
|
"source_references": [
|
|
"include/pldmgr.h:22,41-42",
|
|
"src/http_server.c:131-152",
|
|
"src/http_server.c:847-871",
|
|
"src/autoload.c:44-48",
|
|
"src/autoload.c:78-93",
|
|
"src/config.c:12-49",
|
|
"src/log_server.c:20-23"
|
|
],
|
|
"strict_read_only_preflight_suitable": false,
|
|
"reason": "The route is functionally mutating and performs configuration reads with unproven technical side effects."
|
|
},
|
|
{
|
|
"id": "get_config",
|
|
"http_method": "GET",
|
|
"endpoint": "/get_config",
|
|
"handler_function": "http_on_request -> config_read",
|
|
"writes_server_active_flag": true,
|
|
"writes_autoload_triggered": false,
|
|
"reads_filesystem_or_configuration": true,
|
|
"categories": [
|
|
"B",
|
|
"C",
|
|
"D"
|
|
],
|
|
"other_effects": [
|
|
"reads /data/pldmgr/pldmgr_config.txt",
|
|
"reads /data/pldmgr/autoload.txt",
|
|
"atime, audit, cache, and metadata effects remain unproven"
|
|
],
|
|
"source_references": [
|
|
"src/http_server.c:131-152",
|
|
"src/http_server.c:911-930",
|
|
"src/config.c:12-49",
|
|
"src/log_server.c:20-23"
|
|
],
|
|
"strict_read_only_preflight_suitable": false,
|
|
"reason": "The route mutates process state and filesystem-read side effects are unproven."
|
|
},
|
|
{
|
|
"id": "get_list_payloads",
|
|
"http_method": "GET",
|
|
"endpoint": "/list_payloads",
|
|
"handler_function": "http_on_request -> payload_mgr_list_json",
|
|
"writes_server_active_flag": true,
|
|
"writes_autoload_triggered": false,
|
|
"reads_filesystem_or_configuration": true,
|
|
"categories": [
|
|
"B",
|
|
"C",
|
|
"D"
|
|
],
|
|
"other_effects": [
|
|
"reads configuration",
|
|
"scans internal and possible USB directories",
|
|
"reads sidecar metadata",
|
|
"filesystem and removable-media observation effects remain unproven"
|
|
],
|
|
"source_references": [
|
|
"src/http_server.c:131-152",
|
|
"src/http_server.c:601-608",
|
|
"src/payload_mgr.c:114-153",
|
|
"src/payload_mgr.c:196-238",
|
|
"src/log_server.c:20-23"
|
|
],
|
|
"strict_read_only_preflight_suitable": false,
|
|
"reason": "It mutates process state and performs broad filesystem enumeration without a side-effect contract."
|
|
},
|
|
{
|
|
"id": "get_processes_list",
|
|
"http_method": "GET",
|
|
"endpoint": "/processes_list",
|
|
"handler_function": "http_on_request -> process_list_json",
|
|
"writes_server_active_flag": true,
|
|
"writes_autoload_triggered": false,
|
|
"reads_filesystem_or_configuration": false,
|
|
"categories": [
|
|
"B",
|
|
"C",
|
|
"D"
|
|
],
|
|
"other_effects": [
|
|
"performs sysctl process enumeration",
|
|
"allocates and frees a process snapshot",
|
|
"kernel counters, audit, scheduling, and service effects remain unproven"
|
|
],
|
|
"source_references": [
|
|
"src/http_server.c:131-152",
|
|
"src/http_server.c:609-616",
|
|
"src/process_mgr.c:43-88",
|
|
"src/log_server.c:20-23"
|
|
],
|
|
"strict_read_only_preflight_suitable": false,
|
|
"reason": "The route mutates process state and its system-query effects are not contractually bounded."
|
|
},
|
|
{
|
|
"id": "get_sources_list",
|
|
"http_method": "GET",
|
|
"endpoint": "/sources_list",
|
|
"handler_function": "http_on_request -> sources_list_json -> load_sources",
|
|
"writes_server_active_flag": true,
|
|
"writes_autoload_triggered": false,
|
|
"reads_filesystem_or_configuration": true,
|
|
"categories": [
|
|
"B",
|
|
"C",
|
|
"D"
|
|
],
|
|
"other_effects": [
|
|
"reads /data/pldmgr/sources.json",
|
|
"is not on the noisy-route exclusion list and therefore also calls pldmgr_log",
|
|
"writes stdout and the process-local log ring"
|
|
],
|
|
"source_references": [
|
|
"src/http_server.c:111-126",
|
|
"src/http_server.c:131-152",
|
|
"src/http_server.c:479-481",
|
|
"src/http_server.c:706-713",
|
|
"src/sources.c:28-84",
|
|
"src/sources.c:112-134",
|
|
"src/log_server.c:20-55"
|
|
],
|
|
"strict_read_only_preflight_suitable": false,
|
|
"reason": "It mutates active/log state and reads configuration without a side-effect guarantee."
|
|
},
|
|
{
|
|
"id": "get_ip",
|
|
"http_method": "GET",
|
|
"endpoint": "/getip",
|
|
"handler_function": "http_on_request -> pldmgr_get_local_ip",
|
|
"writes_server_active_flag": true,
|
|
"writes_autoload_triggered": false,
|
|
"reads_filesystem_or_configuration": false,
|
|
"categories": [
|
|
"B",
|
|
"C",
|
|
"D"
|
|
],
|
|
"other_effects": [
|
|
"queries network-interface state",
|
|
"network, kernel-counter, audit, cache, and scheduler effects remain unproven"
|
|
],
|
|
"source_references": [
|
|
"src/http_server.c:131-152",
|
|
"src/http_server.c:839-846",
|
|
"src/log_server.c:20-23"
|
|
],
|
|
"strict_read_only_preflight_suitable": false,
|
|
"reason": "The route mutates process state and cannot establish the required preflight evidence set."
|
|
}
|
|
],
|
|
"evidence_contract": [
|
|
{
|
|
"id": "firmware",
|
|
"required_fact": "Two authoritative current observations agree on the exact firmware identifier and revision.",
|
|
"possible_evidence_source": "Two separately reviewed authoritative device or user-visible sources; exact methods are unset.",
|
|
"confidence": "UNPROVEN",
|
|
"known_mutations": [],
|
|
"unknown_effects": [
|
|
"transport, UI, audit, cache, and platform-query effects"
|
|
],
|
|
"required_collector_identity": [
|
|
"name",
|
|
"version",
|
|
"origin",
|
|
"source commit",
|
|
"operation set",
|
|
"binary size and SHA-256 when code is involved"
|
|
],
|
|
"timeout_ms": null,
|
|
"fail_closed_result": "STOP",
|
|
"reviewer_output": [
|
|
"raw values",
|
|
"timestamps",
|
|
"source identities",
|
|
"exact agreement decision"
|
|
]
|
|
},
|
|
{
|
|
"id": "live_paths",
|
|
"required_fact": "Literal live paths, mount identities, object types, and no symlink traversal for both stock components.",
|
|
"possible_evidence_source": "A separately reviewed no-follow object metadata operation.",
|
|
"confidence": "UNPROVEN",
|
|
"known_mutations": [],
|
|
"unknown_effects": [
|
|
"atime, audit, metadata cache, mount, and namespace effects"
|
|
],
|
|
"required_collector_identity": [
|
|
"tool and source identity",
|
|
"exact no-follow operation",
|
|
"filesystem and mount options"
|
|
],
|
|
"timeout_ms": null,
|
|
"fail_closed_result": "STOP",
|
|
"reviewer_output": [
|
|
"literal paths",
|
|
"mount IDs",
|
|
"object types",
|
|
"symlink decisions"
|
|
]
|
|
},
|
|
{
|
|
"id": "object_identities",
|
|
"required_fact": "Stable pre/post inode or object IDs, device IDs, owner, group, mode, mtime, and ctime.",
|
|
"possible_evidence_source": "A side-effect-reviewed metadata collector using the same objects before and after all reads.",
|
|
"confidence": "UNPROVEN",
|
|
"known_mutations": [],
|
|
"unknown_effects": [
|
|
"metadata cache, audit, race, and concurrent process effects"
|
|
],
|
|
"required_collector_identity": [
|
|
"tool identity",
|
|
"object lookup semantics",
|
|
"race and symlink policy"
|
|
],
|
|
"timeout_ms": null,
|
|
"fail_closed_result": "STOP",
|
|
"reviewer_output": [
|
|
"complete pre/post metadata",
|
|
"stability decision",
|
|
"all raw errors"
|
|
]
|
|
},
|
|
{
|
|
"id": "file_sizes",
|
|
"required_fact": "Current live byte sizes equal the two reference sizes.",
|
|
"possible_evidence_source": "The same reviewed object handles used for identity collection.",
|
|
"confidence": "UNPROVEN",
|
|
"known_mutations": [],
|
|
"unknown_effects": [
|
|
"metadata cache, audit, and concurrent modification effects"
|
|
],
|
|
"required_collector_identity": [
|
|
"tool identity",
|
|
"same-object binding",
|
|
"pre/post race controls"
|
|
],
|
|
"timeout_ms": null,
|
|
"fail_closed_result": "STOP",
|
|
"reviewer_output": [
|
|
"raw sizes",
|
|
"reference comparison",
|
|
"object bindings"
|
|
]
|
|
},
|
|
{
|
|
"id": "sha256",
|
|
"required_fact": "SHA-256 of the exact current live bytes equals each reference digest.",
|
|
"possible_evidence_source": "A source-reviewed, no-follow, same-object streaming hash operation.",
|
|
"confidence": "UNPROVEN",
|
|
"known_mutations": [],
|
|
"unknown_effects": [
|
|
"atime, audit, page cache, scheduler, thermal, and concurrent modification effects"
|
|
],
|
|
"required_collector_identity": [
|
|
"hash implementation and version",
|
|
"source commit",
|
|
"binary size and SHA-256",
|
|
"object-open and race policy"
|
|
],
|
|
"timeout_ms": null,
|
|
"fail_closed_result": "STOP",
|
|
"reviewer_output": [
|
|
"bytes read",
|
|
"start/end time",
|
|
"digest",
|
|
"pre/post object identity",
|
|
"timeout and error state"
|
|
]
|
|
},
|
|
{
|
|
"id": "processes_services",
|
|
"required_fact": "Every relevant process and service maps to an executable object, parent, start time, status, and startup mechanism.",
|
|
"possible_evidence_source": "A separately reviewed process/service snapshot mechanism.",
|
|
"confidence": "UNPROVEN",
|
|
"known_mutations": [],
|
|
"unknown_effects": [
|
|
"kernel counters, audit, scheduling, locking, cache, and service-query effects"
|
|
],
|
|
"required_collector_identity": [
|
|
"tool and API identity",
|
|
"source commit",
|
|
"snapshot semantics"
|
|
],
|
|
"timeout_ms": null,
|
|
"fail_closed_result": "STOP",
|
|
"reviewer_output": [
|
|
"complete raw snapshot",
|
|
"executable mappings",
|
|
"unknown/unmapped entries"
|
|
]
|
|
},
|
|
{
|
|
"id": "listeners",
|
|
"required_fact": "Ports 8084, 8085, and 9021 have unambiguous owners, addresses, and binding types with no unexpected exposure.",
|
|
"possible_evidence_source": "A separately reviewed listener snapshot mechanism.",
|
|
"confidence": "UNPROVEN",
|
|
"known_mutations": [],
|
|
"unknown_effects": [
|
|
"network-stack counters, audit, cache, locking, and race effects"
|
|
],
|
|
"required_collector_identity": [
|
|
"tool and API identity",
|
|
"source commit",
|
|
"snapshot and ownership-mapping semantics"
|
|
],
|
|
"timeout_ms": null,
|
|
"fail_closed_result": "STOP",
|
|
"reviewer_output": [
|
|
"protocol/address/port rows",
|
|
"binding types",
|
|
"process and executable owners",
|
|
"exposure decision"
|
|
]
|
|
},
|
|
{
|
|
"id": "autoload",
|
|
"required_fact": "All authoritative autoload, startup, and retry sources prove that lifecycle and hardened artifacts are absent and automatic retry is disabled.",
|
|
"possible_evidence_source": "A collector distinct from the mutating stock /autoload_status route.",
|
|
"confidence": "UNPROVEN",
|
|
"known_mutations": [
|
|
"stock /autoload_status writes autoload_triggered and is inadmissible"
|
|
],
|
|
"unknown_effects": [
|
|
"atime, audit, cache, metadata, service-state, and race effects"
|
|
],
|
|
"required_collector_identity": [
|
|
"tool and source identity",
|
|
"complete authoritative source list",
|
|
"no functional-state mutation proof"
|
|
],
|
|
"timeout_ms": null,
|
|
"fail_closed_result": "STOP",
|
|
"reviewer_output": [
|
|
"raw safe representations",
|
|
"source object identities and hashes",
|
|
"absence decisions",
|
|
"retry decision"
|
|
]
|
|
},
|
|
{
|
|
"id": "rollback_files",
|
|
"required_fact": "Separate already-present byte-exact stock backups exist with unambiguous restore mappings.",
|
|
"possible_evidence_source": "The same admissible object/hash collector used for live files, applied to separate backup objects.",
|
|
"confidence": "UNPROVEN",
|
|
"known_mutations": [],
|
|
"unknown_effects": [
|
|
"atime, audit, page cache, metadata, mount, and race effects"
|
|
],
|
|
"required_collector_identity": [
|
|
"tool and source identity",
|
|
"same-object hash binding",
|
|
"separate-device/object proof"
|
|
],
|
|
"timeout_ms": null,
|
|
"fail_closed_result": "STOP",
|
|
"reviewer_output": [
|
|
"paths",
|
|
"object and mount IDs",
|
|
"sizes and digests",
|
|
"separation proof",
|
|
"restore mappings"
|
|
]
|
|
},
|
|
{
|
|
"id": "storage_precondition",
|
|
"required_fact": "A separate backup destination has at least 2447320 content bytes plus a separately assessed allocation reserve.",
|
|
"possible_evidence_source": "A separately reviewed filesystem capacity and mount identity operation.",
|
|
"confidence": "UNPROVEN",
|
|
"known_mutations": [],
|
|
"unknown_effects": [
|
|
"mount, audit, cache, allocation accounting, and concurrent-use effects"
|
|
],
|
|
"required_collector_identity": [
|
|
"tool and API identity",
|
|
"mount/device identity semantics",
|
|
"capacity accounting semantics"
|
|
],
|
|
"timeout_ms": null,
|
|
"fail_closed_result": "STOP",
|
|
"reviewer_output": [
|
|
"mount and device IDs",
|
|
"available bytes",
|
|
"reserve calculation",
|
|
"separation decision"
|
|
]
|
|
}
|
|
],
|
|
"blockers": [
|
|
{
|
|
"id": "exact_permission_quote_absent",
|
|
"severity": "STOP-RO"
|
|
},
|
|
{
|
|
"id": "collector_identity_absent",
|
|
"severity": "STOP-RO"
|
|
},
|
|
{
|
|
"id": "collector_side_effect_contract_absent",
|
|
"severity": "STOP-RO"
|
|
},
|
|
{
|
|
"id": "two_current_firmware_sources_absent",
|
|
"severity": "STOP-GATE"
|
|
},
|
|
{
|
|
"id": "live_object_identities_absent",
|
|
"severity": "STOP-GATE"
|
|
},
|
|
{
|
|
"id": "listeners_absent",
|
|
"severity": "STOP-GATE"
|
|
},
|
|
{
|
|
"id": "autoload_status_absent",
|
|
"severity": "STOP-GATE"
|
|
},
|
|
{
|
|
"id": "rollback_backups_absent",
|
|
"severity": "STOP-GATE"
|
|
},
|
|
{
|
|
"id": "payload_manager_backup_not_byte_exact_on_device",
|
|
"severity": "HARD_STOP-GATE"
|
|
},
|
|
{
|
|
"id": "unknown_result_is_stop",
|
|
"severity": "STOP"
|
|
},
|
|
{
|
|
"id": "timeout_is_stop",
|
|
"severity": "STOP"
|
|
},
|
|
{
|
|
"id": "deviation_is_stop",
|
|
"severity": "STOP"
|
|
},
|
|
{
|
|
"id": "automatic_retry_forbidden",
|
|
"severity": "STOP"
|
|
}
|
|
],
|
|
"prohibited_actions": [
|
|
"connect_to_ps5",
|
|
"probe_ip_port_or_device_interface",
|
|
"use_usb_or_removable_media",
|
|
"transfer_ps5_file",
|
|
"package_for_ps5_deployment",
|
|
"install_or_replace_target_component",
|
|
"execute_elf_or_payload",
|
|
"build_target_elf",
|
|
"start_cross_compiler",
|
|
"implement_or_build_collector",
|
|
"modify_payload_manager_production_code",
|
|
"modify_elfldr_production_code",
|
|
"modify_lifecycle_code",
|
|
"activate_or_modify_autoload",
|
|
"activate_retry",
|
|
"change_target_configuration",
|
|
"start_stop_or_signal_target_service_or_process",
|
|
"implement_gnm_videoout_sdl_audio_input_shaders_cores_or_retroarch",
|
|
"download_or_install_packages",
|
|
"contact_internet_gitea_or_other_remote",
|
|
"commit_or_push"
|
|
],
|
|
"future_activity": {
|
|
"mode": "design_only",
|
|
"bounded_observation_implemented": false,
|
|
"collector_selected": false,
|
|
"transfer_method_selected": false,
|
|
"execution_method_selected": false,
|
|
"new_explicit_authorization_required": true
|
|
},
|
|
"phase_separation": [
|
|
"offline_remediation",
|
|
"possible_future_bounded_observation_design",
|
|
"separate_observation_transfer_execution_authorization",
|
|
"observation_result_review",
|
|
"separate_mutating_rollback_preparation",
|
|
"separate_hardened_runtime_installation_authorization",
|
|
"installation_verification_and_rollback_evidence",
|
|
"separate_lifecycle_authorization",
|
|
"non_graphical_capability_probes",
|
|
"much_later_graphics_backend_and_retroarch"
|
|
],
|
|
"retroarch": {
|
|
"goal": "long_term_goal",
|
|
"active_phase": false,
|
|
"work_started": false,
|
|
"dependency_chain_only": true
|
|
}
|
|
}
|