Skip to content

Commit 85d9e00

Browse files
chore: update changelogs for v29.1.0 [skip ci]
1 parent 56f0487 commit 85d9e00

File tree

2 files changed

+194
-4
lines changed

2 files changed

+194
-4
lines changed

CHANGELOG.md

Lines changed: 100 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,111 @@ All notable changes to this project will be documented in this file.
77
## [Unreleased]
88

99

10+
[[56f0487](https://github.com/Nick2bad4u/FitFileViewer/commit/56f048711d1b2970113ea2ff32f56e075077f389)...
11+
[56f0487](https://github.com/Nick2bad4u/FitFileViewer/commit/56f048711d1b2970113ea2ff32f56e075077f389)]
12+
([compare](https://github.com/Nick2bad4u/FitFileViewer/compare/56f048711d1b2970113ea2ff32f56e075077f389...56f048711d1b2970113ea2ff32f56e075077f389))
13+
14+
15+
### 📦 Dependencies
16+
17+
- [dependency] Update version 29.1.0 [`(56f0487)`](https://github.com/Nick2bad4u/FitFileViewer/commit/56f048711d1b2970113ea2ff32f56e075077f389)
18+
19+
20+
21+
22+
23+
24+
## [29.1.0] - 2025-11-02
25+
26+
1027
[[bf4743f](https://github.com/Nick2bad4u/FitFileViewer/commit/bf4743ff6c81a48c13b52426962c2a2493ccde9d)...
11-
[bf4743f](https://github.com/Nick2bad4u/FitFileViewer/commit/bf4743ff6c81a48c13b52426962c2a2493ccde9d)]
12-
([compare](https://github.com/Nick2bad4u/FitFileViewer/compare/bf4743ff6c81a48c13b52426962c2a2493ccde9d...bf4743ff6c81a48c13b52426962c2a2493ccde9d))
28+
[7f56273](https://github.com/Nick2bad4u/FitFileViewer/commit/7f562733a8a47bf0670539f1de49f76d156c8fa2)]
29+
([compare](https://github.com/Nick2bad4u/FitFileViewer/compare/bf4743ff6c81a48c13b52426962c2a2493ccde9d...7f562733a8a47bf0670539f1de49f76d156c8fa2))
30+
31+
32+
### 💼 Other
33+
34+
- 🚜 [refactor] Centralize FIT file domain state, propagate file paths, and unify lifecycle flows
35+
- Delegate AppActions.loadFile to fitFileStateManager when available (startFileLoading + handleFileLoaded with { filePath, source }) and fall back to legacy slices when not present
36+
- decodeFitFile and showFitData now pass filePath + source to fitFileStateManager.handleFileLoaded
37+
- Add clearFitFileDomainState and use it from unloadFitFile; DragDropHandler prefers file.path and reports that path to state manager and showFitData
38+
39+
🚜 [refactor] Harden FitFileStateManager API and legacy compatibility
40+
- handleFileLoaded(fileData, options?) now updates both domain and legacy slices (fitFile.*, globalData, currentFile, charts/map/tables.isRendered), clears errors, sets progress and lastLoadTime
41+
- startFileLoading(...) mirrors legacy isLoading state and initializes loadingProgress
42+
43+
🚜 [refactor] Modularize data-point filter control for testability
44+
- Extract DOM wiring, preview logic and state utilities into elementFactory.js, metricsPreview.js and stateHelpers.js
45+
- Update createDataPointFilterControl to consume the helpers and keep existing UX while simplifying internals
46+
47+
🧪 [test] Stabilize and extend tests
48+
- Update many suites to mock stateManager.subscribe as vi.fn(() => () => {}) to provide unsubscribe no-ops and avoid leaks
49+
- Adjust tests to assert delegation to fitFileStateManager (startFileLoading, handleFileLoaded, clearFileState) and add coverage for new data-point filter modules (metricsPreview/stateHelpers)
50+
51+
📝 [docs] Add/update TypeScript declarations & sourcemaps
52+
- Add d.ts entries and maps for new modules (elementFactory, metricsPreview, stateHelpers, rendererLogger, control elements) and update fitFileState.d.ts signature for handleFileLoaded
53+
54+
🛠️ [fix] Minor UX/robustness tweaks
55+
- Ensure unload/clear flows call domain clearFileState instead of misusing handleFileLoaded(null)
56+
- Improve error handling around delegation to domain manager (try/catch + notifications)
57+
58+
Signed-off-by: Nick2bad4u <[email protected]> [`(7f56273)`](https://github.com/Nick2bad4u/FitFileViewer/commit/7f562733a8a47bf0670539f1de49f76d156c8fa2)
59+
60+
61+
- 🚜 [refactor] Consolidate renderer logging, standardize state + file-open flows, add UI control elements and internal prompts
62+
63+
- 🧹 [chore] Add renderer logging helper and unify logging
64+
- Add electron-app/utils/logging/rendererLogger.js and replace ad-hoc logWithContext usage across renderer modules (showFitData, showUpdateNotification, handleOpenFile); standardize log prefixes and structured context payloads.
65+
- 🛠️ [fix] Harden file-open flow (handleOpenFile)
66+
- Use AppActions for file-opening lifecycle, robustly manage isOpeningFileRef, validate showNotification, improve error messages and structured logging, propagate load errors to fit-file state manager via notifyFileLoadError/resolveFitFileStateManager, and ensure proper finalization (AppActions.setFileOpening toggle).
67+
- 🚜 [refactor] Centralize fit-file state integration
68+
- Replace direct stateManager imports with namespaced stateCore in utils/state/domain/fitFileState.js, consistently use stateCore.getState/setState/updateState, add typed subscribe wrapper, and expose globalThis.__FFV_fitFileStateManager for renderer integration.
69+
- ✨ [feat] Modularize data-point filter UI elements
70+
- Add electron-app/utils/ui/controls/dataPointFilterControlElements.js to build DOM for the map filter control and add eslint max-lines exemption in createDataPointFilterControl.js to support planned modularization.
71+
- ⚡ [perf] Improve LCOV normalization script
72+
- Update electron-app/scripts/normalize-coverage-lcov.mjs to use fileURLToPath, repoRoot POSIX normalization, filtered candidateDirs, safer copy/normalize logic and non-fatal behavior (return vs process.exit; set process.exitCode on failure).
73+
- 🧪 [test] Align tests and types to changes
74+
- Update test expectations and spies to match renamed state keys and logging behavior (showFitData.test.ts, handleOpenFile.complete.test.ts) and update handleOpenFile.d.ts to include optional context parameter.
75+
- 📝 [docs] Add internal agent prompts for auditing & TODO workflow
76+
- Add .github/agents/BeastMode.agent.md and prompts (.github/PROMPTS/Consistency-Check.prompt.md, .github/PROMPTS/Do-ToDo.prompt.md) to drive consistency audits and automated todo creation.
77+
- 🧹 [chore] Misc cleanup and consolidation
78+
- Remove duplicate local logWithContext from windowStateUtils.js and import central main logger, and apply minor integration/formatting adjustments across affected modules.
79+
80+
Signed-off-by: Nick2bad4u <[email protected]> [`(6622506)`](https://github.com/Nick2bad4u/FitFileViewer/commit/6622506a37aee2fbb04592be7dc52f5510bad0a4)
81+
82+
83+
- 🔧 [build] [dependency] Update package manager and upgrade dependencies
84+
- packageManager: [email protected][email protected]
85+
- Upgrade core/runtime deps: electron 38.2.0 → 39.0.0, maplibre-gl → 5.10.0, chart.js → 4.5.1
86+
- Upgrade test/tooling deps: vitest & @vitest/ui → 4.0.6, @vitest/coverage-v8 → 4.0.6
87+
- Upgrade lint/format tooling and plugins (eslint, @typescript-eslint, @eslint/js/@eslint/css, prettier plugins, stylelint-config-standard)
88+
- Upgrade GitHub Actions libs and other dev deps (e.g. @actions/artifact, @actions/attest, @actions/http-client, @actions/io, jsdom, globals)
89+
- See electron-app/package.json for full list of version bumps and alignment
90+
91+
🧹 [chore] Add updateDeps script
92+
- Add "updateDeps": "npx ncu -i --install never && npm install --force" to electron-app/package.json to simplify automated dependency updates
93+
94+
🧹 [chore] Update .gitignore
95+
- Ignore todo.md to prevent local TODO notes from being committed
96+
97+
Signed-off-by: Nick2bad4u <[email protected]> [`(39dd904)`](https://github.com/Nick2bad4u/FitFileViewer/commit/39dd9045fd3db18ec27457636387d9a325254abd)
98+
99+
100+
- Update metrics.repository.svg - [Skip GitHub Action] [`(4401881)`](https://github.com/Nick2bad4u/FitFileViewer/commit/440188176701669d991281ae0bbedd4cdf155b2c)
101+
102+
103+
104+
### ⚙️ Miscellaneous Tasks
105+
106+
- Update changelogs for v29.0.0 [skip ci] [`(76c3c4a)`](https://github.com/Nick2bad4u/FitFileViewer/commit/76c3c4aa52e835461da615e5bb8edfa4e84e23b2)
107+
13108

14109

15110
### 📦 Dependencies
16111

112+
- *(deps)* [dependency] Update dependency group (#165) [`(3de21d6)`](https://github.com/Nick2bad4u/FitFileViewer/commit/3de21d6bd114a3cf0268db7672cbe656f7639744)
113+
114+
17115
- [dependency] Update version 29.0.0 [`(bf4743f)`](https://github.com/Nick2bad4u/FitFileViewer/commit/bf4743ff6c81a48c13b52426962c2a2493ccde9d)
18116

19117

electron-app/CHANGELOG.md

Lines changed: 94 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,101 @@ All notable changes to this project will be documented in this file.
77
## [Unreleased]
88

99

10+
[[56f0487](https://github.com/Nick2bad4u/FitFileViewer/commit/56f048711d1b2970113ea2ff32f56e075077f389)...
11+
[56f0487](https://github.com/Nick2bad4u/FitFileViewer/commit/56f048711d1b2970113ea2ff32f56e075077f389)]
12+
([compare](https://github.com/Nick2bad4u/FitFileViewer/compare/56f048711d1b2970113ea2ff32f56e075077f389...56f048711d1b2970113ea2ff32f56e075077f389))
13+
14+
15+
### 📦 Dependencies
16+
17+
- [dependency] Update version 29.1.0 [`(56f0487)`](https://github.com/Nick2bad4u/FitFileViewer/commit/56f048711d1b2970113ea2ff32f56e075077f389)
18+
19+
20+
21+
22+
23+
24+
## [29.1.0] - 2025-11-02
25+
26+
1027
[[bf4743f](https://github.com/Nick2bad4u/FitFileViewer/commit/bf4743ff6c81a48c13b52426962c2a2493ccde9d)...
11-
[bf4743f](https://github.com/Nick2bad4u/FitFileViewer/commit/bf4743ff6c81a48c13b52426962c2a2493ccde9d)]
12-
([compare](https://github.com/Nick2bad4u/FitFileViewer/compare/bf4743ff6c81a48c13b52426962c2a2493ccde9d...bf4743ff6c81a48c13b52426962c2a2493ccde9d))
28+
[7f56273](https://github.com/Nick2bad4u/FitFileViewer/commit/7f562733a8a47bf0670539f1de49f76d156c8fa2)]
29+
([compare](https://github.com/Nick2bad4u/FitFileViewer/compare/bf4743ff6c81a48c13b52426962c2a2493ccde9d...7f562733a8a47bf0670539f1de49f76d156c8fa2))
30+
31+
32+
### 💼 Other
33+
34+
- 🚜 [refactor] Centralize FIT file domain state, propagate file paths, and unify lifecycle flows
35+
- Delegate AppActions.loadFile to fitFileStateManager when available (startFileLoading + handleFileLoaded with { filePath, source }) and fall back to legacy slices when not present
36+
- decodeFitFile and showFitData now pass filePath + source to fitFileStateManager.handleFileLoaded
37+
- Add clearFitFileDomainState and use it from unloadFitFile; DragDropHandler prefers file.path and reports that path to state manager and showFitData
38+
39+
🚜 [refactor] Harden FitFileStateManager API and legacy compatibility
40+
- handleFileLoaded(fileData, options?) now updates both domain and legacy slices (fitFile.*, globalData, currentFile, charts/map/tables.isRendered), clears errors, sets progress and lastLoadTime
41+
- startFileLoading(...) mirrors legacy isLoading state and initializes loadingProgress
42+
43+
🚜 [refactor] Modularize data-point filter control for testability
44+
- Extract DOM wiring, preview logic and state utilities into elementFactory.js, metricsPreview.js and stateHelpers.js
45+
- Update createDataPointFilterControl to consume the helpers and keep existing UX while simplifying internals
46+
47+
🧪 [test] Stabilize and extend tests
48+
- Update many suites to mock stateManager.subscribe as vi.fn(() => () => {}) to provide unsubscribe no-ops and avoid leaks
49+
- Adjust tests to assert delegation to fitFileStateManager (startFileLoading, handleFileLoaded, clearFileState) and add coverage for new data-point filter modules (metricsPreview/stateHelpers)
50+
51+
📝 [docs] Add/update TypeScript declarations & sourcemaps
52+
- Add d.ts entries and maps for new modules (elementFactory, metricsPreview, stateHelpers, rendererLogger, control elements) and update fitFileState.d.ts signature for handleFileLoaded
53+
54+
🛠️ [fix] Minor UX/robustness tweaks
55+
- Ensure unload/clear flows call domain clearFileState instead of misusing handleFileLoaded(null)
56+
- Improve error handling around delegation to domain manager (try/catch + notifications)
57+
58+
Signed-off-by: Nick2bad4u <[email protected]> [`(7f56273)`](https://github.com/Nick2bad4u/FitFileViewer/commit/7f562733a8a47bf0670539f1de49f76d156c8fa2)
59+
60+
61+
- 🚜 [refactor] Consolidate renderer logging, standardize state + file-open flows, add UI control elements and internal prompts
62+
63+
- 🧹 [chore] Add renderer logging helper and unify logging
64+
- Add electron-app/utils/logging/rendererLogger.js and replace ad-hoc logWithContext usage across renderer modules (showFitData, showUpdateNotification, handleOpenFile); standardize log prefixes and structured context payloads.
65+
- 🛠️ [fix] Harden file-open flow (handleOpenFile)
66+
- Use AppActions for file-opening lifecycle, robustly manage isOpeningFileRef, validate showNotification, improve error messages and structured logging, propagate load errors to fit-file state manager via notifyFileLoadError/resolveFitFileStateManager, and ensure proper finalization (AppActions.setFileOpening toggle).
67+
- 🚜 [refactor] Centralize fit-file state integration
68+
- Replace direct stateManager imports with namespaced stateCore in utils/state/domain/fitFileState.js, consistently use stateCore.getState/setState/updateState, add typed subscribe wrapper, and expose globalThis.__FFV_fitFileStateManager for renderer integration.
69+
-[feat] Modularize data-point filter UI elements
70+
- Add electron-app/utils/ui/controls/dataPointFilterControlElements.js to build DOM for the map filter control and add eslint max-lines exemption in createDataPointFilterControl.js to support planned modularization.
71+
-[perf] Improve LCOV normalization script
72+
- Update electron-app/scripts/normalize-coverage-lcov.mjs to use fileURLToPath, repoRoot POSIX normalization, filtered candidateDirs, safer copy/normalize logic and non-fatal behavior (return vs process.exit; set process.exitCode on failure).
73+
- 🧪 [test] Align tests and types to changes
74+
- Update test expectations and spies to match renamed state keys and logging behavior (showFitData.test.ts, handleOpenFile.complete.test.ts) and update handleOpenFile.d.ts to include optional context parameter.
75+
- 📝 [docs] Add internal agent prompts for auditing & TODO workflow
76+
- Add .github/agents/BeastMode.agent.md and prompts (.github/PROMPTS/Consistency-Check.prompt.md, .github/PROMPTS/Do-ToDo.prompt.md) to drive consistency audits and automated todo creation.
77+
- 🧹 [chore] Misc cleanup and consolidation
78+
- Remove duplicate local logWithContext from windowStateUtils.js and import central main logger, and apply minor integration/formatting adjustments across affected modules.
79+
80+
Signed-off-by: Nick2bad4u <[email protected]> [`(6622506)`](https://github.com/Nick2bad4u/FitFileViewer/commit/6622506a37aee2fbb04592be7dc52f5510bad0a4)
81+
82+
83+
- 🔧 [build] [dependency] Update package manager and upgrade dependencies
84+
- packageManager: [email protected][email protected]
85+
- Upgrade core/runtime deps: electron 38.2.0 → 39.0.0, maplibre-gl → 5.10.0, chart.js → 4.5.1
86+
- Upgrade test/tooling deps: vitest & @vitest/ui → 4.0.6, @vitest/coverage-v8 → 4.0.6
87+
- Upgrade lint/format tooling and plugins (eslint, @typescript-eslint, @eslint/js/@eslint/css, prettier plugins, stylelint-config-standard)
88+
- Upgrade GitHub Actions libs and other dev deps (e.g. @actions/artifact, @actions/attest, @actions/http-client, @actions/io, jsdom, globals)
89+
- See electron-app/package.json for full list of version bumps and alignment
90+
91+
🧹 [chore] Add updateDeps script
92+
- Add "updateDeps": "npx ncu -i --install never && npm install --force" to electron-app/package.json to simplify automated dependency updates
93+
94+
🧹 [chore] Update .gitignore
95+
- Ignore todo.md to prevent local TODO notes from being committed
96+
97+
Signed-off-by: Nick2bad4u <[email protected]> [`(39dd904)`](https://github.com/Nick2bad4u/FitFileViewer/commit/39dd9045fd3db18ec27457636387d9a325254abd)
98+
99+
100+
101+
### ⚙️ Miscellaneous Tasks
102+
103+
- Update changelogs for v29.0.0 [skip ci] [`(76c3c4a)`](https://github.com/Nick2bad4u/FitFileViewer/commit/76c3c4aa52e835461da615e5bb8edfa4e84e23b2)
104+
13105

14106

15107
### 📦 Dependencies

0 commit comments

Comments
 (0)