The JSON output description now covers what a cloud-hosted session reports at startup and server-composed notices from other sessions.
What's wrong with this entry?
The machine-readable description of Claude Code's JSON output gained two blocks. One describes what a cloud-hosted session reports when it starts up; the other describes a notice composed by the server on behalf of another session.
- The cloud session block is optional and only appears on start-up frames from the cloud client. It carries the cloud session id, a URL to view it, whether a device is bound and why not with a one-line message, and a directory sync state of off, seeding, armed or stopped with a file mode of container_sync, device_tools or unspecified.
- It also carries a client version, with instructions that a consumer seeing a higher one should warn and carry on rather than refuse.
- The notice block describes delivery over the polling event channel with server-asserted origin stamps that are stripped on the way in and re-applied by whatever composes the notice, the same discipline used for synthetic messages.
Server-asserted ingest-path marker, same strip-and-restamp discipline as isSynthetic.
Strings lifted out of the shipped bundle, so the claim above can be checked against them.
Related
Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.
-
v2.1.224
Compact summaries are flagged as synthetic in SDK output
Both mention json output
-
v2.1.242
Session spawn aborts on host-specific write paths committed to a repo
Both mention json
-
v2.1.247
Warning when
~/.claude.jsoncannot be watched for outside editsBoth mention json