Changelog
[v1.7.1] — Release Stabilization
Improved
- Canonical source guard now enabled by default, enforcing deterministic source-identity across all audit runs.
- AI invocation hardened with stricter semantic validation; false-positive suggestions reduced.
- AI review outcomes are fully deterministic and reproducible across runs.
- Review/apply safety alignment tightened; frozen-artifact enforcement is explicit.
- AI provider resilience: bounded exponential backoff and rate-limit-aware circuit breaker prevent burst-retry loops.
- Deterministic inter-batch pacing (configurable
inter_batch_delay_seconds, default 0.5 s).
- CLI final summary now truthfully surfaces AI review status and export status.
- LiteLLM stdout/stderr spam suppressed in normal mode; full provider output preserved when
L10N_AUDIT_DEBUG_AI=1.
- Semantic precision improvements for short and domain-sensitive UI strings.
Notes
- No breaking changes. All existing workflows and contracts are preserved.
- Debug flag
L10N_AUDIT_DEBUG_AI=1 exposes raw provider output for diagnostics.
- Environment flag
L10N_AUDIT_CANONICAL_SOURCE_GUARD_DISABLE=1 is available to opt out of the source guard if needed.
[v1.7.0] — Workflow Hardening & Closure
Completed
- Canonical-state and lookup-elimination migration finalized across core audit/apply flows.
- Review/apply workflow hardened end-to-end (
review_queue.xlsx -> prepare-apply -> review_final.xlsx -> apply).
- Human-edit contract aligned so editable review fields remain flexible while immutable identity fields stay protected.
- Deduplication corrected to final-mutation identity with per-run duplicate protection (no historical lockout behavior).
- Format-boundary cleanup and extensibility proof completed for current JSON / Laravel PHP scope.
- Final test-suite closure completed, including unresolved failure/skip cleanup.
Notes
- Release target remains
1.x by design; 2.0.0 is reserved for broader future format/project-type expansion.
[v1.6.0] — Final Decision Intelligence Closure
Added
- Decision Quality Contract (formalized schema)
- Lightweight validation for decision quality output
- Finalized and frozen metric naming
Improved
- Guaranteed determinism in decision quality analysis
- Clear separation between decision-making and decision-measurement
Notes
- This release marks the system as:
- Architecturally complete
- Decision-intelligence complete
- Production-ready with measurable quality
[1.5.2] - 2026-04-07
Added
- Minor internal improvements and stabilization
Fixed
- Patch-level fixes for review/apply pipeline consistency
Notes
- No breaking changes
- No contract changes
[1.5.1]
- Fixed identity crisis in
_SOURCE_LOCALE_MAP (grammar/ai_review mapping)
- Fixed “Structural Blindness” bug (nested keys suffix match)
- Handle LanguageTool replacements array format in suggested_fix
- Added smart value extraction helper in report_aggregator
[1.5.0]
- reporting identity stabilization
- master reconciliation
- locale resolution centralization
- candidate resolution
- approval projection
- decision quality surfacing
[1.4.0] — Architecture Stabilization & Output Simplification
✨ Added
- Master-driven audit system (audit_master.json)
- Artifact resolver layer
- Deprecation tracking and governance system
- Strict deprecation enforcement mode
- Output suppression system
🔄 Changed
- CSV/XLSX outputs disabled by default
- Internal artifacts moved to
.cache/
- Documentation restructured and clarified
- Pipeline now master-first (no split-brain)
❌ Removed
- final_audit_report_en.md
- final_audit_report_ar.md
⚠️ Breaking Changes
- Multilingual markdown outputs removed
- Per-tool outputs no longer generated by default
- Some artifacts are now internal-only (.cache)
🧠 Notes
- CLI compatibility preserved
- Legacy artifacts retained where required
v1.3.1
Workspace Isolation, AI Preprocessing, and Unified Fix Merger
- Workspace Isolation: Introduced
.l10n-audit/workspace/ for safe audit execution. Files are copied to this isolated environment before auditing, ensuring original project files remain UNTOUCHED during the process.
- English Preprocessing: Added a safe text cleaning layer before AI review. Common typos and contractions (e.g.,
dont -> don't) are corrected in the English source text sent to the AI, improving the quality and accuracy of suggested translations.
- Unified Fix Merger: Implemented a consolidated engine for generating
.fix files. It merges auto_safe corrections and human-reviewed fixes from review_queue.xlsx, maintaining the original project structure and format (JSON or Laravel PHP).
- Laravel Directory Support: Added support for recursive directory copying in the workspace and fix generation, maintaining full compatibility with Laravel’s
resources/lang/ structure.
- Performance & Stability: Enhanced workspace cleanup with error tolerance and improved directory tree operations.
v1.3.0
Idempotency, Persistent Storage, and AI Reliability
- Persistent Storage: Introduced
.l10n-audit/staged/ for permanent storage of verified translations, preventing data loss between audit runs.
- Idempotency Fix: Stage-aware cleanup logic now preserves
Results/ directory during autofix and reports stages.
- Smart Retry System: Added a 3-retry mechanism for AI suggestions with negative prompting to strictly enforce glossary rules.
- Hard Glossary Enforcement: AI suggestions violating the glossary are now rejected with a
GlossaryViolationError after exhausted retries.
- Persistent Error Logging: Integrated a dedicated
logs/audit_errors.log to capture critical glossary violations and system errors.
- Seamless AI Integration: Enhanced the fix engine to automatically apply AI-verified suggestions within safe bounds, strictly ignoring unverified
AI_SUGGESTION items.
- Path Isolation: Standardized use of
pathlib across all modules for cross-platform stability.
v1.2.9
Minor Improvements and Bug Fixes
- Stability improvements for large-scale projects.
- Improved project profile detection accuracy.
v1.2.1
Arabic Protection, API Stability, and Reliability
- Local API Stability: Implemented non-blocking
run_audit in server.py using run_in_threadpool for better UI responsiveness.
- Arabic Placeholder Protection: Enhanced
ar_locale_qc with a robust masking system to prevent accidental corruption of variables and numbers during text cleanup.
- Graceful Error Handling: Added independent
try-except wrappers around audit modules to ensure a single diagnostic failure doesn’t halt the entire process.
- Auto-Cleanup: Automated cleaning of
Results/ temporary directories before each run to prevent data pollution.
- Improved Validation: Added explicit
InvalidProjectError raising for better API integration and error reporting.
- Documentation: Added Arabic usage guide (USAGE_AR.md) and Local HTTP API documentation.
v1.2.0
Major Architectural Refactor and Official Python API
- CLI-to-Library Transformation: Extracted the core audit logic from the CLI into a standalone Python package (
l10n_audit).
- Official Python API: Added
l10n_audit.run_audit(), init_workspace(), and doctor_workspace() for programmatic use.
- In-Process Engine: Audits now run directly in the Python process (no
subprocess overhead).
- Structured Data Models: Introduced
AuditResult, AuditIssue, and AuditSummary dataclasses with stable JSON/Dict serialization.
- Machine-Readable Codes: Added stable
code identifiers to all issues (e.g., MISSING_KEY, TERMINOLOGY_VIOLATION).
- AI Provider Interface: Cleanly decoupled AI review logic with an injectable
AIProvider protocol.
- Reference HTTP API: Added a FastAPI-based reference implementation in
http_api/.
- Packaging Improvements: Switched to
pyproject.toml for modern builds (builds both sdist and wheel).
- CI/CD Enhancements: Updated GitHub Actions to use modular builds and automated release flows.
v1.0
Initial public release of L10n Audit Toolkit.
Project maturity at this stage:
- production-oriented for the currently supported profiles and formats
- actively maintained
- still expanding framework coverage, automation, and documentation depth
See ROADMAP.md for planned improvements.