The diffusion update should advance the whole grid from a single snapshot. Finish the stepper so values written earlier in a sweep cannot influence cells processed later.
Build the implementation in C++ under /app, with /app/run.sh as its entry point. Read one JSON request from standard input and write one JSON result to standard output. Input has rectangular finite numeric grid and finite alpha in [0,0.25]. Update each interior cell to old + alpha*(north+south+east+west-4*old). Boundary cells stay fixed. Perform exactly one simultaneous step, round all outputs to six decimals. Empty grid is allowed. Reject ragged grids or invalid alpha.
Reject inputs that violate an explicit validation rule with exit status 2, no standard output, and {"error":"invalid_input"} on standard error. For valid input, exit with status 0. Keep the implementation reusable for new inputs; it must work offline and must not depend on the example data being the only data it receives.
Repair or replace the unfinished /app/run.sh and add source files under /app. Malformed JSON must use the same invalid-input response. Do not read /tests or /oracle from the application.