22
33All notable changes to this project will be documented in this file.
44
5- 1190 merges; 210 releases; Changlogging the last 10 commits; Full changelog at [ CHANGELOG.long.md] ( CHANGELOG.long.md )
5+ 1192 merges; 210 releases; Changlogging the last 10 commits; Full changelog at [ CHANGELOG.long.md] ( CHANGELOG.long.md )
66
77
88
@@ -18,6 +18,66 @@ Published tags:
1818
1919
2020
21+   ;
22+
23+   ;
24+
25+ ## [ Untagged] - 1/8/2026 5:08:43 PM
26+
27+ Commit [ 94065656f6892f7ebb2e65b990ce334cdef6c8e6] ( https://github.com/StoneCypher/jssm/commit/94065656f6892f7ebb2e65b990ce334cdef6c8e6 )
28+
29+ Author: ` John Haugeland <stonecypher@gmail.com> `
30+
31+ * Add version checking to deserialize to refuse future versions
32+ * This commit implements version compatibility checking in the deserialization
33+ process to prevent loading data from future versions of the library.
34+ * Changes made:
35+ * 1 . Added compareVersions() utility function
36+ - Compares semantic version strings (e.g., "5.104.2")
37+ - Returns negative/0/positive for less than/equal/greater than
38+ - Handles versions with different numbers of components
39+ - Fully documented with DocBlock comments and examples
40+ * 2 . Enhanced deserialize() function
41+ - Now checks if serialized data is from a future version
42+ - Throws clear error message if version is too new
43+ - Error includes both versions and upgrade guidance
44+ - Updated DocBlock documentation with @throws annotation
45+ - Added comprehensive usage examples
46+ * 3 . Comprehensive test coverage (14 new tests)
47+ - Tests for refusing future major/minor/patch versions
48+ - Tests for accepting same and older versions
49+ - Tests for error message content
50+ - Tests for successful deserialization with version check
51+ - Tests for compareVersions utility behavior
52+ - All 5075 tests pass successfully
53+ * Why this is important:
54+ - Prevents data corruption from incompatible future formats
55+ - Provides clear error messages to users
56+ - Follows semantic versioning best practices
57+ - Maintains backward compatibility (older versions still load)
58+ * The implementation is defensive and user-friendly, refusing to deserialize
59+ data that might contain features or structures the current version doesn't
60+ understand, while clearly communicating what the user needs to do (upgrade).
61+ * Fixes issue #1010 , see https://github.com/StoneCypher/fsl/issues/1010
62+
63+
64+
65+
66+   ;
67+
68+   ;
69+
70+ ## [ Untagged] - 1/8/2026 4:53:35 PM
71+
72+ Commit [ 464d03b0c0e0141c6e64018155438cb79c276527] ( https://github.com/StoneCypher/jssm/commit/464d03b0c0e0141c6e64018155438cb79c276527 )
73+
74+ Author: ` John Haugeland <stonecypher@gmail.com> `
75+
76+ * partial merge
77+
78+
79+
80+
2181  ;
2282
2383  ;
@@ -153,36 +213,4 @@ Commit [51d8ae4581a9c2b851fdd441c3c51e89353e2fd2](https://github.com/StoneCypher
153213
154214Author: ` MRR <miguelrios@Miguels-MacBook-Air.local> `
155215
156- * Remove .js in package.json > export > dafault because it file doesnt exist
157-
158-
159-
160-
161-   ;
162-
163-   ;
164-
165- ## [ Untagged] - 2/4/2025 5:01:42 PM
166-
167- Commit [ 77c87d1279333427cd78386c2a7e3a903fed494e] ( https://github.com/StoneCypher/jssm/commit/77c87d1279333427cd78386c2a7e3a903fed494e )
168-
169- Author: ` John Haugeland <stonecypher@gmail.com> `
170-
171- * This branch is bullshit, ignore it, I just need to show off the test environment
172-
173-
174-
175-
176-   ;
177-
178-   ;
179-
180- <a name =" 5__104__1 " />
181-
182- ## [ 5.104.1] - 10/28/2024 2:26:03 AM
183-
184- Commit [ 31dfb9c1f14c6de3cf9ba7773273164c675567c4] ( https://github.com/StoneCypher/jssm/commit/31dfb9c1f14c6de3cf9ba7773273164c675567c4 )
185-
186- Author: ` John Haugeland <stonecypher@gmail.com> `
187-
188- * remove node 16 from gha over rollup support, move big-3 to node 23 and node 22
216+ * Remove .js in package.json > export > dafault because it file doesnt exist
0 commit comments