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#
- NEW — Event reference, Event dispatch, Program lifecycle events: every run lifecycle event now carries
program_namein itsdata— the program's operator-facing name at dispatch time,nullif the program was deleted before the event fired. Shipped in cheetah-service v1.5.12; additive, soschema_versionstays3. - IMPROVED — Webhooks: 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. - FIXED — Webhooks 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. - FIXED — Event reference and Program lifecycle events:
robot_idwas 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. - IMPROVED — API Reference regenerated against cheetah-service v1.6.0: new
GET /system/versionoperation (the release string every event envelope carries asservice_version); programs now reportrobot_ids(array) instead ofrobot_id— a breaking rename on the public surface, from multi-robot program support; quality checks carrynominal; webhook create/update/response carry the three delivery-config fields; newgripperprogram step type; component health entries carryenabled. - IMPROVED — Python 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 newversion(). Install examples now pin v1.6.0. - FIXED — Versioning 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 — theapplies_tobanner and a LAST VERIFIED date. Current release corrected to v1.6.0 throughout. - NEW — Open 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 aProgramCompletedevent'sqc_checksare converted to the cell's display units and carryunit. Convert on the REST side rather than assuming the two agree. - IMPROVED — Open REST API: the pull-surface table lists
GET /system/versionbesideGET /health; the per-resource file endpoints are described as available "during beta", not alpha. Data model: quality checks carrynominal.
2026-08-24#
- NEW — Event reference: the event envelope carries two new fields identifying the sender rather than the run.
kiosk_serial_numberis the serial of the Cheetah unit that emitted the event (set in system config;nulluntil the unit is commissioned), andservice_versionis thecheetah-servicebuild that emitted it. Both appear on every event, includingWebhookTest, so an endpoint receiving from several units can attribute each delivery. Note the distinction fromdata.serial_number, which remains the serial of the part being inspected. This is an additive change;schema_versionstays3. - FIXED — Event reference, Webhooks, Event dispatch, Program lifecycle events, Versioning policy: these pages still documented
schema_version: 2after3shipped in cheetah-service v1.5.8. Corrected throughout. The substantive change: each entry inqc_checksno longer carries the internalcanonical_unitsflag ("mm"/"unspecified") — it carries a receiver-facingunit("mm","in", ornull) instead, andProgramCompleteddata now carriesunit_system("metric"/"imperial"). Length values are converted to inches when the unit system is imperial, so a receiver must readunitrather than assume millimetres. Checks also carrynominal, anddeltais measured against it. - IMPROVED — Versioning 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'sunitand attributes the record to the emitting unit.
2026-08-15#
- NEW — Glossary: a large vocabulary expansion for the hardware pages — the machine terms (Cobot Scanner, Gantry Scanner, Rack-Mounted Module (RMM) Scanner, hardware platform, control cabinet, inspection bed, operator panel, touchscreen HMI, user expansion panel, 3D area scan laser sensor, laser profilometer), the metrology and manufacturing terms (calibration, datum, fixture, FAT, part number, point cloud, SKU), and a new Controls & I/O section (customer network, device network, discrete I/O, E-stop, external safety interface, PNP and NPN I/O, status lights, system power switch).
- IMPROVED — Cobot Scanner: a System Identification section (where the serial numbers live and what to quote when contacting support), the control cabinet described with a photo, and explicit electrical-safety warnings on the control cabinet, power, and connection sections.
2026-08-14#
- IMPROVED — Cobot 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#
- NEW — Cobot 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.
- NEW — Glossary: 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#
- CHANGED — Hardware Platform rewritten around the three platforms as products: each now carries its part number (Cobot Scanner
CE-101100, Gantry ScannerCE-102000, RMM ScannerCE-103000), a "optimized for" summary table, and what it's suited to inspect. Two renames: Gantry → Gantry Scanner, Rack-Mounted → Rack-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. - CHANGED — Webhooks, Event reference, Program lifecycle events: the
FAIL_PROGRAMon-failure mode was removed in cheetah-service v1.5.1. A failed webhook delivery can no longer fail a program run — onlyIGNOREandWARNremain, 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. - NEW — API Reference & Open REST API:
GET /runs/{run_id}/defectsdocuments 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 theProgramCompletedevent payload. - IMPROVED — Event reference: quality checks now advertise
canonical_units(mm/unspecified) so integrators can convert to display units;ProgramCompletedgained thedefectsarray. - IMPROVED — API Reference regenerated against cheetah-service v1.5.2: new
safety_gateprogram step type,start_session/end_sessionmarked deprecated no-ops (session lifecycle is now implicit), awebhook_deliveryrollup on run responses, and the non-terminalfinalizingrun status. - FIXED — Versioning policy and the Python / TypeScript SDK pages: current
cheetah-serviceversion corrected to v1.5.2 (was stale at v0.0.129); install examples now pin the current release tag.
2026-07-06#
- FIXED — API 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 incheetah-service; response bytes were always files.
2026-07-02#
- IMPROVED — API Reference: regenerated from the run-files spec — now 27 operations. New Run files group documents
GET /runs/{run_id}/filesandGET /runs/{run_id}/files/{name}, with the newFileMetadataschema;ProgramRunResponsegains thefilesarray, andProgramStepnow shows itsgroup_*/section_*fields. - NEW — Open 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, downloadhref, anddeleted_atfor retention-expired entries) andGET /runs/{run_id}/files/{name}(download a single file;410 Gonewhen bytes were removed by retention — the metadata entry remains). TheProgramCompletedwebhook payload and the run-detail response (GET /runs/{run_id}) both carry the samefilesarray. This is an additive change;schema_versionstays2. 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#
- FIXED — Hardware 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."
- NEW — Support: one channel for everything — support@cheetahengineering.com — plus what to include with a report (serial number or
run_id,X-Trace-IDfor API problems) and how remote diagnostics work. - NEW — Operator: 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.
- NEW — Applications: 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.
- NEW — Hardware 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.
- FIXED — Glossary: 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.
- NEW — Client 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-servicev0.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.
- NEW — API Quickstart: from a blank terminal to a quality report in four
curlcommands — no SDK required. - IMPROVED — Webhooks: 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_tobanners now pin tocheetah-servicev0.0.132 — the first release that serves/openapi-public.jsonand the public quality-report path. - NEW — API 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-reportis printed in the Open REST API pull-surface table and the resource model. Requirescheetah-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.
- NEW — Open 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_sinceincremental-sync loop (with a runnable reconciliation example), and downloading raw capture data per frame. - NEW — API 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 againstcheetah-servicev0.0.131. - NEW — Data 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#
IMPROVED — Glossary: Session and Frame entries verified against
cheetah-servicesource — 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.
IMPROVED — Program 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 (ProgramCompletedwithpassed: false).FIXED —
FAIL_PROGRAMdelivery failure fails the program run without emitting a further event (verified againstcheetah-servicesource) — terminal events are strictly mutually exclusive. Corrected in Program Lifecycle Events, webhooks, and the event reference, whose example payloads now showrevision: 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.
IMPROVED — Integrating 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.
IMPROVED — Developers: 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#
- NEW — Glossary: 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.
- NEW — Platform 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).
- FIXED — Event reference: the
revisionpayload 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#
- CHANGED — Integration docs restructured: push-based integration is now event dispatch, with dedicated webhooks and event reference pages.
- IMPROVED — Program Lifecycle Events: expanded from a stub into the full account of a program run's life and its four events.
2026-06-04#
- IMPROVED — Start 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.