@bivy/bivy 0.15.0-staging.19 → 0.15.0-staging.20

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.
Files changed (2) hide show
  1. package/dist/metadata.js +8 -1
  2. package/package.json +1 -1
package/dist/metadata.js CHANGED
@@ -103,7 +103,14 @@ export class MetadataStore {
103
103
  const prev = this.data.sessions[input.id];
104
104
  const createdAt = input.createdAt ?? prev?.createdAt ?? nowIso();
105
105
  const updatedAt = input.updatedAt ?? nowIso();
106
- this.data.sessions[input.id] = { ...prev, ...input, createdAt, updatedAt };
106
+ // Runtime adapters do not all expose the same resume fields. In particular,
107
+ // an adapter can temporarily have no sessionFile while it is being rebuilt.
108
+ // Do not let that partial snapshot erase the durable resume ref (or any
109
+ // other field) already recorded for the session. The old object spread did
110
+ // exactly that: `{ path: undefined }` replaced the Pi transcript path, so
111
+ // reopening the saved row fell through to a fresh session.
112
+ const defined = Object.fromEntries(Object.entries(input).filter(([, value]) => value !== undefined));
113
+ this.data.sessions[input.id] = { ...prev, ...defined, createdAt, updatedAt };
107
114
  this.save();
108
115
  }
109
116
  touchSession(id, status) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bivy/bivy",
3
- "version": "0.15.0-staging.19",
3
+ "version": "0.15.0-staging.20",
4
4
  "type": "module",
5
5
  "license": "AGPL-3.0-only",
6
6
  "description": "Run coding agents on machines you own. Open-source, self-hostable agent workspace.",