@pie-players/pie-assessment-toolkit 0.3.32 → 0.3.34

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.
@@ -148,6 +148,20 @@ export declare class SectionRuntimeEngine {
148
148
  private attemptId;
149
149
  private unsubscribeController;
150
150
  private activeInitToken;
151
+ /**
152
+ * Tracks which `(canonicalItemId, contentKind)` pairs have already
153
+ * fired `handleContentLoaded` on this engine. Mirrored alongside
154
+ * `RuntimeRegistry`'s registered set so a cohort handoff can
155
+ * replay the persistent shells' loaded state into the new
156
+ * controller — see `replayRegisteredShellsIntoController` and the
157
+ * PIE-512 Phase B regression test.
158
+ *
159
+ * Cleared in lockstep with `handleContentUnregistered` and on
160
+ * `dispose`. Not exposed publicly: the registry alone is the
161
+ * external surface; the loaded set exists only to seed cohort B's
162
+ * controller with the live state cohort A's shells produced.
163
+ */
164
+ private readonly loadedRenderableKeys;
151
165
  /**
152
166
  * Attach the host element + framework-error bus + sourceCe so the
153
167
  * adapter can dispatch DOM events and bus errors. Required before
@@ -207,6 +221,43 @@ export declare class SectionRuntimeEngine {
207
221
  */
208
222
  getRuntimeId(): string;
209
223
  initialize(args: EngineInitArgs): Promise<void>;
224
+ /**
225
+ * Re-feed the engine's `RuntimeRegistry` and loaded-set into the
226
+ * resolved controller. Call site: `initialize(...)` — runs on
227
+ * EVERY initialize, both cohort-flip-resolves-fresh-controller
228
+ * and same-cohort-resolves-existing-controller cases. Phase C
229
+ * dropped the `resolved !== previousController` gate; see the
230
+ * comment at the call site for why.
231
+ *
232
+ * Two-pass order — register every shell in document order, then
233
+ * issue `handleContentLoaded` for each shell whose load already
234
+ * fired on this engine. The two-pass shape prevents
235
+ * `evaluateSectionLoadingState` from flapping
236
+ * `section-loading-complete` `false→true→false→…` while replay is
237
+ * mid-walk: any subscriber wired before the engine's own
238
+ * `controller.subscribe` (no such caller today, but cheap defense
239
+ * for future wiring) sees one clean `false→true` transition.
240
+ *
241
+ * Idempotent on the controller side — Phase C makes
242
+ * `SectionController.handleContentRegistered` and
243
+ * `handleContentLoaded` early-return on duplicates so re-feeding
244
+ * the same shells into a controller that already tracks them is
245
+ * a true no-op (no spurious re-emits, no re-evaluation of
246
+ * `section-loading-complete`). At the call site no listener is
247
+ * attached during the replay window, so `emitChange` side effects
248
+ * fire into a void on this pass anyway, but the controller-side
249
+ * idempotence is what makes the replay safe to run on every
250
+ * initialize regardless of whether the controller is fresh.
251
+ */
252
+ private replayRegisteredShellsIntoController;
253
+ /**
254
+ * Stable key for the engine's `loadedRenderableKeys` set. Mirrors
255
+ * the `(canonicalItemId, contentKind)` shape `SectionController`
256
+ * uses internally (see `getRenderableKey`); we only need
257
+ * consistent add/check semantics on this side, not byte-identical
258
+ * normalization with the controller.
259
+ */
260
+ private getLoadedKey;
210
261
  register(detail: RuntimeRegistrationDetail): boolean;
211
262
  unregister(element: HTMLElement): boolean;
212
263
  getCompositionModel(): unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"SectionRuntimeEngine.d.ts","sourceRoot":"","sources":["../../src/runtime/SectionRuntimeEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SectionRuntimeEngine.d.ts","sourceRoot":"","sources":["../../src/runtime/SectionRuntimeEngine.ts"],"names":[],"mappings":"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"}
@@ -68,6 +68,20 @@ export class SectionRuntimeEngine {
68
68
  attemptId;
69
69
  unsubscribeController = null;
70
70
  activeInitToken = 0;
71
+ /**
72
+ * Tracks which `(canonicalItemId, contentKind)` pairs have already
73
+ * fired `handleContentLoaded` on this engine. Mirrored alongside
74
+ * `RuntimeRegistry`'s registered set so a cohort handoff can
75
+ * replay the persistent shells' loaded state into the new
76
+ * controller — see `replayRegisteredShellsIntoController` and the
77
+ * PIE-512 Phase B regression test.
78
+ *
79
+ * Cleared in lockstep with `handleContentUnregistered` and on
80
+ * `dispose`. Not exposed publicly: the registry alone is the
81
+ * external surface; the loaded set exists only to seed cohort B's
82
+ * controller with the live state cohort A's shells produced.
83
+ */
84
+ loadedRenderableKeys = new Set();
71
85
  // ============================================================
72
86
  // Engine-side surface (PR 3+; driven by the kernel from PR 5,
73
87
  // by the toolkit CE from PR 6, and by the facade smoke test today).
@@ -179,12 +193,106 @@ export class SectionRuntimeEngine {
179
193
  return;
180
194
  this.unsubscribeController?.();
181
195
  this.controller = resolved;
196
+ // PIE-512 Phase C: always re-feed the registry's currently
197
+ // registered shells (and their loaded state) into the resolved
198
+ // controller. We do NOT gate on `resolved !== previousController`
199
+ // any more.
200
+ //
201
+ // Why the gate had to go:
202
+ // - Cohort flip resolving to a fresh controller — replay seeds
203
+ // the new controller, which is the original Phase B fix.
204
+ // - Same-cohort `updateInput` resolving to the existing
205
+ // controller — the coordinator's
206
+ // `resolveExistingSectionController` calls
207
+ // `existingController.updateInput(input)` (engine always
208
+ // passes `updateExisting: true`), and pre-Phase-C
209
+ // `SectionController.initialize` wiped lifecycle tracking
210
+ // unconditionally. A subscriber attaching between the wipe
211
+ // and the next live event saw an empty
212
+ // `loadedRenderables` snapshot.
213
+ //
214
+ // Phase C makes this re-feed safe by combining (a) the
215
+ // section-identity gate around `resetLifecycleTracking()` in
216
+ // `SectionController.initialize` (so same-cohort `updateInput`
217
+ // preserves tracking) with (b) idempotent
218
+ // `handleContentRegistered` / `handleContentLoaded` on the
219
+ // controller (so re-feeding the same registry entries is a
220
+ // no-op if the controller already knows about them, but
221
+ // re-seeds the controller in the post-`updateInput`-wipe case
222
+ // that pre-Phase-C used to encounter).
223
+ this.replayRegisteredShellsIntoController(resolved);
182
224
  args.onCompositionChanged?.(resolved.getCompositionModel?.());
183
225
  this.unsubscribeController =
184
226
  resolved.subscribe?.(() => {
185
227
  args.onCompositionChanged?.(resolved.getCompositionModel?.());
186
228
  }) || null;
187
229
  }
230
+ /**
231
+ * Re-feed the engine's `RuntimeRegistry` and loaded-set into the
232
+ * resolved controller. Call site: `initialize(...)` — runs on
233
+ * EVERY initialize, both cohort-flip-resolves-fresh-controller
234
+ * and same-cohort-resolves-existing-controller cases. Phase C
235
+ * dropped the `resolved !== previousController` gate; see the
236
+ * comment at the call site for why.
237
+ *
238
+ * Two-pass order — register every shell in document order, then
239
+ * issue `handleContentLoaded` for each shell whose load already
240
+ * fired on this engine. The two-pass shape prevents
241
+ * `evaluateSectionLoadingState` from flapping
242
+ * `section-loading-complete` `false→true→false→…` while replay is
243
+ * mid-walk: any subscriber wired before the engine's own
244
+ * `controller.subscribe` (no such caller today, but cheap defense
245
+ * for future wiring) sees one clean `false→true` transition.
246
+ *
247
+ * Idempotent on the controller side — Phase C makes
248
+ * `SectionController.handleContentRegistered` and
249
+ * `handleContentLoaded` early-return on duplicates so re-feeding
250
+ * the same shells into a controller that already tracks them is
251
+ * a true no-op (no spurious re-emits, no re-evaluation of
252
+ * `section-loading-complete`). At the call site no listener is
253
+ * attached during the replay window, so `emitChange` side effects
254
+ * fire into a void on this pass anyway, but the controller-side
255
+ * idempotence is what makes the replay safe to run on every
256
+ * initialize regardless of whether the controller is fresh.
257
+ */
258
+ replayRegisteredShellsIntoController(controller) {
259
+ if (!controller.handleContentRegistered)
260
+ return;
261
+ const shells = this.registry.getOrderedShells();
262
+ if (shells.length === 0)
263
+ return;
264
+ for (const shell of shells) {
265
+ const canonicalItemId = shell.canonicalItemId || shell.itemId;
266
+ controller.handleContentRegistered({
267
+ itemId: shell.itemId,
268
+ canonicalItemId,
269
+ contentKind: shell.contentKind || shell.kind,
270
+ });
271
+ }
272
+ const now = Date.now();
273
+ for (const shell of shells) {
274
+ const canonicalItemId = shell.canonicalItemId || shell.itemId;
275
+ const key = this.getLoadedKey(canonicalItemId, shell.contentKind);
276
+ if (this.loadedRenderableKeys.has(key)) {
277
+ controller.handleContentLoaded?.({
278
+ itemId: shell.itemId,
279
+ canonicalItemId,
280
+ contentKind: shell.contentKind || shell.kind,
281
+ timestamp: now,
282
+ });
283
+ }
284
+ }
285
+ }
286
+ /**
287
+ * Stable key for the engine's `loadedRenderableKeys` set. Mirrors
288
+ * the `(canonicalItemId, contentKind)` shape `SectionController`
289
+ * uses internally (see `getRenderableKey`); we only need
290
+ * consistent add/check semantics on this side, not byte-identical
291
+ * normalization with the controller.
292
+ */
293
+ getLoadedKey(canonicalItemId, contentKind) {
294
+ return `${contentKind ?? ""}:${canonicalItemId}`;
295
+ }
188
296
  register(detail) {
189
297
  return this.registry.register(detail);
190
298
  }
@@ -206,13 +314,24 @@ export class SectionRuntimeEngine {
206
314
  });
207
315
  }
208
316
  handleContentUnregistered(detail) {
317
+ const canonicalItemId = detail.canonicalItemId || detail.itemId;
318
+ // Key the load-set delete with the same `contentKind`-only
319
+ // shape that `handleContentLoaded` and
320
+ // `replayRegisteredShellsIntoController` use, so add/check/
321
+ // delete keys round-trip identically. The `|| detail.kind`
322
+ // fallback is preserved for the controller-forwarded payload
323
+ // because the controller normalizes via `toSectionContentKind`
324
+ // and the legacy `kind` field is still meaningful there.
325
+ this.loadedRenderableKeys.delete(this.getLoadedKey(canonicalItemId, detail.contentKind));
209
326
  this.controller?.handleContentUnregistered?.({
210
327
  itemId: detail.itemId,
211
- canonicalItemId: detail.canonicalItemId || detail.itemId,
328
+ canonicalItemId,
212
329
  contentKind: detail.contentKind || detail.kind,
213
330
  });
214
331
  }
215
332
  handleContentLoaded(args) {
333
+ const canonicalItemId = args.canonicalItemId || args.itemId;
334
+ this.loadedRenderableKeys.add(this.getLoadedKey(canonicalItemId, args.contentKind));
216
335
  this.controller?.handleContentLoaded?.(args);
217
336
  }
