mikser-io 11.2.1 → 11.2.2

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": "mikser-io",
3
- "version": "11.2.1",
3
+ "version": "11.2.2",
4
4
  "files": [
5
5
  "app.js",
6
6
  "index.js",
@@ -58,6 +58,19 @@ onFinalize(async () => {
58
58
  }
59
59
 
60
60
  for await (const { output, entity, deps } of useJournal('Output', [OPERATION.RENDER])) {
61
+ // A render that wrote NOTHING has no snapshot to record. A snapshot is
62
+ // the manifest's claim that a file exists at a destination — it is what
63
+ // --audit-output verifies and what invalidation compares against — so a
64
+ // `save: false` render (a preview: bytes back to the caller, nothing on
65
+ // disk) recording one makes the manifest assert a file nobody wrote.
66
+ //
67
+ // Observed on a live site: an MCP app rendered on demand left
68
+ // /internal/customer-registration.html claimed and absent, and the
69
+ // audit went red for a page that was never supposed to exist. The
70
+ // entity is simply left unrecorded, which is also the truthful state
71
+ // for invalidation — nothing was produced, so the next real build has
72
+ // nothing to reuse.
73
+ if (entity?.options?.save === false) continue
61
74
  if (output?.success && !output.skipped) {
62
75
  renderedEntries.push({ entity, deps, metaReads: output.metaReads,
63
76
  consumedReads: output.consumedReads })