@ccmsg/protocol 0.6.0 → 0.6.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ccmsg/protocol",
3
- "version": "0.6.0",
3
+ "version": "0.6.1",
4
4
  "description": "Wire contract (schema + types + op attribute table) shared by the ccmsg daemon and web UI",
5
5
  "license": "MIT",
6
6
  "author": "kawaz",
@@ -40,7 +40,13 @@ export type MeshHello = Static<typeof MeshHello>;
40
40
  * A field that belongs to another role is as much a refusal as a missing one:
41
41
  * `mesh` on a session greeting says the caller has confused which handshake it
42
42
  * is in, and accepting it would leave the connection settled as something
43
- * neither side meant. */
43
+ * neither side meant.
44
+ *
45
+ * A session's meta (`cwd`, `repo_root`, `transcript_path`, `title`, ...) is
46
+ * taken field by field: a greeting that leaves a field out does not withdraw
47
+ * it, and the instance keeps what it already knows for that `sid`. One session
48
+ * reaches an instance as a run of short-lived processes (a session-start hook,
49
+ * a `post`, a session-end hook), none of which knows every field. */
44
50
  export const HelloArgs = Type.Object({
45
51
  role: Role,
46
52
  /** The generation the caller speaks. A hello announcing another generation