{"generated_at":"2026-09-21T14:40:31.683Z","last_check":"2026-09-21T14:40:21.203Z","stale":false,"overall":"operational","uptime_30d":0.9994959865596416,"uptime_coverage":{"labelled_days":30,"observed_days":30,"checks":53570,"expected_checks":86400,"partial":true},"components":[{"id":"app","name":"App","description":"Web application at console.lepsto.com","status":"operational","uptime_30d":0.9971516733918823,"uptime_coverage":{"labelled_days":30,"observed_days":30,"checks":8426,"expected_checks":8640,"partial":true},"detail":null,"toolkits":null},{"id":"api","name":"API","description":"Public API gateway","status":"operational","uptime_30d":0.9998813197246618,"uptime_coverage":{"labelled_days":30,"observed_days":30,"checks":8426,"expected_checks":8640,"partial":true},"detail":null,"toolkits":null},{"id":"auth","name":"Auth","description":"Sign-in and token issuance","status":"operational","uptime_30d":1,"uptime_coverage":{"labelled_days":30,"observed_days":30,"checks":8426,"expected_checks":8640,"partial":true},"detail":null,"toolkits":null},{"id":"mcp","name":"MCP","description":"Model Context Protocol endpoint","status":"operational","uptime_30d":0.9998813197246618,"uptime_coverage":{"labelled_days":30,"observed_days":30,"checks":8426,"expected_checks":8640,"partial":true},"detail":null,"toolkits":null},{"id":"billing","name":"Billing","description":"Metering and invoicing","status":"operational","uptime_30d":0.9998813056379822,"uptime_coverage":{"labelled_days":30,"observed_days":30,"checks":8425,"expected_checks":8640,"partial":true},"detail":null,"toolkits":null},{"id":"toolkits","name":"Toolkits","description":"Managed toolkit fleet","status":"operational","uptime_30d":1,"uptime_coverage":{"labelled_days":30,"observed_days":30,"checks":8425,"expected_checks":8640,"partial":true},"detail":null,"toolkits":{"ok":11,"total":11,"unknown":0}},{"id":"app-lessly","name":"App (lessly.com)","description":"Legacy app.lessly.com redirect to the console","status":"operational","uptime_30d":1,"uptime_coverage":{"labelled_days":30,"observed_days":4,"checks":754,"expected_checks":8640,"partial":true},"detail":null,"toolkits":null},{"id":"api-lessly","name":"API (lessly.com)","description":"Legacy API gateway at api.lessly.com","status":"operational","uptime_30d":1,"uptime_coverage":{"labelled_days":30,"observed_days":4,"checks":754,"expected_checks":8640,"partial":true},"detail":null,"toolkits":null},{"id":"auth-lessly","name":"Auth (lessly.com)","description":"Legacy sign-in and token issuance at auth.lessly.com","status":"operational","uptime_30d":1,"uptime_coverage":{"labelled_days":30,"observed_days":4,"checks":754,"expected_checks":8640,"partial":true},"detail":null,"toolkits":null},{"id":"mcp-lessly","name":"MCP (lessly.com)","description":"Legacy Model Context Protocol endpoint at mcp.lessly.com","status":"operational","uptime_30d":1,"uptime_coverage":{"labelled_days":30,"observed_days":4,"checks":754,"expected_checks":8640,"partial":true},"detail":null,"toolkits":null}],"incidents":{"active":[],"resolved":[]},"maintenance":{"in_progress":[],"scheduled":[],"completed":[{"slug":"2026-09-18-lepsto-domain-cutover","title":"lepsto.com domain cutover","components":["app"],"scheduled_start":"2026-09-18T21:39:00Z","scheduled_end":"2026-09-18T21:55:00Z","completed":"2026-09-18T21:55:00Z","body":"<p>We moved the platform to lepsto.com. The web application is now served at console.lepsto.com, and the API, Auth and MCP hosts moved alongside it. The old lessly.com addresses answer redirects, so bookmarks, saved links and configured endpoints keep working.</p>\n<h3>Impact</h3>\n<p>Sign-in sessions on app.lessly.com were interrupted for the length of the window and had to be re-established on console.lepsto.com. This record names App alone because App is the only row that recorded a failure: over the same 30 days API and MCP each logged a single unrelated failed probe and Auth none at all. We do not file an interruption we did not observe.</p>\n<p>The red bar on the App row runs well past the window. After the move the probe went on asking app.lessly.com for a 200 and read the redirect it now answers as a failure, until the probe was pointed at the new address at about 23:40 UTC. The application was serving that whole time. We are leaving the bar alone: it records what we measured, and the measurement was wrong, not the service.</p>\n<p>This status page itself moved at the same time: it is served at status.lepsto.com, and status.lessly.com now answers a permanent redirect to it, path and query intact.</p>"}]}}