6.3 KiB
6.3 KiB
Project Issues Log
Enhancements and known issues discovered during execution and codebase analysis.
Open Issues
ISS-001: MachineFingerprint null dereference on unusual hardware ✅ CLOSED
- Closed: 2026-05-18 (Phase 13, commit
4cd7715) - Fix applied:
?.Value?.ToString() ?? string.Emptyon both WMI reads inLicensing/MachineFingerprint.cs
ISS-002: Blocking async calls at CLI boundary
- Discovered: Codebase analysis (2026-05-18)
- Type: Refactoring / Reliability
- Description: 56+
.GetAwaiter().GetResult()calls inProgram.csand machine classes block the thread pool. .NET 4.7.2 supportsasync Task<int> Main. Risk of deadlock in certain SynchronizationContext scenarios. - Files:
Program.cs(lines 90, 101, 122, 142, 166, 200, 221, 240, 262) - Fix: Refactor
Maintostatic async Task<int> Main(string[] args), propagateawaitthroughout - Impact: Medium — currently works, but fragile; blocks async benefits
- Effort: Medium (1-2 hours)
- Suggested phase: Future refactor phase
ISS-003: Silent exception handlers swallow failures
- Discovered: Codebase analysis (2026-05-18)
- Type: Reliability / Observability
- Description: 23
try { ... } catch { }blocks swallow exceptions silently. Disconnect/cleanup paths fail with no trace. Production issues become undiagnosable. - Files:
Cnc/Fanuc/FanucMachine.cs,Cnc/Siemens/SiemensMachine.cs,Cnc/Heidenhain/HeidenhainMachine.cs,Cnc/Heidenhain/Lsv2Client.cs - Fix: At minimum
catch (Exception ex) { /* log or Debug.WriteLine */ }— better with logging framework (ISS-004) - Impact: High — hidden failures, connection leaks masked
- Effort: Quick-Medium (dependent on ISS-004)
- Suggested phase: Same phase as ISS-004
ISS-004: No structured logging framework
- Discovered: Codebase analysis (2026-05-18)
- Type: Observability / Reliability
- Description: Entire codebase uses
Console.WriteLine(98+ calls). No log levels, no timestamps, no file output. Production issues undiagnosable without attaching a terminal. - Files:
Program.cs, all machine implementations - Fix: Add Serilog or NLog. Replace
Console.WriteLinewith leveled logging. Add request/response tracing for FOCAS/LSV2/FTP operations. - Impact: Medium — works today, but operational burden grows with deployments
- Effort: Substantial (half day+)
- Suggested phase: v0.4 Operational Quality
ISS-005: SHA256 crypto provider not disposed ✅ CLOSED
- Closed: 2026-05-18 (Phase 13, commit
4cd7715) - Fix applied:
SHA256CryptoServiceProviderwrapped inusingblock inLicensing/LicenseValidator.cs
ISS-006: LSV2 connect timeout doesn't abort hung task ✅ CLOSED
- Closed: 2026-05-18 (Phase 13, commit
4cd7715) - Fix applied:
_tcp.Close()called in timeout branch ofConnect()inCnc/Heidenhain/Lsv2Client.cs— aborts pending socket task
ISS-007: Integration tests use hardcoded IPs ✅ CLOSED
- Closed: 2026-05-18 (Phase 14)
- Fix applied:
HardwareTestHelper.GetIpOrSkip(envVarName)readsHEIDENHAIN_IP/SIEMENS_IP/MITSUBISHI_IP;Assert.Ignorefires when env var not set. Hardware tests[Category("Hardware")]skip in standard CI; stub-based tests unaffected.
ISS-008: MachineFingerprint — full license flow unverified on real hardware
- Discovered: STATE.md deferred issues (ongoing)
- Partial fix: 2026-05-18 (Phase 14) —
LicenseFileedge-case tests added;Validate_EmptyFingerprint_ReturnsFalseconfirms validator is safe against empty input - Remaining: Full end-to-end (WMI fingerprint → sign → deploy → validate) requires real Windows machine run with
HEIDENHAIN_IPetc. set - Type: Testing
- Files:
Licensing/MachineFingerprint.cs,Licensing/LicenseFile.cs - Impact: High — license flow unverified on hardware before customer delivery
- Effort: Quick — scaffold is in place; just needs real hardware
ISS-009: Heidenhain ReadActiveProgramAsync / SelectMainProgram not implemented
- Discovered: STATE.md deferred issues (2026-05-13)
- Type: Feature / Incomplete Implementation
- Description:
HeidenhainMachine.ReadActiveProgramAsync()andSelectMainProgramAsync()return hard-codedCncResult.Fail("Not supported via basic LSV2"). LSV2 may support these via additional commands not yet implemented. - Files:
Cnc/Heidenhain/HeidenhainMachine.cs - Impact: Low — current use case requires explicit program path; feature unused
- Effort: Substantial (requires LSV2 spec research + hardware testing)
- Suggested phase: Heidenhain advanced features (future)
ISS-010: Siemens ReadActiveProgramAsync / SelectMainProgram not implemented
- Discovered: STATE.md deferred issues (2026-05-13)
- Type: Feature / Incomplete Implementation
- Description: Same as ISS-009 for Siemens. FTP protocol may not expose active program info natively.
- Files:
Cnc/Siemens/SiemensMachine.cs - Impact: Low — current use case requires explicit program path
- Effort: Substantial (requires Sinumerik FTP extension research)
- Suggested phase: Siemens advanced features (future)
ISS-011: Obsolete crypto APIs (RSACryptoServiceProvider, SHA256CryptoServiceProvider)
- Discovered: Codebase analysis (2026-05-18)
- Type: Technical Debt
- Description: Both classes marked obsolete in .NET 6+. Currently safe on .NET 4.7.2 (only warnings), but blocks future framework upgrade path.
- Files:
Licensing/LicenseValidator.cs - Fix (when upgrading):
RSA.Create()+rsa.VerifyData(data, sig, HashAlgorithmName.SHA256, RSASignaturePadding.Pkcs1)— eliminates both obsolete types - Impact: Low — no runtime impact on .NET 4.7.2
- Effort: Quick (when .NET version is upgraded)
- Suggested phase: Future .NET upgrade phase
Closed Issues
| ID | Summary | Phase | Commit |
|---|---|---|---|
| ISS-001 | MachineFingerprint null dereference on unusual hardware | 13 | 4cd7715 |
| ISS-005 | SHA256 crypto provider not disposed | 13 | 4cd7715 |
| ISS-006 | LSV2 connect timeout doesn't abort hung task | 13 | 4cd7715 |
| ISS-007 | Integration tests use hardcoded IPs | 14 | 32f68c5 |
Last updated: 2026-05-18 Sources: STATE.md deferred issues + CONCERNS.md codebase analysis