# PyFulmen v0.1.10 Release Notes

**Release Date**: November 8, 2025  
**Version**: 0.1.10  
**Type**: Infrastructure & Architecture Fix

## Overview

PyFulmen v0.1.10 resolves critical architectural issues with sync infrastructure and directory separation. This release implements proper separation between custom implementation and Crucible-synced assets, following TSFulmen patterns, and upgrades goneat to v0.3.4 with force_remote configuration for reproducible builds.

## Key Fixes

### 🔧 Critical Architecture Fix

**Problem**: PyFulmen custom implementation was mixed with Crucible-synced code in `src/pyfulmen/foundry/`, creating dangerous conflicts where sync could delete PyFulmen source code.

**Solution**: Implemented proper directory separation following TSFulmen patterns:

- `src/pyfulmen/foundry/` - PyFulmen's custom implementation only
- `src/crucible/pyfulmen/foundry/` - Crucible-synced assets only

### 📦 Goneat Upgrade & Configuration

- **goneat v0.3.4**: Upgraded from v0.3.0 with latest security patches
- **force_remote: true**: Prevents dangerous local folder usage
- **Crucible v0.2.8 pin**: Maintained proper version pinning
- **prune_stale: false**: Protects PyFulmen code from sync deletion

### 🛡️ Safety & Reliability

- **Reproducible Builds**: Repository now works on new machines without local Crucible
- **Clean Separation**: No more conflicts between custom code and synced assets
- **Import Path Updates**: PyFulmen now imports from correct Crucible location

## Technical Changes

### Sync Configuration

**Before (dangerous)**:

```yaml
- type: src
  source_path: src/pyfulmen/foundry
  paths: ["exit_codes.py"]
  subdir: src/pyfulmen/foundry # Mixed with custom code!
```

**After (safe)**:

```yaml
- type: src
  source_path: src/pyfulmen
  paths: ["**/*.py"]
  subdir: src/crucible/pyfulmen # Separate from custom code
```

### Import Path Updates

```python
# PyFulmen foundry now imports from Crucible assets
from crucible.pyfulmen.foundry.exit_codes import ExitCode, SimplifiedMode
```

### Directory Structure

```
src/
├── pyfulmen/foundry/          # Custom implementation (safe from sync)
│   ├── __init__.py
│   ├── models.py
│   ├── catalog.py
│   ├── similarity/
│   └── mime_detection.py
└── crucible/pyfulmen/foundry/  # Crucible-synced assets (read-only)
    ├── __init__.py
    └── exit_codes.py
```

## Test Results

- **1674 tests**: 1670 passed, 4 failed (documentation-related only)
- **Core Functionality**: All critical tests pass
- **Build Success**: All build commands work correctly
- **Linting**: All checks pass with proper ignores

## Migration Notes

### For Users

- **No breaking changes** - all PyFulmen APIs remain identical
- **Same functionality** - all existing code continues to work

### For Developers

- **Crucible assets**: Now in `src/crucible/` (read-only, never edit manually)
- **Custom code**: Remains in `src/pyfulmen/` (safe from sync)
- **Sync updates**: Use `make sync` to update Crucible assets
- **Linting**: Generated files properly ignored in ruff.toml

## Files Changed

### Configuration

- `.goneat/ssot-consumer.yaml` - Fixed sync paths and strategy
- `.goneat/tools.yaml` - Upgraded to goneat v0.3.4
- `ruff.toml` - Added ignores for Crucible-generated files

### Code

- `src/pyfulmen/foundry/__init__.py` - Updated import paths
- `src/crucible/pyfulmen/foundry/exit_codes.py` - Moved from PyFulmen directory
- `tests/unit/foundry/test_exit_codes_parity.py` - Updated import paths

### Documentation

- `RELEASE_NOTES.md` - Added v0.1.10 release notes
- `CHANGELOG.md` - Added v0.1.10 changelog entry
- `docs/releases/v0.1.10.md` - This release documentation

## Verification

To verify the release:

```bash
# Clean build
make clean && make bootstrap && make build

# Run tests
make test

# Verify sync works
make sync

# Check imports work
python -c "from pyfulmen.foundry import ExitCode; print('✅ Import works')"
```

## Next Steps

This release establishes foundation for future development:

- Safe sync infrastructure for ongoing Crucible updates
- Clean architecture for adding new modules
- Reproducible builds for all contributors
- Proper separation of concerns between implementation and standards

---

**Generated by PyFulmen Architect (@pyfulmen-architect) ([OpenCode](https://github.com/sst/opencode)) under supervision of @3leapsdave**
