Adds a second bulk workflow alongside the firmware upgrader: changing
PON flooding mode (private<->auto) on OLT NNI services across many OLTs.
Flooding mode is encoded by the presence of the "PON FLOOD ID" key on
each OLT-CFG["NNI Networks"] entry (present = private, absent = auto).
private->auto deletes the key; auto->private sets it to 0. The rest of
the OLT-CFG is preserved (PUT-as-replace, same as ONU-CFG).
- src/mcms-api.js: listAllOltConfigs / getOltConfig / putOltConfig, plus
pure helpers floodModeOfNni, summarizeOltNniNetworks, planFloodChange
(planFloodChange clones and never mutates its input)
- main.js: api:listOlts + api:executeFloodChange IPC handlers
(concurrency 3, GET->plan->PUT, streams olt-flood:progress)
- preload.js: expose both channels + onFloodProgress
- renderer: OLT inspector view (#view-olts), two-step APPLY confirm,
auto-saved pon-olt-flood-*.csv result report
- Restore README.md (lost to a filesystem error) and document the new
feature in README.md and CLAUDE.md (new section 14)
Verified: npm run check passes; pure helpers unit-tested for the
no-mutation, idempotency, and rollback invariants.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>