# Changelog

All notable changes to APIAS (API Auto Scraper) will be documented in this file.

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

## [0.1.17] - 2025-11-30

### Bug Fixes
- Critical CI/CD and publishing infrastructure audit by @Emasoft

### Documentation
- Update documentation for Python 3.10+ requirement by @Emasoft
- Add uv installation recommendation and update PyPI workflow to Python 3.10 by @Emasoft
## [0.1.16] - 2025-11-30

### Bug Fixes

- **ci:** Use ruff format consistently instead of black by @Emasoft
- **ci:** Update ruff to v0.14.7 for consistent formatting by @Emasoft
- **ci:** Make mypy step non-fatal due to known type issues by @Emasoft
- **ci:** Drop Python 3.9 support, fix CI test requirements by @Emasoft- Remove double slimdown_html call and double-escaping bug by @Emasoft
- Critical fixes for singleton detection, timeouts, and retry limits by @Emasoft
- Correct GPT-5 Nano model identifier by @Emasoft
- Revert model name to correct format without openai/ prefix by @Emasoft
- Remove sequential delays from parallel chunk processing by @Emasoft
- Remove all remaining @retry decorator references by @Emasoft
- Fix Spinner thread RuntimeError in Playwright installation by @Emasoft
- Dramatically increase API timeout to account for retries by @Emasoft
- Resolve critical XML quality issues for production readiness by @Emasoft
- Resolve Python class detection ambiguity in HTML parsing by @Emasoft
- Suppress DEBUG logs when TUI is active for clean display by @Emasoft
- Move TUI creation before scraping to show waiting screen first by @Emasoft
- Suppress scraper print statements when TUI is active by @Emasoft
- Enable real-time TUI updates during background processing by @Emasoft
- Remove thread-unsafe live.update() call from background thread by @Emasoft
- Add final TUI update and enable full-screen mode by @Emasoft
- Make TUI use full terminal height and adapt to window resize by @Emasoft
- Fix progress regression, add spinners, improve screen filling by @Emasoft
- Stop resetting chunks dictionary in call_llm_to_convert_html_to_xml by @Emasoft
- Correct return value unpacking in batch mode processing by @Emasoft
- Prevent TUI jumping by suppressing console logging during batch mode by @Emasoft
- Comprehensive project audit fixes by @Emasoft
- Critical TUI stability and error handling improvements by @Emasoft
- Remove NullWriter that blocked Rich TUI rendering by @Emasoft
- Suppress ALL output during batch TUI rendering by @Emasoft
- Circuit breaker dialog now appears cleanly and program exits immediately by @Emasoft
- Complete TUI corruption fix - eliminate ALL output before and after TUI by @Emasoft
- Additional TUI corruption fixes - suppress earlier + fix print statements by @Emasoft
- CRITICAL - Remove duplicate suppress_console_logging() causing logger leaks by @Emasoft
- Prevent worker thread logging after circuit breaker dialog by @Emasoft
- Suppress all error messages during batch TUI operation by @Emasoft
- Critical race conditions and undefined variable bugs by @Emasoft
- Handle non-numeric filenames in XML merge sort by @Emasoft
- Propagate --mock flag to batch mode processing by @Emasoft
- Handle SIGPIPE gracefully when output is piped by @Emasoft
- Add thread-safety, atexit cleanup, deterministic jitter, dead code removal by @Emasoft
- Resolve 7 critical TUI bugs affecting stats, navigation, and error handling by @Emasoft

### Features

- **integration:** Add event system imports to apias.py by @Emasoft
- **integration:** Update update_batch_status() to support both old and new systems by @Emasoft
- **integration:** Initialize event system components in process_multiple_pages() by @Emasoft- Optimize GPT-5 Nano chunking and add singleton protection by @Emasoft
- Implement parallel chunk processing with ThreadPoolExecutor by @Emasoft
- Migrate to OpenAI Python library for better error handling by @Emasoft
- Convert to AsyncOpenAI for true parallel processing and remove tenacity by @Emasoft
- Enhance XML quality with improved LLM prompt and smart class merging by @Emasoft
- Add --scrape-only mode to scrape websites without AI processing by @Emasoft
- Implement XML validation retry for 100% success rate by @Emasoft
- Add Rich TUI infrastructure with mock API support by @Emasoft
- Integrate Rich TUI with real-time chunk monitoring and final summary by @Emasoft
- Display TUI for single chunks too by @Emasoft
- Add keyboard controls to TUI - Press SPACE to start/stop by @Emasoft
- Implement step-based progress tracking for granular TUI updates by @Emasoft
- Add --limit option to control maximum pages scraped by @Emasoft
- Implement complete batch TUI for multi-URL processing by @Emasoft
- Improve batch TUI with version display, adaptive bars, and fluid updates by @Emasoft
- Add clean merge progress animation and remove messy output by @Emasoft
- Add chunk tracking infrastructure for large page processing by @Emasoft
- Implement comprehensive error handling and user feedback system by @Emasoft
- Implement comprehensive mock OpenAI server for 100% test pass rate by @Emasoft
- Add structured retry logging for bug reproduction by @Emasoft
- Add --force-retry-count flag for 100% reproducible retry testing by @Emasoft

### Miscellaneous Tasks
- Remove debug logging and display from TUI by @Emasoft
- Remove unused tui.py after TUI unification by @Emasoft
- Update pre-commit hooks and fix code formatting by @Emasoft
- Bump version to 0.1.15 for release by @Emasoft
- Bump version to 0.1.16 for release by @Emasoft

### Refactoring
- Simplify OpenAI client to use built-in retry and timeout by @Emasoft
- Replace CSS-based classification with semantic content analysis by @Emasoft
- Comprehensive code quality improvements for batch TUI status messages by @Emasoft
- Comprehensive code quality improvements for batch TUI status messages by @Emasoft
- Remove jitter entirely for 100% reproducible retry delays by @Emasoft
## [0.1.4] - 2024-10-26

### Bug Fixes
- Syntax and indentation in process_single_page by @Emasoft
- Fix syntax errors in apias.py by @Emasoft
- Remove duplicated code block and fix retry decorator syntax by @Emasoft

### CI/CD
- Add github token for workflow push access by @Emasoft
- Add write permissions to workflow by @Emasoft
- Improve git handling in workflow by @Emasoft
- Update black to format files by @Emasoft

### Features
- Enhance OpenAI API connection handling by @Emasoft

### Miscellaneous Tasks
- Clean up MANIFEST.in and add temp dirs to gitignore by @Emasoft
- Update ruff configuration to ignore specific errors by @Emasoft
- Extend linter ignore list and remove unused pyi file by @Emasoft
- Update linter configuration and workflow by @Emasoft
- Update linter configuration and add unsafe fixes by @Emasoft
- Update ruff configuration to new format and add more ignores by @Emasoft
- Add type stubs for dependencies by @Emasoft
- Add missing type annotations by @Emasoft

### Styling
- Apply automatic fixes by @actions-user
- Apply black formatting by @actions-user
- Apply black formatting by @actions-user
## [0.1.2] - 2024-10-26

### Bug Fixes
- Update setuptools_scm configuration for clean version numbers by @Emasoft

### Miscellaneous Tasks
- Add mailmap for email privacy by @Emasoft
- Cleanup temp files by @Emasoft
- Update version to 0.1.2 with consistent version handling by @Emasoft
---
*Generated by [git-cliff](https://github.com/orhun/git-cliff)*
