shipit-watcher 1.1.0
Reusable in any Python project — the package no longer carries references to the codebase it grew in.
pip install shipit-watcherPublic-ready
- Removed 63 client-specific references across 17 files: product and customer names, a private Langfuse hostname, internal audit finding ids, and a client's accounting vocabulary that had been used as if it were a general concept.
- Package metadata now carries an OSI licence classifier and project URLs, so the project is findable and its licence machine-readable.
- Capability table states what is not built (budgets/alerts, Langfuse datasets) alongside what is.
Since 1.0.0 on the library itself
Nothing changed in behaviour — 1.1.0 is 1.0.0 with honest, reusable documentation.
What 1.0.0 introduced
- Agent graphs. Langfuse renders a graph only for observations carrying a semantic type (
agent/tool/retriever/guardrail). Those cannot be sent over the classic ingestion API, and the Langfuse SDK exposes them only from 3.3.1 — which dropsclient.trace().LangfuseOTLPSinkspeaks OTLP directly, so only the server has to be v3. Enable withWATCHER_LANGFUSE_TRANSPORT=otlp. - Prompt registry:
create_prompt()publishes versions,get_agent_prompt()namespaces prompts per agent,use_prompt()binds one ambiently for calls that cannot pass metadata,run_prompt()does fetch → compile → call → trace in one step. - LLM gateway: traced completions and streaming, governance enforced pre-call, provider-agnostic retries, model-alias routing through a proxy.
- LiteLLM calls are named for the operation (
rag.embedding, neverlitellm-aembedding), and background calls get their own trace instead of being dropped. - Django ledger accepts any user identifier — the FK resolves only for a real primary key,
user_refalways holds the raw value.
246 tests.