Move ingester telemetry setup behind argument parsing
This commit is contained in:
parent
614be8b2a7
commit
6186dae83f
4 changed files with 19 additions and 15 deletions
|
|
@ -4,7 +4,7 @@
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- `cross-encoder` reranking no longer ties the scores of strongly-relevant candidates, which left their order to the sort. Scores remain 0-1.
|
- `cross-encoder` reranking no longer ties the scores of strongly-relevant candidates, which left their order to the sort. Scores remain 0-1.
|
||||||
- haiku-rag CLI startup no longer imports `lancedb`, `pyarrow` and `pydantic_ai`.
|
- `haiku-rag` and `haiku-ingester` CLI startup no longer imports `lancedb`, `pyarrow` and `pydantic_ai`.
|
||||||
- `haiku.rag.store` no longer re-exports `Store`; import it from `haiku.rag.store.engine`.
|
- `haiku.rag.store` no longer re-exports `Store`; import it from `haiku.rag.store.engine`.
|
||||||
|
|
||||||
## [0.73.0] - 2026-08-06
|
## [0.73.0] - 2026-08-06
|
||||||
|
|
|
||||||
|
|
@ -59,15 +59,15 @@ def main(
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Top-level callback so every subcommand inherits --config without
|
"""Top-level callback so every subcommand inherits --config without
|
||||||
each one redeclaring it. Mirrors haiku-rag's CLI shape."""
|
each one redeclaring it. Mirrors haiku-rag's CLI shape."""
|
||||||
|
from haiku.rag.telemetry import configure as configure_telemetry
|
||||||
|
|
||||||
_load_config_with_override(config)
|
_load_config_with_override(config)
|
||||||
|
configure_cli_logging()
|
||||||
|
configure_telemetry(service_name="haiku-ingester")
|
||||||
|
|
||||||
|
|
||||||
def cli() -> None:
|
def cli() -> None:
|
||||||
"""Entry point that translates store-state errors into a clean exit."""
|
"""Entry point that translates store-state errors into a clean exit."""
|
||||||
from haiku.rag.telemetry import configure as configure_telemetry
|
|
||||||
|
|
||||||
configure_cli_logging()
|
|
||||||
configure_telemetry(service_name="haiku-ingester")
|
|
||||||
try:
|
try:
|
||||||
_cli()
|
_cli()
|
||||||
except (MigrationRequiredError, ReadOnlyError) as e:
|
except (MigrationRequiredError, ReadOnlyError) as e:
|
||||||
|
|
|
||||||
|
|
@ -26,15 +26,17 @@ from haiku.rag.ingester.queue.models import JobOp
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
|
|
||||||
|
|
||||||
def test_importing_ingester_cli_does_not_load_lancedb():
|
def test_importing_ingester_cli_does_not_load_heavy_dependencies():
|
||||||
"""Test that lancedb is not imported automatically by the cli. Doing so is
|
"""Importing the CLI must not pull the heavy runtime dependencies; they cost
|
||||||
expensive. Must be run in a subprocess because lancedb might be imported by
|
seconds of startup. Runs in a subprocess because another test in the same
|
||||||
other tests in the same session."""
|
session may already have imported them."""
|
||||||
result = subprocess.run(
|
result = subprocess.run(
|
||||||
[
|
[
|
||||||
sys.executable,
|
sys.executable,
|
||||||
"-c",
|
"-c",
|
||||||
"import haiku.rag.ingester.cli, sys; assert 'lancedb' not in sys.modules",
|
"import haiku.rag.ingester.cli, sys; "
|
||||||
|
"loaded = {'lancedb', 'pyarrow', 'pydantic_ai'} & sys.modules.keys(); "
|
||||||
|
"assert not loaded, loaded",
|
||||||
],
|
],
|
||||||
capture_output=True,
|
capture_output=True,
|
||||||
text=True,
|
text=True,
|
||||||
|
|
|
||||||
|
|
@ -14,15 +14,17 @@ from haiku.rag.store.exceptions import MigrationRequiredError
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
|
|
||||||
|
|
||||||
def test_importing_cli_does_not_load_lancedb():
|
def test_importing_cli_does_not_load_heavy_dependencies():
|
||||||
"""Test that lancedb is not imported automatically by the cli. Doing so is
|
"""Importing the CLI must not pull the heavy runtime dependencies; they cost
|
||||||
expensive. Must be run in a subprocess because lancedb might be imported by
|
seconds of startup. Runs in a subprocess because another test in the same
|
||||||
other tests in the same session."""
|
session may already have imported them."""
|
||||||
result = subprocess.run(
|
result = subprocess.run(
|
||||||
[
|
[
|
||||||
sys.executable,
|
sys.executable,
|
||||||
"-c",
|
"-c",
|
||||||
"import haiku.rag.cli, sys; assert 'lancedb' not in sys.modules",
|
"import haiku.rag.cli, sys; "
|
||||||
|
"loaded = {'lancedb', 'pyarrow', 'pydantic_ai'} & sys.modules.keys(); "
|
||||||
|
"assert not loaded, loaded",
|
||||||
],
|
],
|
||||||
capture_output=True,
|
capture_output=True,
|
||||||
text=True,
|
text=True,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue