Releases: rlippmann/context-compiler
v0.7.10 - Mark package as typed
What changed
- Added a py.typed marker to the context_compiler package.
- Updated wheel packaging so the marker is included in published distributions.
Why
Projects that install context-compiler and run static type checkers such as mypy should be able to recognize the package as typed.
Without the marker, downstream users may see import warnings such as:
- module is installed, but missing library stubs or py.typed marker
This release updates the published package metadata to follow PEP 561 expectations for typed Python packages.
Compatibility
This release does not change engine behavior, state semantics, checkpoint handling, directives, or public APIs.
The change only affects package typing metadata.
v0.7.9 — Authority-Layer Documentation Refresh and LiteLLM response_format Example
This patch release focuses on documentation clarity, API ergonomics, and integration examples.
Highlights
- Reframed documentation around Context Compiler as a deterministic conversational state authority.
- Added architecture documentation covering:
- Acquisition
- Authority
- Application
- Classification
- Composition
- Reordered README, demos, and examples to surface authority-oriented workflows earlier.
- Added controller helper accessors for common preview and step result operations.
- Updated examples and REPL usage to use the new helpers.
- Added a LiteLLM response_format integration example demonstrating application-layer request shaping from Context Compiler state.
- Added tests and public API fixture updates for the new helper accessors.
Validation
- 685 tests passing.
- LiteLLM response_format example validated end-to-end with LiteLLM + Ollama using:
- qwen2.5:1.5b-instruct
- qwen2.5:7b-instruct
No engine semantics were changed in this release.
Context Compiler 0.7.8
What's Changed
- test: add preprocessor drift fixtures by @rlippmann in #164
- docs: clarify state/preprocessor guidance for 0.7.8 by @rlippmann in #165
Full Changelog: v0.7.7...v0.7.8
Context Compiler 0.7.7
LiteLLM proxy example refresh.
- Added Ollama support for local testing
- Revalidated against LiteLLM 1.88.2
- Updated documentation and troubleshooting guidance
- Documented clarification handling behavior
v0.7.6 — Ollama Structured Output Example and Documentation Improvements
Added
- Ollama structured-output integration example demonstrating compiler-state-driven schema selection
- Tests covering schema selection behavior without requiring Ollama
Documentation
- Clarified the distinction between compiler state and host consumption of state
- Added FAQ: "Why not just use a plain dict?"
- Simplified README FAQ wording
v0.7.5
0.7.5
This patch release continues the 0.7 helper/constants cleanup with small consistency updates across user-facing integrations and examples.
Updated integrations/examples
-
Replaced remaining semantic decision literals with exported constants:
DECISION_UPDATEDECISION_CLARIFY
-
Updated synthetic trace examples to use exported decision constants consistently.
-
Continued migration of user-facing integration code toward:
is_update(...)is_clarify(...)is_passthrough(...)get_clarify_prompt(...)get_decision_state(...)
-
Continued migration of policy filtering examples toward:
POLICY_USEPOLICY_PROHIBIT
OpenWebUI integrations
- Updated embedded OpenWebUI integration code to align with the helper/constants style introduced in 0.7.4.
- Pipe manifest versions updated to
0.9.3.
Compatibility
No runtime semantics or wire-format contracts changed in this release.
Structured payload contracts remain unchanged, including:
DecisionState- checkpoint JSON wrappers
- controller result envelopes
- conformance fixtures
v0.7.4
Context Compiler 0.7.4
This patch release cleans up the public host-integration surface before TypeScript 0.7 parity locks.
Highlights
- Added public decision helper APIs for safer host branching:
is_update(...)is_clarify(...)is_passthrough(...)get_clarify_prompt(...)get_decision_state(...)
- Added public policy constants:
POLICY_USEPOLICY_PROHIBIT
- Updated README and example/integration host flows to prefer helper-style decision handling.
- Centralized canonical decision constants in
const.py. - Removed the legacy
context_compiler.decision_constantsmodule. - Updated OpenWebUI pipe metadata and requirements to align with
context-compiler>=0.7.4.
Contract Notes
- No change to dict/JSON wire contracts.
- State export/import, checkpoint payloads, and controller result envelopes remain dict-shaped and contract-compatible.
v0.7.3
What changed
This patch release hardens shared cross-language conformance coverage and clarifies contribution/documentation guidance.
Conformance hardening
- Added shared conformance fixtures for checkpoint JSON wrappers:
- export/import JSON wrapper behavior
- round-trip parity
- pending clarification restore/resolution checks
- invalid payload rejection and all-or-nothing behavior
- Added shared controller conformance fixtures for:
step(engine, user_input)preview(engine, user_input)(mutating and non-mutating paths)state_diff(state_before, state_after)
- Minimally expanded shared preprocessor
kind: "parse"fixtures for boundary behavior:- canonical directive acceptance
- no-directive abstain
- malformed/multiple/unknown rejection
- source-aware structured directive self-input acceptance
- Updated public API conformance fixture membership to include:
has_pending_clarification
Documentation and contributor guidance
- Added explicit
AGENTS.mdguidance to always use:- repository PR template
- repository issue templates (
bug_report,feature_request)
- Applied documentation wording updates across user-facing docs to prefer direct, concrete, active language.
Version
- Package version bumped to
0.7.3.
v0.7.2
v0.7.2
Summary
0.7.2 hardens OpenWebUI integration behavior so authoritative Context Compiler state is consistently respected in downstream chat turns, with expanded regression coverage and clearer preprocessor pipe naming.
What changed
- Fixed OpenWebUI passthrough-state handling in the base pipe and preprocessor pipe.
- Added regression tests for:
- passthrough with active authoritative state
- empty-state passthrough
- clarify with no downstream model call
- pending clarification continuity
- no duplicate compiler-state prompt injection
- trace consistency checks
- Updated preprocessor pipe display title to:
Context Compiler Pipe (Preprocessor)
Why
A manual integration audit identified a gap where active authoritative state was not reliably carried into downstream passthrough model context. This release fixes that integration-level correctness issue without changing core engine semantics.
Scope
- Integration-scoped hardening only
- No core directive grammar or engine contract changes
Validation
- Full test suite passes
- Pre-commit checks pass
- Live OpenWebUI smoke was run after updating loaded runtime function code
Known runtime caveat
If OpenWebUI is running with an older installed context-compiler package, passthrough traces may still show:
state injected: no
even when updated pipe code is loaded. That is a runtime package/helper mismatch, not pipe logic regression.
v0.7.1
What's changed
This release is a docs-focused 0.7.1 update plus version bump.
- Reframed project docs around a practical integration boundary: prompting helps, and apps still need explicit rules for when state changes.
- Simplified README language and examples to emphasize concrete host behavior.
- Tightened preprocessor guidance (mutation safety, validation before apply, and clear handling for passthrough/clarify/update).
- Simplified integration docs (Open WebUI, LiteLLM SDK, LiteLLM Proxy) to focus on what gets sent, what gets saved, and what the app should do next.
- Bumped package version from 0.7.0 to 0.7.1.
Notes
- No engine behavior changes in this release.
- No API contract changes in this release.
- This is a documentation and release metadata update.