@crvouga/mockingbird-service-docker 1.0.0 → 1.2.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/API_EVIDENCE.md +19 -19
- package/CHANGELOG.md +16 -0
- package/DISCOVERY.md +2 -2
- package/ORACLE.md +1 -1
- package/README.md +14 -14
- package/SUPPORT.md +2 -2
- package/dist/{chunk-3YOE2S2B.js → chunk-5I542RFL.js} +251 -172
- package/dist/chunk-5I542RFL.js.map +7 -0
- package/dist/{chunk-AKUOBY2M.js → chunk-TR75ZFCZ.js} +2 -2
- package/dist/cli.js +8 -6
- package/dist/cli.js.map +2 -2
- package/dist/index.d.ts +84 -69
- package/dist/index.js +1 -1
- package/dist/server.d.ts +129 -96
- package/dist/server.js +2 -2
- package/package.json +3 -3
- package/dist/chunk-3YOE2S2B.js.map +0 -7
- /package/dist/{chunk-AKUOBY2M.js.map → chunk-TR75ZFCZ.js.map} +0 -0
package/API_EVIDENCE.md
CHANGED
|
@@ -4,7 +4,7 @@ US-002 research, retrieved **2026-09-25 UTC**. Status: documentation and pinned
|
|
|
4
4
|
source inspected; **historical research status, superseded by the US-013 live
|
|
5
5
|
run recorded below**.
|
|
6
6
|
This file defines a planned subset, not an implemented support claim. See
|
|
7
|
-
[boundaries and scenario IDs](../../../docs/
|
|
7
|
+
[boundaries and scenario IDs](../../../docs/INFRASTRUCTURE_EMULATORS.md).
|
|
8
8
|
|
|
9
9
|
## Compatibility target and provenance
|
|
10
10
|
|
|
@@ -73,7 +73,7 @@ limit includes non-running containers. Exited filtering requires a stopped
|
|
|
73
73
|
container that has started. JSON filter maps accept legacy arrays and boolean
|
|
74
74
|
sets (keys matter even if false); null denotes an empty map. Boolean query
|
|
75
75
|
parsing is permissive: trimmed empty/0/no/false/none are false, other values true.
|
|
76
|
-
The
|
|
76
|
+
The emulator bounds name regex support as documented in README and returns explicit
|
|
77
77
|
501 for other patterns/filters. No installed Engine or differential run was used.
|
|
78
78
|
Pinned [container lookup](https://github.com/moby/moby/blob/710302ecf2e958db92cb7d92f8838ea063a31765/daemon/container.go)
|
|
79
79
|
and [prefix lookup](https://github.com/moby/moby/blob/710302ecf2e958db92cb7d92f8838ea063a31765/daemon/container/view.go)
|
|
@@ -81,20 +81,20 @@ confirm full ID, exact name, then unique prefix precedence; ambiguous prefixes
|
|
|
81
81
|
return InvalidParameter (400), while missing containers return 404.
|
|
82
82
|
List status descriptions follow pinned S7 and its
|
|
83
83
|
[duration formatter](https://github.com/moby/moby/blob/710302ecf2e958db92cb7d92f8838ea063a31765/vendor/github.com/docker/go-units/duration.go),
|
|
84
|
-
using the injected
|
|
84
|
+
using the injected emulator clock rather than host process uptime.
|
|
85
85
|
|
|
86
86
|
S2/S3 explain why the observed `/v1.52/containers/{id}/attach` and unversioned
|
|
87
87
|
`/info` can belong to one client: every provider route is registered with and
|
|
88
88
|
without a version, and an absent version uses the daemon default (1.52 here).
|
|
89
89
|
Deprecation guidance is not evidence that this pinned daemon rejects `/info`.
|
|
90
90
|
|
|
91
|
-
Planned
|
|
91
|
+
Planned emulator policy: support v1.52 and unversioned aliases for the listed subset.
|
|
92
92
|
Do not claim to emulate all older APIs merely because the real Engine accepts them.
|
|
93
93
|
For numeric versions above 1.52, use the provider's too-new `400` error; versions
|
|
94
94
|
below the default minimum 1.44 use its too-old `400` error. Versions 1.44–1.51
|
|
95
|
-
are **unsupported by this
|
|
95
|
+
are **unsupported by this emulator subset**: return an explicitly Mockingbird-labelled
|
|
96
96
|
`501` message, not a fictional Engine rejection. Historical compatibility can only
|
|
97
|
-
be expanded with new evidence. Document these
|
|
97
|
+
be expanded with new evidence. Document these emulator-only 501 responses in codegen.
|
|
98
98
|
|
|
99
99
|
Provider version-error message templates from S2 are:
|
|
100
100
|
|
|
@@ -107,7 +107,7 @@ S3 serializes errors as `{"message":"..."}` except requests below API 1.24,
|
|
|
107
107
|
which receive plain text. Unknown paths/methods use `404` with
|
|
108
108
|
`{"message":"page not found"}`. Malformed version paths are not a promise of
|
|
109
109
|
version negotiation. No automatic client reconnection or fallback is part of
|
|
110
|
-
the
|
|
110
|
+
the emulator. Its declared API support must remain distinct from simulated Engine
|
|
111
111
|
`MinAPIVersion` metadata.
|
|
112
112
|
|
|
113
113
|
## Planned operation contract
|
|
@@ -115,7 +115,7 @@ the mock. Its declared API support must remain distinct from simulated Engine
|
|
|
115
115
|
Paths below are relative to `/v1.52`, also available unversioned as above.
|
|
116
116
|
The status column is the pinned S1 vendor contract; additional implementation
|
|
117
117
|
errors supported by pinned source must be annotated explicitly, not silently
|
|
118
|
-
invented. Global version errors and
|
|
118
|
+
invented. Global version errors and emulator-only unsupported-feature errors are
|
|
119
119
|
separate from this table. Unless stated otherwise, vendor errors use
|
|
120
120
|
`ErrorResponse` with required string `message`.
|
|
121
121
|
|
|
@@ -156,9 +156,9 @@ and [configuration merge](https://github.com/moby/moby/blob/710302ecf2e958db92cb
|
|
|
156
156
|
establish image resolution, platform warnings, request-over-image environment
|
|
157
157
|
and label precedence, command/entrypoint defaults, empty-entrypoint clearing,
|
|
158
158
|
and `no command specified` (400). The selected 1.52 request fields come from S1.
|
|
159
|
-
The
|
|
159
|
+
The emulator stores launch/host/network configuration without executing it. Full
|
|
160
160
|
daemon resource/network validation and image execution are excluded; the README
|
|
161
|
-
lists the explicit supported subset and
|
|
161
|
+
lists the explicit supported subset and emulator-only501 behavior. No real Engine
|
|
162
162
|
creation or host resource operation was performed.
|
|
163
163
|
|
|
164
164
|
- S4/S6: a successful stop `204` follows backend completion. For delayed-stop
|
|
@@ -197,7 +197,7 @@ Upgrade: tcp
|
|
|
197
197
|
D1/S1's old illustrative handshake uses raw-stream, but its framing prose and
|
|
198
198
|
S4 agree on multiplexed-stream for upgraded non-TTY API >=1.42. S4's non-upgrade
|
|
199
199
|
path really uses HTTP 200/raw-stream; it is deliberately excluded from initial
|
|
200
|
-
|
|
200
|
+
emulator serving. Fetch cannot represent the raw hijacked duplex connection.
|
|
201
201
|
|
|
202
202
|
Output frames have an 8-byte header: stream byte (1 stdout, 2 stderr), three zero
|
|
203
203
|
bytes, and a uint32 big-endian payload length, followed by exactly that many bytes.
|
|
@@ -219,7 +219,7 @@ execution remains necessary to establish observed fidelity.
|
|
|
219
219
|
Excluded modes: TTY/PTY, websocket attach, non-upgrade attach, log replay
|
|
220
220
|
(`logs=true`), exec, standalone logs/events, detach-key processing, image
|
|
221
221
|
pull/build, real networking/volumes/__admin/health checks and arbitrary command execution.
|
|
222
|
-
Unsupported modes receive explicit
|
|
222
|
+
Unsupported modes receive explicit emulator-only 501 errors before upgrade rather
|
|
223
223
|
than silently different successful behavior. Reset/checkout/shutdown terminate
|
|
224
224
|
owned streams and waiters; handles are never serialized into Timeline state.
|
|
225
225
|
|
|
@@ -269,10 +269,10 @@ Pinned sources resolve the precise v1.52 semantics:
|
|
|
269
269
|
- [signal.go](https://github.com/moby/moby/blob/710302ecf2e958db92cb7d92f8838ea063a31765/vendor/github.com/moby/sys/signal/signal.go) and [Linux map](https://github.com/moby/moby/blob/710302ecf2e958db92cb7d92f8838ea063a31765/vendor/github.com/moby/sys/signal/signal_linux.go): zero is invalid; kill restricts to the Linux map (1–31 and34–64). Real-time aliases are supported.
|
|
270
270
|
- S4/S6 and [HTTP status mapping](https://github.com/moby/moby/blob/710302ecf2e958db92cb7d92f8838ea063a31765/daemon/server/httpstatus/status.go): malformed t returns an unclassified strconv error (500), while a stop signal parsing error is wrapped as System (500). Kill signal errors are InvalidParameter (400). Stop on an already stopped record returns304 before validating its signal.
|
|
271
271
|
|
|
272
|
-
The
|
|
272
|
+
The emulator holds stop/SIGKILL/forced-removal replies until explicit completion;
|
|
273
273
|
acceptance and socket loss never prove retirement. Signal/timeout parameters are
|
|
274
274
|
stored diagnostic metadata; fixture-controlled completion replaces process/timer
|
|
275
|
-
scheduling. v is inert without modeled volumes; link removal is explicit
|
|
275
|
+
scheduling. v is inert without modeled volumes; link removal is explicit emulator-only501.
|
|
276
276
|
Shared state/checkpoints and transient handles are reused. Fetch and real Node HTTP
|
|
277
277
|
tests cover acceptance versus exit and response loss; no live Engine parity claimed.
|
|
278
278
|
|
|
@@ -283,7 +283,7 @@ limit, receive timeouts and retained connections. The Docker-local transport use
|
|
|
283
283
|
these Node facilities plus its own bounded body collector and owned connection
|
|
284
284
|
set. [Node IPC sockets](https://nodejs.org/api/net.html#ipc-support) define local
|
|
285
285
|
path serving and normal server-close cleanup. Transport bounds and path refusal
|
|
286
|
-
are explicit
|
|
286
|
+
are explicit emulator controls, not assertions of Docker daemon limits. Verification
|
|
287
287
|
uses synthetic project-local Unix sockets and TCP, including a built-entry fixture
|
|
288
288
|
executed under Node; it does not use Linux peer credentials or a real Engine.
|
|
289
289
|
|
|
@@ -323,7 +323,7 @@ and Unix. All mutations, inspections, setup and completion travel through HTTP;
|
|
|
323
323
|
Node attachment handles supply scripted output/input observation. Both transports
|
|
324
324
|
exercise accepted create/start/stop/kill/remove response loss and re-inspection,
|
|
325
325
|
retained ordinary HTTP connections and fragmented attach with exact binary frames.
|
|
326
|
-
This is independent client/protocol evidence against the
|
|
326
|
+
This is independent client/protocol evidence against the emulator, not a real Engine
|
|
327
327
|
oracle or evidence of the external consumer's retry policy.
|
|
328
328
|
|
|
329
329
|
OpenAPI walks assert eligible planned/exercised operation coverage. A seeded
|
|
@@ -376,7 +376,7 @@ wait results and post-removal 404. The three named/labeled containers were confi
|
|
|
376
376
|
absent during cleanup. The [captured JSON report](evidence/engine-29.8.0-api-1.52.json)
|
|
377
377
|
retains actual/model values, image identity, exact Engine version and cleanup.
|
|
378
378
|
|
|
379
|
-
An earlier attempt failed at
|
|
379
|
+
An earlier attempt failed at emulator image seeding before creating any container:
|
|
380
380
|
the PostgreSQL image contained unsupported metadata and declared storage. The
|
|
381
381
|
harness now rejects declared volumes/active healthchecks and projects only modeled
|
|
382
382
|
image defaults, recording omitted metadata. The successful fixture omitted
|
|
@@ -384,9 +384,9 @@ image defaults, recording omitted metadata. The successful fixture omitted
|
|
|
384
384
|
published and no config-equivalence claim covers those fields.
|
|
385
385
|
|
|
386
386
|
Normalization excludes dynamic IDs/timestamps, daemon identity/platform fields,
|
|
387
|
-
frame/packet boundaries and cross-channel interleaving. The
|
|
387
|
+
frame/packet boundaries and cross-channel interleaving. The emulator scripts expected
|
|
388
388
|
process completion; it never executes the image. Existing synthetic response-loss
|
|
389
389
|
checks remain separate from real Engine execution. Daemon restart/live-restore,
|
|
390
390
|
host isolation, SDKs, all API 1.56 features and external consumer policies remain
|
|
391
|
-
unverified. The historical
|
|
391
|
+
unverified. The historical emulator discovery profile remains explicit; this narrow
|
|
392
392
|
live run does not certify every operation/response field against every newer Engine.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog — @crvouga/mockingbird-service-docker
|
|
2
2
|
|
|
3
|
+
## 1.2.0 (2026-10-09)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- match Emulate provider coverage ([16b65ce](https://github.com/crvouga/mockingbird/commit/16b65ce791fa216f28ec1521df636f57771d9c5e))
|
|
8
|
+
|
|
9
|
+
### Dependencies
|
|
10
|
+
|
|
11
|
+
- `@crvouga/mockingbird-service-sqlite`
|
|
12
|
+
|
|
13
|
+
## 1.1.0 (2026-10-08)
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
|
|
17
|
+
- redesign emulator experience ([d6038c2](https://github.com/crvouga/mockingbird/commit/d6038c27eebbaa1751f02bc9305002a5b1304779))
|
|
18
|
+
|
|
3
19
|
## 1.0.0 (2026-10-07)
|
|
4
20
|
|
|
5
21
|
### ⚠️ Breaking changes
|
package/DISCOVERY.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# @crvouga/mockingbird-service-docker discovery
|
|
2
2
|
|
|
3
3
|
This is the installed-package index for coding agents and tooling. All relative links resolve
|
|
4
|
-
inside `node_modules/@crvouga/mockingbird-service-docker/`; no repository checkout is needed to discover the
|
|
4
|
+
inside `node_modules/@crvouga/mockingbird-service-docker/`; no repository checkout is needed to discover the emulator's
|
|
5
5
|
supported surface or documented behavior.
|
|
6
6
|
|
|
7
7
|
## Capability and behavior sources
|
|
@@ -47,7 +47,7 @@ designed for assertions and diagnosis by consuming test suites.
|
|
|
47
47
|
## Report a mismatch or missing capability
|
|
48
48
|
|
|
49
49
|
Follow the [agent reporting contract](https://github.com/crvouga/mockingbird/blob/main/docs/REPORTING_ISSUES.md). Include package version,
|
|
50
|
-
operation/command, a minimal redacted request, actual
|
|
50
|
+
operation/command, a minimal redacted request, actual emulator result, expected oracle result or vendor
|
|
51
51
|
documentation, and whether the mismatch appears in the matrix. Never include keys, tokens,
|
|
52
52
|
customer data, prompts, PHI, card data, or unredacted recordings.
|
|
53
53
|
|
package/ORACLE.md
CHANGED
|
@@ -67,7 +67,7 @@ wait exit code, attach upgrade headers and stdout/stderr bytes. Multiplexed outp
|
|
|
67
67
|
is decoded independently and concatenated by channel, removing arbitrary frame
|
|
68
68
|
and packet boundaries. Output bytes are recorded as base64. Container IDs,
|
|
69
69
|
timestamps, daemon-specific metadata and cross-channel interleaving are not
|
|
70
|
-
compared. The
|
|
70
|
+
compared. The emulator's completion control scripts the known exit behavior; it does
|
|
71
71
|
not execute the image. Tests of image execution or host isolation are not implied.
|
|
72
72
|
|
|
73
73
|
The harness performs no daemon restart or live-restore operation. Existing
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# @crvouga/mockingbird-service-docker
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Local emulators. Real API contracts. Part of [Mockingbird](https://github.com/crvouga/mockingbird).
|
|
4
4
|
|
|
5
|
-
Work-in-progress Docker Engine API 1.52
|
|
5
|
+
Work-in-progress Docker Engine API 1.52 emulator. It implements GET/HEAD `/_ping`,
|
|
6
6
|
GET `/version`, `/info`, `/containers/json`, and `/containers/{id}/json`, plus
|
|
7
7
|
Mockingbird's shared runtime controls. POST `/containers/create` persists a stopped
|
|
8
8
|
container. Start, wait, stop, kill, and removal use explicit simulated completion.
|
|
@@ -38,7 +38,7 @@ HTTP clients can target `http://127.0.0.1:8826`. A Docker client using `DOCKER_H
|
|
|
38
38
|
can select `tcp://127.0.0.1:8826`. Unversioned and `/v1.52` provider routes work.
|
|
39
39
|
Versions above 1.52 or below the simulated Engine minimum 1.44 receive provider
|
|
40
40
|
400 errors (plain text below 1.24, JSON otherwise). Versions 1.44–1.51 receive an
|
|
41
|
-
explicit
|
|
41
|
+
explicit emulator-only 501: their wire formats are not implemented. The emulator reports
|
|
42
42
|
a synthetic Engine 29.1.0 identity; this is not a required local Docker version.
|
|
43
43
|
Selected API 1.52 scenarios passed against Engine 29.8.0; full client and Engine
|
|
44
44
|
compatibility are not claimed. See [verification boundaries](#verification-boundaries).
|
|
@@ -95,7 +95,7 @@ or exact tag. Duplicate IDs, names and image tags conflict; unknown images retur
|
|
|
95
95
|
fields also accept `exitCode`, `entrypoint`, `env`, `workingDir`, `user`,
|
|
96
96
|
`hostConfig`, `networkSettings`, `sizeRw`, and `sizeRootFs`. Status is one of
|
|
97
97
|
`created`, `running`, `paused`, `restarting`, `removing`, `exited`, or `dead`.
|
|
98
|
-
Timestamps use the
|
|
98
|
+
Timestamps use the emulator clock; reported PIDs are zero, never host processes.
|
|
99
99
|
|
|
100
100
|
`GET /__admin/docker/daemon` reports `{ available, rootless, simulated: true }`.
|
|
101
101
|
`POST` to the same route changes either boolean. `available: false` drops provider
|
|
@@ -113,7 +113,7 @@ other values mean true. Inspect resolves full IDs, unique prefixes, and names.
|
|
|
113
113
|
`status`, `label`, and `exited`. Categories combine with AND; values within a
|
|
114
114
|
category combine with OR, except labels which all must match. Name matching
|
|
115
115
|
supports literals, dots, anchors, and at most one `.*`; other regex constructs
|
|
116
|
-
and other filter categories return explicit
|
|
116
|
+
and other filter categories return explicit emulator-only 501 errors. Malformed
|
|
117
117
|
filter shapes, statuses and exit codes return 400. Seeded state and daemon
|
|
118
118
|
settings participate in shared reset and Timeline checkpoints.
|
|
119
119
|
|
|
@@ -129,7 +129,7 @@ The supported body fields are `Image`, `Cmd`, `Entrypoint`, `Env`, `Labels`,
|
|
|
129
129
|
`WorkingDir`, `User`, `Hostname`, `Domainname`, `AttachStdin`, `AttachStdout`,
|
|
130
130
|
`AttachStderr`, `OpenStdin`, `StdinOnce`, `Tty`, `NetworkDisabled`, `StopSignal`,
|
|
131
131
|
`StopTimeout`, `HostConfig`, and `NetworkingConfig`. Unsupported fields return
|
|
132
|
-
explicit
|
|
132
|
+
explicit emulator-only 501 errors. Bad field types, relative working directories,
|
|
133
133
|
invalid stop signals, invalid names, and missing commands return 400.
|
|
134
134
|
Image defaults supply commands/entrypoints, environment, labels and selected
|
|
135
135
|
strings. Request environment keys and labels take precedence. `Entrypoint: [""]`
|
|
@@ -157,7 +157,7 @@ network validation is not modelled. No host isolation claim follows from it.
|
|
|
157
157
|
returns 304 when already running/restarting, and returns 409 for paused, dead,
|
|
158
158
|
or removing records. No image is executed. The clock supplies `StartedAt`;
|
|
159
159
|
restart clears the exit code but retains the prior `FinishedAt` until completion.
|
|
160
|
-
Checkpoint, checkpoint-dir and detachKeys options return explicit
|
|
160
|
+
Checkpoint, checkpoint-dir and detachKeys options return explicit emulator-only 501.
|
|
161
161
|
As in the pinned Engine route, bodies longer than seven bytes and chunked bodies
|
|
162
162
|
return 400; use an empty body.
|
|
163
163
|
|
|
@@ -195,7 +195,7 @@ checks selected wait and termination outcomes; cancellation coverage is syntheti
|
|
|
195
195
|
finishes execution, then returns 204. Already-stopped containers return 304.
|
|
196
196
|
`signal` selects the requested signal (default Config.StopSignal or TERM); `t`
|
|
197
197
|
selects the timeout (default Config.StopTimeout or 10 seconds; negative means no
|
|
198
|
-
escalation timeout). The
|
|
198
|
+
escalation timeout). The emulator records these parameters for scenario inspection.
|
|
199
199
|
It does not schedule real timers or automatically declare exit when a timeout
|
|
200
200
|
expires: script graceful completion or forced completion, including the exit code,
|
|
201
201
|
through `/__admin/docker/containers/<id>/complete`. This permits controlled delayed
|
|
@@ -207,7 +207,7 @@ signal names/numbers acknowledge delivery with 204 while preserving execution
|
|
|
207
207
|
state. The fixture decides the subsequent process response. No host signal is
|
|
208
208
|
sent. Killing a stopped container returns 409. Invalid kill signals return 400;
|
|
209
209
|
pinned Engine stop signal errors and malformed `t` return 500. Timeouts outside
|
|
210
|
-
JavaScript's safe integer range return explicit
|
|
210
|
+
JavaScript's safe integer range return explicit emulator-only 501.
|
|
211
211
|
|
|
212
212
|
`DELETE /containers/<id>` removes a stopped record and releases its name (204).
|
|
213
213
|
Running or paused records require `force=true`; otherwise removal returns 409.
|
|
@@ -215,7 +215,7 @@ Forced removal records intent and waits for explicit completion, then removes th
|
|
|
215
215
|
record and wakes both exit and removed waiters. A second removal while forced
|
|
216
216
|
removal is pending returns 409. Seed status `removing` to model an existing removal
|
|
217
217
|
conflict. Missing records return 404. `v` is accepted but no host volumes exist;
|
|
218
|
-
`link=true` is outside this subset and returns
|
|
218
|
+
`link=true` is outside this subset and returns emulator-only 501.
|
|
219
219
|
|
|
220
220
|
`GET /__admin/docker/containers/<id>/termination` returns the last accepted request
|
|
221
221
|
(operation, numeric signal, optional timeout and request time), `removalPending`,
|
|
@@ -270,7 +270,7 @@ Type exports include `DockerAPIOptions`, `DockerRuntime`, `DockerRuntimeOptions`
|
|
|
270
270
|
## Deliberately not modelled
|
|
271
271
|
|
|
272
272
|
Fetch attach and unsupported options return Mockingbird-specific 501 JSON errors;
|
|
273
|
-
unknown routes return 404. The
|
|
273
|
+
unknown routes return 404. The emulator never starts real containers or executes
|
|
274
274
|
commands. The Node server supports the documented non-TTY attach handshake and
|
|
275
275
|
scripted duplex streams; a Fetch response cannot represent that upgrade.
|
|
276
276
|
|
|
@@ -359,7 +359,7 @@ already-framed bytes to the last fragment. This does not promise OS packet
|
|
|
359
359
|
boundaries. The bytes are caller-owned wire fixtures, not generated container
|
|
360
360
|
output. Use the live attachment controls below for framing, channel routing and scripted
|
|
361
361
|
stdin. No command interprets the input, and payload bytes never enter the journal. Connection loss does not stop the container.
|
|
362
|
-
Owned sockets close on server shutdown. The
|
|
362
|
+
Owned sockets close on server shutdown. The emulator never connects to a real Engine;
|
|
363
363
|
the separately invoked oracle performs the authorized provider comparison.
|
|
364
364
|
|
|
365
365
|
## Scripted attach streams
|
|
@@ -411,7 +411,7 @@ stale writes reject. Socket handles and buffered payloads are never snapshotted.
|
|
|
411
411
|
`attachStreams.maxQueuedBytes` and `maxStdinBytes` default to 1 MiB. Queued output
|
|
412
412
|
includes frame headers; exceeding the output limit rejects the write. Exceeding
|
|
413
413
|
unread stdin capacity cancels that attachment. Stream limits must be positive
|
|
414
|
-
integers no greater than 16 MiB. These bounds are
|
|
414
|
+
integers no greater than 16 MiB. These bounds are emulator resource controls.
|
|
415
415
|
|
|
416
416
|
## Verification boundaries
|
|
417
417
|
|
|
@@ -429,7 +429,7 @@ requests on a retained connection and raw attach bytes. It verifies lost create
|
|
|
429
429
|
and start responses, lookup by name, duplicate-name conflict, framed binary
|
|
430
430
|
stdout/stderr, raw stdin, continued execution after attachment loss, and lost
|
|
431
431
|
stop/kill/remove responses followed by completion and re-inspection. Setup and
|
|
432
|
-
completion use public
|
|
432
|
+
completion use public emulator admin controls; attachment handles only script output
|
|
433
433
|
and observe synthetic stdin. Public request metadata confirms each dropped mutation
|
|
434
434
|
was accepted and checkpointed. No client assertion imports provider handlers or
|
|
435
435
|
internal state. The fixture never automatically retries a mutation.
|
package/SUPPORT.md
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
Generated from `openapi.yaml`; do not edit by hand.
|
|
4
4
|
|
|
5
5
|
- operations in spec: **13**
|
|
6
|
-
- supported by the
|
|
6
|
+
- supported by the emulator: **12**
|
|
7
7
|
- parity enabled: **8**
|
|
8
8
|
|
|
9
|
-
| operationId | route |
|
|
9
|
+
| operationId | route | emulator | parity | notes |
|
|
10
10
|
| --- | --- | --- | --- | --- |
|
|
11
11
|
| `ContainerList` | `GET /containers/json` | ✅ supported | ✅ | |
|
|
12
12
|
| `ContainerCreate` | `POST /containers/create` | ✅ supported | ⚠️ unsafe (opt-in) | |
|