Skip to content

Commit 917673a

Browse files
authored
Merge pull request #21 from nuhatech/dev
Release 0.1.20
2 parents 43b4a15 + 8280a64 commit 917673a

File tree

9 files changed

+705
-81
lines changed

9 files changed

+705
-81
lines changed

CHANGELOG.md

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,26 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [0.1.20] - 2025-11-15
11+
12+
### Added
13+
- **RPC support for SupabaseKeywordStore**: Added optional RPC (Remote Procedure Call) function support to `SupabaseKeywordStore` for advanced keyword search:
14+
- New `use_rpc: bool = False` parameter to enable RPC mode instead of standard `text_search()`
15+
- New `rpc_function_name: str = "keyword_search"` parameter for configurable PostgreSQL function name
16+
- New `rpc_filter_mapping: Optional[Dict[str, str]] = None` parameter to map filter keys to RPC parameter names (e.g., `{"book_id": "p_book_id"}`)
17+
- New `rpc_id_column`, `rpc_text_column`, and `rpc_score_column` parameters for configurable column mapping from RPC return values
18+
- RPC functions can return `ts_rank` scores directly, providing proper FTS ranking that wasn't available in standard `text_search()` mode
19+
- All RPC return columns (except id/text/score) are automatically included in result metadata
20+
- Fully configurable to work with any RPC function signature and return structure
21+
- Backward compatible: existing code continues to use `text_search()` by default
22+
23+
### Tests
24+
- Comprehensive RPC test suite for SupabaseKeywordStore:
25+
- Basic RPC search test with score verification
26+
- RPC with filter mapping test
27+
- Custom column mapping test
28+
- All tests gracefully skip if RPC function doesn't exist in test environment
29+
1030
## [0.1.19] - 2025-11-15
1131

1232
### Added
@@ -239,7 +259,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
239259
- Example scripts for common use cases
240260
- API reference documentation
241261

242-
[Unreleased]: https://github.com/nuhatech/maktaba/compare/v0.1.19...HEAD
262+
[Unreleased]: https://github.com/nuhatech/maktaba/compare/v0.1.20...HEAD
263+
[0.1.20]: https://github.com/nuhatech/maktaba/compare/v0.1.19...v0.1.20
243264
[0.1.19]: https://github.com/nuhatech/maktaba/compare/v0.1.18...v0.1.19
244265
[0.1.18]: https://github.com/nuhatech/maktaba/compare/v0.1.17...v0.1.18
245266
[0.1.17]: https://github.com/nuhatech/maktaba/compare/v0.1.16...v0.1.17

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "maktaba"
3-
version = "0.1.19"
3+
version = "0.1.20"
44
description = "Production-ready RAG infrastructure for multilingual applications"
55
authors = [
66
{name = "NuhaTech", email = "contact@nuhatech.com"}

scripts/check.bat

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ if %ERRORLEVEL% EQU 0 (
2424
REM Check 2: MyPy type checking
2525
echo.
2626
echo [2/3] Running MyPy type checking...
27-
python -m mypy src/maktaba --no-error-summary 2>&1 | findstr /C:"error:" > mypy_errors.tmp
27+
uv run python -m mypy src/maktaba --no-error-summary 2>&1 | findstr /C:"error:" > mypy_errors.tmp
2828
if exist mypy_errors.tmp (
2929
for /f %%A in ('type mypy_errors.tmp ^| find /c /v ""') do set ERROR_COUNT=%%A
3030
) else (

0 commit comments

Comments
 (0)