▸ ROOT / CHANGELOG

Changelog

What's new and what's changed in these docs, newest first.

A running log of edits to these docs, newest first. The docs are under active construction — this page is where to see what's fresh, what's been revised, and what's worth re-reading. (Release history for cheetah-service and the SDKs lives in each repo's own CHANGELOG and will be surfaced here later.)

Tags: NEW — a page or section that didn't exist before · IMPROVED — existing content expanded or clarified · CHANGED — renames and restructures (terms or URLs may have moved) · FIXED — corrections to inaccurate content.

2026-09-02#

  • NEWEvent reference, Event dispatch, Program lifecycle events: every run lifecycle event now carries program_name in its data — the program's operator-facing name at dispatch time, null if the program was deleted before the event fired. Shipped in cheetah-service v1.5.12; additive, so schema_version stays 3.
  • IMPROVEDWebhooks: delivery behavior is now per webhook, not service-wide — Timeout (s) (delivery_timeout_seconds, default 3, range 1–300), Retry backoff (s) (retry_backoff_seconds, default 1, range 0–30) and Max retries (max_retries, default 3, range 0–10). A slow partner endpoint can get a longer timeout without affecting other subscribers. The ~10s dispatch window is still a service-wide cap, so generous settings mean fewer attempts fit. New in cheetah-service v1.5.11.
  • FIXEDWebhooks and Event dispatch: the retry count was documented as three attempts. With per-webhook config the default is 1 + max_retries = four attempts, and webhooks created before v1.5.11 inherit that default too.
  • FIXEDEvent reference and Program lifecycle events: robot_id was typed as a UUID and described as identifying the cell. It is a short operator-chosen robot id from the cell's configuration (as the resource model already said), it identifies a robot, and since multi-robot programs shipped it reports the first robot of a program that drives several. Example payloads corrected.
  • IMPROVEDAPI Reference regenerated against cheetah-service v1.6.0: new GET /system/version operation (the release string every event envelope carries as service_version); programs now report robot_ids (array) instead of robot_id — a breaking rename on the public surface, from multi-robot program support; quality checks carry nominal; webhook create/update/response carry the three delivery-config fields; new gripper program step type; component health entries carry enabled.
  • IMPROVEDPython SDK and TypeScript SDK: the method-to-endpoint maps were missing run files (list_run_files / download_run_file, listRunFiles / downloadRunFile), defects (get_run_defects / getRunDefects) and the new version(). Install examples now pin v1.6.0.
  • FIXEDVersioning policy: the page described a footer stamp ("Last verified against cheetah-service X") that doesn't exist, and claimed the API reference surfaces the OpenAPI info.version. Replaced with what pages actually carry — the applies_to banner and a LAST VERIFIED date. Current release corrected to v1.6.0 throughout.
  • NEWOpen REST API: a section on pulling the quality report, and the unit difference that matters — REST checks are always canonical millimetres with canonical_units, while a ProgramCompleted event's qc_checks are converted to the cell's display units and carry unit. Convert on the REST side rather than assuming the two agree.
  • IMPROVEDOpen REST API: the pull-surface table lists GET /system/version beside GET /health; the per-resource file endpoints are described as available "during beta", not alpha. Data model: quality checks carry nominal.

2026-08-24#

  • NEWEvent reference: the event envelope carries two new fields identifying the sender rather than the run. kiosk_serial_number is the serial of the Cheetah unit that emitted the event (set in system config; null until the unit is commissioned), and service_version is the cheetah-service build that emitted it. Both appear on every event, including WebhookTest, so an endpoint receiving from several units can attribute each delivery. Note the distinction from data.serial_number, which remains the serial of the part being inspected. This is an additive change; schema_version stays 3.
  • FIXEDEvent reference, Webhooks, Event dispatch, Program lifecycle events, Versioning policy: these pages still documented schema_version: 2 after 3 shipped in cheetah-service v1.5.8. Corrected throughout. The substantive change: each entry in qc_checks no longer carries the internal canonical_units flag ("mm" / "unspecified") — it carries a receiver-facing unit ("mm", "in", or null) instead, and ProgramCompleted data now carries unit_system ("metric" / "imperial"). Length values are converted to inches when the unit system is imperial, so a receiver must read unit rather than assume millimetres. Checks also carry nominal, and delta is measured against it.
  • IMPROVEDVersioning policy: states explicitly that purely additive fields do not bump schema_version — only changes that break existing readers do. The MES receiver example on Webhooks now records each measurement's unit and attributes the record to the emitting unit.

2026-08-15#

2026-08-14#

  • IMPROVEDCobot Scanner: the User Expansion Panel pinout rendered as real tables, with safety-input and mounting-hole detail; operator-panel and expansion-panel photos added; system weight recorded.

2026-08-13#

  • NEWCobot Scanner: the platform's own page — a real hardware manual covering system layout, receiving and unboxing, mechanical installation, electrical power, the operator interface, the user expansion panel and its I/O, integrated storage, the inspection bed, the control cabinet, care and maintenance, and technical specifications. Gantry Scanner and RMM Scanner exist as placeholders pending the same treatment.
  • NEWGlossary: an Industry Terms section defines the manufacturing vocabulary the docs lean on — Gage R&R, GD&T, and Metrology — and ties each back to where it shows up in Cheetah (Validation studies, quality-check tolerances, floor-vs-lab inspection).

2026-08-12#

  • CHANGEDHardware Platform rewritten around the three platforms as products: each now carries its part number (Cobot Scanner CE-101100, Gantry Scanner CE-102000, RMM Scanner CE-103000), a "optimized for" summary table, and what it's suited to inspect. Two renames: GantryGantry Scanner, Rack-MountedRack-Mounted Module (RMM) Scanner. New sections on the common hardware architecture the three share and on customer integration and system expansion; the point that the platform choice doesn't change the integration surface is now "One Platform, Configured for the Application."

2026-07-30#

  • Site: full-text search — a search box in the header (press / to focus) indexes every doc and returns ranked results as you type, with fuzzy/typo tolerance. Signed-in internal users also get results from /internal/* docs, badged INTERNAL; everyone else sees public results only.
  • CHANGEDWebhooks, Event reference, Program lifecycle events: the FAIL_PROGRAM on-failure mode was removed in cheetah-service v1.5.1. A failed webhook delivery can no longer fail a program run — only IGNORE and WARN remain, and both leave the run's outcome untouched. Systems that were the record-of-truth should reconcile through the REST API rather than gating the line.
  • NEWAPI Reference & Open REST API: GET /runs/{run_id}/defects documents a run's defects — informational findings (dents, scratches) that carry no pass/fail criteria and never change QC status. The same array now rides on the quality report and the ProgramCompleted event payload.
  • IMPROVEDEvent reference: quality checks now advertise canonical_units (mm / unspecified) so integrators can convert to display units; ProgramCompleted gained the defects array.
  • IMPROVEDAPI Reference regenerated against cheetah-service v1.5.2: new safety_gate program step type, start_session/end_session marked deprecated no-ops (session lifecycle is now implicit), a webhook_delivery rollup on run responses, and the non-terminal finalizing run status.
  • FIXEDVersioning policy and the Python / TypeScript SDK pages: current cheetah-service version corrected to v1.5.2 (was stale at v0.0.129); install examples now pin the current release tag.

2026-07-06#

  • FIXEDAPI Reference: the seven file-download operations (frame files, CL-sweep CSV, run files) no longer claim to return a JSON object — each now shows its real download content type (application/x-ply, image/png, text/csv, application/octet-stream). The underlying OpenAPI spec was corrected in cheetah-service; response bytes were always files.

2026-07-02#

  • IMPROVEDAPI Reference: regenerated from the run-files spec — now 27 operations. New Run files group documents GET /runs/{run_id}/files and GET /runs/{run_id}/files/{name}, with the new FileMetadata schema; ProgramRunResponse gains the files array, and ProgramStep now shows its group_*/section_* fields.
  • NEWOpen REST API and Event reference: consolidated run-file access. Every file a program run produces is now reachable through two endpoints — GET /runs/{run_id}/files (list all files with metadata: type, content_type, size_in_bytes, step_index, frame_id, download href, and deleted_at for retention-expired entries) and GET /runs/{run_id}/files/{name} (download a single file; 410 Gone when bytes were removed by retention — the metadata entry remains). The ProgramCompleted webhook payload and the run-detail response (GET /runs/{run_id}) both carry the same files array. This is an additive change; schema_version stays 2. SDK: list_run_files / download_run_file (Python), listRunFiles / downloadRunFile (TypeScript). Runs predating this release are backfilled on upgrade (best-effort — files already removed by retention are not listed, so older manifests may be partial).

2026-06-12#

  • FIXEDHardware Platform and glossary: the Rack-Mounted description had the name backwards — it describes the parts, not the scanner. The RMH Scanner inspects rack-mounted data-center hardware (server and networking modules), with magnetic quick-change trays, ball-transfer loading, and per-application scanning and vision hardware; it is not a "scanner fixed in a rack."
  • NEWSupport: one channel for everything — support@cheetahengineering.com — plus what to include with a report (serial number or run_id, X-Trace-ID for API problems) and how remote diagnostics work.
  • NEWOperator: the application page, with a screen recording of a real inspection end to end — prepare, enter the serial number, run, read the QC outcome — plus run history and how the operator's screen relates to what your systems receive.
  • NEWApplications: what ships on every cell and which screen is for which job. The five per-app stub pages are removed until there's real content for each (old URLs redirect here); Start Here's operator path now points at the two real pages.
  • NEWHardware Platform: the three inspection-cell configurations — Cobot Scanner, Gantry, and Rack-Mounted — with photos, and the point that matters to integrators: the configuration decides how the scanner moves and nothing else; the software stack and integration surface are identical on every one.
  • CHANGED — Hardware consolidated onto one page: the Overview and Supported Models stubs are gone (hardware selection is application-driven — there is no fixed model matrix to publish). The Errors stub folded into Errors and retries, which already documents every error code reachable on the public surface. Old URLs redirect.
  • FIXEDGlossary: the 3D scanner and Cobot entries no longer name specific component vendors — scanner and robot selection depends on the application. Hardware Platform and Platform Concepts now say it the right way around: the three configurations are bases that are modified and configured per client, not fixed off-the-shelf units.
  • NEWClient Libraries: the Python SDK and TypeScript SDK pages, written for real — install (git tag pin / GitHub Packages), connecting, sync-and-async patterns, a method-to-endpoint map of the public surface, typed responses, and the SDK exception hierarchy. Verified against the clients shipped in cheetah-service v0.0.132.
  • CHANGED — The Rate Limits and Sandbox stub pages are removed: these docs describe what ships, and neither feature exists today. Old URLs redirect to Developers.
  • NEWAPI Quickstart: from a blank terminal to a quality report in four curl commands — no SDK required.
  • IMPROVEDWebhooks: new "Verify the sender" section — the request-header table now documents X-Cheetah-Signature (sent when the webhook has a secret), with constant-time verification code in Python and TypeScript and replay-rejection via the signed timestamp.
  • CHANGED — Developer pages' applies_to banners now pin to cheetah-service v0.0.132 — the first release that serves /openapi-public.json and the public quality-report path.
  • NEWAPI Reference: every operation on the public integration surface — parameters, responses, and schemas. Generated from cheetah-service's /openapi-public.json, so the page cannot drift from the served API: 25 operations across program runs, programs, the quality report, raw capture data, webhooks, and system health.
  • IMPROVED — The quality report now has a public path: GET /runs/{run_id}/quality-report is printed in the Open REST API pull-surface table and the resource model. Requires cheetah-service ≥ v0.0.132.
  • CHANGED — System Architecture is no longer part of the public docs for now; its deep-dive content has been removed. The Platform Concepts overview and Data Model remain the public account of how the platform fits together.
  • NEWOpen REST API: the pull half of an integration, written for real — where the API lives, the observe-only posture for program runs, what you can pull, polling one program run, the updated_since incremental-sync loop (with a runnable reconciliation example), and downloading raw capture data per frame.
  • NEWAPI concepts: four reference pages on the conventions every endpoint shares — resource model (resources, UUIDv7 ids, summary-vs-detail, representation conventions), pagination (the limit/offset envelope, newest-first ordering, why page drift gives duplicates not gaps), idempotency (no idempotency keys — what's safe to repeat and where deduplication is your job), and errors and retries (the error envelope, status codes, retry guidance, X-Trace-ID). All verified against cheetah-service v0.0.131.
  • NEWData Model: the model as your systems see it — program, program run (with the polled status sequence including finalizing), part identity via serial number and revision, the quality report, and lifecycle events as data. Deliberately scoped to client-facing entities.

2026-06-11#

  • IMPROVEDGlossary: Session and Frame entries verified against cheetah-service source — sessions group one capture step's frames; frames carry the robot's pose at capture.

  • CHANGED — Developer URLs flattened one level: event dispatch and the open REST API are now direct children of Developers, whose landing page absorbed "Integrating with Cheetah." Old /developers/integrate/... links 301-redirect permanently.

  • IMPROVED — Site-wide concision pass across every written page (−10–26% prose, no facts removed): one home per concept with links elsewhere, figure-narrating sentences cut, per-page beta reminders consolidated into the banner and versioning policy.

  • IMPROVEDProgram Lifecycle Events: new event-timing diagram showing where each event fires in the life of a program run — and that the steps in between emit nothing. Also sharpened the distinction between a failed program run (ProgramFailed, no QC outcome) and a failed inspection (ProgramCompleted with passed: false).

  • FIXEDFAIL_PROGRAM delivery failure fails the program run without emitting a further event (verified against cheetah-service source) — terminal events are strictly mutually exclusive. Corrected in Program Lifecycle Events, webhooks, and the event reference, whose example payloads now show revision: 2.

  • CHANGED — The developer integration surface moved from alpha to beta: first external partners are starting to build against it. Banner, page badges, Start Here, and the versioning policy all updated.

  • IMPROVEDIntegrating with Cheetah: new "Data is the boundary" section — the design principle behind every integration, why the webhook receiver belongs on your side of the line, and a figure of the boundary with its two crossings.

  • CHANGED — The "Pull-Based Integration" page is now Open REST API (same URL), matching the canonical name used everywhere else.

  • IMPROVEDDevelopers: the landing page now says what's ready to read today (Integrating with Cheetah, event dispatch) and what's still stubbed.

  • Site: every heading is now directly linkable — hover one for its anchor link.

  • Site: the under-construction banner now links to this changelog.

2026-06-10#

  • NEWGlossary: the canonical vocabulary in four sections (core concepts, hardware, software integration, support) with a linked term index. When a page and the glossary disagree, the glossary wins.
  • NEWPlatform Concepts: a real introduction — what Cheetah is, the platform-overview figure, and the program / program run / quality-artifact vocabulary — replacing the scaffold placeholder.
  • CHANGED — Terminology made canonical across all pages: program run (never "run" or "execution"), QC outcome (was "verdict"), open REST API (was "REST API"). The page formerly titled "Lifecycle events" is now Program Lifecycle Events (same URL).
  • FIXEDEvent reference: the revision payload field is the per-serial-number inspection counter (it increments when the same part is re-inspected), not a program version.
  • Site: every page now carries a persistent under-construction banner with the last-updated date.

2026-06-08#

2026-06-04#

  • IMPROVEDStart Here: added a "choose a path" table of contents.

2026-05-25#

  • CHANGED — "Webhook" terminology renamed to event terminology across the docs.
  • IMPROVED — SDK install instructions moved from versioning into the client libraries pages.
  • Site: syntax highlighting for code samples.

2026-05-24#

  • NEW — Docs site launched at docs.cheetahengineering.com: every section scaffolded — Start Here, Platform Concepts, Hardware, Applications, Developers, Support — with most pages stubbed and marked STUB until they're written.
▸ LAST VERIFIED Wed Jun 10 2026 00:00:00 GMT+0000 (Coordinated Universal Time) ▸▸ /content/changelog.md
▸ DOCS UNDER CONSTRUCTION LAST UPDATED 2026-09-20 ▸ CHANGELOG