honcho/scripts
Vineeth Voruganti e4da919e0b fix(embedding): address PR #678 review comments
CodeRabbit + Rajat review feedback. All actionable items addressed
except two false-positives (responded on PR).

Bug fixes:
- deriver telemetry leak: validator was called outside try/finally so
  shutdown_telemetry() did not run on validation failure. Moved inside.
- _emit_report printed "no effect with pgvector" unconditionally,
  including from implicit post-apply calls. Added is_report_mode flag;
  only print on explicit --report.
- LanceDB and Turbopuffer probes returned None when the namespace
  existed but its schema was malformed (no vector field / unparseable
  type string), silently bucketing real corruption as "missing"
  (lazy-create) and letting it pass the startup validator. Now raise
  VectorStoreError with actionable diagnostics; None remains valid only
  for "namespace does not exist."
- Startup validator only sampled message namespaces; added a parallel
  Collection-row sample so document namespaces are probed too, with the
  same dim assertion. Mirrors the --report path.

Hygiene:
- StartupValidationError now subclasses HonchoException so existing
  exception handlers recognize it. ValidationException is @final and
  has 422 request-validation semantics that would be misleading here.
- scripts/configure_embeddings.py main() no longer spins up two event
  loops. engine.dispose() moved into a try/finally inside _async_main
  so cleanup runs in the same loop as the pipeline.
- Replaced hand-rolled retry loop with tenacity.AsyncRetrying; same
  fail-closed semantics, less code, before_sleep_log for visibility.
- Added _validate_identifier() defense-in-depth: DB.SCHEMA and HNSW
  index names are regex-checked against [A-Za-z_][A-Za-z0-9_]* before
  SQL interpolation. Operator config + DB catalog are not user input
  under the current threat model, but the constraint is cheap to gate.

Test + docs:
- test_app_settings_accepts_non_1536_with_any_vector_store_configuration
  now actually exercises turbopuffer (was missing); supplies a dummy
  TURBOPUFFER_API_KEY to satisfy the model_validator.
- changing-embeddings.mdx: hyphenated "out-of-band" per reviewer style.
2026-05-14 12:58:17 -04:00
..
__init__.py v1.0.0 Release Candidate (#95) 2025-04-10 13:59:40 -04:00
configure_embeddings.py fix(embedding): address PR #678 review comments 2026-05-14 12:58:17 -04:00
dialectic_cost_calculator.py feat: honcho 3.0, sdks 2.0, excise stainless, update v3 docs, changelogs (#331) 2026-01-22 15:16:28 -05:00
ensure_alembic_tests.py feat: introduce alembic migration verification (#238) 2025-10-23 16:24:35 -04:00
generate_jwt_secret.py feat: introduce alembic migration verification (#238) 2025-10-23 16:24:35 -04:00
generate_message_embeddings.py fix: use model-aware tokenizer and skip empty messages - DEV-1238 (#647) 2026-05-11 17:22:50 -04:00
jsonl_to_json.py feat: agentic dreamer and agentic dialectic (#309) 2026-01-12 15:12:17 -05:00
migrate_db.py Alembic genesis (#106) 2025-05-13 12:26:58 -04:00
provision_db.py fix: use engine args on both engines in db.py (#147) 2025-06-27 15:26:29 -04:00
run_alembic_tests.py Oolong Benchmark (#323) 2026-02-23 16:55:59 -05:00
test_reasoning_levels.py adding test reasoning levels script (#337) 2026-02-19 15:51:15 -05:00
update_version.py feat: Add get summaries endpoints & Custom Timestamps (#185) 2025-08-12 17:19:53 -04:00