Both runs' records agree. Every check behind this is on Proof

Diff

A is the baseline p3-23-t-1-rules1 · dc945cabffd0; B is the candidate p3-27-t-1-rules2 · b5461c9ac8b2.

The short answer

The runs first differ at classify, where rules went from 1 to 2.

Same: 2 · differ: 3.

  1. intakeSame
  2. classifyFirst difference
  3. lookup_accountSame
  4. draft_replyChanged after it
  5. routeChanged after it

Checked from the records. The same answer every time.

What changed between the two runs

The two runs differ.

A link shows which recorded output a stage read. It does not by itself prove that one stage caused the next.

#nodebaselinecandidateannotationsresult
1intake11Same
2classify22instrument config_digest differs: sha256:05d1f47891d6… -> sha256:843862faf61b…; constant rules differs; output class.json differs
Each fingerprint in fullsha256:05d1f47891d6eb3385d9d74c028644120a09630832f8b0e30c9f0db17deb2169sha256:843862faf61bdf7fb55289b5ba11a821ece33f9449c878883fa885c8cc9f02ba
First difference
3lookup_account33Same
4draft_reply44input class.json differs; output reply.json differsChanged after it
5route55input reply.json differs; output route.json differsChanged after it

classify: rules differs.

Settings that changed

StageSettingBaselineCandidate
classifyrules12
Details
StageSettingBaselineCandidate
classifyconfig_digest
sha256:05d1f478…eb2169sha256:05d1f47891d6eb3385d9d74c028644120a09630832f8b0e30c9f0db17deb2169
sha256:843862fa…9f02basha256:843862faf61bdf7fb55289b5ba11a821ece33f9449c878883fa885c8cc9f02ba

The text diff

Shown with at most 200 lines per output (the SDK's default).

Open the text diff on its own page

first difference: classify — output text changed; settings changed

classify · First difference

settings: 2 changed

configuration fingerprint: differs, both values under Details

rules: 1 → 2

Details

config_digest: 05d1f47891d6 → 843862faf61b

class.json application/json Baseline: verified Candidate: verified

2 lines removed · 2 added

11  {
2-   "class": "billing",
2+   "class": "technical",
3-   "matched": "charged",
3+   "matched": "app",
44    "ticket": "T-1"
55  }

draft_reply · Changed after it

settings: none changed

input class.json (operator-authored) changed: 30d6645c36d3 -> c41dd63d5fe3; content not stored

reply.json application/json Baseline: verified Candidate: verified

2 lines removed · 2 added

11  {
2-   "class": "billing",
2+   "class": "technical",
33    "plan": "standard",
4-   "reply": "Thanks for telling us about a billing problem. Our billing desk will check your account and reply within one working day.",
4+   "reply": "Thanks for reporting a technical problem. Our support team will look into it and reply within one working day.",
55    "ticket": "T-1"
66  }

route · Changed after it

settings: none changed

input reply.json (operator-authored) changed: bd110acbfd0d -> 93a951e199f0; content not stored

route.json application/json Baseline: verified Candidate: verified

1 line removed · 1 added

11  {
2-   "queue": "billing-desk",
2+   "queue": "tech-support",
33    "ticket": "T-1"
44  }

Command: onetrace diff runs/p3-23-t-1-rules1 runs/p3-27-t-1-rules2 --text

Repeat this yourself:

onetrace diff runs/p3-23-t-1-rules1 runs/p3-27-t-1-rules2
Not shown for graph-shaped runs: where the change started, and other runs that recorded the same value.

This console draws where the change started only for two linear runs; the SDK's localize report for this pair is below, as it wrote it.

The localize report as the SDK wrote it, with names from the records escaped
baseline   (the baseline run's folder)  p3-23-t-1-rules1  (run)
candidate  (the candidate run's folder)  p3-27-t-1-rules2  (run)

localize: diverged

node            A     B     verdict
--------------------------------------------------------------------
intake          1     1     same
classify        2     2     FIRST DIFFERENCE
                            instrument config_digest differs: sha256:05d1f47891d6eb3385d9d74c028644120a09630832f8b0e30c9f0db17deb2169 -> sha256:843862faf61bdf7fb55289b5ba11a821ece33f9449c878883fa885c8cc9f02ba
                            constant rules differs
                            output class.json differs
lookup_account  3     3     same
draft_reply     4     4     downstream
                            input class.json differs
                            output reply.json differs
route           5     5     downstream
                            input reply.json differs
                            output route.json differs

first difference  classify
comparisons performed 5 of 5 nodes; same 2, FIRST DIFFERENCE 1, downstream 2, reconverged 0, COULD NOT CHECK 0

CAUSE at node 'classify'
  instrument   keyword-rules  1.0.0 -> 1.0.0
  config       05d1f47891d6 -> 843862faf61b
    constant rules differs
  blast radius not applicable — run-scoped

carried:
  [baseline] [NOT-RUN] originality on 5 receipts -- record is declared unanchored; this verifier can establish consistency, not originality
  [candidate] [NOT-RUN] originality on 5 receipts -- record is declared unanchored; this verifier can establish consistency, not originality
signing [baseline]: [SIGNED-UNTRUSTED] signatures/1.json: signature -- signed by an untrusted key sha256:6e20550ae0dc6b4471d54336d09d74d14f3f623b735045eddd053c444ec3b14c -- signer not on the reader's trust list
signing [candidate]: [SIGNED-UNTRUSTED] signatures/1.json: signature -- signed by an untrusted key sha256:6e20550ae0dc6b4471d54336d09d74d14f3f623b735045eddd053c444ec3b14c -- signer not on the reader's trust list

Repeat this yourself:

onetrace localize runs/p3-23-t-1-rules1 runs/p3-27-t-1-rules2

Other runs that recorded the same value are not looked for: this console doesn't match a graph comparison's first differences against other runs.

What may have happened

This demo kept no explanation of this comparison.

This record shows what was verified and evaluated at the time — not what was ultimately true.