What's new in Atulya 0.8.0
Atulya 0.8.0 introduces a webhook system for event-driven memory pipelines, improved search quality, and several reliability fixes. This version also lays the foundation for Dream/Trance mode, a future-facing synthesis workflow that helps organizations look ahead using their own memory signals.
- Webhooks: React to memory events in real time with a new webhook system.
- Search Quality: Improved recall ranking with multiplicative scoring boosts.
- Dream/Trance Mode: A future lens for organizations based on high-signal memory synthesis.
Webhooks
Atulya now supports webhooks, letting you react to memory events in real time without polling the API.
Webhooks are registered per memory bank and fire automatically when matching events occur. Two event types are supported:
retain.completed — fired once per document after a retain operation finishes (both synchronous and async). When retaining a batch of N documents, N separate events fire.
{
"event": "retain.completed",
"bank_id": "my-bank",
"operation_id": "a1b2c3d4e5f6",
"status": "completed",
"timestamp": "2026-03-05T12:00:01Z",
"data": {
"document_id": "doc-abc123",
"tags": ["meeting", "q1-2026"]
}
}
consolidation.completed — fired after Atulya finishes consolidating new memories into observations.
{
"event": "consolidation.completed",
"bank_id": "my-bank",
"operation_id": "a1b2c3d4e5f6",
"status": "completed",
"timestamp": "2026-03-05T12:00:00Z",
"data": {
"observations_created": 3,
"observations_updated": 1,
"observations_deleted": null,
"error_message": null
}
}
Delivery and retries: failed deliveries (non-2xx response or timeout after 30 seconds) are retried with exponential backoff—at 5 seconds, 5 minutes, 30 minutes, 2 hours, and 5 hours—before being marked as permanently failed. Delivery tasks are queued in the same database transaction as the triggering operation, so events survive server crashes and will be retried on restart. Use the operation_id field to deduplicate if your endpoint receives the same event more than once.
The control plane UI includes a new webhook management section where you can register endpoints, view delivery history, inspect payloads, and replay failed deliveries.
See the webhooks documentation for the full reference.
Search Quality
Different reranker models output scores in very different ranges and distributions—a cross-encoder might return values tightly clustered near zero, while another model spreads scores across a wide range. The previous normalization treated all models the same, which caused reranker scores to either dominate or be drowned out when combined with semantic and BM25 signals depending on which model was configured.
Recall ranking now applies temporal proximity and recency as multiplicative boosts on top of the reranker score, rather than adding them as separate score components. This sidesteps the normalization problem: instead of summing values that may be on incompatible scales, the boosts scale the reranker score proportionally. The final ranking is much less sensitive to the absolute score range of the configured reranker model.
No configuration is required. The change applies automatically to all recall requests regardless of which reranker is configured.
Dream/Trance Mode
Dream/Trance mode turns a memory bank into a forward-looking analysis loop. Instead of only recalling what is already known, it periodically synthesizes top memory signals into compact, self-contained HTML insights that are easy for teams to consume.
When configured well, this is a game changer for organizations because it acts like a future lens:
- Surfaces likely next patterns before they become obvious in dashboards.
- Produces practical "what-if" guidance from existing institutional memory.
- Helps teams make faster decisions without digging through raw notes.
- Keeps output readable for non-technical stakeholders, not just power users.
By default, Dream/Trance should be configured for safety and quality:
- Use small, high-signal context windows (for example top 4 recalls).
- Keep prompt style concise and plain-language.
- Set cooldowns and quality thresholds to prevent noisy output.
- Store dream outputs as artifacts first; only distill into memory when quality gates pass.
This makes the system efficient even with smaller/local models while reducing memory pollution risk.
Dream/Trance is now highly configurable per bank. You can tune:
- Trigger behavior: event, cron, or hybrid with cooldown.
- Signal sensitivity:
top_k,min_recall_results, and token budgets. - Distillation strategy: off, summary, or fragment-based memory writing.
- Output control: artifact size cap, language tone, layman enforcement, prompt template version.
- Value priorities: weight emphasis across money, time, and happiness outcomes.
It also supports four robust presets for fast adoption:
balanced_org— best default across product, ops, and support.lean_local— optimized for small/local models and low compute budgets.risk_guard— stricter confidence posture for compliance and risk-heavy workflows.exec_strategy— concise strategic briefings with value-first emphasis.
Brain Intelligence (Hybrid ML)
This release also adds a new Brain Intelligence layer that makes the system more explainable and visual:
- Deterministic influence scoring with bounded factors: recency decay, access frequency, graph proxy, rerank contribution, and dream-quality linkage.
- Compact summary visuals in the Brain tab: top influence cards, mini heatmap, and EWMA trend signal.
- Dedicated deep-dive page with Plotly charts for heatmaps, trend analysis, and factor decomposition.
The design is intentionally production-safe:
- Heavy training is kept out of request paths.
- Statistical methods (EWMA + robust anomaly detection) provide stable signal under noisy data.
- Structured-output parsing has deterministic fallback behavior so malformed LLM output does not block analytics or worker flows.
For organizations, this turns Atulya into an operational future lens with auditable math: teams can see what changed, why it changed, and which memory nodes are driving outcomes.
Production hardening in this release includes:
- Multi-entity analytics (memory units, chunks, mental models, dream artifacts) instead of single-source scoring.
- Confidence bands on trend curves for better executive interpretation, not just raw values.
- Dual anomaly checks (robust z-score + IQR) to reduce false positives in spiky workloads.
- Entity-type filtering (
all,memory,chunk,mental_model) for cleaner diagnostic workflows. - UI low-signal and error-tolerant states so dashboards degrade gracefully under sparse data or transient API issues.
Other Updates
Bug Fixes
- Fixed an async deadlock risk during startup by running database schema migrations in a background thread instead of the event loop.
- Fixed webhook delivery so transactions no longer silently roll back due to an incorrect database schema name in the outbox processor.
- Fixed observation recall to correctly resolve and return related chunks using
source_memory_ids. - Fixed MCP bank-level tool filtering to be compatible with FastMCP 3.x.
- Fixed a crash when an LLM returns invalid JSON across all retries—the error is now handled cleanly instead of raising a
TypeError. - Fixed observations without source dates to preserve
Nonetemporal fields instead of incorrectly populating them.
Feedback and Community
Atulya 0.8.0 is a drop-in replacement for 0.4.x with no breaking changes.
Share your feedback:
For detailed changes, see the full changelog.