You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+27-21Lines changed: 27 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,9 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [1.3.0] - 2026-03-21
11
+
10
12
### Added
11
13
12
-
-`FlashForgeA4Client` — dedicated Adventurer 4 Lite / Pro TCP client aligned with the documented M601 and M115 behavior
14
+
-`Endpoints.CAMERA_STREAM_PORT` - exported constant for the known FlashForge OEM MJPEG stream port
15
+
-`FiveMClient.detectCameraStream()` - probes `http://<printer-ip>:8080/?action=stream` and falls back from `HEAD` to `GET` when firmware does not report `cameraStreamUrl`
16
+
- Vitest coverage for camera stream probing success, `HEAD` timeout fallback, and no-camera behavior
17
+
-`FlashForgeA4Client` - dedicated Adventurer 4 Lite / Pro TCP client aligned with the documented M601 and M115 behavior
13
18
-`A4BuildVolume`, `A4FileEntry`, `A4PrinterInfo`, and `A4PrinterVariant` types for typed Adventurer 4 responses
14
19
15
20
### Changed
@@ -21,7 +26,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
21
26
22
27
### Added
23
28
24
-
-`FiveMClient.cameraStreamUrl`— caches the OEM camera stream URL reported by the printer in machine-info responses, cleared on dispose
29
+
-`FiveMClient.cameraStreamUrl`— caches the OEM camera stream URL reported by the printer in machine-info responses, cleared on dispose
25
30
26
31
### Changed
27
32
@@ -31,17 +36,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
31
36
32
37
### Added
33
38
34
-
-`FlashForgeA3Client`— full Adventurer 3 TCP client aligned with the documented G-code protocol, exported from the package root
35
-
-`A3GCodeController`— A3-specific G-code command controller with a dedicated instruction set
39
+
-`FlashForgeA3Client`— full Adventurer 3 TCP client aligned with the documented G-code protocol, exported from the package root
40
+
-`A3GCodeController`— A3-specific G-code command controller with a dedicated instruction set
36
41
-`A3BuildVolume`, `A3FileEntry`, `A3PrinterInfo`, `A3Thumbnail` types for typed Adventurer 3 responses
37
42
-`GCodeClientCapabilities` interface for capability-based client selection across printer generations
-`DiscoveredPrinter` and `DiscoveryOptions` TypeScript interfaces replacing loosely-typed discovery objects
40
-
-`DiscoveryErrors`— custom error class hierarchy for structured discovery error handling
45
+
-`DiscoveryErrors`— custom error class hierarchy for structured discovery error handling
41
46
- PID-based legacy model fallback in `PrinterDiscovery`: known USB product IDs (`0x0008` Adventurer 3, `0x001e` Adventurer 4 Pro) are used as a secondary hint when name heuristics are inconclusive
42
-
-`FlashForgeTcpClient.uploadFile()`— M28 / raw-binary / M29 file upload flow for legacy printers, with automatic filename normalization
43
-
-`FiveMClientConnectionOptions`— optional HTTP port and TCP port overrides for `FiveMClient` construction
44
-
-`FlashForgeTcpClientOptions`— optional TCP port override for `FlashForgeTcpClient` construction
47
+
-`FlashForgeTcpClient.uploadFile()`— M28 / raw-binary / M29 file upload flow for legacy printers, with automatic filename normalization
48
+
-`FiveMClientConnectionOptions`— optional HTTP port and TCP port overrides for `FiveMClient` construction
49
+
-`FlashForgeTcpClientOptions`— optional TCP port override for `FlashForgeTcpClient` construction
45
50
- Vitest test suite with unit coverage for discovery, client lifecycle, and response parsers
46
51
- Biome linter and formatter configuration
47
52
@@ -66,17 +71,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66
71
67
72
### Added
68
73
69
-
-`FiveMClient`— modern HTTP/JSON API client for Adventurer 5M and Adventurer 5M Pro
70
-
-`FlashForgeClient` / `FlashForgeTcpClient`— legacy TCP G-code client base
71
-
-`FlashForgePrinterDiscovery`— UDP multicast and broadcast discovery covering all FlashForge models
72
-
-`Control`, `Files`, `Info`, `JobControl`, `TempControl`— modern API action classes for printer control
73
-
-`Filament`— filament data accessor for modern printers
74
-
-`GCodeController`— G-code command controller for legacy TCP printers
75
-
-`GCodes`, `Commands`, `Endpoints`— G-code and HTTP API constant tables
76
-
-`EndstopStatus`, `LocationInfo`, `PrintStatus`, `TempInfo`, `ThumbnailInfo`— TCP response parsers and models
77
-
-`MachineInfo`— unified machine state model with AD5X material station support
78
-
-`FNetCode`, `NetworkUtils`— network response code constants and HTTP utility helpers
79
-
-`FFMachineInfo`, `FFPrinterDetail`, `MatlStationInfo`, `SlotInfo`— typed models for printer detail responses
74
+
-`FiveMClient`— modern HTTP/JSON API client for Adventurer 5M and Adventurer 5M Pro
75
+
-`FlashForgeClient` / `FlashForgeTcpClient`— legacy TCP G-code client base
76
+
-`FlashForgePrinterDiscovery`— UDP multicast and broadcast discovery covering all FlashForge models
77
+
-`Control`, `Files`, `Info`, `JobControl`, `TempControl`— modern API action classes for printer control
78
+
-`Filament`— filament data accessor for modern printers
79
+
-`GCodeController`— G-code command controller for legacy TCP printers
80
+
-`GCodes`, `Commands`, `Endpoints`— G-code and HTTP API constant tables
81
+
-`EndstopStatus`, `LocationInfo`, `PrintStatus`, `TempInfo`, `ThumbnailInfo`— TCP response parsers and models
82
+
-`MachineInfo`— unified machine state model with AD5X material station support
83
+
-`FNetCode`, `NetworkUtils`— network response code constants and HTTP utility helpers
84
+
-`FFMachineInfo`, `FFPrinterDetail`, `MatlStationInfo`, `SlotInfo`— typed models for printer detail responses
80
85
- AD5X material station support: `AD5XLocalJobParams`, `AD5XSingleColorJobParams`, `AD5XUploadParams`, `AD5XMaterialMapping`
81
86
-`Product` enum for modern printer model identification
82
87
- LED control for legacy TCP clients
@@ -85,14 +90,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
85
90
86
91
### Fixed
87
92
88
-
- Homing command (`G28`) incorrectly triggering a short timeout — extended to 15 s
93
+
- Homing command (`G28`) incorrectly triggering a short timeout — extended to 15 s
89
94
- M661 local file list response parsing rewritten to handle varied firmware delimiter patterns
90
95
-`Commands` / `Endpoints` constant lookup inconsistencies on initial port
91
96
-`FlashForgeTcpClient` shutdown race condition
92
97
- AD5X job info parsing returning incomplete data
93
98
-`NetworkUtils.isOk` usage corrected across response handlers
0 commit comments