aps-agent/docs/round-66-solver-isolation-r...

226 lines
7.6 KiB
JSON

{
"generatedAt": "2026-08-03",
"round": 66,
"scope": "Windows solver process isolation and fail-closed",
"status": "PRE_TARGET_MERGE_LOCAL_SOURCE_AUDIT_PASS",
"protocolVersion": "aps.solver-process.v1",
"services": {
"backend": {
"url": "http://127.0.0.1:8003",
"pid": 21576,
"healthy": true
},
"frontend": {
"url": "http://127.0.0.1:5173",
"pid": 9808,
"healthy": true
}
},
"browser": {
"url": "http://127.0.0.1:5173/",
"title": "APS 智能排产工作台",
"rootPresent": true,
"consoleWarnings": 0,
"consoleErrors": 0
},
"regression": {
"focused": "80 passed, including bounded no-stdin-read timeout, slot identity, pipeline, status, digest and semantic fail-closed regressions",
"finalFullGolden": {
"status": "PASSED",
"passed": 1029,
"warnings": 2,
"durationSeconds": 300.23,
"fixedCountClaimed": true
},
"node": "60 passed",
"webBuild": "passed",
"qualityGates": {
"ruff": "passed",
"compile": "passed",
"nodeCheck": "passed",
"gitDiffCheck": "passed"
}
},
"healthyRuns": {
"copiedWorldJson": {
"source": "server/data/world.json",
"sourceSha256Before": "c6e7ff090719db505af5c3b0d8add376cba7843d6e6982a68c1ba02c342052fa",
"sourceSha256After": "c6e7ff090719db505af5c3b0d8add376cba7843d6e6982a68c1ba02c342052fa",
"sourceUnchanged": true,
"runs": [
{
"engine": "CP",
"solveStatus": "OPTIMAL",
"purchaseOrderCount": 1,
"workOrderCount": 10,
"operationSlotCount": 10,
"protocolVersion": "aps.solver-process.v1",
"runtimeSafe": true
},
{
"engine": "HYBRID",
"solveStatus": "OPTIMAL",
"purchaseOrderCount": 1,
"workOrderCount": 10,
"operationSlotCount": 10,
"protocolVersion": "aps.solver-process.v1",
"runtimeSafe": true
}
]
},
"sourceSidecarIsolatedChild": {
"entry": "server/sidecar.py --solver-child under Python -I",
"initialResult": "failed because isolated Python removed the source checkout import root",
"fix": "bootstrap only the resolved trusted source root before delegating to solver_worker",
"impactGate": "GitNexus LOW",
"regressionTest": "test_source_solver_child_entry_runs_under_isolated_python",
"finalResult": {
"engine": "CP",
"solveStatus": "OPTIMAL",
"purchaseOrderCount": 1,
"workOrderCount": 10,
"operationSlotCount": 10,
"protocolVersion": "aps.solver-process.v1",
"runtimeSafe": true
}
},
"copiedMomWorld": {
"source": "server/data/world-proj_712276ba.json",
"sourceSha256Before": "6b64adf6f29a43a518d89718610ee71fad60e86d3f38cd5cff26f1740cc53f7d",
"sourceSha256After": "6b64adf6f29a43a518d89718610ee71fad60e86d3f38cd5cff26f1740cc53f7d",
"sourceUnchanged": true,
"runs": [
{
"engine": "CP",
"solverStatus": "OPTIMAL",
"businessOutcome": "BLOCKED_BY_EXISTING_MASTER_DATA",
"purchaseOrderCount": 0,
"workOrderCount": 0,
"operationSlotCount": 1,
"conflictCount": 1,
"publishReady": false
},
{
"engine": "HYBRID",
"solverStatus": "OPTIMAL",
"businessOutcome": "BLOCKED_BY_EXISTING_MASTER_DATA",
"purchaseOrderCount": 0,
"workOrderCount": 0,
"operationSlotCount": 1,
"conflictCount": 1,
"publishReady": false
}
],
"factoryMasterDataCompletionClaimed": false
}
},
"failureInjection": {
"fatal": {
"engines": [
"CP",
"HYBRID"
],
"solveStatus": "UNAVAILABLE",
"purchaseOrderCount": 0,
"workOrderCount": 0,
"publishReady": false,
"parentProcessAlive": true,
"businessWorldAtomic": true,
"silentRuleFallback": false
},
"timeout": {
"elapsedSeconds": 15.633,
"solveStatus": "UNAVAILABLE",
"purchaseOrderCount": 0,
"workOrderCount": 0,
"publishReady": false,
"parentProcessAlive": true,
"businessWorldAtomic": true,
"grandchildProcessTreeReaped": true,
"silentRuleFallback": false
}
},
"runtimeProbes": {
"defaultPathAnaconda": {
"result": "STABLY_REJECTED",
"safe": false
},
"venv": {
"consecutiveRuns": 5,
"result": "PASSED"
},
"sidecarVenv": {
"consecutiveRuns": 5,
"result": "PASSED"
}
},
"dataIntegrity": {
"jsonBusinessSourcesUnchanged": true,
"serverDataGitStatusChanged": false,
"envGitStatusChanged": false,
"masterDbFileHashClaimedUnchanged": false,
"masterDbNote": "Runtime operations may update license last_seen and other operational metadata; file-level hash is not used as proof that business data stayed unchanged."
},
"packagingBoundary": {
"existingFrozenSidecarProbeChild": "PASSED_OLD_ENTRY_ONLY",
"sourceSidecarSolverChild": "PASSED_AFTER_TRUSTED_SOURCE_ROOT_BOOTSTRAP",
"newSolverChildPackagedVerification": false,
"frozenArtifactRebuilt": false,
"requiredAcceptance": "Rebuild the frozen sidecar, then verify packaged --solver-child on a clean Windows machine.",
"frozenSourceRouting": "sys.frozen automatically executes sys.executable --solver-child"
},
"externalBoundaries": [
"MOM copied data remains blocked by existing factory master-data gaps; this round does not claim plant master data is complete.",
"The existing frozen sidecar executable was not rebuilt and therefore does not prove that the new --solver-child code is packaged.",
"Clean Windows 10/11, signed artifact, Defender for Endpoint, real CI, and customer DLL/runtime validation remain post-build acceptance.",
"Real MES/WMS/SAP credentials, allowlists, and factory connectivity remain external acceptance inputs."
],
"delivery": {
"commit": false,
"push": false,
"merge": false,
"publish": false
},
"protocolIntegrity": {
"responseDigest": "REQUIRED_AND_RECOMPUTED_BY_PARENT",
"entryPermutationAndBusinessFields": "VALIDATED",
"pipelineAndSolveStatus": "VALIDATED",
"feasibleObjectiveGapAndOperationSlotCoverage": "VALIDATED",
"forgedOptimalEmptyResult": "REJECTED_AS_SOLVER_RESPONSE_INVALID",
"negativeCasesAdded": 16,
"operationSlotIndexDomainAndIdentity": "VALIDATED"
},
"audit": {
"firstReview": "FAIL",
"firstReviewBlockingFindings": [
"response digest and business-semantics false green",
"existing frozen executable does not contain new --solver-child entry"
],
"blockingFindingOneFixed": true,
"blockingFindingTwoSourcePathFixed": true,
"existingFrozenArtifactRebuilt": false,
"finalIndependentReview": "PASS",
"secondReview": "FAIL_THEN_FIXED",
"secondReviewBlockingFindings": [
"pipe-backed stdin could bypass timeout deadline on Windows",
"out-of-range operationSlots.orderIndex accepted"
],
"thirdReview": "FAIL_TEST_COVERAGE_THEN_FIXED",
"thirdReviewBlockingFindings": [
"missing wrong-pipeline regression",
"missing invalid-status regressions"
],
"finalReviewEvidence": {
"largeRequestBytes": 2097152,
"childNeverReadsStdinElapsedSeconds": 0.736,
"result": "SOLVER_PROCESS_TIMEOUT",
"focused": "80 passed, 1 warning"
}
},
"timeoutSupervision": {
"stdinTransport": "AUTO_DELETING_TEMPORARY_FILE",
"largeRequestChildNeverReadsStdin": "BOUNDED_TIMEOUT_PASSED",
"pipeBackpressureBypassPrevented": true
}
}