Skip to content

Releases: adimyth/retold

Retold v1.2.1

Choose a tag to compare

@adimyth adimyth released this 10 Sep 18:01

Patch release correcting the lite-profile onboarding contract.

  • Refuses stores containing embeddings from another model, version, or dimension until an explicit re-embedding migration is run.
  • Uses an explicit current-fact attribute in the quick start and documents content-specific fallback keys accurately.
  • Synchronizes the displayed quick-start output with the executable example.
  • Corrects the standard local-model download estimate to about 2.8 GB.
  • Clarifies that the deterministic utility-aware example needs no API key while model-backed policies do.

Retold 1.2.0

Choose a tag to compare

@adimyth adimyth released this 10 Sep 13:59

Retold 1.2.0 adds a calibrated MiniLM lite profile for a smaller and faster first run, a runnable utility-aware decision example, a complete OpenAI and CrewAI integration, reproducible embedding calibration, and production-readiness guidance.

Retold 1.1.1

Choose a tag to compare

@adimyth adimyth released this 10 Sep 11:42

Retold 1.1.1 refuses unsupported facade writes before any record, embedding, entity link, search row, conflict, or record event is persisted. Passing allow_inference=True retains the deliberate provisional-inference path, and low-level writes remain backward compatible.

Retold 1.1.0

Choose a tag to compare

@adimyth adimyth released this 10 Sep 11:27

Retold 1.1.0 adds the adoption-first Retold facade, grant-free private user sessions, explained search results, evidence-aware writes, runnable quick starts, and live Deep Agents and CrewAI examples. Install the release wheel with the command in the README.

Retold 1.0.1

Choose a tag to compare

@adimyth adimyth released this 09 Sep 18:48

The first release under the Retold name, with the closure work a v1 needed: four runtime defects fixed, the
measured policies moved into the package, and the release path proved end to end on a clean install. The wheel
and the sdist are attached to the GitHub release; PyPI publication follows once the trusted publisher exists.

Fixed

  • A stage timeout now bounds the turn. The planner and the judge run on daemon threads that are abandoned when they outlast their timeout, so gap_timeout_ms and admission_timeout_ms are latency promises rather than labels on a decision the turn still waited for.
  • memory_mode="utility_aware" requires trigger_mode="tool_only", and both adapters refuse the other combinations when they are constructed. In auto and hybrid the host-issued search appended its results to the turn before the utility-aware path ran, which put records in front of the model whatever admission then decided.
  • A record written through memory_write, or left behind by a memory_revise correction, runs the activation policy the way an extracted record does, and the tool result reports its activation and activation_reason. A preference the model saved mid-session used to stay conditional however plainly it applied.
  • The ambient profile is assembled on a session's first turn and held until the session ends, as the design says. It was rebuilt on every turn, so a promotion or an expiry could change the standing instructions between one turn and the next.

Added

  • retold.policy.reference: the planner, judge, and record classifier the fitness suite measured, with their prompts and versions, the retrieval settings every run used (supported_retrieval_config), and supported_bundle(), which returns the UtilityAwareConfig whose components hash to benchmarks/bundles/bundle-2026-09-08-a.json. The benchmark harnesses now import these rather than defining their own, so a package user can instantiate the supported bundle and the measured code and the shipped code cannot drift.
  • bundle_components(config, retrieval_config) and the orchestrator's retrieval_config argument derive retrieval_config_sha256 from the configuration a host actually retrieves with, and raise BundleMismatchError when a declared manifest names a different one. Both adapters pass their runtime's configuration.
  • retold.__version__.
  • scripts/wheel_smoke.py, an end-to-end check of an installed wheel: the bundle rebuilds, a tool write activates, one utility-aware turn decides and logs, both adapters build across the trigger-mode and memory-mode matrix, and the console script runs. CI installs the wheel with both adapter extras into a clean environment and runs it from outside the checkout.
  • A ci workflow: ruff, ruff format, mypy, and the test suite on Python 3.12 and 3.13 with both adapters installed, a strict documentation build, the wheel job above, and a pip-audit of the locked dependency set.
  • Turn decisions record bundle_retrieval_verified (migration 11), and a bundle that declares a retrieval hash while no retrieval configuration was given may not serve: the orchestrator refuses, and in shadow it warns and records the gap. A hash nothing checked reads like an approval of the configuration in front of it, so it is never allowed to pass silently.
  • The README says which capabilities are supported, which are experimental and why they are off, and which documents are historical.

Changed

  • Renamed the project from Memory Weave to Retold, because the old name was taken on PyPI. The package is retold, the console script is retold, the configuration class is RetoldConfig, the Deep Agents middleware is RetoldMiddleware, and the test environment variables are RETOLD_INTEGRATION, RETOLD_RUN_SLOW, and RETOLD_LIVE. No behaviour changed.

  • The cross-encoder reranker gained two placements (reranker.mode: after the RRF relevance floors, or in place of them), a stage timeout, and a configured fallback; the search log records whether each pass applied, timed out, or failed. Both placements were measured against RRF alone and neither is enabled: each removed the expected record from the judge's pool on about one turn in five (docs/usefulness-gate.md section 8p).

  • The README was rewritten for integrators and every design document was brought up to the v1 state. implementation-plan.md and docs/next-phases.md now say plainly that they are historical, and docs/bedrock-agentcore-comparison.md names the code for the parts of the design that have since been built.

  • The build pins hatchling>=1.27,<1.30. Hatchling 1.30 emits Metadata-Version 2.5, which the current publishing toolchain rejects outright: twine check failed with "'2.5' is not a valid metadata version", so an upload would not have got through. 1.29 emits 2.4, which carries the PEP 639 license expression.

  • The local-models extra requires sentence-transformers>=5.1 and transformers>=5.10, which clears five known transformers advisories. The integration and scale suites pass on the new versions. The four remaining chromadb advisories have no fixed release, reach the tree only through the crewai extra, and are ignored by name in the audit job; Retold neither imports nor runs chromadb.

  • UtilityAwareConfig.profile_enabled makes the ambient profile a real switch: off, the draft sees no profile and the decision records no profile ids. The reference host's profile kill switch maps onto it, and the adapters honour it.

  • The reference host now defaults to shadow mode (KillSwitches.regeneration=False); an application turns serving on deliberately.

Added

  • The MIT license.
  • A documentation site at https://adimyth.in/retold/, built from the README, the design documents, and the docstrings.
  • py.typed, so type checkers use the package's annotations.

Install the wheel attached below:

pip install "retold[local-models] @ https://github.com/adimyth/retold/releases/download/v1.0.1/retold-1.0.1-py3-none-any.whl"

Not on PyPI yet. The acceptance report for this round is section 8 of the acceptance report.