# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added
- Initial project setup with Thinking in Systems framework
- Basic project structure and configuration files
- Development environment setup

### Changed
- Nothing yet

### Deprecated
- Nothing yet

### Removed
- Nothing yet

### Fixed
- Nothing yet

### Security
- Nothing yet

---

<!-- 
## Version Template (copy for new releases)

## [X.Y.Z] - YYYY-MM-DD

### Added
- New features that have been added

### Changed
- Changes in existing functionality

### Deprecated
- Features that will be removed in upcoming releases

### Removed
- Features that have been removed

### Fixed
- Any bug fixes

### Security
- Security vulnerabilities that have been patched

-->

<!-- Example Entry -->
<!-- 
## [1.0.0] - 2024-12-30

### Added
- User authentication with Supabase
- Dashboard with session tracking
- Git commit integration
- Real-time sync across devices
- Dark mode support
- Export data to CSV/JSON
- 15 unit tests for core functionality
- 5 E2E tests for critical user flows

### Changed
- Improved performance of session queries (50% faster)
- Updated UI to use Shadcn components
- Migrated from Pages Router to App Router (Next.js 14)

### Fixed
- Fixed hydration error on dashboard page
- Fixed timezone issues in session display
- Fixed memory leak in real-time subscription

### Security
- Updated dependencies to patch CVE-2024-xxxxx
- Added rate limiting to API endpoints
- Implemented CSRF protection
-->

## Changelog Guidelines

### When to Update

**ALWAYS update the changelog when:**
- ✅ Adding new features (even small ones)
- ✅ Fixing bugs
- ✅ Making breaking changes
- ✅ Adding or updating tests
- ✅ Updating dependencies (security patches)
- ✅ Changing APIs or interfaces
- ✅ Improving performance
- ✅ Adding documentation

### How to Update

1. **During Development (Unreleased section):**
   ```markdown
   ### Added
   - Implement user profile page
   - Add avatar upload functionality
   - Create 10 tests for profile features
   ```

2. **Keep entries:**
   - User-focused (what changed for them)
   - Concise but descriptive
   - Grouped by category
   - In chronological order (newest first)

3. **Categories to use:**
   - **Added**: New features
   - **Changed**: Changes to existing features
   - **Deprecated**: Features being phased out
   - **Removed**: Features removed
   - **Fixed**: Bug fixes
   - **Security**: Security patches

### Commit Message → Changelog Mapping

| Commit Prefix | Changelog Section |
|--------------|------------------|
| `feat:` | Added |
| `fix:` | Fixed |
| `perf:` | Changed (performance) |
| `breaking:` | Changed (BREAKING) |
| `security:` | Security |
| `test:` | Added (mention in entry) |
| `docs:` | Changed (if user-facing) |
| `refactor:` | Changed (if user-facing) |
| `chore:` | Usually not included |

### Example Workflow

```bash
# After implementing a feature
git add -A
git commit -m "feat: add user profile page"

# Update CHANGELOG.md
## [Unreleased]
### Added
- User profile page with edit capabilities

# After fixing a bug
git commit -m "fix: resolve timezone display issue"

# Update CHANGELOG.md
### Fixed
- Timezone display issue in session history
```

### Release Process

When ready to release:

1. **Move unreleased to version:**
   ```markdown
   ## [1.1.0] - 2024-12-30
   
   [Move everything from Unreleased here]
   ```

2. **Create new Unreleased section:**
   ```markdown
   ## [Unreleased]
   
   ### Added
   - Nothing yet
   
   [etc.]
   ```

3. **Tag the release:**
   ```bash
   git tag -a v1.1.0 -m "Release version 1.1.0"
   git push origin v1.1.0
   ```

### Tips

- 🎯 Write for your users, not developers
- 📝 Update immediately after changes (don't wait)
- 🔗 Link to PRs or issues for context
- 🏷️ Use consistent terminology
- 📅 Always include dates
- 🔍 Make it searchable (use keywords)

---

## Version History

<!-- Versions will be listed here as they're released -->

[Unreleased]: https://github.com/yourusername/yourproject/compare/v1.0.0...HEAD
<!-- [1.0.0]: https://github.com/yourusername/yourproject/releases/tag/v1.0.0 -->