# 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).

## [0.3.1] - 2026-03-15

### Added

- Import existing folder from disk into project template
  - "Import from Disk..." button in Add File/Folder dialog (Folder type)
  - Right-click context menu on folders: "Import Folder from Disk..."
  - Recursive directory scanner with depth (5) and file (50) limits
  - Reads content of importable file types (.py, .json, .toml, .md, .yaml, .html, .css, .js,
  .ts, etc.)
  - Skips hidden dirs, __pycache__, node_modules, .venv, dist, build, and other noise
  - Skips binary/non-UTF-8 files gracefully with skipped count reported
  - Imported file contents stored as overrides and written during build
- Context menu on folders (previously only files had one)

### Changed

- Added httpx to FastAPI project type packages
- Updated FastAPI built-in preset to include httpx and pydantic as runtime deps

### Internal

- Extracted `IMPORTABLE_EXTENSIONS` constant (was duplicated in two places)
- 14 new tests (scanner, context menu, dialog) — 719 total

## [0.3.0] - 2026-03-15

### Added

- Browse button in Add File dialog — import existing files from disk when adding to the folder tree (name auto-fills, content stored for build)
- FCE-enhanced file editor integration with syntax highlighting, search & replace, diff pane, and user templates
- File content editing via right-click context menu on files in the folder tree (Preview, Edit, Import from File, Reset to Default)
- Full-screen code editor powered by fce-enhanced with syntax highlighting, search & replace, diff pane, command palette, and font zoom
- User templates system — save custom boilerplate that persists across sessions and overrides built-in content
- Custom content indicators (✎ pencil icon) in the folder tree for files with overrides
- Edit File toolbar button for quick access to the editor
- Custom Templates Path setting for user-level boilerplate directory
- File overrides applied during build with priority over boilerplate

### Changed

- Boilerplate fallback chain updated to check user templates first
- In-app docs (Help, About, Cheat Sheet) updated to cover file editor features

### Fixed

- FilePicker API corrected from broken `get_file_path()` to `pick_files()` (Flet 0.80+ compatible)

## [0.2.0] - 2026-03-11

### Added

- Configurable git remote mode: Local Bare Repo (default), GitHub (via `gh repo create`), or None (local only)
- GitHub CLI pre-flight checks (`gh` installed and authenticated) before GitHub-mode builds
- Settings for git remote mode, GitHub username/org, and private/public repo visibility
- Per-build git remote mode override in the Confirm Build dialog
- "Check gh status" button in Settings dialog
- GitHub Actions workflow for automatic docs deployment to GitHub Pages

### Changed

- Git integration documentation rewritten across README, HELP, Cheat Sheet, and mkdocs guide pages

## [0.1.0] - 2026-03-10

### Added

- Initial release of UV Forge
- Flet desktop GUI for scaffolding Python projects with UV
- 10 UI framework templates (Flet, PyQt6, PySide6, tkinter, customtkinter, Kivy, Pygame, NiceGUI, Streamlit, Gradio)
- 21 project type templates (Django, FastAPI, Flask, data science, ML, CLI tools, APIs, web scraping, and more)
- JSON-based template system with fallback hierarchy and intelligent merging
- Smart scaffolding with boilerplate file content and `{{project_name}}` placeholder substitution
- PyPI name availability checker with PEP 503 normalization
- Two-phase git integration (local repo + bare hub, auto commit and push)
- Dev dependency support (`uv add --dev`) with amber badge in UI
- Project metadata dialog (author, email, description, SPDX license)
- Post-build automation with configurable shell commands
- Rollback system for cleanup on build failure
- Named project presets with 4 built-in starters
- Recent projects history (last 5 builds)
- Persistent settings (project path, GitHub root, Python version, IDE, git defaults)
- Colour-coded log viewer with clickable source locations
- Dark and light theme toggle

[0.3.0]: https://github.com/oktl/uv-forge/releases/tag/v0.3.0
[0.2.0]: https://github.com/oktl/uv-forge/releases/tag/v0.2.0
[0.1.0]: https://github.com/oktl/uv-forge/releases/tag/v0.1.0
