Skip to content

Quality pass: configuration & settings#88

Merged
dhilgaertner merged 1 commit intomainfrom
feature/crow-67-config-settings-quality
Apr 6, 2026
Merged

Quality pass: configuration & settings#88
dhilgaertner merged 1 commit intomainfrom
feature/crow-67-config-settings-quality

Conversation

@dhilgaertner
Copy link
Copy Markdown
Contributor

@dhilgaertner dhilgaertner commented Apr 5, 2026

Summary

  • Extract shared AppSupportDirectory for rm-ai-ide migration (was duplicated in ConfigStore and JSONStore)
  • Consolidate WorkspaceEditorView and WorkspaceFormSheet into shared WorkspaceFormView
  • Add workspace name validation (empty, duplicate, filesystem-unsafe chars) and branch prefix validation against git-ref-format rules
  • Add derivedCLI computed property, error logging in ConfigStore/AppDelegate, 0o700 permissions on .claude/ directory
  • Add documentation to all config models and ConfigStore
  • Add 31 new tests across CrowCore and CrowPersistence packages

Test plan

  • make build compiles cleanly
  • swift test --package-path Packages/CrowCore — 26 tests pass
  • swift test --package-path Packages/CrowPersistence — 5 tests pass
  • Manual: Settings window (Cmd+,) — General/Workspaces/Notifications tabs work
  • Manual: Add workspace with duplicate name — validation error shown
  • Manual: Enter invalid branch prefix — warning shown

Closes #67

🤖 Generated with Claude Code

Refactor, validate, document, and test the config/settings subsystem.

- Extract shared AppSupportDirectory for rm-ai-ide migration (was duplicated
  in ConfigStore and JSONStore)
- Consolidate WorkspaceEditorView and WorkspaceFormSheet into WorkspaceFormView
- Add workspace name validation (empty, duplicate, filesystem-unsafe chars)
- Add branch prefix validation against git-ref-format rules
- Add derivedCLI computed property to WorkspaceInfo
- Log config decode/save errors instead of silently swallowing with try?
- Set 0o700 permissions on .claude/ directory (was only setting file perms)
- Add Equatable conformance to AppConfig and its nested types
- Add documentation to models and ConfigStore
- Add 31 new tests across CrowCore and CrowPersistence packages

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@dhilgaertner dhilgaertner force-pushed the feature/crow-67-config-settings-quality branch from 16b0bc2 to a400d60 Compare April 6, 2026 00:37
@dhilgaertner dhilgaertner requested a review from dgershman as a code owner April 6, 2026 00:37
@dhilgaertner dhilgaertner merged commit b16b9a0 into main Apr 6, 2026
2 checks passed
@dhilgaertner dhilgaertner deleted the feature/crow-67-config-settings-quality branch April 6, 2026 00:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Quality Pass: Configuration & Settings

1 participant