Phase 11 complete: - ArgParser.cs: CLI parsing extracted from Program.cs (pure static method) - Program.cs: no static state; Scarica/Invia take explicit InputArgs param - Program.cs: try/finally with connected flag — fixes connection leak on exception - Program.cs: PrintErrors helper surfaces CncResult.Errors on every failure - AesCrypt.cs: deleted (dead code, zero references) - NcProgramManager.csproj: AesCrypt.cs → ArgParser.cs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.7 KiB
2.7 KiB
| phase | plan | subsystem | tags | requires | provides | affects | tech-stack | key-files | key-decisions | patterns-established | duration | started | completed | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 11-refactor | 01 | cli |
|
|
|
|
|
|
|
~15min | 2026-05-17T00:00:00Z | 2026-05-17T00:00:00Z |
Phase 11 Plan 01: ArgParser extraction + AesCrypt removal
Extracted all CLI arg parsing into ArgParser.cs; Program.cs no longer holds static state or inline regex; dead AesCrypt.cs deleted.
Performance
| Metric | Value |
|---|---|
| Duration | ~15min |
| Tasks | 3 completed |
| Files modified | 3 (+ 1 created, 1 deleted) |
Acceptance Criteria Results
| Criterion | Status | Notes |
|---|---|---|
| AC-1: ArgParser extracted | Pass | ArgParser.Parse(string[]) → InputArgs — all parsing logic moved |
| AC-2: Program.cs simplified | Pass | No inline regex, no static inputArgs field; delegates to ArgParser.Parse |
| AC-3: AesCrypt deleted | Pass | File deleted; csproj entry replaced with ArgParser.cs; 0 refs in codebase |
Files Created/Modified
| File | Change | Purpose |
|---|---|---|
ArgParser.cs |
Created | Static class, single Parse(string[]) → InputArgs method |
Program.cs |
Modified | inputArgs now local var in Main; Scarica/Invia/VediErrore accept InputArgs param |
NcProgramManager.csproj |
Modified | Replaced AesCrypt.cs compile entry with ArgParser.cs |
AesCrypt.cs |
Deleted | Dead code — no references anywhere in project |
Decisions Made
| Decision | Rationale | Impact |
|---|---|---|
VediErrore takes bool debugMode param |
Removes last dependency on static state | Cleaner signature; no behaviour change |
Scarica/Invia take explicit InputArgs param |
Eliminates static field coupling | Methods now testable in isolation |
Deviations from Plan
None — plan executed exactly as written.
Next Phase Readiness
Ready:
Program.csclean entry point — easy to add error surfacing in 11-02ArgParserisolated — can be unit-tested independently
Concerns: None.
Blockers: None.
Phase: 11-refactor, Plan: 01 Completed: 2026-05-17