Skip to content

chore: Follow-up hardening bundle: introspection, validation, CI, and metadata#13

Merged
ankitml merged 10 commits intomainfrom
codex/hardening-followup-bundle
Mar 4, 2026
Merged

chore: Follow-up hardening bundle: introspection, validation, CI, and metadata#13
ankitml merged 10 commits intomainfrom
codex/hardening-followup-bundle

Conversation

@philippemnoel
Copy link
Copy Markdown
Member

Summary

This bundles all follow-up hardening work into a single PR as requested.

Core code hardening

  • Stop relying on private SQLAlchemy Select attributes by adding has_order_by() / has_limit() helpers and using them in facets/pushdown validation.
  • Replace fragile BM25 index introspection (pg_indexes string parsing) with structured pg_catalog introspection.
  • Harden BM25 expression parsing for casts, JSON key expressions, qualified refs, and quoted identifiers.
  • Make Alembic BM25 autogenerate consume the same DB-native introspection path and use safer qualifier stripping.

API validation and behavior safeguards

  • Add reusable require_non_empty_string() validator.
  • Tighten search argument validation across term/phrase/regex/parse/prox/range/MLT helpers.
  • Tighten snippet/snippets/agg input validation in pdb.py.

Test quality improvements

  • Strengthen integration assertions from weak non-empty checks to deterministic semantic checks.
  • Add/expand unit tests for indexing parsing, alembic normalization, and new validation rules.

CI and repo hygiene

  • Enforce Codecov status checks (informational: false).
  • Harden GitHub Actions permissions with explicit least-privilege workflow permissions.
  • Improve CI matrix coverage (Python 3.10, 3.11, 3.12) and narrow push trigger to main.
  • Pin integration image to paradedb/paradedb:0.21.10-pg18 and update DSN to postgresql+psycopg://....
  • Add project metadata/links in pyproject.toml and normalize changelog structure.

Validation

  • ruff check .
  • python3 -m compileall paradedb tests

Notes

  • pytest is not available in the current system-managed Python environment in this runner, so full test execution could not be run locally here.

@philippemnoel philippemnoel changed the title Follow-up hardening bundle: introspection, validation, CI, and metadata chore: Follow-up hardening bundle: introspection, validation, CI, and metadata Mar 1, 2026
@philippemnoel philippemnoel force-pushed the codex/hardening-followup-bundle branch 2 times, most recently from 7609c8f to 9eb68d5 Compare March 2, 2026 19:04
@ankitml ankitml force-pushed the codex/hardening-followup-bundle branch from 9eb68d5 to 273ccf3 Compare March 4, 2026 06:03
Copy link
Copy Markdown
Contributor

@ankitml ankitml left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is pretty good one. Minor changes and good to go.

@ankitml ankitml merged commit 16adc4f into main Mar 4, 2026
9 checks passed
@ankitml ankitml deleted the codex/hardening-followup-bundle branch March 4, 2026 06:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants