{"at": "2026-11-01T14:44:07Z", "transport": "isolated localhost Analyser REST action socket", "action": "open", "params": {"project": "<isolated-capture>/authoring-project/.analyser/project.fluxtion-settings"}, "result": {"ok": true, "action": "open", "opened": {"project": "authoring-project", "settings": "<isolated-capture>/authoring-project/.analyser/project.fluxtion-settings", "replaced": {"sourceRoots": {"before": 0, "after": 1}, "mavenRepos": {"before": 1, "after": 1}, "eventProcessors": {"before": 1, "after": 1}, "selectedEventProcessor": {"before": "com.example.reuse.generated.OrderReleaseProcessor", "after": "demo.authoring.generated.OrderProcessor"}, "namedGraphs": {"before": 1, "after": 0}, "namedFocuses": {"before": 0, "after": 0}, "reports": {"before": 1, "after": 0}, "hiddenColumns": {"before": 0, "after": 0}}, "closed": {"log": "<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-252f7c5fad7e-8669767568294111208/log/events.audit", "graph": "<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-252f7c5fad7e-8669767568294111208/graph/OrderReleaseProcessor.graphml"}, "closedWhy": "a project is a session boundary (M35.5): its settings change underneath the log, so the log and graph go with it — reopen them inside the new project", "previous": "bundle-252f7c5fad7e-8669767568294111208", "reversible": "open {project: \"<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-252f7c5fad7e-8669767568294111208/profile/project.fluxtion-settings\"} puts it back — the settings, not the session: reopen what `closed` names"}}}
{"at": "2026-11-01T14:44:08Z", "transport": "isolated localhost Analyser REST action socket", "action": "open", "params": {"log": "<checkout>/examples/authoring-session/evidence/events.yaml", "graphml": "<checkout>/examples/authoring-session/generated/OrderProcessor.graphml"}, "result": {"ok": true, "action": "open", "opened": {"log": "<checkout>/examples/authoring-session/evidence/events.yaml", "logLoading": true, "graphml": {"path": "<checkout>/examples/authoring-session/generated/OrderProcessor.graphml", "graphNodes": 15, "authoredNodes": 5, "authorshipBasis": "declared", "copyComparison": {"roots": ["<checkout>/examples/authoring-session/src", "<checkout>/examples/authoring-session/generated"], "state": "pending"}, "appliesMeans": "retention policy: keep this graph open against this log — not proof of fit", "membershipEstablished": true, "everyObservedIdDeclared": true, "pairingScope": "all 12 records", "pairingSampled": false, "pairing": "pending — the log is still loading; the graph is judged against it when the load lands. Read context.graphPairing for the verdict."}}}}
{"at": "2026-11-01T14:44:09Z", "transport": "isolated localhost Analyser REST action socket", "action": "context", "params": {"sections": ["log", "pairing"]}, "result": {"ok": true, "action": "context", "context": {"log": {"path": "<checkout>/examples/authoring-session/evidence/events.yaml", "openedFrom": "<checkout>/examples/authoring-session/evidence/events.yaml", "records": 12, "sizeBytes": 5501, "from": 1700000000000, "to": 1793543142008, "openedBy": "action socket", "freshness": {"basis": "size, modification time and file identity; unchanged metadata does not prove identical bytes", "state": "unchanged-metadata", "members": [{"state": "unchanged-metadata", "onDisk": {"path": "<checkout>/examples/authoring-session/evidence/events.yaml", "sizeBytes": 5501, "modified": "2026-11-01T14:33:17.449498632Z", "fileKey": "(dev=1000010,ino=199210621)", "directory": false}, "loaded": {"path": "<checkout>/examples/authoring-session/evidence/events.yaml", "sizeBytes": 5501, "modified": "2026-11-01T14:33:17.449498632Z", "fileKey": "(dev=1000010,ino=199210621)", "directory": false}}], "reload": "explicitly reopen the same path; no automatic replacement"}, "generation": 3, "following": false, "supportsFollow": true, "trailingRecordsIncluded": 1, "tailNote": "EOF record included without a closing separator (legal Format 1); completeness unknown. Follow reopens as a live read.", "trailingRecordsPending": 0, "streamEnd": {"state": "unknown", "recordsRead": 12}}, "graphPairing": {"graph": "OrderProcessor.graphml", "graphSource": "OPENED", "freshness": {"basis": "size, modification time and file identity; unchanged metadata does not prove identical bytes", "state": "unchanged-metadata", "members": [{"state": "unchanged-metadata", "onDisk": {"path": "<checkout>/examples/authoring-session/generated/OrderProcessor.graphml", "sizeBytes": 20897, "modified": "2026-11-01T14:33:17.449075381Z", "fileKey": "(dev=1000010,ino=199210616)", "directory": false}, "loaded": {"path": "<checkout>/examples/authoring-session/generated/OrderProcessor.graphml", "sizeBytes": 20897, "modified": "2026-11-01T14:33:17.449075381Z", "fileKey": "(dev=1000010,ino=199210616)", "directory": false}}], "reload": "explicitly reopen the same path; no automatic replacement"}, "graphPath": "<checkout>/examples/authoring-session/generated/OrderProcessor.graphml", "applies": true, "loggedNodes": 4, "declaredByGraph": 4, "appliesMeans": "retention policy: keep this graph open against this log — not proof of fit", "membershipEstablished": true, "everyObservedIdDeclared": true, "pairingScope": "all 12 records", "pairingSampled": false, "verdict": "the graph declares all 4 node(s) this log writes", "auditLogging": "enabled", "auditLoggingNote": "Audit logging is installed on this processor (EventLogManager is on the graph), so a run can produce a log. Whether a given NODE appears in it is a separate question — a node logs only if it has an audit logger and calls it, which is why 'did not log' is never by itself 'did not run'.", "copyComparison": {"state": "complete", "groups": [], "roots": ["<checkout>/examples/authoring-session/src", "<checkout>/examples/authoring-session/generated"], "warnings": [], "truncated": false}}, "dispatchOrder": "total — position in nodeLogs IS dispatch order (derived); safe to read as causality", "timeOrder": ["10 record(s) out of time order within this log, first at record 2 — time-anchored features may be approximate; records are never re-sorted"], "scope": {"sections": ["log", "pairing"], "available": ["log", "project", "pairing", "processors", "source", "topology", "view", "charts", "menus", "design", "handoff"], "note": "a projection of the full context: each key here equals the same key of an unprojected call on the same state; absent sections were not read. Omit 'sections' for everything"}}}}
{"at": "2026-11-01T14:44:10Z", "transport": "isolated localhost Analyser REST action socket", "action": "read", "params": {"recordIndex": 3, "before": 0, "after": 6}, "result": {"ok": true, "action": "read", "result": {"total": 12, "anchor": 3, "from": 3, "to": 9, "records": [{"recordIndex": 3, "byteOffset": 701, "logTime": 1700000000001, "text": "eventLogRecord: \n    eventTime: 1700000000001\n    logTime: 1700000000001\n    groupingId: null\n    event: Order\n    eventToString: demo.authoring.Order@7960847b\n    thread: main\n    nodeLogs: \n        - input: { thread: main, method: onOrder, annotation: OnEventHandler, quantity: 10, price: 1200, limit: 10000}\n        - calculation: { thread: main, method: calculate, annotation: OnTrigger, value: 12000}\n        - limit: { thread: main, method: compare, annotation: OnTrigger, accepted: false}\n        - decision: { thread: main, method: publish, annotation: OnTrigger, decision: REJECTED}\n    endTime: 1700000000001"}, {"recordIndex": 4, "byteOffset": 1324, "logTime": 1700000000002, "text": "eventLogRecord: \n    eventTime: 1700000000002\n    logTime: 1700000000002\n    groupingId: null\n    event: Order\n    eventToString: demo.authoring.Order@6a6824be\n    thread: main\n    nodeLogs: \n        - input: { thread: main, method: onOrder, annotation: OnEventHandler, quantity: 10, price: 1200, limit: 10000}\n        - calculation: { thread: main, method: calculate, annotation: OnTrigger, value: 12000}\n        - limit: { thread: main, method: compare, annotation: OnTrigger, accepted: false}\n        - decision: { thread: main, method: publish, annotation: OnTrigger, decision: REJECTED}\n    endTime: 1700000000002"}, {"recordIndex": 5, "byteOffset": 1947, "logTime": 1700000000003, "text": "eventLogRecord: \n    eventTime: 1700000000003\n    logTime: 1700000000003\n    groupingId: null\n    event: Order\n    eventToString: demo.authoring.Order@5c8da962\n    thread: main\n    nodeLogs: \n        - input: { thread: main, method: onOrder, annotation: OnEventHandler, quantity: 10, price: 1200, limit: 15000}\n        - calculation: { thread: main, method: calculate, annotation: OnTrigger, value: 12000}\n        - limit: { thread: main, method: compare, annotation: OnTrigger, accepted: true}\n        - decision: { thread: main, method: publish, annotation: OnTrigger, decision: ACCEPTED}\n    endTime: 1700000000003"}, {"recordIndex": 6, "byteOffset": 2569, "logTime": 1700000000004, "text": "eventLogRecord: \n    eventTime: 1700000000004\n    logTime: 1700000000004\n    groupingId: null\n    event: Order\n    eventToString: demo.authoring.Order@512ddf17\n    thread: main\n    nodeLogs: \n        - input: { thread: main, method: onOrder, annotation: OnEventHandler, quantity: 10, price: 1200, limit: 12000}\n        - calculation: { thread: main, method: calculate, annotation: OnTrigger, value: 12000}\n        - limit: { thread: main, method: compare, annotation: OnTrigger, accepted: true}\n        - decision: { thread: main, method: publish, annotation: OnTrigger, decision: ACCEPTED}\n    endTime: 1700000000004"}, {"recordIndex": 7, "byteOffset": 3191, "logTime": 1700000000005, "text": "eventLogRecord: \n    eventTime: 1700000000005\n    logTime: 1700000000005\n    groupingId: null\n    event: Order\n    eventToString: demo.authoring.Order@2c13da15\n    thread: main\n    nodeLogs: \n        - input: { thread: main, method: onOrder, annotation: OnEventHandler, quantity: 10, price: 1200, limit: 11999}\n        - calculation: { thread: main, method: calculate, annotation: OnTrigger, value: 12000}\n        - limit: { thread: main, method: compare, annotation: OnTrigger, accepted: false}\n        - decision: { thread: main, method: publish, annotation: OnTrigger, decision: REJECTED}\n    endTime: 1700000000005"}, {"recordIndex": 8, "byteOffset": 3814, "logTime": 1700000000006, "text": "eventLogRecord: \n    eventTime: 1700000000006\n    logTime: 1700000000006\n    groupingId: null\n    event: Order\n    eventToString: demo.authoring.Order@77556fd\n    thread: main\n    nodeLogs: \n        - input: { thread: main, method: onOrder, annotation: OnEventHandler, quantity: 1, price: 0, limit: 0}\n        - calculation: { thread: main, method: calculate, annotation: OnTrigger, value: 0}\n        - limit: { thread: main, method: compare, annotation: OnTrigger, accepted: true}\n        - decision: { thread: main, method: publish, annotation: OnTrigger, decision: ACCEPTED}\n    endTime: 1700000000006"}, {"recordIndex": 9, "byteOffset": 4423, "logTime": 1700000000007, "text": "eventLogRecord: \n    eventTime: 1700000000007\n    logTime: 1700000000007\n    groupingId: null\n    event: Order\n    eventToString: demo.authoring.Order@368239c8\n    thread: main\n    nodeLogs: \n        - input: { thread: main, method: onOrder, annotation: OnEventHandler, quantity: 1, price: 9223372036854775807, limit: 9223372036854775807}\n        - calculation: { thread: main, method: calculate, annotation: OnTrigger, value: 9223372036854775807}\n        - limit: { thread: main, method: compare, annotation: OnTrigger, accepted: true}\n        - decision: { thread: main, method: publish, annotation: OnTrigger, decision: ACCEPTED}\n    endTime: 1700000000007"}]}}}
{"at": "2026-11-01T14:44:58Z", "transport": "isolated localhost Analyser REST action socket", "action": "topology", "params": {"showAll": true, "recordIndex": 3, "source": false, "scaffolding": false, "callout": false, "fit": true}, "result": {"ok": true, "action": "topology", "topology": {"recordIndex": 3, "rowIndex": -1, "orderMeaningful": true, "graphSource": "OPENED", "atEntry": true, "rowCount": 4, "recordsOpen": 12, "position": "entry · 4 invocation(s)", "currentNode": null, "selected": [], "scope": "node", "routeBound": true, "focus": false, "context": "All (15)", "contextDepth": 0, "scaffolding": false, "syncSource": true, "visibleNodes": 5, "totalNodes": 15, "dispatchHierarchy": "unknown", "dispatchNote": "Dispatch hierarchy unknown: this graph does not declare complete supertype routes. Named entry points are not a complete dispatch path; unlogged nodes are not ruled out by missing edges.", "callout": false}}}
{"at": "2026-11-01T14:44:59Z", "transport": "isolated localhost Analyser REST action socket", "action": "spotlight", "params": {"targets": [{"target": "topology:node:calculation", "caption": "10 units at £12 produce £120"}, {"target": "topology:node:decision", "caption": "£100 limit: REJECTED"}]}, "result": {"ok": true, "action": "spotlight", "spotlight": {"lit": [{"n": 1, "target": "topology:node:calculation", "caption": "10 units at £12 produce £120", "bounds": {"width": 145, "height": 53, "x": 1167, "y": 553}}, {"n": 2, "target": "topology:node:decision", "caption": "£100 limit: REJECTED", "bounds": {"width": 145, "height": 53, "x": 1167, "y": 761}}], "note": "lit in the window; bounds are in the coordinates of a default `screenshot` — take one to check each is where you meant. Each carries its number (n) on screen: use it in your sentence. They go out on any click, Escape, {clear: true}, or a verb that changes the view."}}}
{"at": "2026-11-01T14:45:00Z", "transport": "isolated localhost Analyser REST action socket", "action": "screenshot", "params": {"path": "authoring/01-fresh-application.png"}, "result": {"ok": true, "action": "screenshot", "wrote": {"path": "<checkout>/examples/library-workflow/investigation/authoring/01-fresh-application.png", "width": 1500, "height": 948, "windowBounds": {"width": 1500, "height": 1000, "x": 20, "y": 40}}}}
{"at": "2026-11-01T14:45:04Z", "transport": "isolated localhost Analyser REST action socket", "action": "walk", "params": {"name": "Fresh application checked against requirements", "title": "From the order rule to recorded decisions", "steps": [{"caption": "Calculate the amount: the input records 10 units at 1200 pence. The calculation records 12000 pence (£120).", "view": {"tab": "topology", "record": 3}, "targets": [{"target": "topology:node:input", "caption": "Quantity10; price1200p; limit10000p"}, {"target": "topology:node:calculation", "caption": "Recorded value12000p"}]}, {"caption": "Apply the rule: this £120 order exceeds its £100 limit. The application records accepted=false and REJECTED.", "view": {"tab": "topology", "record": 3}, "targets": [{"target": "topology:node:limit", "caption": "Above the limit: accepted=false"}, {"target": "topology:node:decision", "caption": "REJECTED"}]}, {"caption": "Repeat the same input: the next event records the same values and the same refusal. This checks this repeated fixture, not every possible state.", "view": {"tab": "topology", "record": 4}, "targets": [{"target": "topology:node:decision", "caption": "Same input, same recorded REJECTED"}]}, {"caption": "Change the supplied limit to £150: the same £120 value is now accepted, as the requirement specifies.", "view": {"tab": "topology", "record": 5}, "targets": [{"target": "topology:node:input", "caption": "The supplied limit is now15000p"}, {"target": "topology:node:decision", "caption": "ACCEPTED under the higher limit"}]}, {"caption": "Check equality: a £120 value against a £120 limit is accepted. Invalid inputs are checked separately before dispatch; their refusal is a harness assertion, not a missing-log inference.", "view": {"tab": "topology", "record": 6}, "targets": [{"target": "topology:node:limit", "caption": "Equality satisfies value <= limit"}, {"target": "topology:node:decision", "caption": "Boundary case ACCEPTED"}]}]}, "result": {"ok": true, "action": "walk", "walk": {"saved": "Fresh application checked against requirements", "replaced": false, "steps": 5, "author": "assistant", "next": "walk {name: \"Fresh application checked against requirements\", play: true} presents it to the person"}}}
{"at": "2026-11-01T14:45:04Z", "transport": "isolated localhost Analyser REST action socket", "action": "report", "params": {"name": "Fresh authoring requirement observations", "title": "Fresh application - requirements and checked evidence", "notes": "Actual fresh four-node application from a recorded Codex authoring trial. This capture inspects its original seven valid events. The external model trial/harness and independent reviewer receipt are separate evidence; this bundle is not those executions.", "sections": [{"kind": "narrative", "text": "Requirement mapping: calculation, limit comparison and publication are separated into input/calculation/limit/decision processing nodes. GraphML also shows the Order event vertex, for5authored vertices and15including framework infrastructure. Record3 quantity10 price1200 limit10000 value12000 acceptedfalse decisionREJECTED. Record4 repeats that outcome. Record5 changes limit to15000 and accepts. Record6 accepts equality;7 refuses one penny over;8 accepts zero value;9 accepts Long.MAX_VALUE at equality."}, {"kind": "record", "recordIndex": 3}, {"kind": "record", "recordIndex": 6}, {"kind": "narrative", "text": "Separate execution receipts: original model-authored verifier asserted7valid cases and4invalid constructors. Independent reviewer asserted9valid cases with exact per-event audit fields,5invalid inputs with unchanged dispatch/publication counts, then1valid recovery event. Invalid constructors refuse before dispatch: these refusals are NOT established by the absence of audit rows. Those receipts/source/harness belong in the separate source package, not inside this .fexp."}, {"kind": "narrative", "text": "The authoring trial was a prepared demonstration with requirements, SDK notes and cached local compiler helper. Its recorded CLI turn/timing is not a general benchmark, one-inference claim, local-model claim or universal correctness proof. Analyser1.40.0 inspected the runtime records and graph; it does not execute the application. Source/run and selected processor identity are unverified; unsigned bundle hashes detect byte changes, not deployment provenance. Lifecycle clock changes cause a visible time-order warning; stream completeness is unknown."}], "path": "authoring/authoring-observations.pdf"}, "result": {"ok": true, "action": "report", "applied": {"name": "Fresh authoring requirement observations", "title": "Fresh application - requirements and checked evidence", "created": true, "sections": 5, "writtenAgainst": "events.yaml · 12 record(s) · 14:25:42.006→22:13:20.007", "path": "<checkout>/examples/library-workflow/investigation/authoring/authoring-observations.pdf"}}}
{"at": "2026-11-01T14:45:05Z", "transport": "isolated localhost Analyser REST action socket", "action": "report", "params": {"bundle": {"path": "authoring/authoring-investigation.fexp", "notes": "# Fresh authoring trial - checked requirements\n\nActual new four-processing-node application, not the earlier reused order sample. Original audit contains12records:7valid Order events plus lifecycle/clock records. Four logged node IDs appear in the new graph. The saved5-step walk follows amount, rejection, repeated input, higher limit and equality.\n\nOriginal external verifier checks7valid/4invalid; independent reviewer receipt checks9valid/5invalid and recovery with exact audit facts. Invalid-input refusal occurs before dispatch and requires harness evidence; it is not established by missing log rows. Source/test runner/receipts are separate from this bundle.\n\nCodex captured via isolated local REST; inference hosted by OpenAI. This is not human acceptance or universal correctness. Ordinary unsigned capture, no embedded replay/source, source/run identity unverified. Clock reset after init causes time-order warnings. Use record indexes. Analyser inspects; native harness executes."}}, "result": {"ok": true, "action": "report", "bundle": {"phase": "WRITING", "path": "<checkout>/examples/library-workflow/investigation/authoring/authoring-investigation.fexp", "note": "the bundle is written off the event thread; context.capture says when it is written, its identity, and anything left out, redacted or excerpted"}}}
{"at": "2026-11-01T14:45:05Z", "transport": "isolated localhost Analyser REST action socket", "action": "context", "params": {"sections": ["project"]}, "result": {"ok": true, "action": "context", "context": {"project": {"active": true, "name": "authoring-project", "label": "authoring-project", "settings": "<isolated-capture>/authoring-project/.analyser/project.fluxtion-settings", "root": "<isolated-capture>/authoring-project", "unsavedEdits": true}, "reports": [{"name": "Fresh authoring requirement observations", "title": "Fresh application - requirements and checked evidence", "sections": 5, "createdAt": "2026-11-01T14:45:04.630521Z", "from": "project"}], "walks": {"saved": [{"name": "Fresh application checked against requirements", "title": "From the order rule to recorded decisions", "author": "assistant", "steps": 5, "from": "project"}]}, "capture": {"phase": "WRITTEN", "path": "<checkout>/examples/library-workflow/investigation/authoring/authoring-investigation.fexp", "identity": "sha256:bdc1a0e9e18297791776aab7abcbe9645a8271289c1d143a6e5618077f6e06b9"}, "scope": {"sections": ["project"], "available": ["log", "project", "pairing", "processors", "source", "topology", "view", "charts", "menus", "design", "handoff"], "note": "a projection of the full context: each key here equals the same key of an unprojected call on the same state; absent sections were not read. Omit 'sections' for everything"}}}}
{"at": "2026-11-01T14:45:18Z", "transport": "isolated localhost Analyser REST action socket", "action": "open", "params": {"bundle": "<checkout>/examples/library-workflow/investigation/authoring/authoring-investigation.fexp"}, "result": {"ok": true, "action": "open", "bundle": {"bundle": "<checkout>/examples/library-workflow/investigation/authoring/authoring-investigation.fexp", "verifying": true, "next": "read context {sections:[\"project\"]} for project.bundle once it lands"}}}
{"at": "2026-11-01T14:45:19Z", "transport": "isolated localhost Analyser REST action socket", "action": "context", "params": {"sections": ["log", "pairing", "project"]}, "result": {"ok": true, "action": "context", "context": {"log": {"path": "<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-bdc1a0e9e182-11417804282150575030/log/events.yaml", "openedFrom": "<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-bdc1a0e9e182-11417804282150575030/log/events.yaml", "records": 12, "sizeBytes": 5501, "from": 1700000000000, "to": 1793543142008, "openedBy": "you", "freshness": {"basis": "size, modification time and file identity; unchanged metadata does not prove identical bytes", "state": "unchanged-metadata", "members": [{"state": "unchanged-metadata", "onDisk": {"path": "<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-bdc1a0e9e182-11417804282150575030/log/events.yaml", "sizeBytes": 5501, "modified": "2026-11-01T14:45:17.883742818Z", "fileKey": "(dev=1000010,ino=199223871)", "directory": false}, "loaded": {"path": "<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-bdc1a0e9e182-11417804282150575030/log/events.yaml", "sizeBytes": 5501, "modified": "2026-11-01T14:45:17.883742818Z", "fileKey": "(dev=1000010,ino=199223871)", "directory": false}}], "reload": "explicitly reopen the same path; no automatic replacement"}, "generation": 4, "following": false, "supportsFollow": true, "trailingRecordsIncluded": 1, "tailNote": "EOF record included without a closing separator (legal Format 1); completeness unknown. Follow reopens as a live read.", "trailingRecordsPending": 0, "streamEnd": {"state": "unknown", "recordsRead": 12}}, "project": {"active": true, "name": "bundle-bdc1a0e9e182-11417804282150575030", "label": "bundle-bdc1a0e9e182-11417804282150575030", "settings": "<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-bdc1a0e9e182-11417804282150575030/profile/project.fluxtion-settings", "root": "<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-bdc1a0e9e182-11417804282150575030/profile", "unsavedEdits": false, "bundle": {"identity": "sha256:bdc1a0e9e18297791776aab7abcbe9645a8271289c1d143a6e5618077f6e06b9", "source": "<checkout>/examples/library-workflow/investigation/authoring/authoring-investigation.fexp", "workingCopy": "<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-bdc1a0e9e182-11417804282150575030", "verified": true, "processorClaimed": "demo.authoring.generated.OrderProcessor", "processorClaimedRelationship": "the sender's selection at capture; not paired against this log", "notes": "Actual new four-processing-node application, not the earlier reused order sample. Original audit contains12records:7valid Order events plus lifecycle/clock records. Four logged node IDs appear in the …", "sourceAnchor": "none", "sourceAnchorNote": "the bundle carries no source; add a root to read the code behind these records", "limits": "unsigned: verification detects a changed member; it does not authenticate the sender\nno replay: this bundle shows an investigation; it does not reproduce or fix it"}}, "graphPairing": {"graph": "OrderProcessor.graphml", "graphSource": "OPENED", "freshness": {"basis": "size, modification time and file identity; unchanged metadata does not prove identical bytes", "state": "unchanged-metadata", "members": [{"state": "unchanged-metadata", "onDisk": {"path": "<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-bdc1a0e9e182-11417804282150575030/graph/OrderProcessor.graphml", "sizeBytes": 20897, "modified": "2026-11-01T14:45:17.883367441Z", "fileKey": "(dev=1000010,ino=199223869)", "directory": false}, "loaded": {"path": "<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-bdc1a0e9e182-11417804282150575030/graph/OrderProcessor.graphml", "sizeBytes": 20897, "modified": "2026-11-01T14:45:17.883367441Z", "fileKey": "(dev=1000010,ino=199223869)", "directory": false}}], "reload": "explicitly reopen the same path; no automatic replacement"}, "graphPath": "<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-bdc1a0e9e182-11417804282150575030/graph/OrderProcessor.graphml", "applies": true, "loggedNodes": 4, "declaredByGraph": 4, "appliesMeans": "retention policy: keep this graph open against this log — not proof of fit", "membershipEstablished": true, "everyObservedIdDeclared": true, "pairingScope": "all 12 records", "pairingSampled": false, "verdict": "the graph declares all 4 node(s) this log writes", "auditLogging": "enabled", "auditLoggingNote": "Audit logging is installed on this processor (EventLogManager is on the graph), so a run can produce a log. Whether a given NODE appears in it is a separate question — a node logs only if it has an audit logger and calls it, which is why 'did not log' is never by itself 'did not run'.", "copyComparison": {"state": "complete", "groups": [], "roots": ["<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-bdc1a0e9e182-11417804282150575030/graph"], "warnings": [], "truncated": false}}, "reports": [{"name": "Fresh authoring requirement observations", "title": "Fresh application - requirements and checked evidence", "sections": 5, "createdAt": "2026-11-01T14:45:04.630521Z", "from": "project"}], "walks": {"saved": [{"name": "Fresh application checked against requirements", "title": "From the order rule to recorded decisions", "author": "assistant", "steps": 5, "from": "project"}]}, "capture": {"phase": "WRITTEN", "path": "<checkout>/examples/library-workflow/investigation/authoring/authoring-investigation.fexp", "identity": "sha256:bdc1a0e9e18297791776aab7abcbe9645a8271289c1d143a6e5618077f6e06b9"}, "dispatchOrder": "total — position in nodeLogs IS dispatch order (derived); safe to read as causality", "timeOrder": ["10 record(s) out of time order within this log, first at record 2 — time-anchored features may be approximate; records are never re-sorted"], "scope": {"sections": ["log", "pairing", "project"], "available": ["log", "project", "pairing", "processors", "source", "topology", "view", "charts", "menus", "design", "handoff"], "note": "a projection of the full context: each key here equals the same key of an unprojected call on the same state; absent sections were not read. Omit 'sections' for everything"}}}}
{"at": "2026-11-01T14:45:20Z", "transport": "isolated localhost Analyser REST action socket", "action": "topology", "params": {"source": false, "scaffolding": false, "callout": false, "fit": true}, "result": {"ok": true, "action": "topology", "topology": {"recordIndex": 0, "rowIndex": -1, "orderMeaningful": true, "graphSource": "OPENED", "atEntry": true, "rowCount": 0, "recordsOpen": 12, "position": "no record selected — 12 open; goto {recordIndex} to step through one", "currentNode": null, "selected": [], "scope": "node", "routeBound": true, "focus": false, "context": "All (15)", "contextDepth": 0, "scaffolding": false, "syncSource": true, "visibleNodes": 5, "totalNodes": 15, "dispatchHierarchy": "unknown", "dispatchNote": "Dispatch hierarchy unknown: this graph does not declare complete supertype routes. Named entry points are not a complete dispatch path; unlogged nodes are not ruled out by missing edges.", "callout": false}}}
{"at": "2026-11-01T14:45:21Z", "transport": "isolated localhost Analyser REST action socket", "action": "walk", "params": {"name": "Fresh application checked against requirements", "reel": "authoring/authoring-reel.html"}, "result": {"ok": true, "action": "walk", "reel": {"path": "<checkout>/examples/library-workflow/investigation/authoring/authoring-reel.html", "steps": 5, "bundle": "sha256:bdc1a0e9e18297791776aab7abcbe9645a8271289c1d143a6e5618077f6e06b9", "redacted": [], "frames": "not redacted — screenshots may show local file paths; the title page says so", "evidence": "the finish page names the bundle, its identity and its limits"}}}
{"at": "2026-11-01T14:45:22Z", "transport": "isolated localhost Analyser REST action socket", "action": "walk", "params": {"name": "Fresh application checked against requirements", "play": true, "step": 5}, "result": {"ok": true, "action": "walk", "playing": {"walk": "Fresh application checked against requirements", "step": 5, "of": 5, "phase": "PREPARING", "targets": [], "note": "the person steps through it with the strip's ◀ ▶ (or ← →); context.walks.showing says what each step's targets resolved to"}}}
{"at": "2026-11-01T14:45:22Z", "transport": "isolated localhost Analyser REST action socket", "action": "context", "params": {"sections": ["project"]}, "result": {"ok": true, "action": "context", "context": {"project": {"active": true, "name": "bundle-bdc1a0e9e182-11417804282150575030", "label": "bundle-bdc1a0e9e182-11417804282150575030", "settings": "<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-bdc1a0e9e182-11417804282150575030/profile/project.fluxtion-settings", "root": "<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-bdc1a0e9e182-11417804282150575030/profile", "unsavedEdits": false, "bundle": {"identity": "sha256:bdc1a0e9e18297791776aab7abcbe9645a8271289c1d143a6e5618077f6e06b9", "source": "<checkout>/examples/library-workflow/investigation/authoring/authoring-investigation.fexp", "workingCopy": "<isolated-capture>/home/.fluxtion-analyser/bundles/bundle-bdc1a0e9e182-11417804282150575030", "verified": true, "processorClaimed": "demo.authoring.generated.OrderProcessor", "processorClaimedRelationship": "the sender's selection at capture; not paired against this log", "notes": "Actual new four-processing-node application, not the earlier reused order sample. Original audit contains12records:7valid Order events plus lifecycle/clock records. Four logged node IDs appear in the …", "sourceAnchor": "none", "sourceAnchorNote": "the bundle carries no source; add a root to read the code behind these records", "limits": "unsigned: verification detects a changed member; it does not authenticate the sender\nno replay: this bundle shows an investigation; it does not reproduce or fix it"}}, "reports": [{"name": "Fresh authoring requirement observations", "title": "Fresh application - requirements and checked evidence", "sections": 5, "createdAt": "2026-11-01T14:45:04.630521Z", "from": "project"}], "walks": {"saved": [{"name": "Fresh application checked against requirements", "title": "From the order rule to recorded decisions", "author": "assistant", "steps": 5, "from": "project"}], "showing": {"walk": "Fresh application checked against requirements", "step": 5, "of": 5, "phase": "SHOWN", "targets": [{"n": 1, "target": "topology:node:limit", "state": "CURRENT", "available": true}, {"n": 2, "target": "topology:node:decision", "state": "CURRENT", "available": true}]}}, "capture": {"phase": "WRITTEN", "path": "<checkout>/examples/library-workflow/investigation/authoring/authoring-investigation.fexp", "identity": "sha256:bdc1a0e9e18297791776aab7abcbe9645a8271289c1d143a6e5618077f6e06b9"}, "scope": {"sections": ["project"], "available": ["log", "project", "pairing", "processors", "source", "topology", "view", "charts", "menus", "design", "handoff"], "note": "a projection of the full context: each key here equals the same key of an unprojected call on the same state; absent sections were not read. Omit 'sections' for everything"}}}}
{"at": "2026-11-01T14:45:22Z", "transport": "isolated localhost Analyser REST action socket", "action": "screenshot", "params": {"path": "authoring/02-reopened-equality.png"}, "result": {"ok": true, "action": "screenshot", "wrote": {"path": "<checkout>/examples/library-workflow/investigation/authoring/02-reopened-equality.png", "width": 1500, "height": 948, "windowBounds": {"width": 1500, "height": 1000, "x": 20, "y": 40}}}}
