> ## Documentation Index
> Fetch the complete documentation index at: https://docs.roboticks.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Roboticks platform and documentation changes.

# Changelog

Customer-facing changes to the Roboticks platform, SDK, CLI, runner, and documentation.

## 2026-05-26 — Wire schema v2, per-test-case artifacts, AI surfaces

### Wire contract — schema v2

* Bumped `roboticks_schema_version` to `2`. The platform supports v2 and v1 (one-back); v1 uploads keep working with a legacy adapter that lands per-test-case artifacts under the run-level prefix instead of per-case sub-folders.
* New required testcase property: **`roboticks.nodeid`** (the pytest nodeid). Drives the deterministic per-test-case S3 prefix `test-runs/{run_id}/test-cases/{sha256(nodeid)[:16]}/`.
* New optional, repeatable testcase property family: **`roboticks.attach.{kind}`**, one per file registered via the new `attach_artifact()` API. The runner uploader walks them and posts each file with `{nodeid, kind}` to the per-test-case prefix.
* Full reference: [SDK wire contract](/sdk/wire-contract). Narrative: [testing wire contract](/testing/wire-contract).

### SDK

* New module `roboticks.artifacts` and top-level export `attach_artifact(path, *, kind=...)` for registering per-test files (MCAPs, screenshots, JSONL traces). Reserved kinds: `KIND_MCAP`, `KIND_LOGS`, `KIND_ATTACHMENTS`; custom single-segment labels accepted.
* Pytest plugin emits `roboticks.nodeid` on every testcase + one `roboticks.attach.{kind}` property per attached file. Added thread-local active-test resolution so `attach_artifact()` doesn't need plumbing.
* See [SDK overview → attach\_artifact](/sdk/overview#attach_artifact) and [pytest plugin](/sdk/pytest-plugin).

### CLI

* New: `rbtk test watch <run-id>` — live-stream a run's status from queued → running → completed without leaving the terminal.
* New: `rbtk test cases <run-id>` — list test cases that ran inside a run with their per-test-case S3 prefix and `roboticks.confirms` links.
* New: `rbtk test files <run-id> [--nodeid …] [--prefix …] [--download]` — list or download per-test-case artifacts. Local layout mirrors S3 so files stay grouped under the test that produced them. The old `rbtk test artifacts` remains as a hidden alias.
* `rbtk test cloud` now prints a clickable workspace URL alongside the run ID, and supports `--no-confirm-charge` for a price-quote dry-run.

### MCP

* New orchestration tool `trigger_cloud_test_run` returns a `workspace_url` derived from the org slug so an LLM agent can hand the link straight to the user.
* New tools `list_test_run_test_cases`, `watch_test_run`, and `download_test_run_files` mirror the new CLI surface for LLM-driven sessions.

### Platform — AI features

A new wave of inline AI surfaces shipped across the product, each backed by a typed `AITaskType` with fixed model routing and a fixed `token_cost`. All are metered in the org's monthly `ai_tokens` grant (Free 100 k / Team 5 M / Enterprise ∞).

* **Test debugging:** inline log-anomaly highlighting on the Logs page; cross-run flakiness analysis on test-case detail; sim-vs-real run comparison on sim runs.
* **Requirements & traceability:** four new requirement-detail assists (INCOSE quality, verification-method, duplicate / contradiction, standards-clause linkage), chat-with-document on the Requirements Upload page, gap explanation + test-suggestion on uncovered matrix rows. New shared `<AIAssist>` React primitive for inline row assists.
* **Evidence & standards:** evidence-pack narrative (Opus), pre-audit Q\&A and completeness gate per pack, standards coverage delta and plain-English clause summaries, weekly AI digest on the Posture dashboard.
* **Search:** new `/search/ai` endpoint — natural-language queries (e.g. "failing tests on main from last week") parsed by Haiku into structured filters with deterministic click-through URLs.
* Doc set: [AI overview](/ai/overview), [test debugging](/ai/test-debugging), [requirements & traceability](/ai/requirements-and-traceability), [evidence & standards](/ai/evidence-and-standards), [NL search](/ai/search).

### Integrations

* Clarified the pricing model: **BYO test-result ingest is free on every tier** (JUnit-with-confirms, MCAP, SARIF 2.1.0). The \$149/connector/month fee covers the requirements-side and certified-static-analysis catalog only.
* BYO connector marketplace exposes new fields per entry: `supported_sync_modes` (`cloud_poll` / `cli_push` / `webhook`), `primary_sync_mode`, `partner_status` (`not_applied` / `pending` / `active` / `denied`), `cli_setup_doc_url`, `v1_ready`. The Add button is disabled for pre-v1 connectors so the catalog can surface the roadmap without misrepresenting availability.

### Platform — internal cleanup

* Backend permissions and topology vocabulary renamed `sessions` → `test_runs` (no aliases). API key scopes (`project:read:test_runs`), permission columns, schema types, and admin dashboards all carry the V\&V vocabulary now.
* Migrations `14_rename_permission_sessions_to_test_runs.py` and `15_rename_test_job_session_id_to_test_run_id.py` complete the rename in the DB.

## 2026-05 — V\&V pivot

Roboticks pivoted from robot fleet management to **audit-grade test CI for ROS2**. This is a clean rebuild around the V-model: requirements ingestion, traceability, evidence packs, and standards-feed alerting.

### Platform

* **GitHub App** is the canonical integration. Install once; per-PR Check Runs report coverage delta.
* **Requirements engine** ingests ReqIF (Polarion, Jama, codeBeamer, DOORS), PDF (LLM-extracted), inline YAML, or manual entry.
* **Traceability engine** computes per-requirement coverage state (confirmed / partial / regression / unconfirmed / gap); matrix UI; change-impact analysis on PRs.
* **Runner pools** — hosted Gazebo Harmonic / Webots / ROS2 (metered sim minutes) and self-hosted via the [`roboticks-runner`](https://github.com/roboticks-io/roboticks-runner) Go binary (free compute). Air-gapped mode on Enterprise.
* **Evidence packs** — PDF + ReqIF + ZIP, tamper-evident hash chain, 10-year S3 Glacier Deep Archive retention.
* **Standards feed** — pin standards (ISO 10218, IEC 61508, EU MR 2023/1230, etc.); alerts on amendments touching pinned requirements.
* **LLM triage** — "why did this fail?" + "suggest tests for this requirement."

### SDK

* New [`roboticks`](https://pypi.org/project/roboticks/) PyPI package: `@confirms`/`@tags`/`@requires_sim`/`@deadline` decorators, pytest11 plugin, rclpy assertion helpers, MCAP capture, launch\_testing helpers, fault injection.
* New `roboticks_cpp` ament\_cmake INTERFACE library: `ROBOTICKS_CONFIRMS(...)` macro, gtest helpers.
* Wire format: JUnit-with-confirms (XSD-schema-versioned); `roboticks_schema_version = 1`.

### CLI

* Repo `roboticks-io/roboticks-cli` published as `pip install roboticks-cli`. Two aliases: `rbtk` (short) and `roboticks` (clear).
* New command groups: `rbtk test`, `rbtk requirements`, `rbtk github`, `rbtk pool`, `rbtk context`, `rbtk auth`.
* GitHub OIDC exchange (`rbtk auth oidc-from-github`) for keyless CI auth.

### Runner

* [`roboticks-runner`](https://github.com/roboticks-io/roboticks-runner) Go binary v2.x.x: ROS2 test execution, container lifecycle, MCAP/JUnit upload via presigned URLs, capability declaration (ROS distros, sim engines, GPU), heartbeat with token rotation.
* Air-gapped mode (Enterprise): no GitHub connectivity required.

### Pricing

* Four tiers: Free / Team / Enterprise / Sponsored.
* Three metered dimensions only: hosted sim minutes, hot storage, archive storage. Test runs never billed. Self-hosted runner compute always free.
* Standards subscriptions $99/standard/mo. BYO connectors (LDRA, Polyspace, Coverity, Jama, Polarion, codeBeamer, DOORS) $149/connector/mo.

### Documentation

* Top-to-bottom rewrite around the V\&V product. Old fleet/device/MQTT/tunnel/capsule/rollout content removed.
* New sections: GitHub App, Requirements, Traceability, Evidence Packs, Standards Coverage, Compliance Patterns.
* Expanded Testing and SDK sections.

## Upcoming

* GitLab support (post-MVP; tracking demand).
* Per-region runner pools for low-latency EU customers (deferred).
* SDK formal tool qualification (year 2+; ISO 26262-8 TCL-1 for the assertion layer).
* Custom internal standards on Enterprise.

## Earlier releases

Earlier releases were for the legacy robot-fleet product. Those release notes are no longer applicable to the current product; archived for historical reference at [`legacy-sidebar.json`](https://github.com/roboticks-io/docs/blob/main/legacy-sidebar.json).
