nc_program_manager/.paul/phases/16-fagor-ftp/16-02-PLAN.md
dtrentin 68c5a555f3 chore(paul): close v0.6 Fagor Support milestone, log ISS-012..017
PAUL bookkeeping per chiusura milestone v0.6 (Phase 16: 16-01 + 16-02):
- STATE.md — sezione v0.6 + Phase 16-01 + 16-02 fixup post-review.
- ROADMAP.md — Milestone v0.6 + Phase 16 (2 plans).
- paul.json — version 0.6.0, milestone Fagor Support, phase 16
  fagor-ftp.
- phases/16-fagor-ftp/ — 16-01-PLAN.md + 16-01-SUMMARY.md (impl
  iniziale), 16-02-PLAN.md + 16-02-SUMMARY.md (fix post-review).
- ISSUES.md — ISS-012..ISS-017 derivati da code review v0.6:
  - ISS-012: Fagor ReadActiveProgramAsync/SelectMainProgram non impl
  - ISS-013: Program.Invia accoppia FanucProgram a tutti i produttori
  - ISS-014: ResolvePath null-folder NRE pattern (Siemens/Mitsubishi/Fagor)
  - ISS-015: encoding source-file rischio codepage Windows non-UTF8
  - ISS-016: WriteProgramAsync validator riceve path se Name null
  - ISS-017: FagorFtpClient.Ping swallow senza log

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-25 20:27:44 +02:00

1.8 KiB

Phase 16-02 — Fagor Fixup (Post-Review)

Origine

Code review post-implementazione v0.6 Fagor Support ha identificato:

Critical:

  1. NcProgramValidator case Fagor rifiuta . nel nome → default ProgramExtension = ".nc" contraddice regola validator
  2. (Pre-existing, deferito) Program.Invia accoppia FanucProgram parsing a tutti i produttori

Major:

  1. (Deferito) ResolvePath NRE su null folder
  2. (Deferito) Validator riceve path se program.Name null
  3. CncMachineFactoryTests manca case Fagor
  4. Behavior change Heidenhain/Siemens (esenzione check generic) non lockato in test
  5. Letterali ñ in NcProgramValidator.cs rischio codepage Windows non-UTF8

Scope

Fix immediato per:

  • Critical #1 — bug introdotto v0.6
  • Major #3 — test mancante
  • Major #4 — lock comportamento con test
  • Major #5 — escape ññ

Deferiti a ISS:

  • Critical #2 → ISS-013
  • Major #1 → ISS-014
  • Major #2 → ISS-016

Tasks

  1. Riscrittura case Fagor in ValidateName: split stem/extension, whitelist su stem
  2. Escape 'ñ''ñ' (codice + messaggio errore)
  3. 4 nuovi test Fagor coverage estensioni
  4. 6 nuovi test lock Siemens/Heidenhain
  5. Create_Fagor_ReturnsFagorMachine in CncMachineFactoryTests
  6. ISSUES.md updated con ISS-012..ISS-017

Files modificati

  • Cnc/NcProgramValidator.cs
  • NcProgramManager.Tests/Unit/NcProgramValidatorTests.cs
  • NcProgramManager.Tests/Unit/CncMachineFactoryTests.cs
  • .paul/ISSUES.md
  • .paul/STATE.md
  • .paul/ROADMAP.md
  • .paul/paul.json
  • .paul/phases/16-fagor-ftp/16-02-PLAN.md (questo file)
  • .paul/phases/16-fagor-ftp/16-02-SUMMARY.md

Vincoli

  • Nessuna modifica .csproj (file già listati in v0.6 16-01)
  • Pattern Siemens preservato come reference (no cross-impact)
  • Tests esistenti pre-refactor preservati o migrati esplicitamente