Skip to content

v1.4.25

Latest

Choose a tag to compare

@hoalongnatsu hoalongnatsu released this 07 Sep 05:15
c0725f1

v1.4.25

Versus v1.4.25 adds an evidence-backed DevOps/SRE chat workspace for exploring
the systems and data sources connected to Versus. The assistant uses read-only,
resource-oriented tools and reports when evidence or a capability is unavailable
instead of filling gaps with assumptions.

Highlights

  • One incident per continuing condition — AI detect mode now coalesces
    repeated occurrences of the same error into one durable incident and one
    initial notification. An error seen 500 times is reported as 500 occurrences,
    not 500 independently paged alerts.
  • Live detection evidence — incident lists and details show cumulative
    occurrence count, last seen, and the highest observed severity. Later
    lower-severity events cannot visually downgrade an escalated incident.
  • DevOps chat workspace — open /agent/chat to start, resume, cancel, and
    delete investigation threads. Responses stream with visible tool progress and
    retained evidence.
  • Broad system discovery — inspect system status, services, incidents,
    learned patterns, prior analyses, alert decisions, connected capabilities, and
    detection health through generic get/list/search operations.
  • Grounded context — attach an incident, service, or explicit time range to a
    message without restricting the conversation to that entity.
  • Durable conversations — sessions survive refreshes and process restarts,
    and work consistently across multiple replicas when using a CAS-capable shared
    backend.
  • Explicit cancellation — leaving the page does not abort an investigation;
    use Stop to cancel the active server-side run.
  • Capability guidance — unavailable telemetry, runbook, dependency,
    reliability, or decision sources are identified explicitly with safe setup
    guidance.
  • Tool catalog and controls — open /agent/tools to inspect every Chat and
    Analyze tool, see exactly why it is available or unavailable, and control the
    two agents independently.
  • Direct tool guidance — every displayed tool links to its canonical
    documentation. Tools with an existing product surface also offer Open tool;
    for example, find_runbook opens Runbooks management without a permanent
    Runbooks sidebar item.
  • Durable tool policy — per-agent choices are stored by organization and
    shared across replicas when using a CAS-capable storage backend. Disabled
    tools are removed from the selected agent's model tool list and new-session
    discovery rather than refused after invocation.
  • Enterprise knowledge — licensed deployments can enrich the same assistant
    with SLI/SLO reliability state and bounded alert-fatigue decision provenance.

Detection episodes

AI detect mode now treats repeated observations of one continuing condition as
one detection episode:

  • The first anomaly creates one stable incident and sends one initial
    notification.
  • Repeats update the incident's exact cumulative occurrence count and last-seen
    time without calling notification providers again.
  • A higher severity can send one escalation notification while keeping the same
    incident ID. On-call starts only if it has not already run for that incident.
  • Resolving the incident closes the episode. A later recurrence creates a new
    incident.
  • A 10-minute quiet gap also starts a new episode; continuous traffic does not
    page again every 10 minutes.
  • Results no longer depend on source batching. One pull with 500 matching events
    and 500 one-event pulls both produce one incident, one initial notification,
    and occurrence count 500.

Memory and file storage support single-process episode coordination. PostgreSQL
provides atomic ownership, token-fenced claim renewal, restart persistence, and
multi-replica coordination. PostgreSQL is recommended for high-cardinality or
multi-replica detect workloads.

Enterprise keeps alert-fatigue page count separate from raw occurrence volume.
Proceed, custom divert, suppress, and group outcomes remain explicit, while
high/critical priority floors continue to use primary routing. Same-condition
repeats do not re-enter Enterprise routing after a terminal decision.

Tool catalog

The new Tool catalog remains readable even when agent.enable is false, so an
operator can review requirements before enabling the runtime. Tools are grouped
by domain and report one of these server-resolved states:

  • available;
  • disabled by the operator;
  • needs a license;
  • needs a data source;
  • needs an integration;
  • needs an internal capability;
  • configured but unhealthy.

Each unavailable card names the missing requirement, explains what the tool
would use it for, and links to the current setup surface. Health details contain
only bounded source names and safe error classes; hosts, credentials, prompts,
tool payloads, and raw backend errors are not displayed.

Default enabled Versus tools are hidden so the page stays focused on setup and
policy decisions. If a Versus tool is operator-disabled or enters an abnormal
state, its card reappears for recovery. Hidden defaults can be disabled through
the documented Tool catalog API.

