Changelog
Notable documentation updates and SDK changes. For SDK release notes, see the npm package history.
2026-04-01
Governance Dashboard
- Added: Session-level truth support generation — the monitoring surface now emits support signals for accepted session fields (phases, transitions, session limits, unknown surface policy, rollout mode) when the plan is approved or enforcing. Uses persisted evidence counts when available for stronger support messages, with honest fallback to plan-level evidence.
- Added: Session-level freshness decay — stale risky session fields (phases, transitions, unknown surface policy) now emit
freshness_decayadaptive changes, using persisted entry freshness when available. - Added: Session truth strength indicator — monitoring summary includes
session_truth_strength(strong / partial / under-observed) derived from session-scoped evidence ledger entries. Displayed in the Truth Health Bar.
2026-03-31
Governance Dashboard
- Added: Truth Monitoring section on the governance page — shows contract fidelity level, approved-truth health (challenged vs supported), top adaptive changes by severity, top evidence requests by priority, and evidence freshness summary. Renders inside a collapsible disclosure when monitoring data is present.
- Added: Deterministic freshness/staleness derivation for governed surfaces. Uses a two-layer heuristic: source-quality baseline (exact → fresh, observation → aging, default → stale) combined with temporal decay from plan-level timestamps (7 days → aging, 30 days → stale). Emits per-tool
freshness_decayadaptive changes for stale risky surfaces and tracksstale_risky_surfacescount in the monitoring summary. Evidence ledger entries now populateevidence_windowandlast_supported_at/last_contradicted_atfrom approval proof when available.
Replay Positioning
- Updated: Replay overview now frames
replay()as workflow governance for agent reliability, clarifies that it complements IAM/sandboxing, and softens server-backed claims in Govern mode. - Updated: Replay Quickstart now positions runtime blocking as structured workflow protection and explicitly keeps infrastructure permissions and API-level validation in scope.
- Updated: Protection Levels now distinguishes local workflow protection from server-backed Govern sessions without implying a hard external execution boundary.
- Updated: Govern Mode now documents current server-backed authority more narrowly: durable session state, governed records, approvals, and workflow coordination on the wrapped path.
- Updated: Security & Evidence now states what Replay evidence proves, what it does not prove, and softens compliance language to supporting relevance rather than standalone guarantees.
- Updated: Why Runtime Governance now narrows Replay's promise to workflow-level failures across steps and adds an explicit "what Replay is not" section.
- Updated: Site-level docs and navigation now match the narrower Replay framing: Introduction, How Vesanor Works, sidebar/footer labels, and the security/compliance pages all distinguish workflow governance from platform security guarantees.
- Updated: Public wording across Replay overview, Govern Mode, Protection Levels, and site-level navigation is now more consistent and less defensive:
workflow governanceis the primary term, repetitive caveats were trimmed, and Govern now points to Security & Evidence for trust-model detail.
2026-03-27
Zero-Config Documentation
- Updated: Zero-Config Governance now matches the shipped boundary: zero-config is the server-side governance learning and review flow, approval freezes immutable
compiled_plan/compiled_sessionsnapshots, post-approval drift becomespending_review, and customer-triggered semantic re-analysis remains deferred. - Updated: Replay Quickstart now distinguishes zero-config review from contract-based runtime enforcement and removes the claim that
replay(client, { apiKey })blocks tool calls locally today. - Updated: Replay overview now separates zero-config capture/review from contract-driven Protect and Govern modes.
- Updated: Quickstart link text now reflects the current zero-config review flow instead of describing it as immediate runtime protection.
2026-03-25
Zero-Config Governance
- Added: Zero-Config Governance page — explains the customer experience: one line of code, auto-inferred rules across all four enforcement layers, plain English dashboard review, two-layer model (auto vs custom), continuous governance, and export escape hatch.
- Updated: Replay overview now leads with zero-config as the primary quickstart flow. Manual contracts moved to "Advanced: Manual Contracts" section.
- Updated: Quickstart now leads with the zero-config path (no YAML needed). Contract-based setup moved to "Advanced: Manual contracts" section.
- Added: Anchor targets for governance gap links:
#pre-execution-constraintsin Contract Cookbook,#authorization-policyin Contract Cookbook,#provider-constraintsin Contract YAML Reference.
Preconditions & Ordering
- Added:
with_outputnow supportsgteandltenumeric comparisons in addition toequals. Enables threshold checks on prior tool output (e.g., VaR must be ≤ 0.05).
Contract Reference
- Added: Aggregates
whenclause for conditional bound overrides. Bounds can adapt to runtime conditions via session bindings (e.g., relax hedge call limit when VaR is elevated). First matching condition wins; missing bindings fall through to base bounds.
2026-03-24
Troubleshooting
- Added: Layer 2-4 enforcement issues section — diagnostics and fixes for
binding_not_found,ref_mismatch,aggregate_limit_exceeded,aggregate_path_missing,envelope_not_established,envelope_violation,checkpoint_timeout,checkpoint_denied,checkpoint_budget_exceeded,label_gateremoval, schema-derived invariant blocks, and contract graph analysis diagnostics (DEAD_TOOL,UNREACHABLE_PRECONDITION,DEAD_PHASE,CIRCULAR_DEADLOCK).
Contract Reference
- Added: Per-tool optional fields:
binds,schema_derived,schema_derived_exclude,checkpoint. - Added: Per-tool sections:
binds(session-scoped slot capture),refoperator (bound slot equality inargument_value_invariants),schema_derived/schema_derived_exclude(auto-derived invariant control),checkpoint(human approval gates). - Added: Session-level sections:
aggregates,envelopes,checkpoints,label_gates,schema_derived,graph_analysis. - Added:
refandtoleranceoperators to argument value invariants table. - Added: Session YAML example expanded with aggregates, envelopes, checkpoints, label gates, schema-derived config, and graph analysis suppression.
API Reference
- Added:
labelsandonCheckpointfields toReplayOptionstype reference (session labels with taint semantics, human checkpoint callbacks). - Added:
addLabel()method toReplaySession<T>type reference. - Added:
label_gatetoNarrowedToolreason union. - Added: 9 new block reasons:
binding_not_found,ref_mismatch,aggregate_limit_exceeded,aggregate_path_missing,envelope_not_established,envelope_violation,checkpoint_denied,checkpoint_timeout,checkpoint_budget_exceeded. - Added: Runtime API endpoints section —
POST .../labelsandPOST .../proposals/:proposalId/approve. - Added: Checkpoint types section —
ApprovalRequest,ApprovalResponse, andpending_approvalproposal status.
SDK
- Fixed:
with_outputpreconditions never worked with narrowing —outputExtractwas populated after Stage 1 narrowing evaluated preconditions, so tools withwith_outputrequirements were always removed. Extraction now runs before narrowing. - Fixed:
replay()now has a default diagnostics handler (matchingobserve()) — critical events like compile errors, blocks, kills, and bypass detection are logged viaconsole.warnwhen nodiagnosticscallback is provided. - Fixed:
replay()now emits a compile warning whencontractsDiris set but nosession.yamlis found, so developers know session-level features (phases, policy, session_limits) are inactive. - Fixed: Argument value invariant failures using
regex,one_of,type,gte, orlteoperators were misclassified asoutput_invariant_failedinstead ofargument_value_mismatch. Onlyexact_matchwas correctly mapped. - Added:
max_tool_calls_mode: narrow— opt-in session limit mode that narrows the tool set to budgeted tools instead of hard-blocking whenmax_tool_callsis exceeded. Keeps reserved tools reachable in multi-phase workflows.
Documentation
- Added: Layered Enforcement Model — explains the four enforcement layers (per-tool, cross-tool, session-level, human checkpoints), with concrete trading examples, a decision tree for choosing the right primitive, and a known-limitations section.
- Fixed: Broken cookbook example —
process_paymentusedside_effect: destructive+evidence_class: ack_only, which throwsACK_ONLY_ON_HIGH_RISKat compile time. Changed tofinancial+local_transaction. - Added:
evidence_class+side_effectcompatibility matrix in the Contract Cookbook. Documents which combinations are blocked and what to use instead. - Added:
evidence_classrestrictions section in Contract YAML Reference — theACK_ONLY_ON_HIGH_RISKcompatibility matrix was only in the cookbook, now also in the reference. - Added: End-to-end TypeScript example showing
session.toolsexecution,.resultunwrapping, andwith_outputprecondition resolution in Preconditions & Ordering. - Added: Shadow coverage tracking section in Shadow Mode — coverage ledger, classification tiers (zero/low/partial/good), access methods, checkpoint behavior in shadow mode.
- Added:
max_tool_calls_modedocumentation in Session Limits and Contract YAML Reference. - Added: Server-side enforcement of Layer 2-4 primitives section in Govern Mode — documents how session labels, aggregates, envelopes, checkpoint approvals, and session bindings are enforced server-side to prevent client bypass.
- Added: Cross-phase behavior section in Phases & Transitions — documents that aggregates and envelopes persist across phases (anti-salami), and that graph analysis detects dead phases, unreachable phases, and circular deadlocks at compile time.