Releases: sunbos/sqlseed
Releases · sunbos/sqlseed
v0.1.20
v0.1.20
Changed
- Extracted shared
_col()test helper fromtest_mapper.pyandtest_mapper_camelcase.pyintoconftest.make_column_info(), eliminating 23-line code duplication (CodeFlow R0801, CodeDuplication; SonarCloud Code Smell)
Fixed
- Merged duplicate test functions
test_non_sensitive_order_no_still_integerandtest_snake_case_still_worksintest_mapper_camelcase.pyviapytest.mark.parametrize(SonarCloud Major)
v0.1.19
Full Changelog: v0.1.17...v0.1.19
v0.1.18 - Bug Fixes
Bug Fixes
Fixes
- Column mapping regex: Fixed overly broad regex pattern that incorrectly matched CamelCase field names as foreign_key_or_integer
- Include plugins in sdist: Removed plugins/ from hatchling exclude list so plugins directory is included in PyPI package
Changes
- mapper.py: Removed from pattern matching
- pyproject.toml: Removed plugins/ from sdist exclude list
v0.1.17
What's New in v0.1.17
✨ New Features
- RichProgressBackend
ascii_onlymode: Whenascii_only=True, uses"line"spinner (|/-\) and omitsBarColumn, avoidingUnicodeEncodeErroron GBK/Big5/CP936 console encodings _can_render_unicode()cached helper: Probes whether stdout can encode Rich's Braille/block-element characters (U+280B, U+2588, U+2591)- Auto Unicode fallback:
create_progress()auto-falls back toascii_only=Truewhen_can_render_unicode()returnsFalse, with a debug log message - DataOrchestrator SQL methods: New
execute(sql, params),query(sql, params),fetch_one(sql, params),fetch_all(sql, params)for direct database interaction - BaseSQLiteAdapter._execute: Parameterized SQL execution method
- DatabaseAdapter protocol: Updated with
_executemethod signature
🔄 Changed
RichProgressBackendrefresh rate set to 1 Hz (was default 10 Hz) to reduce terminal flicker- Test suite:
TestRichProgressBackendandTestRichProgressBackendAsciiOnlymerged viapytest.mark.parametrizeto eliminate code duplication
🐛 Bug Fixes
- Windows compatibility: GBK/GB2312/Big5/CP936 encoded terminals no longer crash with
UnicodeEncodeErrorwhen displaying Rich progress bars .gitignore: removed*汇总.mdpattern (no longer needed)
📊 Stats
- 5 files changed, +242 / -18 lines
- 46 tests passing
- ruff check ✅ | mypy strict ✅
Full Changelog: v0.1.16...v0.1.17
v0.1.16
What's New in v0.1.16
✨ New Features
- Progress Multi-Backend: New
ProgressBackendABC withRichProgressBackend(terminal),TqdmNotebookBackend(Jupyter), andNullProgressBackend(silent). Auto-detects environment and selects the best backend. - UNIQUE Column Protection:
UniqueAdjusterautomatically adjusts generator specs for UNIQUE columns (string length, integer range, choice fallback). - ColumnConfig Normalizer:
normalize_dict_input()model validator supports shorthand dict construction —"type"as alias for"generator", unknown keys auto-merged intoparams. - Platform Cache Paths:
paths.get_cache_dir()provides XDG/macOS/Windows-standard cache directories, overridable viaSQLSEED_CACHE_DIRenv var. - AI Dynamic Free Model Selection:
select_best_free_model()auto-selects the newest free model from OpenRouter.select_next_free_model()provides fallback on timeout/connection errors. Filters by free pricing, no expiration, text I/O, andresponse_formatsupport. 1-hour TTL cache.
🐛 Bug Fixes
- CLI
fillcommand: Fixed dead code bug where--countwas required instead of defaulting to 1000. - Orchestrator type safety: Replaced
# type: ignorewithassertguards on_relationand_unique_adjusterproperties. - Redundant validator removed: Deleted duplicate
validate_null_ratio(already enforced byField(ge=0.0, le=1.0)). - Orchestrator
_prepare_specs: Refactored confusing conditional flow into clear if/else structure.
♻️ Refactoring
- Replaced
randomwithsecretsfor secure generation in tests. - Replaced domain-specific examples with generic project management terms.
- Added 12 Jupyter notebook tutorials (quickstart through testing patterns).
- Resolved SonarCloud code quality and security issues.
- Added
tqdmtonotebookanddevoptional dependencies.
📚 Documentation
- Added
CHANGELOG.zh-CN.mdChinese changelog. - Updated README.md and README.zh-CN.md.
- Updated architecture docs with progress backend and model selector details.
📊 Stats
- 72 files changed, +16,034 / -590 lines
- 578 tests passing
- ruff check ✅ | mypy strict ✅
Full Changelog: v0.1.15...v0.1.16
v0.1.15
v0.1.15
Fixed
- CI: remove unnecessary try/except in
ExpressionEngine.evaluateto resolve SonarCloud S2737 and CodeFlow try-except-raise warnings - CI: add comment documenting intentional
list()usage inPluginMediator.apply_template_pool(SonarCloud S7504)
修复
- CI: 移除
ExpressionEngine.evaluate中不必要的 try/except,解决 SonarCloud S2737 和 CodeFlow try-except-raise 警告 - CI: 为
PluginMediator.apply_template_pool中的list()调用添加注释说明其必要性(SonarCloud S7504)
v0.1.14
v0.1.14
Fixed
- CI: resolve ruff SIM114/SIM102 lint errors in
test_doc_sync.py - CI: eliminate all regex from
test_doc_sync.pyto fix SonarCloud S5852 security hotspots - CI: reduce cognitive complexity of
_extract_number_before_keywordhelper
Added
- Doc Sync Rules mapping table in CLAUDE.md
- Documentation sync validation tests (
tests/test_doc_sync.py)
v0.1.13
What's Changed
Added
- Cross-table association support (
ColumnAssociationconfig, implicit SharedPool matching) - 7 new generator types:
username,city,country,state,zip_code,job_title,country_code EnrichmentEnginedata distribution inference,UniqueAdjusterunique column tuning- AI plugin: auto model selection (OpenRouter), structured JSON output, few-shot examples, self-correction loop, file caching
- MCP server:
enrichparameter,schema_hashfield - CLI:
--enrich,--no-ai,--verify/--no-verify,--timeoutflags - Bilingual documentation (English + Chinese)
Changed
ColumnMapperexact match rules expanded from 68 to 74- CI workflows: ruff covers plugins/, concurrency control
- All documentation rewritten and translated to English
Fixed
- ruff lint cleanup
- Remove unnecessary
sqlite3.OperationalErrorcatch - Fix non-provider entry point detection in
ProviderRegistry
Removed
docs/superpowers/(outdated design specs)suggest.py,nl_config.py(replaced bySchemaAnalyzer+AiConfigRefiner)
Full Changelog: v0.1.12...v0.1.13
v0.1.12
v0.1.12
Bug Fixes
- fix(cli):
--countis now required when not using--config, preventing accidental generation of 1000 rows - fix(cli):
count <= 0now shows a friendly error message instead of a full Python traceback - fix(cli): Default AI model in help text corrected to
gpt-4o(was incorrectly showingqwen3-coder-plus) - fix(version):
sqlseed --versionnow correctly reads fromimportlib.metadatainstead of hardcoded value - fix(db): SQLite AUTOINCREMENT ID reset issue fixed
Improvements
- feat(cli): Add
SQLSEED_LOG_LEVELenvironment variable control (default: WARNING, set to DEBUG for development) - feat(cli): CLI help text now shows default values for all options
- feat(cli):
ai-suggest --api-keyand--base-urlnow show environment variable names in help - docs: ColumnMapper strategy chain updated from 8 to 9 levels across all documentation
- test: CLI tests refactored with parametrize to eliminate code duplication
Full Changelog
v0.1.11
Full Changelog: v0.1.10...v0.1.11