Version History
2.0.9
2.0.9 is the prompt-control and correction-routing release line. Compared to 2.0.8, this adds Thymeleaf-backed prompt rendering, richer runtime routing for confirmations/corrections, new rule capabilities, and a consumer-friendly verbose adapter.
- Shared Thymeleaf rendering path:
- prompts now render through
ThymeleafTemplateRenderer ce_verbose.message/ce_verbose.error_messagerender through the same engine- supported prompt styles:
- legacy
{{var}} #{...}[${...}]
- legacy
- session-aware template variables include
session,inputParams,rawInputParams,context,schema,schemaJson,promptVars, and metadata.
- prompts now render through
- Prompt/session variable upgrades:
PromptTemplateContextnow includesstandalone_queryandresolved_user_inputresolved_user_inputis derived fromstandaloneQueryfirst, thenuser_input
- Rule engine expansion:
- new action:
SET_INPUT_PARAM - new phases:
POST_SCHEMA_EXTRACTIONPRE_AGENT_MCP
- phase/state rule lookup now uses a dedicated cache path for faster repeated evaluation
- new action:
- Dialogue and correction flow upgrades:
- new
DialogueAct:ANSWER - new
CorrectionStepinserted before intent/schema resolution - confirmation routing now uses
routing_decision - confirmation
AFFIRMcan skip reclassification/re-extraction and continue to MCP - confirmation
EDITcan patch a single field in existing context without full schema extraction
- new
- Verbose and audit coverage expansion:
- added LLM input/output/error verbose events across:
- dialogue act
- intent resolution
- schema extraction
- MCP planning
- response generation
MCP_TOOL_CALLnow emits richer metadata (tool_code, args, action, intent, state, routing decision, observation context)
- added LLM input/output/error verbose events across:
- Consumer extension support:
- new
ConvEngineVerboseAdapterallows hooks, container transformers, response transformers, and custom beans to emit either:- DB-resolved
ce_verboseevents - direct UI verbose text events
- DB-resolved
- new
2.0.8
2.0.8 is the runtime observability and deterministic-progress release line. Compared to 2.0.7, this adds database-driven verbose messaging, step telemetry in session context, stream envelope upgrades, and tighter MCP schema completeness behavior.
- New control-plane table for runtime verbose messaging:
ce_verboseadded across DDLs (ddl.sql,ddl_postgres.sql,ddl_oracle.sql,ddl_sqlite.sql).- seed rows added across seeds (
seed.sql,seed_postgres.sql,seed_oracle.sql,seed_sqlite.sql). - standalone SQL assets added:
src/main/resources/sql/verbose_ddl.sqlsrc/main/resources/sql/verbose_seed.sql
- Static cache integration for verbose table:
StaticConfigurationCacheService#getAllVerboses()with cache keyce_verbose.- preload and integrity validation wired into startup (
StaticTableCachePreloader,StaticScopeIntegrityValidator). - validation now enforces
step_matchinEXACT|REGEX|JSON_PATHand non-emptystep_value/determinant.
- New verbose runtime transport model:
VerboseStreamPayloadDTO added.- stream envelope (
AuditStreamEventResponse) now includes:eventType- optional
verbosepayload
- both SSE and STOMP publish
AUDITandVERBOSEevents on conversation channel.
- Step telemetry model added to session:
- new
StepInfomodel EngineSession.stepInfosnow stores per-step status/timing/outcome/error metadata- pipeline writes deterministic step markers (
STEP_ENTER,STEP_EXIT,STEP_ERROR).
- new
- Verbose publishing across core pipeline and resolvers:
- step lifecycle (
EnginePipelineFactoryhook path) - intent lifecycle (
AgentIntentResolver) - rule lifecycle (
RulesStep,RuleActionResolverFactory) - response/output resolver selection (
ResponseTypeResolverFactory,OutputFormatResolverFactory) - tool + MCP lifecycle (
ToolOrchestrationStep,McpToolStep) - response resolution (
ResponseResolutionStep)
- step lifecycle (
- MCP schema completeness hardening:
- new stage
MCP_SKIPPED_SCHEMA_INCOMPLETE - new status
STATUS_SKIPPED_SCHEMA_INCOMPLETE McpToolStepnow skips MCP execution when schema-required fields are missing and writes lifecycle metadata deterministically.
- new stage
2.0.7
2.0.7 is the MCP revamp release line. Compared to 2.0.6, this adds planner-scoped prompts, advanced tool execution modes, stricter static scope validation, richer MCP runtime metadata, and renamed rule phases.
- Advanced MCP execution model:
- DB handler-first path (
DbToolHandler) with SQL-template fallback. - HTTP handler models:
HttpApiProcessorToolHandler(api-processor / RestWebServiceFacade path)HttpApiRequestingToolHandler(framework-managed request policy path)- classic
HttpApiToolHandler.
- DB handler-first path (
- HTTP policy support in framework invoker:
- timeout, retry/backoff, in-memory circuit breaker, auth providers, response mapping.
- MCP planner scoping table:
ce_mcp_plannerwith intent/state scoped prompt selection.- seed support added for Postgres/SQLite planner rows.
- MCP context metadata model for rule branching:
context.mcp.lifecycle.*context.mcp.toolExecution.*- enables deterministic
ce_rule.match_patternJSON_PATH checks.
- Guardrail behavior clarity:
- when planner proposes blocked next tool, fallback answer is written to
context.mcp.finalAnswer. POST_AGENT_MCPrules still run, then normal response resolution.
- when planner proposes blocked next tool, fallback answer is written to
- MCP guardrail + determinism upgrades:
- planner output is validated against allowed-next-tool policy before execution.
- blocked decisions emit deterministic lifecycle metadata for rule branching.
- Tool execution observability upgrade:
- direct tool mode writes rich metadata into
context.mcp.toolExecution.*includingtoolCode,toolGroup, status/outcome, scope mismatch flags, and tool row metadata.
- direct tool mode writes rich metadata into
- Scope consistency hardening in static config:
ce_mcp_tool/ce_mcp_plannerscope values are validated at load/startup (intent_code,state_code) against allowed forms (ANY,UNKNOWN, configured values).- invalid scope rows fail fast to prevent cross-intent tool leakage.
ce_intent_classifierenhancement:state_codesupport (defaultUNKNOWN) so classifier can set state directly without extra transition rules.
- Rule phase naming update:
PRE_RESPONSE_RESOLUTION(oldPIPELINE_RULES)POST_AGENT_INTENT(oldAGENT_POST_INTENT)POST_AGENT_MCP(oldAGENT_POST_MCP)POST_TOOL_EXECUTION(oldTOOL_POST_EXECUTION)- runtime normalization keeps old phase values compatible during migration.
- MCP docs expansion:
- advanced guide updates for metadata and rule patterns.
- new dedicated MCP Deep Dive with chat-by-chat flow, table impact, and step graph.
2.0.6
2.0.6 focused on cache reliability and diagnostics to eliminate static-table query noise in consumer environments.
- Proxy hygiene for static caches:
StaticConfigurationCacheServicehelper paths now resolve through the Spring proxied bean so@Cacheableconsistently suppresses repeatedce_*static table SQL after warmup. ConvEngineCacheAnalyzer+ diagnostics endpoint: AddedGET /api/v1/cache/analyze(with optionalwarmupflag) to expose activeCacheManagermetadata, Spring cache properties, cache infrastructure beans, runtime AOP proxy/advisor diagnostics,SimpleKey.EMPTYentry visibility, native cache counts, and warmup timing deltas.- Operational debugging uplift: Teams can now validate cache hit/miss behavior directly in runtime and quickly detect provider/proxy misconfiguration in enterprise deployments.
2.0.5
Introduces massive execution path optimizations targeting latency removal, background history persistence, and static framework component caching.
- Static Configurations Cache Loader: All static framework properties (
ce_intent,ce_rule,ce_mcp_tool, etc.) are pre-loaded entirely into memory on JVM live viaStaticTableCachePreloader, dropping complex query I/O acrossRulesStepandInteractionPolicyStepto sub-millisecond evaluate times. - Cache Eviction API: Deployed
/api/v1/cache/refreshendpoint natively insideConvEngineCacheControllerto allow database administrators to immediately flush and reload RAM without bouncing the application. - Async LLM Call Logging: Integrated
@AsyncontoLlmCallLogPersistenceService. Lengthy physical HTTP prompts/completions are recorded in background threads preserving microsecond user-facing SLA times. - History DDL Revolution: Hard-deprecated noisy legacy
role&stagece_conversation_historytable arrays. Decoupled history updates away from the coreDbAuditServicepipeline loop entirely, deploying an explicituser_input+assistant_outputmonolithic string format that tracks asynchronously inside the finalPipelineEndGuardStep. - SQLite Timezone Idempotency: Normalized all underlying timestamp extractions across standard JSON mapping using formal JVM
jackson-datatype-jsr310deployments and rigorousOffsetDateTimestring converters preserving micro-transaction timezone stability across disparate engine host OS profiles.
2.0.4
Patches internal OffsetDateTime JSON serialization stability when executing audit cache inspection.
JavaTimeModuleJackson Integration: Formally added thejackson-datatype-jsr310dependency to the core enginepom.xmlbuild matrix.CacheInspectAuditStepModularization: Refactored the step to insulate itself from potentially unconfigured host Spring application contexts. It now natively spins up and governs a strictly private internalObjectMapperexclusively pre-configured with theJavaTimeModuleand ISO-8601 formatting to cleanly convert internalOffsetDateTimeobjects found insidece_conversation.
2.0.3
Introduces deep cache auditing utilities and executor-level history optimization.
- Cache Inspection Audit Logging: Added a dedicated
CacheInspectAuditStepand theconvengine.audit.cache-inspectorboolean property. When enabled, the engine evaluates a full JSON snapshot of the hydratedEngineSessionconversation cache tree and logs it toce_auditunder theCACHE_INSPECTIONstage before user input audits finalize. - Global Audit Meta Metadata: The
DbAuditServicenow natively interceptsconvengine.audit.cache-inspectortriggers to permanently append a discrete_cacheanalysis object map inside the_metaroot node across all audit phases for continuous memory visibility. - Optimized Executor History Provisioning: Refactored the underlying conversational history provisioner array evaluation (
historyProvider.lastTurns(...)) natively into the rootDefaultConversationalEngine.processingress method. This formally prevents downstream LLM nodes from executing entirely redundantce_conversationrelational database queries across consecutive lifecycle turns.
2.0.2
Introduces deep performance optimizations targeting conversational latency, RAG context injection, and rigid data payloads.
- Query Rewrite (Contextual RAG): Added
convengine.flow.query-rewrite.enabledproperty.DialogueActStepnow natively evaluates conversation history to extract astandaloneQueryinto session parameters, allowing downstream RAG tools to receive explicit context without incurring secondary LLM execution penalties. - JSON Payload Flattening: Patched
EngineSessionstorage logic to aggressively filter redundant structural blocks (CONTEXT,SCHEMA_JSON,SESSION) before database serialization, permanently resolving exponential payload bloat insidece_conversation.input_params_json. - Framework Caching & Async Pipelines
- Integrated standard Spring
@Cacheableand@Asyncinterfaces over all state persistence mutations to entirely decouple zero-latency edge delivery from blocking background Relational Database I/O. - Introduced explicitly managed
@EnableConvEngineCachingand@EnableConvEngineAsyncConversationconsumer integration decorators. - Automatically intercepts the internal engine pipeline via Spring's
CacheManagerto execute synchronous memory writes while offloading slow I/O Relational DB saves to background asynchronous threads.
- Integrated standard Spring
2.0.1
Add audit metadata support for prompt rendering and context
- Introduced new fields in
PromptTemplateContext:templateNamesystemPromptuserPromptsession(EngineSession)
- Updated all response format resolvers (
JsonOutputFormatResolver,TextOutputFormatResolver) to build a context that includes the new metadata. - Updated intent resolution, disambiguation, schema extraction and MCP planner steps to supply the new metadata when creating
PromptTemplateContext. - Enhanced
PromptTemplateRenderer:- Collects metadata (selected prompt, system/user prompts, session dump, and prompt variables) into a map.
- Throws
ConversationEngineExceptionwith the metadata viawithMetaData.
- Added a
metaDatafield andwithMetaData()method toConversationEngineException. - Updated imports across modified classes.
- Adjusted the database DDL for SQLite to use
strftime('%Y-%m-%d %H:%M:%f', 'now')for timestamp defaults. - Bumped project version to 2.0.1 in
pom.xml.
These changes provide richer audit traces for prompt usage and enable better debugging of engine behaviour.
2.0.0
Major runtime engine evolution focused on production-grade turn control, tool orchestration, safety, and observability.
Major runtime engine evolution focused on production-grade turn control, tool orchestration, safety, and observability.
Major runtime engine evolution focused on production-grade turn control, tool orchestration, safety, and observability.
1. Robust Pending Action & Task Execution Lifecycle
- Introduction of
ce_pending_action: A new core configuration table used to catalog multi-turn action candidates by intent, state, andaction_key. Features indexed lookupsidx_ce_pending_action_lookupacrossenabled,action_key,intent_code, andstate_code. PendingActionRepository: Added Spring Data JPA queries focused on filtering eligible actions by phase, intent (intentCode IS NULL OR ...), state (stateCode IS NULL OR ...), and enabled status, ordering strictly by integerpriority.CePendingActionEntity: A JPA entity mapping toce_pending_actionwithbean_name,method_names,priority,intent_code, andstate_codeenabling highly parameterized late-binding invocations.ActionLifecycleStep: A top-level orchestration step responsible for managing the state transitions of modular pending actions within the conversation. Actions are stored in the session context asIN_PROGRESSpending definitive confirmation from the user. It evaluates configurable Time-To-Live parameters (convengine.flow.action-lifecycle.ttl-turnsandttl-minutes).PendingActionStep: A core execution step designed to finalize these actions. It routes the action to the correspondingbean_nameandmethod_namesif the user successfully confirms the action sequence.CeTaskExecutor: A specialized executor pattern designed to securely evaluate and invoke pending tasks synchronously within the strict temporal limits of the conversational turn.- Context Lifecycle Persistence: The engine tracks the holistic lifecycle of these actions (
OPEN,IN_PROGRESS,EXECUTED,REJECTED,EXPIRED) purely in the stringified JSON memory context map (pending_action_runtime), meticulously decoupled from the static table definition. - Disambiguation Matrix Controls: Pending actions that are ambiguous or require explicit missing slot inputs before execution dynamically trigger the new disambiguation mechanisms to halt execution, stash the context, and query the user.
2. Deterministic Interaction Policies & Dialogue Acts
DialogueActStep: A brand new classification pipeline step heavily augmenting the traditional NLP pass. Instead of relying purely on heavy LLM intent classification for simple operational conversational shifts, this step evaluates the user's raw input against fast strict Pattern Regex patterns (AFFIRM,NEGATE,EDIT,RESET) before triggering fallback heuristic LLM logic.- Dialogue Act Taxonomy: Standardized ENUM classification integrated precisely into
ConvEngineInputParamKey.DIALOGUE_ACTincludingAFFIRM(yes, proceed),NEGATE(no, cancel),EDIT(change something),RESET(start over),QUESTION(inquiry), andNEW_REQUEST(topic switch). DialogueActResolveModeEnum: Explicit execution evaluation modes (REGEX_ONLY,REGEX_THEN_LLM,LLM_ONLY) allowing the system to rapidly identify acts using extremely fast regex thresholds prior to paying LLM generation costs.InteractionPolicyStep&InteractionPolicyDecision: The primary "brain" of the v2 matrix routing implementation. This step evaluates theDialogueActalongside the current discreteSessionState. For instance, if a pending action is markedIN_PROGRESSin memory, and the new turn evaluates to the actAFFIRM, it makes an instantaneous deterministic policy decisionEXECUTE_PENDING_ACTION. If it evaluates toNEGATE, it selectsREJECT_PENDING_ACTION. If it'sQUESTION, it evaluates toFILL_PENDING_SLOT. This massive enhancement completely bypasses stochastic LLM generative behaviors for discrete boolean pathing.
3. Strict MCP Tool Management and Orchestration Scoping
CeMcpToolScope Isolation: Theintent_codeandstate_codecolumns were physically integrated into thece_mcp_tooltable architecture to formally mandate extreme compartmentalization of tool access limits. Tools are strictly bound to domains and are no longer assumed "global by default."McpToolRepositoryRefactoring: Updated JPQL definitions in the repository (findEnabledByIntentAndState,findByToolCodeEnabledAndIntentAndState) leveraging the Spring Data@Paramannotation to guarantee tools are flawlessly filtered. The internalMcpPlanneris logically isolated from discovering tools sitting externally to the current active conversational domain intent scope.McpToolRegistryImprovements: A hardened centralized registry mechanism uniquely responsible for standardizingtool_groupdomains and resolving perfectly legal tools for a given conversation cycle loop, mathematically preventing hallucinations where an LLM invokes an unbound tool.McpToolExecutorInterface Expansion: Designed a formalized executor functional contract natively implemented by a vast array of specialized business adapters for standardized output structures.- New Executor Adapter Implementations: Delivered fully mocked execution wrappers capable of expanding to live implementations:
McpDbToolExecutor: For parsing database querying and modification parameter mapping tools.McpHttpApiToolExecutor: For serializing outbound REST/SOAP API tool integrations.McpWorkflowActionToolExecutor: For complex cross-system async workflow pipeline triggers.McpDocumentRetrievalToolExecutor: For executing dynamic RAG (Retrieval-Augmented Generation) Knowledge Base queries.McpCalculatorTransformToolExecutor: For executing deterministic programmatic mathematical transformations.McpFileToolExecutor: For OS-level file parsing, reading, generation, and file management tools.McpNotificationToolExecutor: For serializing logic aimed at SMS/Email/Push notification gateways.
- Early-Exit Execution Guardrails:
ToolOrchestrationStepandMcpToolSteplogic matrices were fortified to immediately halt and bypass tool discovery planning on simple conversational greetings (e.g., regex checks againsthi,hello,good morning) or explicit internal dialogue acts (AFFIRM,NEGATE) to drastically curb overhead computational latency and expensive LLM generative token expenditures.
4. Advanced Pipeline Governance: Memory, Guardrails, and Graphs
GuardrailStepFramework: A foundational preventative pipeline step strategically positioned to screen dynamic inputs against hardcoded blocked configuration patterns or sanitize output payload injections before advancing. Generates robust metrics to soft-block or strictly hard-block theConvEngineInputParamKey.STATE_GRAPH_VALIDcontrol parameter.DisambiguationStepIntegration: An autonomous discrete evaluation system boundary. If multiple valid intents or competing multi-turn pending actions exhibit mathematically adjacent probabilities (Confidence score collisions), this step halts the internal execution state transitions and forces a deterministic query back to the end user for explicit disambiguation.StateGraphStepValidation: Built an internal compliance enforcement algorithm explicitly assessing whether the current proposed transition route fromState A -> State Bfunctionally complies with the statically mapped topologies inside theconvengine.flow.state-graph.allowed-transitionslogic limits.MemoryStepandConversationMemoryStoreContext Modeling: Engineered a long-term conversation compression service layer. The orchestration engine dynamically aggregates rolling conversation turns bounded by therecent-turns-for-summarythreshold and compresses them into a highly compactConvEngineInputParamKey.MEMORY_SESSION_SUMMARY. This drastically scales up context capacities, permitting the underlying LLM to seamlessly address sliding-window follow-up questions without wasting tokens continuously re-parsing huge historical payload stacks.
5. Deterministic Evaluation and Replay CI/CD Logics
ConversationReplayServiceOrchestration: Wrote advanced system test capabilities modeled exclusively for deep auditing metrics and automated CI/CD gating strategies. It fundamentally enables developers to parse a targetconversation_idstring into the service to perfectly replay historical conversational turns sequentially across the precise state parameters to test robustness over time.TraceExpectationObject Structure: Represents the mathematical and contextual logical assertions required during a turn replay scenario (e.g.,Assert Intent == X,Assert Dialogue Act == Y).TraceReplayResult&TraceTurnResultAnalytics: Deployed overarching replay evaluation metrics classes designed to empower automated pipelines with the tooling necessary to validate whether newly submitted behavior rules applied directly withince_ruleorce_policyunexpectedly fractured long-standing static historically recorded conversation progression structures.- SQL Initialization DDL Enhancements: Segmented and significantly refactored database procedural seeding generation structures intended for clean, error-free automated platform tests. Explicitly divided the sprawling monolithic
ddl.sqllogic into dedicated dialect-specific SQL instances (seed_sqlite.sql,seed_postgres.sql,seed_oracle.sql). Spliced all auto-generated DBeaver boilerplate syntax elements and strategically configured dependency-orientedDROP TABLEdefinitions to ensure identically idempotent and stateless automated unit test deployment loops continuously without breaking consistency schemas.
Added new steps
DialogueActStepInteractionPolicyStepActionLifecycleStepDisambiguationStepGuardrailStepToolOrchestrationStepStateGraphStepMemoryStepPendingActionStepenhanced for robust policy/lifecycle integration
Added new flow configuration model
ConvEngineFlowConfig(convengine.flow.*)- dialogue act
- interaction policy matrix
- action lifecycle TTL
- disambiguation options
- guardrail controls
- state graph settings
- tool orchestration toggle
- memory summary settings
Added new control table
ce_pending_action- action catalog for pending-action execution
- indexed by action key/intent/state/priority
Added new rule phases
POST_AGENT_MCPPOST_TOOL_EXECUTION
Added tool execution architecture
McpToolExecutorinterface- group executors for:
DBHTTP_APIWORKFLOW_ACTIONDOCUMENT_RETRIEVALCALCULATOR_TRANSFORMNOTIFICATIONFILES
- adapter interfaces for consumer implementations
Added memory and replay scaffolding
ConversationMemoryStoreConversationReplayService- replay model classes (
Trace*)
Added audit stage coverage
Expanded audit visibility for:
- dialogue act and interaction policy
- dialogue-act LLM input/output/error checkpoints (
DIALOGUE_ACT_LLM_INPUT,DIALOGUE_ACT_LLM_OUTPUT,DIALOGUE_ACT_LLM_ERROR) - post-dialogue-act override hook via
POST_DIALOGUE_ACTandSET_DIALOGUE_ACT - pending action lifecycle and execution
- disambiguation requirements
- guardrail allow/deny
- tool orchestration request/result/error
- state graph validation/violation
- memory updates
- post-phase rule metadata
1.x line
Use the version dropdown to switch to v1 documentation.