Unavailable tools keep a visible, unchecked checkbox in the disabled state, so
the catalog shows both the intended control and why it cannot currently be
changed. Operator-disabled tools whose requirements are satisfied remain
interactive.

Chat and Analyze settings are independent. Enabling a tool whose requirements
are not satisfied is rejected instead of storing an ineffective setting. A
healthy source keeps its tool available when another source of the same kind is
failing; the group becomes unhealthy only when all usable sources have failed.

This release exposes Kubernetes tool entries as availability metadata only. It
does not add Kubernetes inspection, data-source creation or editing, credential
management, or source binding. Those workflows remain separate follow-up work.

Chat now appears in the Respond sidebar group in OSS and Enterprise. Runbooks is
no longer a permanent sidebar item; use Open tool on the find_runbook card
to reach /agent/runbooks. In the documentation site, AI Analyze is a single
page and Tool Reference, Recent Changes, and Find Runbook live under the Tools
group.

Security and operations

  • Chat tools remain read-only. Actions are not executed from chat.
  • Sessions, tools, reliability data, and alert decisions use the deployment's
    organization data scope.
  • Prompts, answers, tool arguments, tool output, credentials, and raw backend
    errors are excluded from Enterprise audit records and operational logs.
  • Enterprise records bounded create/send/result/cancel/delete audit outcomes.
  • Enterprise requires runtime:manage to change Tool catalog settings and
    records bounded agent.tool.changed outcomes for allowed and denied attempts.
    Read-only catalog inspection remains available without that mutation
    permission.
  • Enterprise browser-session mutations now use exact-origin CSRF validation.
    Set root public_host to the externally visible HTTP(S) origin when a
    TLS-terminating or Host-rewriting proxy changes the request origin seen by
    Versus. The same value owns external links and secure-cookie derivation.
  • Chat applies process/org-wide and per-session hourly request ceilings. With a
    CAS-capable shared backend, the aggregate ceilings are coordinated across
    replicas.
  • Retention is bounded to 100 sessions per organization, 100 turns per session,
    and 30 days. Sessions also have a hard encoded-size limit.
  • Tool availability distinguishes configured sources from adapters that were
    actually constructed. Enterprise metric/trace purchase guidance cannot be
    bypassed by adding a provider name to configuration, while valid standalone
    OSS Prometheus and Tempo tool readers remain usable.
  • Detection notification claims renew during slow provider fan-out, preventing
    a live replica from being replaced after the original lease interval. A crash
    after an external provider accepts a notification but before durable completion
    remains an at-least-once boundary.

Configuration

Chat inherits the shared agent.ai model configuration by default. Optional
task-specific overrides are available under agent.ai.chat:

agent:
	ai:
		chat:
			model: ""
			max_tokens: 0
			max_calls_per_hour: 0

Empty or zero task fields inherit the corresponding shared AI setting/default.

For licensed deployments behind a proxy, set the shared root config:

public_host: https://versus.example.com

The value must be an absolute HTTP(S) origin only: no path, query, fragment, or
userinfo.

Breaking and upgrade notes

The model-visible Versus tool catalog was consolidated around generic resource
semantics. Integrations or dashboards that match tool names should migrate to:

  • get_system_overview
  • list_services
  • get_service
  • get_incident
  • search_incidents
  • list_patterns
  • get_pattern
  • list_analyses
  • get_alert_decision
  • list_capabilities
  • get_detection_health

The prior recent_incidents, pattern_history, describe_service,
versus_overview, describe_incident, describe_patterns, analysis_history,
capability_status, and detection_health names are removed. The unreleased
question-specific explain_known_status, explain_spam, and
service_objectives names are not part of the release.

Unsafe Enterprise API requests authenticated by a browser session must now send
a matching Origin or Referer. Machine/signature-authenticated ingestion is
unchanged.

The embedded UI upgrades React Router to 7.x, Vite to 8.x, Vitest to 4.x, and
@vitejs/plugin-react to 6.x. Maintainers of downstream UI forks should retest
custom routing, build plugins, and test configuration.

golang.org/x/crypto is upgraded from v0.55.0 to v0.56.0 in OSS and Enterprise.
This resolves reachable SSH channel-deadlock advisories GO-2026-6354 and
GO-2026-6355.

What's Changed

Full Changelog: v1.4.24...v1.4.25