|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [Unreleased] - 2026-04-02 |
| 9 | + |
| 10 | +--- |
| 11 | + |
| 12 | +## [v1.6.0] - 2026-04-02 |
| 13 | + |
| 14 | +### Added |
| 15 | + |
| 16 | +#### Document Parsing |
| 17 | + |
| 18 | +- **XLSB (Excel Binary) Support**: Added calamine-based BIFF12 parsing for XLSB files with proper cell value extraction, supporting Float, Int, Bool, DateTime, DateTimeIso, and DurationIso types. Significantly improves table fidelity for .xlsb files. |
| 19 | + |
| 20 | +- **HWPX Table Extraction**: Added structured table extraction from Korean HWPX documents. Parses `tbl/tr/tc` XML hierarchy and includes `structured_payload` for `tables[]` output. |
| 21 | + |
| 22 | +- **Vision OCR Provider**: New OCR backend supporting OpenAI-compatible vision APIs for document OCR fallback. |
| 23 | + |
| 24 | + ```hcl |
| 25 | + document_parser { |
| 26 | + ocr { |
| 27 | + enabled = true |
| 28 | + model = "openai/gpt-4.1-mini" |
| 29 | + api_key = "sk-..." |
| 30 | + base_url = "https://api.openai.com/v1" # optional |
| 31 | + prompt = "Extract all text from this document..." |
| 32 | + max_images = 8 |
| 33 | + dpi = 144 |
| 34 | + } |
| 35 | + } |
| 36 | + ``` |
| 37 | + |
| 38 | + Provider priority: External provider > Vision API (if model+api_key configured) > Builtin tesseract |
| 39 | + |
| 40 | +#### Search Ranking |
| 41 | + |
| 42 | +- **Tabular Query Intent Detection**: Automatically detects when queries relate to tables (keywords: table, column, row, spreadsheet, excel, csv, cell, data, record, etc.) and boosts table line matches by +10 keyword hits plus 1.3x relevance multiplier. |
| 43 | + |
| 44 | +- **Heading Inheritance Boost**: When search matches appear under headings that also match the query, those matches receive a relevance boost (up to 1.3x). Looks backwards to find the closest preceding heading. |
| 45 | + |
| 46 | +### Changed |
| 47 | + |
| 48 | +#### Configuration |
| 49 | + |
| 50 | +- `DocumentOcrConfig` extended with new fields: |
| 51 | + - `provider: Option<String>` - Backend selection ("vision" or "builtin") |
| 52 | + - `base_url: Option<String>` - Custom API endpoint |
| 53 | + - `api_key: Option<String>` - API authentication |
| 54 | + |
| 55 | +#### Dependencies |
| 56 | + |
| 57 | +- Added `calamine = "0.26"` for XLSB parsing |
| 58 | +- Added `reqwest/blocking` feature for Vision API HTTP calls |
| 59 | + |
| 60 | +### Fixed |
| 61 | + |
| 62 | +- Test assertion: `paged_text_blocks_reflow_two_column_preserves_paragraph_breaks` - Corrected expected string "Parser metadata now tracks OCR" vs "Parser metadata now tracks OCR backend" |
| 63 | + |
| 64 | +--- |
| 65 | + |
| 66 | +## [v1.5.8] - 2026-03-07 |
| 67 | + |
| 68 | +### Added |
| 69 | + |
| 70 | +- Phase 1 structured result surfaces: |
| 71 | + - `structured_payload` exposed in `agentic_parse` output and metadata |
| 72 | + - Table payloads in stable machine-readable form |
| 73 | + - Page-level data in `agentic_parse` output and metadata |
| 74 | + - Stable `tables[]`, `pages[]`, `elements[]` outputs |
| 75 | + |
| 76 | +- Phase 2 PDF extraction improvements: |
| 77 | + - lopdf position-aware text extraction |
| 78 | + - Reduced dependence on weak text fallbacks |
| 79 | + - Position-aware table detection |
| 80 | + |
| 81 | +- `agentic_search` enhancements: |
| 82 | + - Chunk context consumption |
| 83 | + - Tabular content consumption |
| 84 | + - Page numbers and locators support |
| 85 | + |
| 86 | +### Changed |
| 87 | + |
| 88 | +- `ParsedDocument` extended with `tables: Vec<StructuredTable>` and `pages: Vec<PageInfo>` |
| 89 | + |
| 90 | +### Fixed |
| 91 | + |
| 92 | +- Windows shell compatibility improvements |
| 93 | + |
| 94 | +--- |
| 95 | + |
| 96 | +## [v1.5.7] - 2026-02-28 |
| 97 | + |
| 98 | +### Added |
| 99 | + |
| 100 | +- Runtime session header support for OpenAI configs |
| 101 | +- Cross-platform environment variable expansion in tests |
| 102 | + |
| 103 | +--- |
| 104 | + |
| 105 | +## [v1.5.6] - 2026-02-20 |
| 106 | + |
| 107 | +### Added |
| 108 | + |
| 109 | +- Enhanced agent config, document parser, LLM, tools, and SDKs |
| 110 | +- Host shell environment propagation to tool commands |
| 111 | + |
| 112 | +--- |
| 113 | + |
| 114 | +## [v1.5.5] - 2026-02-10 |
| 115 | + |
| 116 | +### Added |
| 117 | + |
| 118 | +- Zhipu AI client (`ZhipuClient` formerly `GlmClient`) |
| 119 | +- Duplicate tool call circuit breaker |
| 120 | +- Streaming fallback support |
| 121 | +- `agentic_parse` skill |
| 122 | + |
| 123 | +--- |
| 124 | + |
| 125 | +## [v1.5.4] - 2026-01-28 |
| 126 | + |
| 127 | +### Added |
| 128 | + |
| 129 | +- Session-local skill registries |
| 130 | + |
| 131 | +--- |
| 132 | + |
| 133 | +## [v1.5.3] - 2026-01-15 |
| 134 | + |
| 135 | +### Added |
| 136 | + |
| 137 | +- Tool schema hardening |
| 138 | +- Slash command output restoration |
0 commit comments