218
337
  handleItemPlayerError(args) {
@@ -248,6 +367,7 @@ export class SectionRuntimeEngine {
248
367
  });
249
368
  }
250
369
  this.registry.clear();
370
+ this.loadedRenderableKeys.clear();
251
371
  this.controller = null;
252
372
  this.coordinator = null;
253
373
  // Tear down the engine-side adapter (if attached) last so any
@@ -1 +1 @@
1
- {"version":3,"file":"SectionRuntimeEngine.js","sourceRoot":"","sources":["../../src/runtime/SectionRuntimeEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SectionRuntimeEngine.js","sourceRoot":"","sources":["../../src/runtime/SectionRuntimeEngine.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-players/pie-assessment-toolkit",
3
- "version": "0.3.32",
3
+ "version": "0.3.34",
4
4
  "type": "module",
5
5
  "description": "PIE assessment toolkit: composable services + reference implementation for assessment players and tool coordination",
6
6
  "license": "MIT",
@@ -79,15 +79,15 @@
79
79
  "test": "bun test"
80
80
  },
81
81
  "dependencies": {
82
- "@pie-players/pie-calculator": "0.3.32",
83
- "@pie-players/pie-context": "0.3.32",
84
- "@pie-players/pie-players-shared": "0.3.32",
85
- "@pie-players/pie-tts": "0.3.32",
82
+ "@pie-players/pie-calculator": "0.3.34",
83
+ "@pie-players/pie-context": "0.3.34",
84
+ "@pie-players/pie-players-shared": "0.3.34",
85
+ "@pie-players/pie-tts": "0.3.34",
86
86
  "svelte": "^5.54.0"
87
87
  },
88
88
  "peerDependencies": {
89
- "@pie-players/pie-calculator-desmos": "0.3.32",
90
- "@pie-players/tts-client-server": "0.3.32"
89
+ "@pie-players/pie-calculator-desmos": "0.3.34",
90
+ "@pie-players/tts-client-server": "0.3.34"
91
91
  },
92
92
  "peerDependenciesMeta": {
93
93
  "@pie-players/pie-calculator-desmos": {