Refinement Implementation — Cycle 3
Refinement Implementation — Cycle 3
Summary
This cycle fixes one publish-safety bug and two contract/FS hardening gaps. Publish now refuses to proceed when unrelated files are already staged on the target branch, settings:update rejects unknown keys instead of silently stripping them, and storm-folder operations now require the configured tropical root to exist as a directory before mutating anything.
Implementation Details
| Finding | Status | Files Changed | Notes |
|---|---|---|---|
| C1: Publish on the target branch can commit unrelated pre-staged files | Fixed | src/shared/types/publish.ts, src/main/services/git/PublishService.ts, tests/main/publishService.test.ts |
Added a dedicated staged-conflict error path and a regression test for same-branch publishes with unrelated staged paths. |
I1: settings:update silently accepts unknown keys and reports success |
Fixed | src/main/ipc/handlers/settingsHandlers.ts, tests/main/settingsHandlers.test.ts |
Switched merged-config validation to reject unknown keys and added coverage for typoed payload fields. |
| I2: Storm folder creation recreates a missing tropical root instead of failing fast | Fixed | src/main/services/storms/StormFolderService.ts, tests/main/stormFolderService.test.ts |
Added root-directory verification before create/update/sync operations and covered the missing-root create path. |
Changes Summary
- Files modified: 7
- Files created: 0
- Findings addressed: 3 of 3
- Findings skipped: 0 (with reasons above)
IMPLEMENTATION_COMPLETE