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>
56 lines
1.8 KiB
Markdown
56 lines
1.8 KiB
Markdown
# 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
|