v0.5.0 — delivered:
┌─────────────────────────┬────────┬─────────────────────────────────────────────────────────────────────────────────────┐
│ Feature │ Status │ Key detail │ ├─────────────────────────┼────────┼─────────────────────────────────────────────────────────────────────────────────────┤
│ 1D Bessel spectral │ ✅ │ recip_space_1d with K₀/K₁ branch-cut handling; physics bug (c_cross missing /ρ) │
│ Ewald sum │ │ caught and fixed before tag │
├─────────────────────────┼────────┼─────────────────────────────────────────────────────────────────────────────────────┤
│ FFT block-Toeplitz │ ✅ │ O(N log N) for regular cubic grids; gated on use_fcd = false + no lattice/substrate │
│ matvec │ │ │
├─────────────────────────┼────────┼─────────────────────────────────────────────────────────────────────────────────────┤
│ GPU matrix assembly │ ✅ │ WGSL @workgroup_size(16,16), diagonal patched via write_buffer; dispatch path made │
│ shader │ │ reachable after initial review │
├─────────────────────────┼────────┼─────────────────────────────────────────────────────────────────────────────────────┤
│ Sommerfeld substrate │ ✅ │ SommerfeldGreens, SubstrateRuntime enum, G7K15 quadrature │
└─────────────────────────┴────────┴─────────────────────────────────────────────────────────────────────────────────────┘