@agfpd/iapeer 0.4.11 → 0.4.12

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": "@agfpd/iapeer",
3
- "version": "0.4.11",
3
+ "version": "0.4.12",
4
4
  "description": "Foundation core for the iapeer multi-agent ecosystem: identity, registry, storage, codec.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "agfpd",
@@ -183,8 +183,10 @@ export function migrateProfileRuntimeField(cwd: string): boolean {
183
183
  }
184
184
  if (!raw || typeof raw !== 'object' || Array.isArray(raw)) return false
185
185
  const obj = raw as Record<string, unknown>
186
- const inShape =
187
- isRuntime(obj.default_runtime) && (obj.runtime === undefined || obj.runtime === obj.default_runtime)
186
+ // Phase-3: in-shape = default_runtime present AND NO legacy `runtime` field at all. An in-sync mirror
187
+ // (runtime === default_runtime) is NO LONGER in shape — it must be stripped (writePeerProfileAtomic
188
+ // drops it), so `verify --fix` cleans every profile still carrying the mirror.
189
+ const inShape = isRuntime(obj.default_runtime) && obj.runtime === undefined
188
190
  if (inShape) return false
189
191
  const profile = readPeerProfile(cwd)
190
192
  if (!profile) return false