@fleetless/contracts 4.0.0-next.1 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -5
- package/artifacts/constants.json +3 -3
- package/dist/errors.js +1 -1
- package/dist/protocol.d.ts +5 -4
- package/dist/protocol.js +7 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,15 +9,17 @@ version.
|
|
|
9
9
|
|
|
10
10
|
## [Unreleased]
|
|
11
11
|
|
|
12
|
+
## [4.0.0] — 2026-09-29
|
|
13
|
+
|
|
12
14
|
### Added
|
|
13
15
|
|
|
14
16
|
- **Protocol 4: a job heartbeat, and a vanished action server ends its job.**
|
|
15
|
-
Protocol bumped: bridges from `
|
|
16
|
-
2026-12-
|
|
17
|
+
Protocol bumped: bridges from `5.0.0`, and protocol 3 sunsets
|
|
18
|
+
2026-12-28 (protocol 2 sunset 2026-12-21). The bridge now sends a
|
|
17
19
|
`job_update` heartbeat every `JOB_HEARTBEAT_INTERVAL_MS` for every running
|
|
18
|
-
job
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
job, and ends a job whose action server vanished `lost` with
|
|
21
|
+
`action_server_lost` instead of leaving the cloud to guess; `job_lost`
|
|
22
|
+
gains an optional `error` that can say the same. `JOB_HEARTBEAT_TIMEOUT_MS` bounds a protocol-4 job's
|
|
21
23
|
silence once it has been heard from at all; `patience_ms` now bounds only
|
|
22
24
|
the acceptance gap on such a job (unchanged for protocol 3, which sends no
|
|
23
25
|
heartbeat). `JOB_OFFLINE_GRACE_MS` (five minutes) replaces the informal
|
package/artifacts/constants.json
CHANGED
|
@@ -10,16 +10,16 @@
|
|
|
10
10
|
{
|
|
11
11
|
"version": 3,
|
|
12
12
|
"bridge_from": "4.0.0",
|
|
13
|
-
"deprecated_at": "2026-09-
|
|
13
|
+
"deprecated_at": "2026-09-29"
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
"version": 4,
|
|
17
|
-
"bridge_from": "
|
|
17
|
+
"bridge_from": "5.0.0",
|
|
18
18
|
"deprecated_at": null
|
|
19
19
|
}
|
|
20
20
|
],
|
|
21
21
|
"PROTOCOL_SUNSET_DAYS": 90,
|
|
22
|
-
"LATEST_BRIDGE_VERSION": "
|
|
22
|
+
"LATEST_BRIDGE_VERSION": "5.0.0",
|
|
23
23
|
"CLOSE_ROBOT_DELETED": 4004,
|
|
24
24
|
"CLOSE_TOKEN_ROTATED": 4005,
|
|
25
25
|
"JOB_HEARTBEAT_INTERVAL_MS": 1000,
|
package/dist/errors.js
CHANGED
|
@@ -163,7 +163,7 @@ export const ERROR_CODES = [
|
|
|
163
163
|
'goal_send_failed',
|
|
164
164
|
/** Asking the action server for its result raised; `job.error.code` on `failed`. */
|
|
165
165
|
'result_failed',
|
|
166
|
-
/** A goal accepted after its own timeout could not then be cancelled; `job.error.code` on `
|
|
166
|
+
/** A goal accepted after its own timeout could not then be cancelled; `job.error.code` on `lost`. */
|
|
167
167
|
'goal_uncontrollable',
|
|
168
168
|
/**
|
|
169
169
|
* The robot stayed offline for longer than `JOB_OFFLINE_GRACE_MS` while a
|
package/dist/protocol.d.ts
CHANGED
|
@@ -11,10 +11,11 @@ import { z } from 'zod';
|
|
|
11
11
|
* which names the window and reaches the robot's detail view as
|
|
12
12
|
* `last_hello_error`.
|
|
13
13
|
*
|
|
14
|
-
* **4 (2026-09-
|
|
14
|
+
* **4 (2026-09-29):** the bridge sends a `job_update` heartbeat at
|
|
15
15
|
* `JOB_HEARTBEAT_INTERVAL_MS` for every running job, whether or not the
|
|
16
|
-
* action said anything new, and
|
|
17
|
-
* `
|
|
16
|
+
* action said anything new, and ends a job whose action server vanished
|
|
17
|
+
* `lost` with `action_server_lost` (a terminal `job_update`; `job_lost`
|
|
18
|
+
* gains an optional `error` for the same purpose). The cloud bounds
|
|
18
19
|
* a protocol-4 job's silence by the heartbeat (`JOB_HEARTBEAT_TIMEOUT_MS`)
|
|
19
20
|
* once it has heard from the job at all; `patience_ms` still bounds
|
|
20
21
|
* acceptance, the same as before. Offline tolerance is
|
|
@@ -56,7 +57,7 @@ export interface ProtocolVersionEntry {
|
|
|
56
57
|
*/
|
|
57
58
|
export declare const PROTOCOL_VERSIONS: readonly ProtocolVersionEntry[];
|
|
58
59
|
/** The newest bridge package. The cloud mails organisations still below it. */
|
|
59
|
-
export declare const LATEST_BRIDGE_VERSION = "
|
|
60
|
+
export declare const LATEST_BRIDGE_VERSION = "5.0.0";
|
|
60
61
|
export interface ProtocolStatus {
|
|
61
62
|
status: 'current' | 'deprecated' | 'unsupported';
|
|
62
63
|
/** ISO date, or null for a current or unknown version. */
|
package/dist/protocol.js
CHANGED
|
@@ -17,10 +17,11 @@ import { rosTypeName } from './common.js';
|
|
|
17
17
|
* which names the window and reaches the robot's detail view as
|
|
18
18
|
* `last_hello_error`.
|
|
19
19
|
*
|
|
20
|
-
* **4 (2026-09-
|
|
20
|
+
* **4 (2026-09-29):** the bridge sends a `job_update` heartbeat at
|
|
21
21
|
* `JOB_HEARTBEAT_INTERVAL_MS` for every running job, whether or not the
|
|
22
|
-
* action said anything new, and
|
|
23
|
-
* `
|
|
22
|
+
* action said anything new, and ends a job whose action server vanished
|
|
23
|
+
* `lost` with `action_server_lost` (a terminal `job_update`; `job_lost`
|
|
24
|
+
* gains an optional `error` for the same purpose). The cloud bounds
|
|
24
25
|
* a protocol-4 job's silence by the heartbeat (`JOB_HEARTBEAT_TIMEOUT_MS`)
|
|
25
26
|
* once it has heard from the job at all; `patience_ms` still bounds
|
|
26
27
|
* acceptance, the same as before. Offline tolerance is
|
|
@@ -55,11 +56,11 @@ export const PROTOCOL_SUNSET_DAYS = 90;
|
|
|
55
56
|
*/
|
|
56
57
|
export const PROTOCOL_VERSIONS = [
|
|
57
58
|
{ version: 2, bridge_from: '3.0.0', deprecated_at: '2026-09-22' },
|
|
58
|
-
{ version: 3, bridge_from: '4.0.0', deprecated_at: '2026-09-
|
|
59
|
-
{ version: 4, bridge_from: '
|
|
59
|
+
{ version: 3, bridge_from: '4.0.0', deprecated_at: '2026-09-29' },
|
|
60
|
+
{ version: 4, bridge_from: '5.0.0', deprecated_at: null },
|
|
60
61
|
];
|
|
61
62
|
/** The newest bridge package. The cloud mails organisations still below it. */
|
|
62
|
-
export const LATEST_BRIDGE_VERSION = '
|
|
63
|
+
export const LATEST_BRIDGE_VERSION = '5.0.0';
|
|
63
64
|
const DAY_MS = 24 * 60 * 60 * 1000;
|
|
64
65
|
function isoDate(date) {
|
|
65
66
|
return date.toISOString().slice(0, 10);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fleetless/contracts",
|
|
3
|
-
"version": "4.0.0
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "Fleetless wire contracts: the bridge-cloud protocol, the REST API schemas and the error codes, as zod schemas with generated JSON Schema and OpenAPI artifacts.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Dehne Robotik GmbH",
|