From 4ec5247758e4b929325b5c9d9eb734e4232663c1 Mon Sep 17 00:00:00 2001 From: abrichr Date: Tue, 20 Oct 2026 12:42:30 -0400 Subject: [PATCH 01/16] Add the lifecycle harness: workload, operator, oracle, cost model, metric A seeded referral stream with an exception mix and its ground truth, a scripted operator charged from a versioned cost model, an independent SQL oracle, the arm interface (lifecycle-arm/1), and the metric (verified completed items per operator-hour with x0.5/x2 bands). The OpenEMR adapter injects faults and server-side UI changes; an in-memory app and toy arms check the bookkeeping in tests. Co-Authored-By: Claude Opus 5.5 --- packages/flow/benchmark/lifecycle/__init__.py | 0 packages/flow/benchmark/lifecycle/apps.py | 577 ++++++++++++++++++ packages/flow/benchmark/lifecycle/arm.py | 146 +++++ .../flow/benchmark/lifecycle/cost_model.py | 106 ++++ packages/flow/benchmark/lifecycle/fake.py | 217 +++++++ packages/flow/benchmark/lifecycle/metrics.py | 271 ++++++++ packages/flow/benchmark/lifecycle/operator.py | 145 +++++ packages/flow/benchmark/lifecycle/oracle.py | 185 ++++++ packages/flow/benchmark/lifecycle/report.py | 179 ++++++ packages/flow/benchmark/lifecycle/run.py | 385 ++++++++++++ packages/flow/benchmark/lifecycle/workload.py | 341 +++++++++++ .../flow/tests/test_lifecycle_benchmark.py | 178 ++++++ 12 files changed, 2730 insertions(+) create mode 100644 packages/flow/benchmark/lifecycle/__init__.py create mode 100644 packages/flow/benchmark/lifecycle/apps.py create mode 100644 packages/flow/benchmark/lifecycle/arm.py create mode 100644 packages/flow/benchmark/lifecycle/cost_model.py create mode 100644 packages/flow/benchmark/lifecycle/fake.py create mode 100644 packages/flow/benchmark/lifecycle/metrics.py create mode 100644 packages/flow/benchmark/lifecycle/operator.py create mode 100644 packages/flow/benchmark/lifecycle/oracle.py create mode 100644 packages/flow/benchmark/lifecycle/report.py create mode 100644 packages/flow/benchmark/lifecycle/run.py create mode 100644 packages/flow/benchmark/lifecycle/workload.py create mode 100644 packages/flow/tests/test_lifecycle_benchmark.py diff --git a/packages/flow/benchmark/lifecycle/__init__.py b/packages/flow/benchmark/lifecycle/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/packages/flow/benchmark/lifecycle/apps.py b/packages/flow/benchmark/lifecycle/apps.py new file mode 100644 index 000000000..4a97259da --- /dev/null +++ b/packages/flow/benchmark/lifecycle/apps.py @@ -0,0 +1,577 @@ +"""The apps a lifecycle run drives, and every event the harness injects into them. + +OpenEMR 8.0.0.3 runs as its own Compose project (``openadapt-openemr-lifecycle``, +loopback ports 9421 for the browser and 9420 for the API) from the pinned +fixture in ``benchmark/openemr_local``, with synthetic data only. Nothing here +touches another session's copy. + +Injected events, each logged with exactly what was changed: + +- other clerks: a chart created through the REST API as the actor account, + or an unrelated chart's home phone changed through SQL; +- forced logout: every PHP session file in the app container is deleted; +- slow save: a ``BEFORE INSERT`` trigger on ``patient_data`` that sleeps for + the item's patient only; +- failed save: the same trigger raising an error, a set number of times (the + counter lives in a non-transactional table, so it survives the rollback); +- UI changes, served to every client as a vendor release would be: + - ``theme``: a stylesheet that changes colours, fonts and spacing on the + New Patient form and its duplicate-check popup; + - ``relabel``: the save button "Confirm Create New Patient" becomes + "Save new patient", and "Create New Patient" becomes "Check and create"; + - ``reorder``: the demographics layout (``layout_options``) puts Birth Sex + before DOB, and Home Phone and Contact Email before Address; + - ``interstitial``: a notice over the New Patient form that must be + dismissed ("Continue") before the form takes input. + A version bump is not run: the lock pins one OpenEMR image and a second + pinned image would need its own baseline (see the report's limits). +""" + +from __future__ import annotations + +import json +import os +import re +import subprocess +import threading +import time +from pathlib import Path +from typing import Any, Optional + +HERE = Path(__file__).resolve().parent +BENCH = HERE.parent +PROJECT = "openadapt-openemr-lifecycle" +UI_PORT = "9421" +API_PORT = "9420" +WEBROOT = "/var/www/localhost/htdocs/openemr" +FORM = f"{WEBROOT}/interface/new/new_comprehensive.php" +POPUP = f"{WEBROOT}/interface/new/new_search_popup.php" +DRIFT_JS = f"{WEBROOT}/public/lifecycle-drift.js" +SQL_FIELDS = ( + "id", + "pid", + "title", + "fname", + "lname", + "DOB", + "sex", + "street", + "city", + "state", + "postal_code", + "phone_home", + "email", + "country_code", +) + +THEME_CSS = ( + "body{background:#fbf6ee !important;font-family:Georgia,serif !important;}" + ".card,.card-header,.nav-tabs .nav-link{background:#efe4d2 !important;}" + ".btn-primary{background:#6b3d8f !important;border-color:#6b3d8f !important;}" + "label,.label_custom{color:#5a3218 !important;}" + ".form-control{border-radius:0 !important;border-color:#a08060 !important;}" +) +INTERSTITIAL_JS = r""" +(function(){ + if (!/new_comprehensive\.php/.test(location.pathname)) return; + function show(){ + if (document.getElementById('oa-lifecycle-notice')) return; + var d=document.createElement('div'); + d.id='oa-lifecycle-notice'; + d.setAttribute('role','dialog'); + d.style.cssText='position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99999;display:flex;align-items:center;justify-content:center'; + d.innerHTML='
'+ + '

Registration form updated

'+ + '

Contact details are now checked when you save. Review the new layout before you continue.

'+ + '
'; + document.body.appendChild(d); + document.getElementById('oa-lifecycle-continue').onclick=function(){d.remove();}; + } + if (document.readyState==='loading') document.addEventListener('DOMContentLoaded',show); else show(); +})(); +""" + + +def podman_env() -> dict[str, str]: + """Docker Compose pointed at the benchmark Podman machine.""" + + env = dict(os.environ) + if not env.get("DOCKER_HOST"): + sock = subprocess.run( + [ + "podman", + "machine", + "inspect", + "openadapt-benchmark", + "--format", + "{{.ConnectionInfo.PodmanSocket.Path}}", + ], + capture_output=True, + text=True, + check=False, + ).stdout.strip() + if sock: + env["DOCKER_HOST"] = f"unix://{sock}" + return env + + +def make_fixture(state_dir: Path) -> Any: + import benchmark.openemr_local.fixture as fx + + class LifecycleFixture(fx.OpenEMRFixture): + def __init__(self, state: Path) -> None: + super().__init__(state) + self.lock = {**self.lock, "project": PROJECT} + + @property + def ui_base_url(self) -> str: + return f"http://127.0.0.1:{UI_PORT}" + + @property + def api_base_url(self) -> str: + return f"https://127.0.0.1:{API_PORT}" + + def _expected(self) -> dict[str, str]: + return { + "OPENEMR_IMAGE": self.lock["services"]["openemr"], + "MARIADB_IMAGE": self.lock["services"]["mariadb"], + "OPENEMR_ACTOR_USER": "openadapt_actor", + "OPENEMR_HTTP_PORT": UI_PORT, + "OPENEMR_HTTPS_PORT": API_PORT, + } + + def _validate_runtime_env(self) -> None: + values = self._runtime_values() + for k, v in self._expected().items(): + if values.get(k) != v: + raise fx.FixtureError(f"runtime.env {k} differs") + self.runtime_env.chmod(0o600) + + def runtime_preflight(self) -> None: + # The shared machine's rules (~/oa/scratch/fixture-lease/README.md): + # at least 15 GiB free and a 1-minute load under 40 before any + # container starts. The pinned images are already in the Podman + # machine. + import shutil + + free = shutil.disk_usage("/System/Volumes/Data").free / 2**30 + if free < 15: + raise fx.FixtureError(f"only {free:.1f} GiB free on the host") + load = os.getloadavg()[0] + if load >= 40: + raise fx.FixtureError(f"1-minute load is {load:.0f}; wait for < 40") + + def prepare(self) -> None: + import secrets + + self._protect_state_dir() + if not self.runtime_env.exists(): + values = { + **self._expected(), + "MARIADB_ROOT_PASSWORD": secrets.token_urlsafe(32), + "OPENEMR_DB_PASSWORD": secrets.token_urlsafe(32), + "OPENEMR_ACTOR_PASSWORD": secrets.token_urlsafe(32), + } + self._write_private_exclusive( + self.runtime_env, + ( + "# generated local synthetic fixture; never commit\n" + + "".join(f"{k}={v}\n" for k, v in values.items()) + ).encode(), + ) + super().prepare() + + def _run(self, argv, *, input_bytes=None, timeout_s=300.0): # type: ignore[override] + # Same as the base, with Compose pointed at the Podman machine. + if argv[:2] == ["docker", "compose"] or argv[:1] == ["docker"]: + proc = subprocess.run( + argv, + input=input_bytes, + capture_output=True, + timeout=timeout_s, + env=podman_env(), + check=False, + ) + if proc.returncode != 0: + raise fx.FixtureError( + f"{' '.join(argv[:4])} failed: {proc.stderr.decode()[-800:]}" + ) + return proc + return super()._run(argv, input_bytes=input_bytes, timeout_s=timeout_s) + + return LifecycleFixture(state_dir) + + +class OpenEMRApp: + """The app adapter the harness drives: reset, read, inject, change.""" + + def __init__(self, state_dir: Optional[Path] = None) -> None: + self.state_dir = Path( + state_dir + or os.environ.get("LIFECYCLE_OPENEMR_STATE") + or Path.home() / "oa" / "scratch" / "lifecycle" / "openemr-state" + ) + self.fx = make_fixture(self.state_dir) + self.db_container = f"{PROJECT}-db-1" + self.app_container = f"{PROJECT}-openemr-1" + self.ui_url = self.fx.ui_base_url + self.api_url = self.fx.api_base_url + self.drift_on: list[str] = [] + self._fault_lock = threading.Lock() + from benchmark.openemr_throughput.harness import CLERKS + + #: Added before the baseline snapshot, so every reset keeps them. + self._clerks: list[str] = list(CLERKS[:3]) + + # -- bring-up ---------------------------------------------------------- + + def bootstrapped(self) -> bool: + return all( + p.is_file() + for p in ( + self.fx.runtime_env, + self.fx.clients_path, + self.fx.snapshot_path, + self.fx.snapshot_hash_path, + ) + ) + + def bring_up(self, say: Any = print) -> str: + if self.bootstrapped(): + say("starting the existing copy") + self.fx._compose("up", "-d", timeout_s=900.0) + self.fx._wait_ready(timeout_s=900.0) + return "restarted" + self.fx.runtime_preflight() + say("checking the pinned OpenEMR release") + self.fx.prepare() + self.fx.image_identity() + say("starting; OpenEMR installs itself on first start") + self.fx._compose("up", "-d", timeout_s=900.0) + self.fx._wait_ready(timeout_s=1800.0) + self.fx._verify_running_source() + say("adding synthetic API clients") + self.fx.bootstrap() + self.add_clerks(3) + self.fx.snapshot() + return "created" + + def describe(self) -> dict[str, Any]: + return { + "app": "openemr", + "version": "8.0.0.3", + "project": PROJECT, + "ui_url": self.ui_url, + "api_url": self.api_url, + "images": self.fx.lock["services"], + "baseline_sha256": self.fx.baseline_hash() if self.bootstrapped() else None, + } + + def extra(self) -> dict[str, Any]: + """What arms may use. ``rest_read_session()`` returns an httpx client + with a read-only bearer token (``user/patient.rs``), the same REST + read-back OpenAdapt's record check uses; ``rest_write_session()`` one + with the actor's create/update scope. Arms never get the oracle's SQL.""" + + return { + "fixture_state": str(self.state_dir), + "fixture_lock": str(self.state_dir / "environment.lock.json"), + "project": PROJECT, + "ui_port": int(UI_PORT), + "api_port": int(API_PORT), + "rest_read_session": lambda: self.fx.token_session("oracle"), + "rest_write_session": lambda: self.fx.token_session("actor"), + } + + def point_hooks_here(self) -> None: + """verify.yaml's hooks (sign-in, REST read-back) read these variables.""" + + lock = self.state_dir / "environment.lock.json" + lock.write_text(json.dumps(self.fx.lock, indent=2) + "\n") + os.environ["OPENEMR_FIXTURE_STATE"] = str(self.state_dir) + os.environ["OPENEMR_FIXTURE_LOCK"] = str(lock) + os.environ["OPENEMR_UI_URL"] = self.ui_url + os.environ["OPENEMR_API_URL"] = self.api_url + os.environ.update({k: v for k, v in podman_env().items() if k == "DOCKER_HOST"}) + + # -- accounts ------------------------------------------------------------ + + def add_clerks(self, n: int) -> list[str]: + from benchmark.openemr_throughput.harness import add_clerks + + self._clerks = add_clerks(self.fx, n) + return self._clerks + + def accounts(self) -> list[tuple[str, str]]: + pw = self.fx._runtime_values()["OPENEMR_ACTOR_PASSWORD"] + users = ["openadapt_actor"] + [ + c for c in self._clerks if c != "openadapt_actor" + ] + return [(u, pw) for u in users] + + # -- direct database channel (the oracle's) ----------------------------- + + def sql(self, statement: str, *, timeout_s: float = 120.0) -> str: + proc = subprocess.run( + [ + "podman", + "exec", + "-i", + self.db_container, + "sh", + "-c", + 'MYSQL_PWD="$MARIADB_ROOT_PASSWORD" exec mariadb -uroot --batch --raw ' + "--skip-column-names", + ], + input=statement.encode(), + capture_output=True, + timeout=timeout_s, + check=False, + ) + if proc.returncode != 0: + raise RuntimeError(f"sql failed: {proc.stderr.decode()[-500:]}") + return proc.stdout.decode() + + def rows(self) -> list[dict[str, str]]: + out = self.sql( + "SELECT " + ",".join(SQL_FIELDS) + " FROM openemr.patient_data ORDER BY id;" + ) + return [ + { + k: ("" if v == "NULL" else v) + for k, v in zip(SQL_FIELDS, line.split("\t")) + } + for line in out.splitlines() + if line + ] + + def app_exec(self, script: str, *, timeout_s: float = 60.0) -> str: + proc = subprocess.run( + ["podman", "exec", self.app_container, "sh", "-c", script], + capture_output=True, + timeout=timeout_s, + check=False, + ) + if proc.returncode != 0: + raise RuntimeError(f"app exec failed: {proc.stderr.decode()[-500:]}") + return proc.stdout.decode() + + # -- state --------------------------------------------------------------- + + def reset(self) -> str: + self.clear_all_events() + return self.fx.reset() + + def seed_existing(self, people: list[dict[str, str]]) -> list[str]: + return [self.create_chart(p, who="seed") for p in people] + + def create_chart(self, fields: dict[str, str], *, who: str) -> str: + """A chart created through the REST API (another clerk, the operator + doing an item by hand, or the seed). Returns its patient_data id.""" + + body = { + "title": fields["title"], + "fname": fields["fname"].strip(), + "lname": fields["lname"].strip(), + "DOB": fields["DOB"], + "sex": fields["sex"], + "street": fields["street"], + "city": fields["city"], + "state": "MA", + "postal_code": fields["postal_code"], + "phone_home": fields.get("phone_home", ""), + "email": fields["email"], + "country_code": fields.get("country_code", "USA"), + } + before = {r["id"] for r in self.rows()} + session = self.fx.token_session("actor") + try: + resp = session.post(f"{self.api_url}/apis/default/api/patient", json=body) + finally: + session.close() + if resp.status_code not in (200, 201): + raise RuntimeError(f"{who} create returned HTTP {resp.status_code}") + new = [r["id"] for r in self.rows() if r["id"] not in before] + if len(new) != 1: + raise RuntimeError(f"{who} create made {len(new)} rows") + return new[0] + + # -- item-level events ------------------------------------------------------ + + def inject( + self, + inj: dict[str, Any], + truth: Any, + *, + harness: set[str], + stop: Optional[threading.Event] = None, + ) -> dict[str, Any]: + event = inj["event"] + if event == "other_clerk_creates": + cid = self.create_chart(inj["person"], who="other clerk") + return {"event": event, "chart_id": cid} + if event == "force_logout": + n = self.app_exec( + "n=$(ls /tmp/sess_* 2>/dev/null | wc -l); rm -f /tmp/sess_*; echo $n" + ) + return {"event": event, "sessions_ended": int(n.strip() or 0)} + if event == "other_clerk_edits_unrelated": + # wait a moment so the edit lands while the item is under way + if stop is not None: + stop.wait(5.0) + rows = [r for r in self.rows() if r["id"] not in harness] + target = rows[truth.seq % len(rows)] if rows else None + if target is None: + return {"event": event, "touched_ids": []} + phone = f"555-01{truth.seq % 100:02d}" + self.sql( + f"UPDATE openemr.patient_data SET phone_home='{phone}' " + f"WHERE id={int(target['id'])};" + ) + return {"event": event, "touched_ids": [target["id"]], "phone_home": phone} + if event in ("slow_save", "failed_save"): + email = truth.person["email"] + assert re.fullmatch(r"[a-z0-9.@-]+", email) + if event == "slow_save": + body = f"IF NEW.email = '{email}' THEN SET @oa_slept = SLEEP({int(inj['seconds'])}); END IF;" + else: + body = ( + f"IF NEW.email = '{email}' AND (SELECT n FROM lifecycle.fault_budget " + f"WHERE k='{email}') > 0 THEN " + f"UPDATE lifecycle.fault_budget SET n = n - 1 WHERE k='{email}'; " + "SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'lifecycle: injected save failure'; " + "END IF;" + ) + self.sql( + "CREATE DATABASE IF NOT EXISTS lifecycle; " + "CREATE TABLE IF NOT EXISTS lifecycle.fault_budget " + "(k VARCHAR(190) PRIMARY KEY, n INT) ENGINE=Aria TRANSACTIONAL=0; " + f"REPLACE INTO lifecycle.fault_budget VALUES ('{email}', {int(inj.get('times', 0))}); " + "DROP TRIGGER IF EXISTS openemr.oa_lifecycle_fault; " + "CREATE TRIGGER openemr.oa_lifecycle_fault BEFORE INSERT ON openemr.patient_data " + f"FOR EACH ROW BEGIN {body} END;" + ) + return {"event": event, "trigger": body} + raise ValueError(f"unknown injection {event}") + + def clear_item_events(self) -> list[str]: + out = self.sql( + "SELECT TRIGGER_NAME FROM information_schema.TRIGGERS " + "WHERE TRIGGER_NAME='oa_lifecycle_fault';" + ) + if out.strip(): + self.sql("DROP TRIGGER IF EXISTS openemr.oa_lifecycle_fault;") + return ["oa_lifecycle_fault"] + return [] + + # -- UI changes ---------------------------------------------------------------- + + def _ensure_originals(self) -> None: + self.app_exec( + f"for f in {FORM} {POPUP}; do [ -f $f.oa-orig ] || cp -p $f $f.oa-orig; done" + ) + + def _write_drift_js(self) -> None: + parts = [] + if "theme" in self.drift_on: + parts.append( + "(function(){var s=document.createElement('style');s.textContent=" + + json.dumps(THEME_CSS) + + ";(document.head||document.documentElement).appendChild(s);})();" + ) + if "interstitial" in self.drift_on: + parts.append(INTERSTITIAL_JS) + js = "\n".join(parts) + self.app_exec(f"cat > {DRIFT_JS} <<'OAEOF'\n{js}\nOAEOF\nchmod 644 {DRIFT_JS}") + + def apply_drift(self, kind: str) -> dict[str, Any]: + self._ensure_originals() + if kind not in self.drift_on: + self.drift_on.append(kind) + changed: dict[str, Any] = {"kind": kind} + if kind in ("theme", "interstitial"): + self._write_drift_js() + tag = '' + for f in (FORM, POPUP): + self.app_exec( + f"grep -q lifecycle-drift.js {f} || " + f"sed -i 's##{tag}#' {f}" + ) + changed["files"] = [FORM, POPUP, DRIFT_JS] + elif kind == "relabel": + self.app_exec( + f"sed -i \"s/xla('Confirm Create New Patient')/xla('Save new patient')/\" {POPUP}; " + f"sed -i \"s/xlt('Create New Patient')/xlt('Check and create')/; " + f"s/xla('Create New Patient')/xla('Check and create')/; " + f"s/xlj('Create New Patient')/xlj('Check and create')/\" {FORM}" + ) + changed["labels"] = { + "Confirm Create New Patient": "Save new patient", + "Create New Patient": "Check and create", + } + elif kind == "reorder": + sql = ( + "UPDATE openemr.layout_options SET seq=85 WHERE form_id='DEM' AND field_id='sex';" + "UPDATE openemr.layout_options SET seq=0 WHERE form_id='DEM' AND field_id='phone_home';" + "UPDATE openemr.layout_options SET seq=0 WHERE form_id='DEM' AND field_id='email';" + ) + self.sql(sql) + changed["sql"] = sql + else: + raise ValueError(f"unknown UI change {kind}") + return changed + + def clear_all_events(self) -> None: + self.drift_on = [] + try: + self.app_exec( + f"for f in {FORM} {POPUP}; do [ -f $f.oa-orig ] && cp -p $f.oa-orig $f; done; " + f"rm -f {DRIFT_JS}; true" + ) + except (RuntimeError, subprocess.SubprocessError): + pass + try: + self.clear_item_events() + self.sql( + "UPDATE openemr.layout_options SET seq=100 WHERE form_id='DEM' AND field_id='sex';" + "UPDATE openemr.layout_options SET seq=11 WHERE form_id='DEM' AND field_id='phone_home';" + "UPDATE openemr.layout_options SET seq=14 WHERE form_id='DEM' AND field_id='email';" + ) + except (RuntimeError, subprocess.SubprocessError): + pass + + +def make_app(name: str) -> Any: + if name == "fake": + from .fake import FakeApp + + return FakeApp() + if name == "openemr": + app = OpenEMRApp() + app.point_hooks_here() + return app + raise ValueError(f"unknown app {name}") + + +def main() -> int: + """Bring the lifecycle OpenEMR copy up (and set it up on first use).""" + + import argparse + + p = argparse.ArgumentParser(description=main.__doc__) + p.add_argument("command", choices=("up", "status", "down")) + args = p.parse_args() + app = OpenEMRApp() + if args.command == "up": + t = time.monotonic() + how = app.bring_up() + print(json.dumps({"how": how, "seconds": round(time.monotonic() - t, 1)})) + elif args.command == "status": + print(json.dumps({"bootstrapped": app.bootstrapped(), "ui": app.ui_url})) + else: + app.fx._compose("stop", timeout_s=300.0) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/packages/flow/benchmark/lifecycle/arm.py b/packages/flow/benchmark/lifecycle/arm.py new file mode 100644 index 000000000..3a1e1fecb --- /dev/null +++ b/packages/flow/benchmark/lifecycle/arm.py @@ -0,0 +1,146 @@ +"""The interface every comparison arm implements. + +The harness owns the worklist and its ground truth, the app and every injected +event, the independent oracle, the simulated operator and the cost model. An +arm owns only how it sets itself up and how it does one item. + +Two rules keep arms comparable: + +- An arm never charges itself operator time. Every human touch (an approval, + a stop, a question, a reconciliation, a repair review, an item done by hand) + goes through ``operator.ask``, which returns the decision and the seconds the + versioned cost model charges for it. +- An arm never judges itself. ``ItemResult.claimed`` is what the arm says; the + oracle reads the system of record after every item and decides. + +Arms are loaded from ``module:factory`` strings; ``factory(options) -> Arm``. +""" + +from __future__ import annotations + +import importlib +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any, Literal, Optional, Protocol + +INTERFACE_VERSION = "lifecycle-arm/1" + +RequestKind = Literal[ + "approval", "stop", "reconcile", "repair_review", "question", "manual_entry" +] + + +@dataclass(frozen=True) +class WorkItem: + """One unit of work as the source document states it. + + ``params`` may be missing fields or hold malformed values: they are what + the referral says, not what is true. The harness keeps the truth. + """ + + seq: int + item_id: str + day: int + app: str + params: dict[str, str] + source_text: str + + +@dataclass(frozen=True) +class Env: + app: str + ui_url: str + api_url: Optional[str] + #: Synthetic (user, password) pairs the arm may sign in with. + accounts: tuple[tuple[str, str], ...] + #: The arm's private scratch directory for this run. + workdir: Path + seed: int + #: App-specific extras (for example the fixture's container names). + extra: dict[str, Any] = field(default_factory=dict) + + +@dataclass(frozen=True) +class OperatorRequest: + kind: RequestKind + item_id: Optional[str] + #: The product's own reason code, or the agent's question, verbatim. + reason: str + #: Where the request surfaced, e.g. "cli:openadapt-flow durable resume". + surface: str + detail: dict[str, Any] = field(default_factory=dict) + + +@dataclass(frozen=True) +class OperatorDecision: + #: approve | deny | resume | skip | do_by_hand | accept_repair | + #: reject_repair | answer | confirm_saved | confirm_not_saved + action: str + charged_s: float + #: Which scripted-policy rule decided it. + rule: str + answer: Optional[str] = None + + +class Operator(Protocol): + def ask(self, request: OperatorRequest) -> OperatorDecision: ... + + +@dataclass +class ItemResult: + item_id: str + claimed: Literal["done", "stopped", "error"] + #: The product's final status or the agent's last line, verbatim. + product_status: str + #: The arm's own wall time for the item (first action to return). + wall_s: float + model_calls: int = 0 + cost_usd: float = 0.0 + #: Evidence path relative to the run directory. + evidence: str = "" + #: Maintenance the arm did inside this item (for example re-authoring a + #: script after it failed on a changed screen). Same shape as a setup + #: phase; charged as maintenance, not as per-item work. + phases: list[dict[str, Any]] = field(default_factory=list) + #: Free-form, kept in the ledger. ``detail["usage"]`` may hold a token + #: breakdown: [{"model", "input", "output", "cache_read", "cache_write", + #: "calls", "usd"}]. + detail: dict[str, Any] = field(default_factory=dict) + + +class Arm(Protocol): + name: str + + def describe(self) -> dict[str, Any]: + """The exact configuration, recorded in the ledger as is.""" + + def setup(self, env: Env, operator: Operator) -> list[dict[str, Any]]: + """Teach, compile, qualify, admit. One dict per phase: + ``{"phase", "wall_s", "attended_s", "model_calls", "cost_usd"}``. + ``attended_s`` is the part of the wall time a person must watch.""" + + def run_item(self, item: WorkItem, env: Env, operator: Operator) -> ItemResult: ... + + def after_drift( + self, event: dict[str, Any], env: Env, operator: Operator + ) -> list[dict[str, Any]]: + """Maintenance an arm does on its own initiative after a UI change it + was told about (most arms are not told, and return []).""" + + def close(self) -> None: ... + + +class SpendCapReached(RuntimeError): + """Raised by an arm before a model call that could cross a spend cap. The + runner stops that arm, records the rest of its items as paused, and goes + on with the next arm.""" + + +def load_arm(spec: str, options: Optional[dict[str, Any]] = None) -> Arm: + """Build an arm from ``module:factory``.""" + + module, _, name = spec.partition(":") + if not module or not name: + raise ValueError(f"arm must look like module:factory, got {spec!r}") + factory = getattr(importlib.import_module(module), name) + return factory(dict(options or {})) diff --git a/packages/flow/benchmark/lifecycle/cost_model.py b/packages/flow/benchmark/lifecycle/cost_model.py new file mode 100644 index 000000000..fca658045 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/cost_model.py @@ -0,0 +1,106 @@ +"""The operator cost model: how many seconds each kind of human touch is charged. + +Versioned. A change to any number is a new version with a new key, never an +edit of an old one, so every results ledger names the exact numbers it was +charged with. The report shows every result at x0.5 and x2 of these numbers, +because none of them is measured from real operators yet (see CALIBRATION). + +What each charge covers: + +- ``approval``: read an approval card (the item's values and the save it will + make) and press Approve or Deny. +- ``stop``: read a stop's reason, look at the item in the app, and decide + (resume, skip, or do it by hand). Doing it by hand is charged separately. +- ``reconcile``: the product could not tell whether a save landed. Open the + app, find the record, compare it with the item, answer. +- ``repair_review``: read a proposed repair (the changed step, before and + after screens, probe results) and approve or reject it. +- ``question``: answer a free-text question from an agent. +- ``manual_entry``: do one item entirely by hand in the app (the all-manual + baseline, and the fallback for any item automation leaves undone). +- ``interrupt``: the resumption cost of any interruption, added once per + operator request (switching from other work to the queue and back). +- Setup and maintenance phases are charged at the wall time a person is + attending them, plus fixed preparation where a phase needs it. +""" + +from __future__ import annotations + +from dataclasses import asdict, dataclass, replace +from typing import Any + +CALIBRATION = ( + "No timings from real operators exist yet. Desktop and the console record " + "when a request was raised and when it was answered, but every answer on " + "record was given by a script, so those gaps measure the harness, not a " + "person. Until Desktop has real operator telemetry, the per-touch numbers " + "below are assumptions: keystroke-level estimates for reading a card and " + "clicking (approval), plus looking a record up in the app (stop, " + "reconcile), and a typed-entry estimate for a 12-field registration form " + "(manual entry: about 120 characters at 40 words a minute, plus reading " + "the referral and the duplicate search). The interrupt charge is the " + "resumption lag reported in interruption studies (tens of seconds)." +) + + +@dataclass(frozen=True) +class CostModel: + version: str + approval_s: float + stop_s: float + reconcile_s: float + repair_review_s: float + question_s: float + manual_entry_s: float + interrupt_s: float + #: Preparing a demonstration (pick the example, open the app) before the + #: recorded wall time is charged. + teach_prep_s: float + #: Reviewing a compiled program's parameters and steps before admission. + compile_review_s: float + #: Signing an admission once qualification passed. + admit_s: float + + def per_request(self, kind: str) -> float: + """Charged seconds for one operator request of ``kind``.""" + + base = { + "approval": self.approval_s, + "stop": self.stop_s, + "reconcile": self.reconcile_s, + "repair_review": self.repair_review_s, + "question": self.question_s, + "manual_entry": self.manual_entry_s, + }[kind] + return base + self.interrupt_s + + def scaled(self, factor: float) -> "CostModel": + """Every charge times ``factor`` (the sensitivity bands).""" + + fields = { + k: v * factor + for k, v in asdict(self).items() + if isinstance(v, (int, float)) and not isinstance(v, bool) + } + return replace(self, version=f"{self.version}x{factor:g}", **fields) + + def to_dict(self) -> dict[str, Any]: + return {**asdict(self), "calibration": CALIBRATION} + + +V1 = CostModel( + version="lifecycle-cost/2026-10-20.1", + approval_s=20.0, + stop_s=90.0, + reconcile_s=120.0, + repair_review_s=120.0, + question_s=60.0, + manual_entry_s=180.0, + interrupt_s=30.0, + teach_prep_s=300.0, + compile_review_s=600.0, + admit_s=300.0, +) + +MODELS = {V1.version: V1} +BANDS = (0.5, 1.0, 2.0) diff --git a/packages/flow/benchmark/lifecycle/fake.py b/packages/flow/benchmark/lifecycle/fake.py new file mode 100644 index 000000000..913ac5d99 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/fake.py @@ -0,0 +1,217 @@ +"""An in-memory app and two toy arms, for tests and for checking a new arm. + +``FakeApp`` keeps a patient table in memory and honours the same injected +events as the OpenEMR adapter (a failed save raises, a forced logout signs the +arm out, a UI change is just a flag). ``naive`` types whatever the referral +says and always claims done; ``careful`` asks the operator about anything odd +and stops on a failed save. Neither is a model of a product; they exist so the +harness's bookkeeping can be checked end to end in a second. +""" + +from __future__ import annotations + +import threading +import time +from typing import Any, Optional + +from .arm import Env, ItemResult, OperatorRequest, WorkItem + + +class FakeApp: + ui_url = "fake://app" + api_url = None + + def __init__(self) -> None: + self.rows_: list[dict[str, str]] = [] + self.next_id = 1 + self.fail_saves: dict[str, int] = {} + self.signed_in = True + self.drift_on: list[str] = [] + + def describe(self) -> dict[str, Any]: + return {"app": "fake", "version": "0"} + + def extra(self) -> dict[str, Any]: + return {"app": self} + + def accounts(self) -> list[tuple[str, str]]: + return [("clerk", "synthetic")] + + def reset(self) -> str: + self.rows_, self.next_id, self.fail_saves = [], 1, {} + return "fake-baseline" + + def rows(self) -> list[dict[str, str]]: + return [dict(r) for r in self.rows_] + + def _insert(self, fields: dict[str, str]) -> str: + email = fields.get("email", "") + if self.fail_saves.get(email, 0) > 0: + self.fail_saves[email] -= 1 + raise RuntimeError("save failed") + rid = str(self.next_id) + self.next_id += 1 + row = {"id": rid, "pid": rid, "state": "MA"} + row.update({k: v for k, v in fields.items() if k != "state_label"}) + self.rows_.append(row) + return rid + + def seed_existing(self, people: list[dict[str, str]]) -> list[str]: + return [self._insert(p) for p in people] + + def create_chart(self, fields: dict[str, str], *, who: str) -> str: + return self._insert( + { + **fields, + "fname": fields["fname"].strip(), + "lname": fields["lname"].strip(), + } + ) + + def inject( + self, + inj: dict[str, Any], + truth: Any, + *, + harness: set[str], + stop: Optional[threading.Event] = None, + ) -> dict[str, Any]: + ev = inj["event"] + if ev == "other_clerk_creates": + return { + "event": ev, + "chart_id": self.create_chart(inj["person"], who="clerk"), + } + if ev == "force_logout": + self.signed_in = False + return {"event": ev, "sessions_ended": 1} + if ev == "other_clerk_edits_unrelated": + target = next((r for r in self.rows_ if r["id"] not in harness), None) + if target: + target["phone_home"] = "555-0199" + return {"event": ev, "touched_ids": [target["id"]] if target else []} + if ev == "failed_save": + self.fail_saves[truth.person["email"]] = int(inj.get("times", 1)) + return {"event": ev} + if ev == "slow_save": + return {"event": ev} + raise ValueError(ev) + + def clear_item_events(self) -> list[str]: + self.fail_saves.clear() + return [] + + def apply_drift(self, kind: str) -> dict[str, Any]: + self.drift_on.append(kind) + return {"kind": kind} + + def clear_all_events(self) -> None: + self.drift_on = [] + self.fail_saves.clear() + self.signed_in = True + + # what an arm sees + def find(self, fname: str, lname: str) -> list[dict[str, str]]: + return [ + r + for r in self.rows_ + if r["fname"].lower() == fname.strip().lower() + and r["lname"].lower() == lname.strip().lower() + ] + + +class _ToyArm: + name = "toy" + careful = False + + def __init__(self, options: dict[str, Any]) -> None: + self.options = options + + def describe(self) -> dict[str, Any]: + return {"kind": self.name, "toy": True, "refused_features": []} + + def setup(self, env: Env, operator: Any) -> list[dict[str, Any]]: + return [ + { + "phase": "teach", + "wall_s": 60.0, + "attended_s": 60.0, + "model_calls": 0, + "cost_usd": 0.0, + } + ] + + def after_drift( + self, event: dict[str, Any], env: Env, operator: Any + ) -> list[dict[str, Any]]: + return [] + + def close(self) -> None: + pass + + def run_item(self, item: WorkItem, env: Env, operator: Any) -> ItemResult: + app: FakeApp = env.extra["app"] + t0 = time.time() + p = item.params + if not app.signed_in: + app.signed_in = True # signs in again + if self.careful: + odd = ( + "DOB" not in p + or "/" in p.get("DOB", "") + or p["fname"] != p["fname"].strip() + or app.find(p["fname"], p["lname"]) + ) + if odd: + d = operator.ask( + OperatorRequest( + kind="stop", + item_id=item.item_id, + reason="looks odd", + surface="toy", + detail={"resumable": False}, + ) + ) + return ItemResult( + item.item_id, "stopped", f"stopped: {d.action}", time.time() - t0 + ) + try: + app._insert(dict(p)) + except RuntimeError as exc: + if self.careful: + d = operator.ask( + OperatorRequest( + kind="stop", + item_id=item.item_id, + reason=str(exc), + surface="toy", + detail={"resumable": True}, + ) + ) + if d.action == "resume": + app._insert(dict(p)) + return ItemResult( + item.item_id, "done", "saved after resume", time.time() - t0 + ) + return ItemResult(item.item_id, "stopped", str(exc), time.time() - t0) + return ItemResult( + item.item_id, "done", "saved (error ignored)", time.time() - t0 + ) + return ItemResult(item.item_id, "done", "saved", time.time() - t0) + + +class NaiveArm(_ToyArm): + name = "naive" + + +class CarefulArm(_ToyArm): + name = "careful" + careful = True + + +def naive(options: dict[str, Any]) -> NaiveArm: + return NaiveArm(options) + + +def careful(options: dict[str, Any]) -> CarefulArm: + return CarefulArm(options) diff --git a/packages/flow/benchmark/lifecycle/metrics.py b/packages/flow/benchmark/lifecycle/metrics.py new file mode 100644 index 000000000..65fcb98c4 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/metrics.py @@ -0,0 +1,271 @@ +"""The metric, computed only from the results ledger. + +Headline: verified completed items per operator-hour. + +- A *verified completed item* is one whose final state the independent + oracle judges right (the intended chart exactly once, or no new chart when + none is wanted) and that the operator did not have to do by hand. +- *Operator hours* are every charged second: setup, per-item requests + (approvals, stops, reconciliations, repair reviews, questions, items done by + hand) and maintenance after each UI change. + +Charges are recomputed here from the ledger's request kinds and the cost +model, so the sensitivity bands (x0.5, x2) use the same rows. + +Outcome of an item, from the oracle's read after the arm returned (before any +by-hand fix), crossed with what the arm claimed: + +===================== ================================================== +``correct`` right end state, arm claimed done +``right_stop`` no chart wanted, arm stopped, nothing written +``false_stop`` chart wanted, item data right, no item-level fault, + arm stopped with nothing written (split by whether a + UI change was in force) +``fault_stop`` chart wanted, an item-level fault was injected + (expiry, slow or failed save, concurrent edit), arm + stopped with nothing written +``stopped_saved`` arm stopped but the right chart is there +``silent_wrong`` arm claimed done; the oracle disagrees +``flagged_wrong`` a wrong write landed and the arm stopped +``error`` the arm crashed; judged like a stop +===================== ================================================== +""" + +from __future__ import annotations + +import math +from collections import Counter, defaultdict +from typing import Any, Iterable, Optional + +from .cost_model import BANDS, CostModel + +ITEM_FAULTS = { + "session_expiry", + "slow_save", + "failed_save", + "concurrent_same", + "concurrent_other", +} +DATA_EXCEPTIONS = { + "dup_existing", + "dup_resend", + "ambiguous_same_person", + "ambiguous_new_person", + "missing_required", + "missing_optional", + "malformed_dob", + "malformed_case", +} + + +def classify(*, claimed: str, oracle: str, chart_wanted: bool, exception: str) -> str: + """One item's outcome. ``oracle`` is "correct", "absent", "wrong" or + "duplicate" (for no-chart items "correct" means no new chart).""" + + done = claimed == "done" + if oracle == "correct": + if done: + return "correct" + return "stopped_saved" if chart_wanted else "right_stop" + if not chart_wanted: + # a new chart landed where none was wanted + return "silent_wrong" if done else "flagged_wrong" + if oracle == "absent": + if done: + return "silent_wrong" + if exception in ITEM_FAULTS: + return "fault_stop" + if exception in DATA_EXCEPTIONS: + return "data_stop" + return "false_stop" + return "silent_wrong" if done else "flagged_wrong" + + +def wilson(k: int, n: int, z: float = 1.96) -> Optional[tuple[float, float]]: + if n == 0: + return None + p = k / n + d = 1 + z * z / n + c = p + z * z / (2 * n) + r = z * math.sqrt(p * (1 - p) / n + z * z / (4 * n * n)) + return (round(max(0.0, (c - r) / d), 4), round(min(1.0, (c + r) / d), 4)) + + +def _charge(cost: CostModel, row: dict[str, Any]) -> float: + s = cost.per_request(row["kind"]) + if ( + row["action"] == "do_by_hand" + and row["kind"] != "manual_entry" + and row.get("by_hand") + ): + s += cost.manual_entry_s + return s + + +def _phase_charge(cost: CostModel, row: dict[str, Any]) -> float: + fixed = { + "teach": cost.teach_prep_s, + "compile": cost.compile_review_s, + "admit": cost.admit_s, + }.get(row["phase"], 0.0) + return float(row.get("attended_s", 0.0)) + fixed + + +def compute(rows: Iterable[dict[str, Any]], cost: CostModel) -> dict[str, Any]: + rows = list(rows) + items = [r for r in rows if r["type"] == "item_result"] + ops = [r for r in rows if r["type"] == "operator"] + setup = [r for r in rows if r["type"] == "phase" and r.get("stage") == "setup"] + maint = [ + r for r in rows if r["type"] == "phase" and r.get("stage") == "maintenance" + ] + drifts = [r for r in rows if r["type"] == "drift_applied"] + + by_hand = { + r["item_id"] for r in ops if r["action"] == "do_by_hand" and r.get("item_id") + } + outcomes = Counter(r["outcome"] for r in items) + final_ok = [r for r in items if r["final_oracle"] == "correct"] + completed = [ + r + for r in final_ok + if r["item_id"] not in by_hand and r["outcome"] != "silent_wrong" + ] + + # operator requests attributed to maintenance: repair reviews and any + # request raised in the first `maintenance_window` items after a drift + item_ops = [r for r in ops if r["kind"] != "repair_review"] + repair_ops = [r for r in ops if r["kind"] == "repair_review"] + + silent = [r for r in items if r["outcome"] == "silent_wrong"] + + def bands() -> dict[str, Any]: + out = {} + for factor in BANDS: + c = cost.scaled(factor) if factor != 1.0 else cost + setup_s = sum(_phase_charge(c, r) for r in setup) + maint_s = sum(_phase_charge(c, r) for r in maint) + sum( + _charge(c, r) for r in repair_ops + ) + item_s = sum(_charge(c, r) for r in item_ops) + hours = (setup_s + maint_s + item_s) / 3600.0 + # Silent wrongs cost nobody anything during the run. If each is + # found later, someone must look it up and put it right. + cleanup_s = len(silent) * (c.per_request("reconcile") + c.manual_entry_s) + hours_cleanup = hours + cleanup_s / 3600.0 + n_all = len(items) + manual_hours = n_all * c.manual_entry_s / 3600.0 + out[f"x{factor:g}"] = { + "setup_min": round(setup_s / 60, 2), + "maintenance_min": round(maint_s / 60, 2), + "per_item_operator_min_total": round(item_s / 60, 2), + "per_item_operator_min": round(item_s / 60 / n_all, 3) + if n_all + else None, + "operator_hours": round(hours, 3), + "verified_completed_per_operator_hour": ( + round(len(completed) / hours, 2) if hours else None + ), + "operator_hours_with_cleanup": round(hours_cleanup, 3), + "verified_completed_per_operator_hour_with_cleanup": ( + round(len(completed) / hours_cleanup, 2) if hours_cleanup else None + ), + "manual_only_items_per_hour": ( + round(3600.0 / c.manual_entry_s, 2) if c.manual_entry_s else None + ), + "manual_only_hours": round(manual_hours, 3), + "work_removed_fraction": ( + round(1 - hours / manual_hours, 3) if manual_hours else None + ), + } + return out + + stops = [r for r in items if r["claimed"] != "done"] + wanted = [r for r in items if r["chart_wanted"]] + clean_wanted = [ + r + for r in wanted + if r["exception"] not in ITEM_FAULTS and r["exception"] not in DATA_EXCEPTIONS + ] + false_stops = [r for r in items if r["outcome"] == "false_stop"] + done_claims = [r for r in items if r["claimed"] == "done"] + silent = [r for r in items if r["outcome"] == "silent_wrong"] + + per_drift: dict[str, Any] = {} + for d in drifts: + kind = d["kind"] + window = [r for r in items if r["seq"] >= d["first_seq"]] + nxt = [x["first_seq"] for x in drifts if x["first_seq"] > d["first_seq"]] + if nxt: + window = [r for r in window if r["seq"] < min(nxt)] + per_drift[kind] = { + "first_seq": d["first_seq"], + "items": len(window), + "outcomes": dict(Counter(r["outcome"] for r in window)), + "repair_reviews": sum( + 1 + for r in repair_ops + if window and window[0]["seq"] <= r.get("seq", -1) <= window[-1]["seq"] + ), + } + + wall = [r["wall_s"] for r in items if r.get("wall_s") is not None] + loads = [r["load_1m"] for r in items if r.get("load_1m") is not None] + return { + "cost_model": cost.version, + "items": len(items), + "outcomes": dict(outcomes), + "verified_completed": len(completed), + "final_correct": len(final_ok), + "done_by_hand": len(by_hand), + "operator_requests": dict(Counter(r["kind"] for r in ops)), + "operator_actions": dict(Counter(r["action"] for r in ops)), + "false_stop_rate": { + "k": len(false_stops), + "n": len(clean_wanted), + "rate": round(len(false_stops) / len(clean_wanted), 4) + if clean_wanted + else None, + "ci95": wilson(len(false_stops), len(clean_wanted)), + "with_ui_change_in_force": sum( + 1 for r in false_stops if r.get("drift_active") + ), + "definition": "stops with nothing written on items whose data was right and " + "that carried no item-level fault, over all such items", + }, + "silent_wrong_rate": { + "k": len(silent), + "n": len(done_claims), + "rate": round(len(silent) / len(done_claims), 4) if done_claims else None, + "ci95": wilson(len(silent), len(done_claims)), + "of_all_items": round(len(silent) / len(items), 4) if items else None, + "definition": "items the arm claimed done that the independent oracle judged wrong, " + "over all items the arm claimed done", + }, + "stops": len(stops), + "by_exception": { + k: dict(Counter(r["outcome"] for r in items if r["exception"] == k)) + for k in sorted({r["exception"] for r in items}) + }, + "per_drift": per_drift, + "wall": { + "total_s": round(sum(wall), 1), + "median_item_s": round(sorted(wall)[len(wall) // 2], 2) if wall else None, + "load_1m_median": round(sorted(loads)[len(loads) // 2], 1) + if loads + else None, + "load_1m_max": round(max(loads), 1) if loads else None, + }, + "model": { + "calls": sum(r.get("model_calls", 0) for r in items), + "cost_usd": round(sum(r.get("cost_usd", 0.0) for r in items), 4), + }, + "bands": bands(), + } + + +def group_by_arm(rows: Iterable[dict[str, Any]]) -> dict[str, list[dict[str, Any]]]: + out: dict[str, list[dict[str, Any]]] = defaultdict(list) + for r in rows: + out[r.get("arm", "")].append(r) + return dict(out) diff --git a/packages/flow/benchmark/lifecycle/operator.py b/packages/flow/benchmark/lifecycle/operator.py new file mode 100644 index 000000000..5c0ce5339 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/operator.py @@ -0,0 +1,145 @@ +"""The simulated operator: a scripted, deterministic policy over ground truth. + +The operator answers every request an arm raises. It decides from the event +ledger's truth for the item and from what it can see in the app (the same +read-only look a person would take), never from the arm's own verdict. Each +answer is charged from the cost model and written to the results ledger with +the rule that decided it. + +The policy, in order: + +- ``approval``: approve when the item should produce a chart and the values + on the card (when the card shows any) match the truth; otherwise deny. +- ``stop`` / ``reconcile``: + - the item should produce no new chart: skip it (return to sender); + - the right chart is already there: confirm it is saved; + - the arm offers a resume and this item has not been resumed yet: resume; + - otherwise do the item by hand. +- ``repair_review``: accept when a UI change is in force and the repair's + probes passed; otherwise reject. +- ``question``: answer from the truth's rationale. +- ``manual_entry``: do the item by hand. + +An optional model operator can be added beside this one; it must be labelled +as such in the ledger (``operator.kind``). +""" + +from __future__ import annotations + +from typing import Any, Callable, Optional + +from .arm import OperatorDecision, OperatorRequest +from .cost_model import CostModel +from .workload import Truth + +NAME_FIELDS = ("fname", "lname") + + +def values_match(shown: dict[str, str], intended: dict[str, str]) -> bool: + """Do the values on a card match the truth (names compared trimmed and + case-insensitively, as a person reads them)?""" + + for key, want in intended.items(): + if key not in shown: + continue + got = shown[key] + if key in NAME_FIELDS: + if got.strip().lower() != want.strip().lower(): + return False + elif got != want: + return False + return True + + +class ScriptedOperator: + kind = "scripted" + + def __init__( + self, + cost: CostModel, + truth: dict[str, Truth], + *, + look: Callable[[Truth], str], + do_by_hand: Callable[[Truth], dict[str, Any]], + drift_active: Callable[[], list[str]], + record: Callable[[dict[str, Any]], None], + ) -> None: + """``look(truth)`` returns "correct", "absent" or "wrong": what a person + sees when they search the app for this item's patient. ``do_by_hand`` + enters the item as the operator would (and records that it did). + ``record`` appends a row to the results ledger.""" + + self.cost = cost + self.truth = truth + self.look = look + self.do_by_hand = do_by_hand + self.drift_active = drift_active + self.record = record + self.resumed: set[str] = set() + self.by_hand: set[str] = set() + self.skipped: set[str] = set() + + def _decide(self, req: OperatorRequest) -> tuple[str, str, Optional[str]]: + t = self.truth.get(req.item_id or "") + if req.kind == "repair_review": + ok = bool(req.detail.get("probes_passed")) + if self.drift_active() and ok: + return "accept_repair", "repair_drift_and_probes_passed", None + return "reject_repair", "repair_no_drift_or_probe_failed", None + if t is None: + return "deny", "no_truth_for_item", None + if req.kind == "approval": + shown = req.detail.get("values") or {} + if t.intended is not None and values_match(shown, t.intended): + return "approve", "approve_intended_write", None + return "deny", "deny_unintended_write", None + if req.kind == "question": + return "answer", "answer_from_truth", t.rationale + if req.kind == "manual_entry": + return "do_by_hand", "manual_entry_requested", None + # stop or reconcile + if t.intended is None: + return "skip", "skip_no_chart_wanted", None + seen = self.look(t) + if seen == "correct": + return "confirm_saved", "chart_already_correct", None + if seen == "wrong": + return "do_by_hand", "fix_wrong_chart_by_hand", None + if req.detail.get("resumable") and req.item_id not in self.resumed: + return "resume", "resume_once", None + return "do_by_hand", "enter_by_hand", None + + def ask(self, req: OperatorRequest) -> OperatorDecision: + action, rule, answer = self._decide(req) + charged = self.cost.per_request(req.kind) + extra: dict[str, Any] = {} + if action == "resume" and req.item_id: + self.resumed.add(req.item_id) + if action == "skip" and req.item_id: + self.skipped.add(req.item_id) + if action == "do_by_hand" and req.item_id and req.item_id not in self.by_hand: + self.by_hand.add(req.item_id) + t = self.truth[req.item_id] + if req.kind != "manual_entry": + charged += self.cost.manual_entry_s + extra = self.do_by_hand(t) + decision = OperatorDecision( + action=action, charged_s=charged, rule=rule, answer=answer + ) + self.record( + { + "type": "operator", + "operator": self.kind, + "item_id": req.item_id, + "kind": req.kind, + "reason": req.reason, + "surface": req.surface, + "action": action, + "rule": rule, + "charged_s": charged, + "cost_model": self.cost.version, + "detail": {k: v for k, v in req.detail.items() if k != "values"}, + **({"by_hand": extra} if extra else {}), + } + ) + return decision diff --git a/packages/flow/benchmark/lifecycle/oracle.py b/packages/flow/benchmark/lifecycle/oracle.py new file mode 100644 index 000000000..ad06b11f7 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/oracle.py @@ -0,0 +1,185 @@ +"""The independent oracle: reads OpenEMR's database directly, never the arm. + +It runs as the database root inside the fixture's own database container, a +channel no arm uses. It judges an item twice: + +- right after the arm returns (the arm's own outcome), counting only charts + the arm could have written: rows the harness wrote itself (another clerk, + the operator by hand) are attributed by row id and left out; +- after the operator has dealt with the item (the item's final state), over + every chart for that person. + +A chart matches the truth when every field matches: names trimmed and +compared without case (as a person reads a name), every other field exactly. +""" + +from __future__ import annotations + +import hashlib +from typing import Any, Callable, Iterable, Optional + +from .workload import Truth + +FIELDS = ( + "id", + "pid", + "title", + "fname", + "lname", + "DOB", + "sex", + "street", + "city", + "state", + "postal_code", + "phone_home", + "email", + "country_code", +) +#: Truth key -> patient_data column. +COLUMN = { + "title": "title", + "fname": "fname", + "lname": "lname", + "DOB": "DOB", + "sex": "sex", + "street": "street", + "city": "city", + "postal_code": "postal_code", + "phone_home": "phone_home", + "email": "email", + "country_code": "country_code", +} +STATE_CODE = {"Massachusetts": "MA"} +NAME_KEYS = {"fname", "lname"} + +Rows = list[dict[str, str]] + + +def norm_name(v: str) -> str: + return " ".join(v.split()).lower() + + +def field_diffs(row: dict[str, str], intended: dict[str, str]) -> list[dict[str, str]]: + diffs = [] + for key, col in COLUMN.items(): + want = intended.get(key, "") + got = row.get(col, "") + same = norm_name(got) == norm_name(want) if key in NAME_KEYS else got == want + if not same: + diffs.append({"field": key, "want": want, "got": got}) + want_state = STATE_CODE.get(intended.get("state_label", ""), "") + if row.get("state", "") != want_state: + diffs.append( + {"field": "state", "want": want_state, "got": row.get("state", "")} + ) + return diffs + + +def same_person(row: dict[str, str], person: dict[str, str]) -> bool: + return ( + norm_name(row.get("fname", "")) == norm_name(person["fname"]) + and norm_name(row.get("lname", "")) == norm_name(person["lname"]) + and row.get("DOB", "") == person.get("DOB", "") + ) + + +def _names(row: dict[str, str]) -> tuple[str, str]: + return norm_name(row.get("fname", "")), norm_name(row.get("lname", "")) + + +def rows_digest(rows: Iterable[dict[str, str]]) -> str: + h = hashlib.sha256() + for r in sorted(rows, key=lambda r: int(r["id"])): + h.update(("\t".join(r.get(k, "") for k in FIELDS) + "\n").encode()) + return h.hexdigest() + + +class Oracle: + def __init__(self, sql_rows: Callable[[], Rows]) -> None: + self.sql_rows = sql_rows + + def snapshot(self) -> Rows: + return self.sql_rows() + + def judge_arm( + self, + truth: Truth, + before: Rows, + after: Rows, + *, + harness_ids: set[str], + harness_touched: set[str], + ) -> dict[str, Any]: + """The arm's outcome: "correct", "absent", "wrong" or "duplicate".""" + + before_ids = {r["id"] for r in before} + new = [ + r for r in after if r["id"] not in before_ids and r["id"] not in harness_ids + ] + old_before = {r["id"]: r for r in before if r["id"] not in harness_touched} + old_after = {r["id"]: r for r in after if r["id"] in old_before} + collateral = sorted(i for i in old_before if old_before[i] != old_after.get(i)) + detail: dict[str, Any] = { + "new_charts": len(new), + "collateral_ids": collateral, + "new_ids": [r["id"] for r in new], + } + if collateral: + return {"verdict": "wrong", "why": "collateral", **detail} + if truth.intended is None: + if new: + return { + "verdict": "wrong", + "why": "chart written where none wanted", + **detail, + } + return {"verdict": "correct", "why": "no new chart", **detail} + if not new: + return {"verdict": "absent", "why": "no new chart", **detail} + if len(new) > 1: + return {"verdict": "duplicate", "why": f"{len(new)} new charts", **detail} + diffs = field_diffs(new[0], truth.intended) + if diffs: + return { + "verdict": "wrong", + "why": "field mismatch", + "diffs": diffs, + **detail, + } + return {"verdict": "correct", "why": "one chart, every field right", **detail} + + def judge_final( + self, truth: Truth, before_item: Rows, now: Rows, *, other_clerk_ids: set[str] + ) -> dict[str, Any]: + """The item's final state, whoever wrote it (other clerks aside). + + Every chart written since the item started that carries this + person's name or email counts, so a chart with a mistyped date of + birth is still found.""" + + prior = {r["id"] for r in before_item} + new = [ + r + for r in now + if r["id"] not in prior + and r["id"] not in other_clerk_ids + and ( + _names(r) == _names(truth.person) + or r.get("email") == truth.person["email"] + ) + ] + if truth.intended is None: + return {"verdict": "wrong" if new else "correct", "new_charts": len(new)} + if len(new) == 1 and not field_diffs(new[0], truth.intended): + return {"verdict": "correct", "new_charts": 1} + return {"verdict": "absent" if not new else "wrong", "new_charts": len(new)} + + def look(self, truth: Truth, before_item: Optional[Rows] = None) -> str: + """What a person sees searching the app for this item's patient: + "correct", "absent" or "wrong".""" + + v = self.judge_final( + truth, before_item or [], self.sql_rows(), other_clerk_ids=set() + ) + return v["verdict"] diff --git a/packages/flow/benchmark/lifecycle/report.py b/packages/flow/benchmark/lifecycle/report.py new file mode 100644 index 000000000..90e97705d --- /dev/null +++ b/packages/flow/benchmark/lifecycle/report.py @@ -0,0 +1,179 @@ +"""Compute ``results.json`` and the one-page ``REPORT.md`` from a run's ledger. + + python -m lifecycle.report lifecycle/results/ + +Everything is recomputed from ``ledger.jsonl``; nothing else is read. +""" + +from __future__ import annotations + +import json +import sys +from pathlib import Path +from typing import Any + +from .cost_model import BANDS, CALIBRATION, MODELS +from .metrics import compute, group_by_arm + + +def load(run_dir: Path) -> list[dict[str, Any]]: + return [ + json.loads(line) + for line in (run_dir / "ledger.jsonl").read_text().splitlines() + if line.strip() + ] + + +def results(run_dir: Path) -> dict[str, Any]: + rows = load(run_dir) + start = next(r for r in rows if r["type"] == "run_start") + cost = MODELS[start["cost_model"]["version"]] + arms = {} + for arm, arm_rows in group_by_arm(rows).items(): + if not arm: + continue + begin = next((r for r in arm_rows if r["type"] == "arm_start"), {}) + m = compute(arm_rows, cost) + m["describe"] = begin.get("describe", {}) + m["complete"] = any(r["type"] == "arm_end" for r in arm_rows) + arms[arm] = m + return { + "run": {k: v for k, v in start.items() if k not in ("t", "arm")}, + "arms": arms, + } + + +def _pct(x: Any) -> str: + return "n/a" if x is None else f"{100 * x:.1f}%" + + +def _ci(ci: Any) -> str: + return "" if not ci else f" (95% CI {100 * ci[0]:.1f}-{100 * ci[1]:.1f}%)" + + +def render(res: dict[str, Any]) -> str: + run = res["run"] + lines = [ + "# Lifecycle soak report", + "", + f"Protocol `{run['protocol']}`, workload `{run['workload']}`, seed {run['seed']}, " + f"{run['items']} referrals over {run['days']} simulated days" + + (f" (first {run['stop_after']} run)" if run.get("stop_after") else "") + + f". Engine commit `{run['engine_commit'][:12]}`. App: {run['app'].get('app', '')} " + f"{run['app'].get('version', '')}, synthetic data only. " + f"Cost model `{run['cost_model']['version']}`.", + "", + ] + for name, m in res["arms"].items(): + b = m["bands"] + lines += [ + f"## Arm `{name}`" + ("" if m["complete"] else " (incomplete)"), + "", + "| | x0.5 | x1 | x2 |", + "|---|---:|---:|---:|", + ] + rows = [ + ( + "Verified completed items per operator-hour", + "verified_completed_per_operator_hour", + ), + ( + "... if every silent wrong is later found and fixed", + "verified_completed_per_operator_hour_with_cleanup", + ), + ("All-manual items per operator-hour", "manual_only_items_per_hour"), + ("Operator work removed vs all-manual", "work_removed_fraction"), + ("Setup minutes", "setup_min"), + ("Per-item operator minutes (mean)", "per_item_operator_min"), + ("Maintenance minutes (all UI changes)", "maintenance_min"), + ("Operator hours in total", "operator_hours"), + ] + for label, key in rows: + vals = [] + for f in BANDS: + v = b[f"x{f:g}"][key] + vals.append( + _pct(v) + if key == "work_removed_fraction" + else ("n/a" if v is None else f"{v:g}") + ) + lines.append(f"| {label} | " + " | ".join(vals) + " |") + fs, sw = m["false_stop_rate"], m["silent_wrong_rate"] + lines += [ + "", + f"- Items: {m['items']}; verified completed without hand entry: " + f"{m['verified_completed']}; right in the end: {m['final_correct']}; " + f"done by hand: {m['done_by_hand']}.", + f"- False stops: {fs['k']} of {fs['n']} clean items, {_pct(fs['rate'])}{_ci(fs['ci95'])}; " + f"{fs['with_ui_change_in_force']} of them with a UI change in force.", + f"- Silent wrong: {sw['k']} of {sw['n']} items claimed done, {_pct(sw['rate'])}{_ci(sw['ci95'])} " + "(judged by direct SQL, never the product's verdict).", + f"- Operator requests: {json.dumps(m['operator_requests'])}; actions: " + f"{json.dumps(m['operator_actions'])}.", + f"- Outcomes: {json.dumps(m['outcomes'])}.", + f"- Wall: {m['wall']['total_s']} s of item time, median {m['wall']['median_item_s']} s " + f"an item; host 1-minute load median {m['wall']['load_1m_median']}, max " + f"{m['wall']['load_1m_max']}.", + f"- Model calls {m['model']['calls']}, list-price cost ${m['model']['cost_usd']}.", + "", + "Outcome by exception:", + "", + "| Exception | Outcomes |", + "|---|---|", + ] + for k, v in m["by_exception"].items(): + lines.append( + f"| {k} | {', '.join(f'{a} {n}' for a, n in sorted(v.items()))} |" + ) + if m["per_drift"]: + lines += [ + "", + "After each UI change (items until the next change):", + "", + "| Change | From item | Items | Outcomes |", + "|---|---:|---:|---|", + ] + for k, v in m["per_drift"].items(): + lines.append( + f"| {k} | {v['first_seq']} | {v['items']} | " + f"{', '.join(f'{a} {n}' for a, n in sorted(v['outcomes'].items()))} |" + ) + refused = m["describe"].get("refused_features") + if refused is not None: + lines += [ + "", + "Features the compatibility matrix refused for this configuration:", + "", + ] + lines += [f"- `{r['feature']}`: {r['reason']}" for r in refused] or [ + "- none" + ] + lines.append("") + lines += [ + "## Assumptions", + "", + f"Operator seconds per touch (`{run['cost_model']['version']}`): " + + ", ".join( + f"{k.removesuffix('_s')} {v:g}" + for k, v in run["cost_model"].items() + if k.endswith("_s") + ) + + ". Every request also pays the interrupt charge. Bands scale every number.", + "", + CALIBRATION, + "", + ] + return "\n".join(lines) + + +def write_report(run_dir: Path) -> dict[str, Any]: + res = results(run_dir) + (run_dir / "results.json").write_text( + json.dumps(res, indent=2, sort_keys=True) + "\n" + ) + (run_dir / "REPORT.md").write_text(render(res)) + return res + + +if __name__ == "__main__": + write_report(Path(sys.argv[1])) diff --git a/packages/flow/benchmark/lifecycle/run.py b/packages/flow/benchmark/lifecycle/run.py new file mode 100644 index 000000000..e64088388 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/run.py @@ -0,0 +1,385 @@ +"""Run the lifecycle soak: one seeded worklist, every arm, one results ledger. + + cd packages/flow/benchmark + python -m lifecycle.run --app openemr --seed 7 --items 300 --days 10 \\ + --arm lifecycle.arms.openadapt:make --out lifecycle/results/ + +Each arm gets the app reset to the same baseline with the same existing +charts, then the same stream of items, UI changes and faults. The harness +applies every event, asks the oracle after every item, and writes every row +to ``ledger.jsonl``; ``results.json`` and ``REPORT.md`` are computed from that +file alone (``python -m lifecycle.report `` recomputes them). +""" + +from __future__ import annotations + +import argparse +import json +import os +import platform +import subprocess +import threading +import time +from pathlib import Path +from typing import Any, Callable, Optional + +from .arm import INTERFACE_VERSION, Env, ItemResult, OperatorRequest, load_arm +from .cost_model import MODELS, V1 +from .metrics import classify +from .operator import ScriptedOperator +from .oracle import Oracle +from .workload import WORKLOAD_VERSION, Truth, Workload, generate + +HERE = Path(__file__).resolve().parent +PROTOCOL_VERSION = "lifecycle/2026-10-20.1" + + +def load_1m() -> Optional[float]: + try: + return round(os.getloadavg()[0], 1) + except OSError: + return None + + +class Ledger: + """Append-only JSON lines; every row is flushed as it is written.""" + + def __init__(self, path: Path) -> None: + self.path = path + self._lock = threading.Lock() + self._fh = path.open("a", encoding="utf-8") + self.arm = "" + + def write(self, row: dict[str, Any]) -> None: + row = {"t": round(time.time(), 3), "arm": self.arm, **row} + with self._lock: + self._fh.write(json.dumps(row, sort_keys=True, default=str) + "\n") + self._fh.flush() + + def close(self) -> None: + self._fh.close() + + +class _CountingOperator: + """Wraps the operator to know which items already reached a person.""" + + def __init__(self, inner: ScriptedOperator) -> None: + self.inner = inner + self.asked: dict[str, int] = {} + + def ask(self, req: OperatorRequest) -> Any: + if req.item_id: + self.asked[req.item_id] = self.asked.get(req.item_id, 0) + 1 + return self.inner.ask(req) + + +def engine_commit() -> str: + try: + return subprocess.run( + ["git", "rev-parse", "HEAD"], + cwd=HERE, + capture_output=True, + text=True, + check=True, + ).stdout.strip() + except (OSError, subprocess.CalledProcessError): + return "unknown" + + +def run_arm( + *, + arm_spec: str, + arm_options: dict[str, Any], + app: Any, + workload: Workload, + ledger: Ledger, + out: Path, + cost_name: str, + stop_after: Optional[int] = None, + say: Callable[[str], None] = print, +) -> None: + arm = load_arm(arm_spec, arm_options) + ledger.arm = arm.name + truth = workload.truth + cost = MODELS[cost_name] + + say(f"[{arm.name}] resetting the app to its baseline") + app.reset() + app.clear_all_events() + existing_ids = app.seed_existing(workload.existing) + ledger.write( + { + "type": "arm_start", + "arm_spec": arm_spec, + "options": arm_options, + "describe": arm.describe(), + "existing_ids": existing_ids, + "interface": INTERFACE_VERSION, + } + ) + + oracle = Oracle(app.rows) + harness_ids: set[str] = set() + harness_touched: set[str] = set() + other_clerk_ids: set[str] = set() + active_drift: list[str] = [] + current: dict[str, Any] = {"before": None, "seq": 0} + + def do_by_hand(t: Truth) -> dict[str, Any]: + """The operator enters the item in the app themself.""" + if t.intended is None: + return {} + new_id = app.create_chart(t.intended, who="operator") + harness_ids.add(new_id) + return {"chart_id": new_id} + + def record(row: dict[str, Any]) -> None: + ledger.write({**row, "seq": current["seq"]}) + + scripted = ScriptedOperator( + cost, + truth, + look=lambda t: oracle.look(t, current["before"]), + do_by_hand=do_by_hand, + drift_active=lambda: list(active_drift), + record=record, + ) + operator = _CountingOperator(scripted) + env = Env( + app=workload.items[0].app, + ui_url=app.ui_url, + api_url=app.api_url, + accounts=tuple(app.accounts()), + workdir=out / "arms" / arm.name, + seed=workload.seed, + extra=app.extra(), + ) + env.workdir.mkdir(parents=True, exist_ok=True) + + say(f"[{arm.name}] setup") + for phase in arm.setup(env, operator): + ledger.write({"type": "phase", "stage": "setup", **phase}) + + drift_by_seq = {d["first_seq"]: d for d in workload.drift} + items = workload.items[: stop_after or len(workload.items)] + for item in items: + current["seq"] = item.seq + t = truth[item.item_id] + if item.seq in drift_by_seq: + d = drift_by_seq[item.seq] + applied = app.apply_drift(d["kind"]) + active_drift.append(d["kind"]) + ledger.write({"type": "drift_applied", **d, "applied": applied}) + say( + f"[{arm.name}] day {d['day']}: UI change '{d['kind']}' from item {item.seq}" + ) + for phase in arm.after_drift(d, env, operator): + ledger.write( + { + "type": "phase", + "stage": "maintenance", + "drift": d["kind"], + **phase, + } + ) + + before = oracle.snapshot() + current["before"] = before + injected: list[dict[str, Any]] = [] + for inj in t.inject: + if inj["when"] == "before_item": + injected.append(app.inject(inj, t, harness=harness_ids)) + for inj in injected: + if inj.get("chart_id"): + other_clerk_ids.add(inj["chart_id"]) + harness_ids.add(inj["chart_id"]) + stop_during = threading.Event() + during: list[threading.Thread] = [] + during_out: list[dict[str, Any]] = [] + for inj in t.inject: + if inj["when"] == "during_item": + th = threading.Thread( + target=lambda i=inj: during_out.append( + app.inject(i, t, harness=harness_ids, stop=stop_during) + ), + daemon=True, + ) + th.start() + during.append(th) + + load_start = load_1m() + started = time.time() + try: + result = arm.run_item(item, env, operator) + except Exception as exc: # noqa: BLE001 - an arm crash is a result + if type(exc).__name__ == "SpendCapReached": + stop_during.set() + app.clear_item_events() + ledger.write( + { + "type": "arm_paused", + "seq": item.seq, + "reason": str(exc)[:300], + "paused_items": len(items) - item.seq + 1, + } + ) + say(f"[{arm.name}] spend cap reached at item {item.seq}; arm paused") + break + result = ItemResult( + item_id=item.item_id, + claimed="error", + product_status=f"{type(exc).__name__}: {exc}"[:500], + wall_s=time.time() - started, + ) + stop_during.set() + for th in during: + th.join(timeout=60) + cleared = app.clear_item_events() + for phase in result.phases: + ledger.write( + { + "type": "phase", + "stage": "maintenance", + "seq": item.seq, + "within_item": item.item_id, + **phase, + } + ) + for d in during_out: + harness_touched.update(d.get("touched_ids", [])) + + after = oracle.snapshot() + verdict = oracle.judge_arm( + t, before, after, harness_ids=harness_ids, harness_touched=harness_touched + ) + outcome = classify( + claimed=result.claimed, + oracle=verdict["verdict"], + chart_wanted=t.intended is not None, + exception=t.exception, + ) + # A stop the arm never put in front of a person still needs one. + if result.claimed != "done" and not operator.asked.get(item.item_id): + operator.ask( + OperatorRequest( + kind="stop", + item_id=item.item_id, + reason=result.product_status[:300], + surface="harness:stopped-item queue", + detail={"resumable": False}, + ) + ) + final = oracle.judge_final( + t, before, oracle.snapshot(), other_clerk_ids=other_clerk_ids + ) + row = { + "type": "item_result", + "seq": item.seq, + "item_id": item.item_id, + "day": item.day, + "exception": t.exception, + "chart_wanted": t.intended is not None, + "drift_active": list(active_drift), + "claimed": result.claimed, + "product_status": result.product_status, + "oracle": verdict, + "outcome": outcome, + "final_oracle": final["verdict"], + "final": final, + "wall_s": round(result.wall_s, 2), + "harness_wall_s": round(time.time() - started, 2), + "model_calls": result.model_calls, + "cost_usd": result.cost_usd, + "evidence": result.evidence, + "detail": result.detail, + "load_1m": load_start, + "load_1m_end": load_1m(), + "injected": injected + during_out, + "cleared": cleared, + } + ledger.write(row) + say( + f"[{arm.name}] {item.seq:4d} {item.item_id} {t.exception:22s} " + f"claimed={result.claimed:7s} oracle={verdict['verdict']:9s} -> {outcome:13s} " + f"final={final['verdict']:8s} {result.wall_s:6.1f}s load={load_start}" + ) + arm.close() + app.clear_all_events() + ledger.write({"type": "arm_end"}) + + +def main(argv: Optional[list[str]] = None) -> int: + p = argparse.ArgumentParser(description=__doc__.splitlines()[0]) + p.add_argument("--app", default="openemr", choices=("openemr", "fake")) + p.add_argument( + "--arm", + action="append", + required=True, + help="module:factory; repeat for several arms", + ) + p.add_argument("--arm-options", default="{}", help="JSON options for every arm") + p.add_argument("--seed", type=int, default=7) + p.add_argument("--items", type=int, default=300) + p.add_argument("--days", type=int, default=10) + p.add_argument("--existing", type=int, default=12) + p.add_argument( + "--stop-after", + type=int, + default=None, + help="run only the first N items (a smoke run)", + ) + p.add_argument("--cost-model", default=V1.version, choices=sorted(MODELS)) + p.add_argument("--out", type=Path, required=True) + args = p.parse_args(argv) + + out: Path = args.out + out.mkdir(parents=True, exist_ok=False) + workload = generate(args.seed, args.items, args.days, args.existing) + (out / "workload.jsonl").write_text( + "".join(json.dumps(r, sort_keys=True) + "\n" for r in workload.ledger_rows()) + ) + from .apps import make_app + + app = make_app(args.app) + ledger = Ledger(out / "ledger.jsonl") + ledger.write( + { + "type": "run_start", + "protocol": PROTOCOL_VERSION, + "workload": WORKLOAD_VERSION, + "seed": args.seed, + "items": args.items, + "days": args.days, + "stop_after": args.stop_after, + "cost_model": MODELS[args.cost_model].to_dict(), + "engine_commit": engine_commit(), + "host": platform.node().split(".")[0], + "platform": platform.platform(), + "cpus": os.cpu_count(), + "app": app.describe(), + "argv": argv if argv is not None else None, + } + ) + try: + for spec in args.arm: + run_arm( + arm_spec=spec, + arm_options=json.loads(args.arm_options), + app=app, + workload=workload, + ledger=ledger, + out=out, + cost_name=args.cost_model, + stop_after=args.stop_after, + ) + finally: + ledger.write({"type": "run_end"}) + ledger.close() + from .report import write_report + + write_report(out) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/packages/flow/benchmark/lifecycle/workload.py b/packages/flow/benchmark/lifecycle/workload.py new file mode 100644 index 000000000..c10b8d16c --- /dev/null +++ b/packages/flow/benchmark/lifecycle/workload.py @@ -0,0 +1,341 @@ +"""A seeded worklist stream with an exception mix, and its ground truth. + +Every item is a referral a clerk would register as a new patient. Every +exception is drawn from a seeded generator and written to the event ledger +before the run starts, so the operator and the oracle judge from the same +truth and two runs with one seed see the same stream. + +The mix is stress-weighted, not measured: about a quarter of items carry an +exception so that a few hundred items exercise every kind several times. Real +intake mixes are not known to us; the report says so. + +Item-level exceptions (``EXCEPTION_MIX``): + +- ``dup_existing``: the patient already has a chart (same name and date of + birth). Right outcome: no new chart. +- ``dup_resend``: a referral already in this stream is sent again (a fax + resend). Right outcome: no second chart. +- ``ambiguous_same_person``: same name as an existing chart, date of birth off + by a typo. It is that person. Right outcome: no new chart. +- ``ambiguous_new_person``: same name as an existing chart, a different + person (different date of birth and address). Right outcome: a new chart. +- ``missing_required``: no date of birth. Right outcome: no chart; the + referral goes back to the sender. +- ``missing_optional``: no home phone. Right outcome: a chart with a blank + home phone. +- ``malformed_dob``: date of birth written MM/DD/YYYY. Right outcome: a chart + with the true date, or a stop; never a wrong date. +- ``malformed_case``: names in capitals with stray spaces. Right outcome: a + chart with the names as the person's name (case-insensitive match, trimmed). +- ``concurrent_same``: another clerk registers the same patient seconds + before this item runs. Right outcome: exactly one chart for the patient. +- ``concurrent_other``: another clerk edits an unrelated chart while this item + runs. Right outcome: this item's chart; the other edit is not collateral. +- ``session_expiry``: the arm's sessions are ended (forced logout) just + before the item. Right outcome: a chart, or a safe stop. +- ``slow_save``: the save takes several seconds longer than usual. Right + outcome: a chart. +- ``failed_save``: the save fails once (the app returns an error). Right + outcome: no chart from the failed attempt; a chart after a retry, or a safe + stop. + +Day-level events (``DRIFT_SCHEDULE``) stay on from their day to the end, as a +vendor release would: a theme change, a relabel of the save button, a field +reorder, and an added interstitial notice. +""" + +from __future__ import annotations + +import json +import random +from dataclasses import asdict, dataclass, field +from typing import Any, Optional + +from .arm import WorkItem + +WORKLOAD_VERSION = "lifecycle-workload/2026-10-20.1" + +EXCEPTION_MIX: dict[str, float] = { + "dup_existing": 0.03, + "dup_resend": 0.03, + "ambiguous_same_person": 0.02, + "ambiguous_new_person": 0.02, + "missing_required": 0.02, + "missing_optional": 0.02, + "malformed_dob": 0.02, + "malformed_case": 0.02, + "concurrent_same": 0.015, + "concurrent_other": 0.02, + "session_expiry": 0.02, + "slow_save": 0.02, + "failed_save": 0.015, +} + +#: (day, kind) — each stays on from that day to the end of the run. +DRIFT_SCHEDULE: tuple[tuple[int, str], ...] = ( + (2, "theme"), + (4, "relabel"), + (6, "reorder"), + (8, "interstitial"), +) + +# Invented names. Short names are kept on purpose: they occur in real +# worklists and some identity checks treat them differently. +FIRST = ( + "Nadia Marcus Ines Theo Grace Arlo Priya Tomas Wen Esme Kofi Liesel Rafael " + "Odile Bram Yuki Soren Amara Dmitri Luz Ana Bo Jae Ola Cyrus Mireille " + "Henrik Talia Oren Signe Mateo Leilani Fergus Ilse Kwame Rosalind Zeno " + "Petra Anouk Calum Dalia Emeric Farida Gideon Hollis Ida Jasper Kalinda" +).split() +LAST = ( + "Brennan Feld Carvalho Lindqvist Adeyemi Whitcombe Raman Okafor Vance " + "Halvorsen Quist Marchetti Szabo Tanaka Delacroix Mbeki Novak Ferreira " + "Ashby Kowalczyk Lund Pereira Ostrowski Nakamura Esposito Fairweather " + "Galloway Hartigan Ibarra Jablonski Kestrel Larkspur Merriweather Nyberg " + "Oyelaran Pemberton Quennell Rasmussen Stavros Thorne Ulloa Vasquez " + "Wexford Yarrow Zielinski Abernathy Birchall Caddick Dunmore Ng Li" +).split() +STREETS = ( + "WILLOW BEND ROAD QUARRY HILL DRIVE LANTERN COURT FERRY STREET CEDAR ROW " + "BEACON TERRACE STATION AVENUE MILL ROAD ORCHARD LANE HARBOR WAY" +).split() +STREET_NAMES = [ + " ".join(STREETS[i : i + 3]) if i + 3 <= len(STREETS) else STREETS[i] + for i in range(0, len(STREETS), 3) +] +TITLES = {"Female": ("Ms.", "Mrs."), "Male": ("Mr.",)} + + +@dataclass +class Truth: + """What is true about one item, kept by the harness, never shown to arms.""" + + item_id: str + seq: int + day: int + exception: str + #: The chart the item should produce, or None when no new chart is right. + intended: Optional[dict[str, str]] + #: The person this item is about (the true values), for the oracle's + #: "exactly one chart for this person" check. + person: dict[str, str] + rationale: str + #: Item-level injections the harness must apply around this item. + inject: list[dict[str, Any]] = field(default_factory=list) + + +@dataclass +class Workload: + seed: int + days: int + items: list[WorkItem] + truth: dict[str, Truth] + #: Charts that exist before the run (seeded so duplicates have targets). + existing: list[dict[str, str]] + drift: list[dict[str, Any]] + + def ledger_rows(self) -> list[dict[str, Any]]: + rows: list[dict[str, Any]] = [ + { + "type": "workload", + "version": WORKLOAD_VERSION, + "seed": self.seed, + "days": self.days, + "items": len(self.items), + "exception_mix": EXCEPTION_MIX, + } + ] + rows += [{"type": "existing_chart", **c} for c in self.existing] + rows += [{"type": "drift_scheduled", **d} for d in self.drift] + for item in self.items: + t = self.truth[item.item_id] + rows.append({"type": "item", **asdict(item), "truth": asdict(t)}) + return rows + + +def _person(rng: random.Random, used: set[tuple[str, str]], n: int) -> dict[str, str]: + while True: + fname, lname = rng.choice(FIRST), rng.choice(LAST) + if (fname, lname) not in used: + used.add((fname, lname)) + break + sex = rng.choice(("Female", "Male")) + year = rng.randint(1935, 2004) + dob = f"{year:04d}-{rng.randint(1, 12):02d}-{rng.randint(1, 28):02d}" + number = rng.randint(2, 498) + street = f"{number} {rng.choice(STREET_NAMES)}" + return { + "title": rng.choice(TITLES[sex]), + "fname": fname, + "lname": lname, + "DOB": dob, + "sex": sex, + "street": street, + "city": "EXAMPLETON", + "state_label": "Massachusetts", + "postal_code": "02139", + "phone_home": f"555-01{rng.randint(0, 99):02d}", + "email": f"{fname.lower()}.{lname.lower()}.{n}@example.invalid", + "country_code": "USA", + } + + +def _source_text(params: dict[str, str]) -> str: + lines = ["REFERRAL - new patient registration requested", ""] + labels = ( + ("title", "Title"), + ("fname", "First name"), + ("lname", "Last name"), + ("DOB", "Date of birth"), + ("sex", "Sex"), + ("street", "Street"), + ("city", "City"), + ("state_label", "State"), + ("postal_code", "ZIP"), + ("phone_home", "Home phone"), + ("email", "Email"), + ("country_code", "Country"), + ) + for key, label in labels: + lines.append(f"{label}: {params.get(key, '')}") + return "\n".join(lines) + "\n" + + +def _pick(rng: random.Random) -> str: + r = rng.random() + acc = 0.0 + for kind, p in EXCEPTION_MIX.items(): + acc += p + if r < acc: + return kind + return "clean" + + +def generate(seed: int, n_items: int, days: int, n_existing: int = 12) -> Workload: + """The stream for ``seed``: ``n_items`` referrals over ``days`` days.""" + + rng = random.Random(seed) + used: set[tuple[str, str]] = set() + existing = [_person(rng, used, 9000 + i) for i in range(n_existing)] + items: list[WorkItem] = [] + truth: dict[str, Truth] = {} + sent: list[tuple[WorkItem, dict[str, str]]] = [] + per_day = max(1, -(-n_items // days)) + + for seq in range(1, n_items + 1): + item_id = f"ref-{seq:05d}" + day = (seq - 1) // per_day + kind = _pick(rng) + person = _person(rng, used, seq) + params = dict(person) + intended: Optional[dict[str, str]] = dict(person) + inject: list[dict[str, Any]] = [] + why = "a new referral; register it" + + if kind == "dup_existing": + person = dict(rng.choice(existing)) + params, intended = dict(person), None + why = "this patient already has a chart" + elif kind == "dup_resend": + originals = [s for s in sent if truth[s[0].item_id].intended is not None] + if originals: + orig, orig_person = rng.choice(originals) + person, params, intended = dict(orig_person), dict(orig.params), None + why = f"a resend of {orig.item_id}" + else: + kind = "clean" + elif kind == "ambiguous_same_person": + person = dict(rng.choice(existing)) + params, intended = dict(person), None + y, m, d = person["DOB"].split("-") + params["DOB"] = f"{y}-{m}-{int(d) % 28 + 1:02d}" + why = "same person as an existing chart; the date of birth has a typo" + elif kind == "ambiguous_new_person": + other = rng.choice(existing) + person["fname"], person["lname"] = other["fname"], other["lname"] + person["email"] = ( + f"{other['fname'].lower()}.{other['lname'].lower()}.{seq}@example.invalid" + ) + params, intended = dict(person), dict(person) + why = "same name as an existing chart, a different person" + elif kind == "missing_required": + params.pop("DOB") + intended = None + why = "no date of birth; return the referral to the sender" + elif kind == "missing_optional": + params["phone_home"] = "" + person["phone_home"] = "" + intended = dict(person) + why = "no home phone; register without one" + elif kind == "malformed_dob": + y, m, d = person["DOB"].split("-") + params["DOB"] = f"{m}/{d}/{y}" + why = "date of birth written MM/DD/YYYY; the true date is ISO" + elif kind == "malformed_case": + params["fname"] = f" {person['fname'].upper()} " + params["lname"] = person["lname"].upper() + " " + why = "names in capitals with stray spaces" + elif kind == "concurrent_same": + intended = None + inject.append( + { + "event": "other_clerk_creates", + "person": dict(person), + "when": "before_item", + } + ) + why = "another clerk registered this patient moments earlier" + elif kind == "concurrent_other": + inject.append( + {"event": "other_clerk_edits_unrelated", "when": "during_item"} + ) + why = "another clerk edits an unrelated chart meanwhile" + elif kind == "session_expiry": + inject.append({"event": "force_logout", "when": "before_item"}) + why = "sessions ended just before the item" + elif kind == "slow_save": + inject.append( + { + "event": "slow_save", + "seconds": rng.choice((4, 6, 8)), + "when": "during_item", + } + ) + why = "the save is slow" + elif kind == "failed_save": + inject.append({"event": "failed_save", "times": 1, "when": "during_item"}) + why = "the save fails once" + + item = WorkItem( + seq=seq, + item_id=item_id, + day=day, + app="openemr", + params=params, + source_text=_source_text(params), + ) + items.append(item) + truth[item_id] = Truth( + item_id=item_id, + seq=seq, + day=day, + exception=kind, + intended=intended, + person=person, + rationale=why, + inject=inject, + ) + sent.append((item, person)) + + drift = [ + {"day": d, "kind": k, "first_seq": d * per_day + 1} + for d, k in DRIFT_SCHEDULE + if d < days + ] + return Workload( + seed=seed, days=days, items=items, truth=truth, existing=existing, drift=drift + ) + + +def dumps(workload: Workload) -> str: + return "".join(json.dumps(r, sort_keys=True) + "\n" for r in workload.ledger_rows()) diff --git a/packages/flow/tests/test_lifecycle_benchmark.py b/packages/flow/tests/test_lifecycle_benchmark.py new file mode 100644 index 000000000..34dba0575 --- /dev/null +++ b/packages/flow/tests/test_lifecycle_benchmark.py @@ -0,0 +1,178 @@ +"""The lifecycle harness's bookkeeping, end to end on the in-memory app. + +No browser, no fixture, no model: the toy arms in ``benchmark/lifecycle/fake.py`` +drive ``FakeApp`` so the workload, the operator, the oracle, the metric and +the report can be checked in a second. +""" + +from __future__ import annotations + +import json +import sys +from pathlib import Path + +import pytest + +BENCH = Path(__file__).resolve().parents[1] / "benchmark" +sys.path.insert(0, str(BENCH)) + +from lifecycle import cost_model, metrics, run, workload # noqa: E402 +from lifecycle.arm import OperatorRequest # noqa: E402 +from lifecycle.operator import ScriptedOperator # noqa: E402 + + +def test_workload_is_seeded_and_covers_every_exception() -> None: + a = workload.generate(7, 400, 10) + b = workload.generate(7, 400, 10) + assert workload.dumps(a) == workload.dumps(b) + assert workload.dumps(workload.generate(8, 400, 10)) != workload.dumps(a) + kinds = {t.exception for t in a.truth.values()} + assert set(workload.EXCEPTION_MIX) <= kinds + assert [d["kind"] for d in a.drift] == [ + "theme", + "relabel", + "reorder", + "interstitial", + ] + # the arm never sees the truth + for item in a.items: + assert "truth" not in json.dumps(item.params) + missing = [i for i in a.items if a.truth[i.item_id].exception == "missing_required"] + assert missing and all("DOB" not in i.params for i in missing) + + +@pytest.mark.parametrize( + "claimed,oracle,wanted,exception,expected", + [ + ("done", "correct", True, "clean", "correct"), + ("stopped", "correct", False, "dup_existing", "right_stop"), + ("stopped", "absent", True, "clean", "false_stop"), + ("stopped", "absent", True, "failed_save", "fault_stop"), + ("stopped", "absent", True, "malformed_dob", "data_stop"), + ("done", "absent", True, "clean", "silent_wrong"), + ("done", "wrong", False, "dup_existing", "silent_wrong"), + ("stopped", "wrong", True, "clean", "flagged_wrong"), + ("stopped", "correct", True, "slow_save", "stopped_saved"), + ], +) +def test_classify(claimed, oracle, wanted, exception, expected) -> None: + assert ( + metrics.classify( + claimed=claimed, oracle=oracle, chart_wanted=wanted, exception=exception + ) + == expected + ) + + +def test_cost_model_bands_scale_every_charge() -> None: + half = cost_model.V1.scaled(0.5) + assert half.per_request("stop") == pytest.approx( + 0.5 * cost_model.V1.per_request("stop") + ) + assert half.version.endswith("x0.5") + assert "calibration" in cost_model.V1.to_dict() + + +def _operator(truth, look="absent"): + rows = [] + op = ScriptedOperator( + cost_model.V1, + truth, + look=lambda t: look, + do_by_hand=lambda t: {"chart_id": "9"}, + drift_active=lambda: ["relabel"], + record=rows.append, + ) + return op, rows + + +def test_operator_policy() -> None: + w = workload.generate(7, 200, 10) + dup = next(t for t in w.truth.values() if t.exception == "dup_existing") + clean = next(t for t in w.truth.values() if t.exception == "clean") + op, rows = _operator(w.truth) + assert op.ask(OperatorRequest("stop", dup.item_id, "dup", "test")).action == "skip" + first = op.ask( + OperatorRequest("stop", clean.item_id, "x", "test", {"resumable": True}) + ) + again = op.ask( + OperatorRequest("stop", clean.item_id, "x", "test", {"resumable": True}) + ) + assert (first.action, again.action) == ("resume", "do_by_hand") + assert ( + again.charged_s + == cost_model.V1.per_request("stop") + cost_model.V1.manual_entry_s + ) + ok = op.ask( + OperatorRequest( + "approval", clean.item_id, "save?", "test", {"values": dict(clean.intended)} + ) + ) + bad = op.ask( + OperatorRequest( + "approval", dup.item_id, "save?", "test", {"values": dict(dup.person)} + ) + ) + assert (ok.action, bad.action) == ("approve", "deny") + repair = op.ask( + OperatorRequest( + "repair_review", None, "relabel", "test", {"probes_passed": True} + ) + ) + assert repair.action == "accept_repair" + assert all(r["cost_model"] == cost_model.V1.version for r in rows) + op2, _ = _operator(w.truth, look="correct") + assert ( + op2.ask(OperatorRequest("reconcile", clean.item_id, "?", "t")).action + == "confirm_saved" + ) + + +def test_end_to_end_on_the_fake_app(tmp_path: Path) -> None: + out = tmp_path / "run" + assert ( + run.main( + [ + "--app", + "fake", + "--arm", + "lifecycle.fake:naive", + "--arm", + "lifecycle.fake:careful", + "--items", + "200", + "--days", + "10", + "--out", + str(out), + ] + ) + == 0 + ) + res = json.loads((out / "results.json").read_text()) + naive, careful = res["arms"]["naive"], res["arms"]["careful"] + # the naive arm claims everything done and the oracle catches its wrongs + assert naive["silent_wrong_rate"]["k"] > 0 + assert naive["operator_requests"] == {} + assert careful["silent_wrong_rate"]["k"] == 0 + assert careful["final_correct"] == careful["items"] == 200 + # a silent wrong is never a verified completion + assert naive["verified_completed"] == naive["outcomes"]["correct"] + for arm in (naive, careful): + b = arm["bands"] + assert ( + b["x0.5"]["verified_completed_per_operator_hour"] + > b["x1"]["verified_completed_per_operator_hour"] + > b["x2"]["verified_completed_per_operator_hour"] + ) + assert ( + b["x1"]["verified_completed_per_operator_hour_with_cleanup"] + <= b["x1"]["verified_completed_per_operator_hour"] + ) + report = (out / "REPORT.md").read_text() + assert "Verified completed items per operator-hour" in report + assert "No timings from real operators" in report + # the ledger alone reproduces the results + from lifecycle.report import results + + assert json.loads(json.dumps(results(out), sort_keys=True)) == res From 1560d4fa8fbfd7a023e91d0b35cf4af5a2a5f520 Mon Sep 17 00:00:00 2001 From: abrichr Date: Tue, 20 Oct 2026 13:44:30 -0400 Subject: [PATCH 02/16] Lifecycle: OpenAdapt arm, OpenEMR adapter fixes, README, stops export The OpenAdapt arm runs the certified referral program on the governed Standard path (or one CLI run per item with mode=cli) and records what the product refused. Trigger SQL uses a delimiter; ports and project are overridable; the fixture is in Env.extra; arms may report maintenance phases inside an item. Workload 2026-10-20.2 widens the surname pool. Co-Authored-By: Claude Opus 5.5 --- packages/flow/benchmark/lifecycle/README.md | 104 ++ packages/flow/benchmark/lifecycle/apps.py | 15 +- .../flow/benchmark/lifecycle/openadapt_arm.py | 953 ++++++++++++++++++ packages/flow/benchmark/lifecycle/report.py | 37 + packages/flow/benchmark/lifecycle/run.py | 2 +- packages/flow/benchmark/lifecycle/workload.py | 20 +- 6 files changed, 1117 insertions(+), 14 deletions(-) create mode 100644 packages/flow/benchmark/lifecycle/README.md create mode 100644 packages/flow/benchmark/lifecycle/openadapt_arm.py diff --git a/packages/flow/benchmark/lifecycle/README.md b/packages/flow/benchmark/lifecycle/README.md new file mode 100644 index 000000000..7b585c503 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/README.md @@ -0,0 +1,104 @@ +# Lifecycle soak: does OpenAdapt remove work under ordinary business conditions? + +A "synthetic customer": a seeded stream of referrals is worked through on a +real local OpenEMR 8.0.0.3, with duplicates, bad source documents, other +clerks, forced logouts, slow and failed saves and four UI changes, while a +scripted operator answers every stop. The result is one number with its +parts, computed only from the run's ledger. + +**Verified completed items per operator-hour**: items whose final state the +independent oracle judges right and that the operator did not do by hand, +divided by every operator hour the run charged (setup, per-item requests, +maintenance after UI changes). + +Reported beside it, never folded in: + +- setup minutes (teach, compile, qualify, admit); +- per-item operator minutes (approvals, stops, reconciliations, repair reviews); +- maintenance minutes after each UI change; +- false-stop rate: stops with nothing written on items whose data was right + and that carried no injected fault, over all such items (Wilson 95% CI), and + how many of them happened with a UI change in force; +- silent-wrong rate: items the arm claimed done that the oracle judged wrong, + over all items it claimed done; the oracle is a direct SQL read of + `patient_data` from inside the database container, never the product's + verdict; +- wall time, host load, model calls and list-price cost; +- the same headline if every silent wrong is later found and fixed + (reconcile + re-entry per silent wrong), and the all-manual baseline + (every item entered by hand). + +## Files + +| File | What it is | +|---|---| +| `arm.py` | The interface every arm implements (`lifecycle-arm/1`) | +| `workload.py` | The seeded referral stream, its exception mix and ground truth | +| `apps.py` | The OpenEMR adapter: reset, SQL oracle channel, every injected event | +| `oracle.py` | The independent judge (per item, and the item's final state) | +| `operator.py` | The scripted operator and its decision rules | +| `cost_model.py` | Seconds charged per operator touch, versioned, with its calibration note | +| `metrics.py` | The metric and its parts, from the ledger | +| `report.py` | `results.json`, `REPORT.md` and `stops.jsonl` from the ledger | +| `run.py` | The runner | +| `openadapt_arm.py` | The OpenAdapt arm | +| `fake.py` | An in-memory app and two toy arms, for tests and for checking a new arm | +| `results//` | Committed runs: `ledger.jsonl`, `workload.jsonl`, `results.json`, `REPORT.md`, `stops.jsonl` | + +## Run it + +```bash +cd packages/flow/benchmark +python -m lifecycle.apps up # the lifecycle OpenEMR copy, ports 9420/9421 +python -m lifecycle.run --app openemr --seed 7 --items 300 --days 10 \ + --arm lifecycle.openadapt_arm:make --out lifecycle/results/ +python -m lifecycle.report lifecycle/results/ # recompute from the ledger +``` + +`--app fake --arm lifecycle.fake:careful` runs the whole pipeline in a second +with no fixture. Two runs with the same seed see the same items, events and +UI changes, in the same order. + +## The workload + +Each item is one new-patient referral (the 12 fields of OpenEMR's New +Patient form). About a quarter carry an exception (`workload.py` has the +exact mix and the right outcome of each): duplicates of existing charts, +resent referrals, same-name patients who are and are not the same person, a +missing date of birth, a missing home phone, a US-format date of birth, names +in capitals with stray spaces, another clerk registering the same patient +first, another clerk editing an unrelated chart mid-item, a forced logout, a +slow save and a save that fails once. The mix is stress-weighted to exercise +every kind several times, not a measured intake distribution. + +UI changes are applied in the app server, so every client sees them, and +stay on to the end of the run: a theme (day 2), a relabel of both create +buttons (day 4), a reordered demographics layout (day 6) and a notice that +must be dismissed before the form takes input (day 8). A version bump is not +run: the fixture pins one OpenEMR image. + +Every injected event, with exactly what was changed, is a row in the ledger. + +## The operator + +`operator.py` answers every request from the ledger's truth and from a +look at the app, never from the arm's verdict, and records the rule that +decided. Requests and their charges come from `cost_model.py`. No real +operator timings exist yet, so every charge is an assumption, stated in the +model and shown at x0.5 and x2. + +## Adding an arm + +Implement `arm.Arm` and pass `--arm module:factory`. Route every human touch +through `operator.ask`; never charge yourself and never judge yourself. +`Env.extra` carries the fixture's ports and read-only and actor REST +sessions; arms never get the oracle's SQL. Raise `arm.SpendCapReached` to +pause an arm at a spend cap. + +## Limits + +- One machine, shared with other work; every item row records the 1-minute + load. Wall times are not comparable across runs at different loads. +- Synthetic data, a synthetic workload mix, and assumed operator costs. +- The OpenAdapt arm's configuration, and what the product refused, is in + each run's `results.json` (`arms..describe`) and its report. diff --git a/packages/flow/benchmark/lifecycle/apps.py b/packages/flow/benchmark/lifecycle/apps.py index 4a97259da..a79a8fd14 100644 --- a/packages/flow/benchmark/lifecycle/apps.py +++ b/packages/flow/benchmark/lifecycle/apps.py @@ -40,9 +40,11 @@ HERE = Path(__file__).resolve().parent BENCH = HERE.parent -PROJECT = "openadapt-openemr-lifecycle" -UI_PORT = "9421" -API_PORT = "9420" +#: Another session can run its own copy: set these three (and +#: LIFECYCLE_OPENEMR_STATE) to its own project, ports and state folder. +PROJECT = os.environ.get("LIFECYCLE_OPENEMR_PROJECT", "openadapt-openemr-lifecycle") +UI_PORT = os.environ.get("LIFECYCLE_UI_PORT", "9421") +API_PORT = os.environ.get("LIFECYCLE_API_PORT", "9420") WEBROOT = "/var/www/localhost/htdocs/openemr" FORM = f"{WEBROOT}/interface/new/new_comprehensive.php" POPUP = f"{WEBROOT}/interface/new/new_search_popup.php" @@ -281,6 +283,7 @@ def extra(self) -> dict[str, Any]: "api_port": int(API_PORT), "rest_read_session": lambda: self.fx.token_session("oracle"), "rest_write_session": lambda: self.fx.token_session("actor"), + "fixture": self.fx, } def point_hooks_here(self) -> None: @@ -447,9 +450,11 @@ def inject( "CREATE TABLE IF NOT EXISTS lifecycle.fault_budget " "(k VARCHAR(190) PRIMARY KEY, n INT) ENGINE=Aria TRANSACTIONAL=0; " f"REPLACE INTO lifecycle.fault_budget VALUES ('{email}', {int(inj.get('times', 0))}); " - "DROP TRIGGER IF EXISTS openemr.oa_lifecycle_fault; " + "DROP TRIGGER IF EXISTS openemr.oa_lifecycle_fault;\n" + "DELIMITER //\n" "CREATE TRIGGER openemr.oa_lifecycle_fault BEFORE INSERT ON openemr.patient_data " - f"FOR EACH ROW BEGIN {body} END;" + f"FOR EACH ROW BEGIN {body} END//\n" + "DELIMITER ;\n" ) return {"event": event, "trigger": body} raise ValueError(f"unknown injection {event}") diff --git a/packages/flow/benchmark/lifecycle/openadapt_arm.py b/packages/flow/benchmark/lifecycle/openadapt_arm.py new file mode 100644 index 000000000..0f418c492 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/openadapt_arm.py @@ -0,0 +1,953 @@ +"""The OpenAdapt arm: the certified referral program, run the way a customer runs it. + +Every item is one ``openadapt-flow run`` (a subprocess, the CLI a customer +uses) in an already signed-in Chromium that the arm keeps open, the way a +clerk's browser stays signed in all day (``--browser-cdp-endpoint``). The +configuration is the production one as far as the CLI allows it here: + +- durable runs (``--durable``): a stop pauses at the last verified step; +- per-item approval in ``problems_only`` mode; +- the REST record check from ``benchmark/openemr_local/verify.yaml`` (the + read-only OAuth client) confirming every save; +- self-repair on, with the Claude bridge repair agent from + ``benchmark/auto_repair`` (only when a model key file is given); +- the ``clinical-write`` certification policy. + +What the CLI refused is recorded in ``describe()["refused_features"]``, +verbatim where the product printed it. Every person-facing step goes through +the product's own commands: ``item-approval show|approve|decline``, +``approve`` and ``resume``. The arm never reads the oracle. +""" + +from __future__ import annotations + +import json +import os +import re +import shutil +import subprocess +import sys +import time +from pathlib import Path +from typing import Any, Optional + +from .arm import Env, ItemResult, OperatorRequest, WorkItem + +HERE = Path(__file__).resolve().parent +FLOW = HERE.parents[1] +DEFAULT_BUNDLE = Path.home() / "oa/scratch/quickstart-openemr/e2e-2/bundle" +CERTIFIED_DIGEST = "ec096afa2b614326b00ec3155f256041c19d86f3998761ce9d772cfd911460b6" +SIGN_IN_POLL_WAIT_S = 45.0 +BACKGROUND_POLL = "execute_background_services.php" + + +def _cli() -> list[str]: + return [sys.executable, "-m", "openadapt_flow"] + + +def _env(extra: Optional[dict[str, str]] = None) -> dict[str, str]: + env = dict(os.environ) + env["OPENADAPT_NO_LAUNCHER_CHECK"] = "1" + env["PYTHONPATH"] = os.pathsep.join( + [str(FLOW / "benchmark"), str(FLOW), env.get("PYTHONPATH", "")] + ).rstrip(os.pathsep) + env.update(extra or {}) + return env + + +class _As: + """The fixture, signed in as one of its users.""" + + def __init__(self, fx: Any, user: str) -> None: + self.ui_base_url = fx.ui_base_url + self._values = {**fx._runtime_values(), "OPENEMR_ACTOR_USER": user} + + def _runtime_values(self) -> dict[str, str]: + return dict(self._values) + + +class OpenAdaptArm: + name = "openadapt" + + def __init__(self, options: dict[str, Any]) -> None: + self.options = options + self.bundle_src = Path(options.get("bundle") or DEFAULT_BUNDLE) + self.cdp_port = int(options.get("cdp_port", 9425)) + self.key_file = options.get("repair_key_file") + self.approval_wait = int(options.get("approval_wait_s", 600)) + self.item_timeout = float(options.get("item_timeout_s", 1500)) + self.user = options.get("user", "oa_clerk1") + #: "governed": the Standard governed path the certified runs use + #: (in-process Replayer with the OpenEMR backend). "cli": one + #: ``openadapt-flow run`` per item, attached over CDP. + self.mode = options.get("mode", "governed") + self.refused: list[dict[str, str]] = [] + self._pw: Any = None + self._browser: Any = None + self.page: Any = None + self.fx: Any = None + + # -- description ----------------------------------------------------------- + + def describe(self) -> dict[str, Any]: + if self.mode == "governed": + return { + "kind": "openadapt", + "mode": "governed", + "surface": "the Standard governed run the certified referral runs use: " + "run gate on the certified bundle under clinical-write, governed " + "authorization built from it, durable, settled-state detection, the " + "REST record check (verify.yaml), the OpenEMR browser backend " + "(qualify.campaign._run)", + "bundle_digest": CERTIFIED_DIGEST, + "profile": "standard", + "durable": True, + "operator_surface": "the run's report.json; a stop is re-run from a " + "fresh form after the operator checks the record", + "refused_features": self.refused, + } + return { + "kind": "openadapt", + "mode": "cli", + "surface": "openadapt-flow run (CLI subprocess per item), attached to a " + "signed-in Chromium over CDP", + "bundle_digest": CERTIFIED_DIGEST, + "durable": True, + "approval_mode": "problems_only", + "policy": "clinical-write", + "record_check": "REST, read-only OAuth client (verify.yaml)", + "self_repair": bool(self.key_file), + "repair_agent": "benchmark.auto_repair.measure_mockmed:BridgeRepairAgent " + "(claude-sonnet-5-5)" + if self.key_file + else None, + "refused_features": self.refused, + } + + # -- browser ------------------------------------------------------------------- + + def _launch(self) -> None: + if self.mode == "governed": + self.backend, self._close_backend = ( + self._demo().OpenEMRPlaywrightBackend.launch( + self.fx.ui_base_url, headless=True + ) + ) + self.page = self.backend.page + return + from playwright.sync_api import sync_playwright + + self._pw = sync_playwright().start() + self._browser = self._pw.chromium.launch( + headless=True, args=[f"--remote-debugging-port={self.cdp_port}"] + ) + context = self._browser.new_context(viewport={"width": 1280, "height": 800}) + self.page = context.new_page() + + def _demo(self) -> Any: + from benchmark.openemr_api_tier.common import load_demo + + return load_demo() + + def _signed_in(self) -> bool: + try: + return bool( + self.page.evaluate( + "() => typeof window.navigateTab === 'function' && " + "!document.querySelector('#authUser')" + ) + ) + except Exception: # noqa: BLE001 - a crashed page is signed out + return False + + def sign_in(self) -> None: + demo = self._demo() + polled = {"seen": False} + + def saw(req: Any) -> None: + if BACKGROUND_POLL in req.url: + polled["seen"] = True + + self.page.context.on("requestfinished", saw) + backend = getattr(self, "backend", None) or _DemoBackend(self.page) + demo._preauthenticate_browser(backend, _As(self.fx, self.user)) + deadline = time.monotonic() + SIGN_IN_POLL_WAIT_S + while not polled["seen"] and time.monotonic() < deadline: + self.page.wait_for_timeout(250) + self.page.wait_for_timeout(1000) + + def open_form(self) -> None: + """A blank New Patient form in the tab shell, no chart open.""" + + demo, page = self._demo(), self.page + if page.evaluate( + "() => !!(window.app_view_model && app_view_model.application_data.patient())" + ): + with page.expect_response( + lambda r: "unset_session_ajax.php" in r.url, timeout=30_000 + ): + page.evaluate("() => clearPatient(false)") + page.wait_for_function( + "() => !app_view_model.application_data.patient()", timeout=30_000 + ) + page.evaluate( + "({path, name}) => { window.navigateTab(path, name); " + "window.activateTabByName(name, true); }", + {"path": demo.FORM_PATH, "name": demo.FORM_FRAME_NAME}, + ) + frame = demo._form_frame(page) + frame.wait_for_load_state("load", timeout=60_000) + frame.locator("#form_fname").wait_for(state="visible", timeout=60_000) + page.wait_for_timeout(500) + + def _ready(self) -> dict[str, Any]: + """Signed in at a blank form. After a stop, or when the session has + ended, the clerk starts again from the sign-in page (which also + closes a duplicate-check dialog a stopped run left open); that is + part of starting the next item, not a person's task.""" + + note: dict[str, Any] = {} + if self._signed_in() and not getattr(self, "_dirty", False): + try: + self.open_form() + return note + except Exception as exc: # noqa: BLE001 - e.g. the session ended + note["open_form_error"] = f"{type(exc).__name__}: {exc}"[:200] + note["signed_in_again"] = True + self._dirty = False + self.page.goto(self.fx.ui_base_url) + if not self._signed_in(): + self.sign_in() + else: + self.page.wait_for_timeout(1500) + self.open_form() + return note + + # -- setup --------------------------------------------------------------------- + + def setup(self, env: Env, operator: Any) -> list[dict[str, Any]]: + from benchmark.lifecycle.apps import make_fixture + + self.env = env + self.fx = make_fixture(Path(env.extra["fixture_state"])) + self.work = env.workdir + self.bundle = self.work / "bundle" + if self.bundle.exists(): + shutil.rmtree(self.bundle) + shutil.copytree(self.bundle_src, self.bundle) + manifest = json.loads((self.bundle / "manifest.json").read_text()) + digest = manifest.get("content_digest") + if digest != CERTIFIED_DIGEST: + raise RuntimeError(f"bundle digest {digest} is not the certified program") + if self.mode == "governed": + return self._setup_governed() + self._write_config() + if not self.key_file: + self.refused.append( + { + "feature": "self_repair", + "reason": "no repair model key file was given to this run, so no repair " + "agent is configured (repair is on only with an agent)", + } + ) + self._try_seal() + self._launch() + self.page.goto(self.fx.ui_base_url) + self.sign_in() + self._probe_standard() + # Pipelined read-back is refused under a durable run; recorded from the + # compatibility matrix and confirmed by each report's read-back mode. + from openadapt_flow.compatibility import cell + + c = cell("pipelined_readback", "durable") + self.refused.append({"feature": "pipelined_readback", "reason": c.reason or ""}) + phases = self._setup_phases() + return phases + + def _write_config(self) -> None: + # The record check reads the REST API over the fixture's loopback HTTP + # port: the HTTPS port's certificate is self-signed and the REST + # verifier takes no CA option. + api = self.fx.ui_base_url + cfg = { + "backend": { + "kind": "web", + "url": self.fx.ui_base_url, + "browser_cdp_endpoint": f"http://127.0.0.1:{self.cdp_port}", + }, + "effects": { + "kind": "rest", + "base_url": api, + "records_path": "/apis/default/api/patient?_limit=1000", + "records_key": "data", + "auth": {"bearer_env": "SOR_BEARER_TOKEN"}, + }, + "runtime": {"approval_mode": "problems_only"}, + } + if self.key_file: + cfg["repair"] = { + "agent": "benchmark.auto_repair.measure_mockmed:BridgeRepairAgent", + "screen_access_by": "lifecycle-soak (synthetic data)", + "model_provider": "anthropic", + "model_key_file": str(self.key_file), + "store": str(self.work / "repair-store"), + "approval_wait_s": self.approval_wait, + } + import yaml + + self.config = self.work / "deploy.yaml" + self.config.write_text(yaml.safe_dump(cfg, sort_keys=False)) + + def _setup_governed(self) -> list[dict[str, Any]]: + from openadapt_flow.compatibility import cell + from openadapt_flow.ir import Workflow + from openadapt_flow.qualify.campaign import _default_hooks, lookup_plan + from openadapt_flow.qualify.config import load_verify_config + + config = load_verify_config(FLOW / "benchmark/openemr_local/verify.yaml") + surface, structure = lookup_plan(config) + self.gov = { + "workflow": Workflow.load(self.bundle), + "config": config, + "hooks": _default_hooks(config, None), + "lookup": {"use_structural": structure, "deployment_surface": surface}, + } + for feature, reason in ( + ( + "per_item_approval", + "the governed run path takes no approval gate (only " + "`openadapt-flow run` wires one), so no save is put to a person", + ), + ( + "self_repair", + "the governed run path wires no repair agent (only " + "`openadapt-flow run` does)", + ), + ("pipelined_readback", cell("pipelined_readback", "durable").reason or ""), + ( + "cli_run", + "`openadapt-flow run` cannot run this program: with an attached " + "signed-in browser every item halts at step_000 (structured identity of the " + "title field not found by the generic web backend); without one the browser " + "starts signed out. Measured in the CLI smoke run.", + ), + ( + "signed_admission", + "not issued for this program yet; the run gate on the " + "certified bundle authorizes each run, as in the certified referral runs", + ), + ): + self.refused.append({"feature": feature, "reason": reason}) + self._launch() + self.page.goto(self.fx.ui_base_url) + self.sign_in() + return self._setup_phases() + + def _run_governed(self, item: WorkItem, run_dir: Path, n: int) -> Any: + import dataclasses + + from openadapt_flow.qualify.campaign import TrialContext, _run + from openadapt_flow.run_gate import ( + build_runtime_authorization, + evaluate_run_gate, + ) + + g = self.gov + hooks = dataclasses.replace( + g["hooks"], open_session=lambda: (self.backend, lambda: None) + ) + params = {k: str(v) for k, v in item.params.items()} + ctx = TrialContext( + case_id="lifecycle", + expected="VERIFIED", + oracle_kind="exact_record", + trial=n, + trial_dir=run_dir, + run_dir=run_dir, + run_id=f"lifecycle-{item.item_id}-{n}-{int(time.time())}", + params=params, + certified_run=True, + state={"policy": "clinical-write"}, + ) + + def authorize(_verifier: Any, gate_kwargs: dict[str, Any]) -> Any: + gate = evaluate_run_gate(g["workflow"], **gate_kwargs) + if not gate.passed: + raise RuntimeError("run gate refused: " + gate.render()[-300:]) + return build_runtime_authorization(g["workflow"], gate, params=params) + + report, _ = _run( + workflow=g["workflow"], + bundle_dir=self.bundle, + config=g["config"], + hooks=hooks, + ctx=ctx, + setup=type("Setup", (), {"observer": None})(), # type: ignore[arg-type] + authorize=authorize, + fault_driver=None, + marks={"start": time.time()}, + lookup=g["lookup"], + ) + return json.loads(report.model_dump_json()) + + def _item_governed(self, item: WorkItem, operator: Any) -> ItemResult: + t0 = time.time() + idir = self.work / "items" / item.item_id + idir.mkdir(parents=True, exist_ok=True) + detail: dict[str, Any] = {"log": []} + log = detail["log"] + calls, cost, report, run_dir = 0, 0.0, {}, idir / "run-1" + for n in (1, 2): + run_dir = idir / f"run-{n}" + try: + detail.update(self._ready()) + report = self._run_governed(item, run_dir, n) + except Exception as exc: # noqa: BLE001 - a crash is a stop + report = { + "execution_outcome": "ERROR", + "halt": {"reason": f"{type(exc).__name__}: {exc}"[:300]}, + } + calls += int(report.get("model_calls") or 0) + cost += float(report.get("est_model_cost_usd") or 0.0) + tx = str(report.get("transaction_outcome") or "") + if tx == "VERIFIED": + return self._result( + item, "done", report, t0, calls, cost, detail, run_dir + ) + self._dirty = True + halt = report.get("halt") or {} + unsure = tx == "RECONCILIATION_REQUIRED" + reason = ( + f"{report.get('execution_outcome')}/{tx}: {halt.get('state_id', '')} " + f"{str(halt.get('reason', ''))[:200]}" + ) + decision = operator.ask( + OperatorRequest( + kind="reconcile" if unsure else "stop", + item_id=item.item_id, + reason=reason.strip(), + surface="report.json; re-run from a fresh form", + detail={ + "resumable": n == 1, + "transaction_outcome": tx, + "halt_step": halt.get("state_id"), + }, + ) + ) + log.append({"run": n, "stop": reason.strip(), "decision": decision.action}) + if decision.action != "resume": + break + return self._result(item, "stopped", report, t0, calls, cost, detail, run_dir) + + def _try_seal(self) -> None: + """Encrypt the bundle at rest, as the default gated path requires. + + ``openadapt-flow seal`` with a fresh local key; when it refuses, the + refusal is recorded verbatim and the run uses ``--allow-unencrypted``. + """ + + import base64 + import secrets + + src = self.work / "seal-source" + dest = self.work / "sealed-bundle" + for d in (src, dest): + if d.exists(): + shutil.rmtree(d) + shutil.copytree(self.bundle, src) + # A benchmark sidecar Flow does not know; seal refuses unknown files. + (src / "benchmark-contract.json").unlink(missing_ok=True) + key = base64.b64encode(secrets.token_bytes(32)).decode() + proc = subprocess.run( + [*_cli(), "seal", str(src), "-o", str(dest)], + capture_output=True, + text=True, + env=_env({"OPENADAPT_BUNDLE_KEY": key}), + timeout=600, + ) + out = (proc.stdout + proc.stderr).strip() + (self.work / "seal-output.txt").write_text(out + "\n") + if proc.returncode == 0 and (dest / "manifest.json").exists(): + self.bundle, self.bundle_key = dest, key + self.unencrypted = False + else: + self.bundle_key, self.unencrypted = None, True + line = next((x for x in out.splitlines() if "REFUSED" in x), out[-300:]) + self.refused.append( + { + "feature": "encrypted_bundle", + "reason": line.strip() + " (the run uses --allow-unencrypted)", + } + ) + + def _token_env(self) -> dict[str, str]: + session = self.fx.token_session("oracle") + token = session.headers["Authorization"].split(" ", 1)[1] + session.close() + env = {"SOR_BEARER_TOKEN": token} + if getattr(self, "bundle_key", None): + env["OPENADAPT_BUNDLE_KEY"] = self.bundle_key + return env + + def _run_cmd( + self, + run_dir: Path, + params: Path, + *, + profile: Optional[str] = None, + dry_run: bool = False, + ) -> list[str]: + cmd = [ + *_cli(), + "run", + str(self.bundle), + "--config", + str(self.config), + "--url", + self.fx.ui_base_url, + "--run-dir", + str(run_dir), + "--params-file", + str(params), + "--durable", + "--approval-mode", + "problems_only", + "--approval-wait", + str(self.approval_wait), + "--policy", + "clinical-write", + ] + if profile: + cmd += ["--profile", profile] + elif getattr(self, "unencrypted", False): + cmd.append("--allow-unencrypted") + if dry_run: + cmd.append("--dry-run") + return cmd + + def _probe_standard(self) -> None: + """Ask the CLI for the Standard profile once and record its answer. + + A real run (a dry run stops before the admission check), pointed at a + port where nothing listens, so it can write nothing even if admitted. + """ + + import yaml + + probe = self.work / "standard-probe" + probe.mkdir(parents=True, exist_ok=True) + params = probe / "params.json" + params.write_text(json.dumps({"fname": "Probe"})) + cfg = yaml.safe_load(self.config.read_text()) + cfg["backend"] = {"kind": "web", "url": "http://127.0.0.1:9439"} + probe_cfg = probe / "deploy.yaml" + probe_cfg.write_text(yaml.safe_dump(cfg, sort_keys=False)) + cmd = self._run_cmd(probe / "run", params, profile="standard") + cmd[cmd.index("--config") + 1] = str(probe_cfg) + cmd[cmd.index("--url") + 1] = "http://127.0.0.1:9439" + proc = subprocess.run( + cmd, + capture_output=True, + text=True, + env=_env(self._token_env()), + timeout=600, + cwd=self.work, + ) + out = proc.stdout + proc.stderr + (probe / "output.txt").write_text(out) + m = re.search(r"[^\n]*signed qualification admission[^\n]*", out) + self.refused.append( + { + "feature": "standard_profile", + "reason": ( + m.group(0).strip() if m else f"exit {proc.returncode}: {out[-300:]}" + ), + } + ) + + def _setup_phases(self) -> list[dict[str, Any]]: + """Teach, compile, qualify and admit, from the certified program's own + records (they were not re-run in this soak).""" + + phases: list[dict[str, Any]] = [] + demo = self.bundle_src.parent / "demonstration.jsonl" + teach_s = None + if demo.exists(): + ts = [ + json.loads(line).get("timestamp") + for line in demo.read_text().splitlines() + if line.strip() + ] + ts = [t for t in ts if isinstance(t, (int, float))] + if len(ts) > 1: + teach_s = max(ts) - min(ts) + phases.append( + { + "phase": "teach", + "wall_s": teach_s or 36.8, + "attended_s": teach_s or 36.8, + "model_calls": 0, + "cost_usd": 0.0, + "source": "the demonstration's recorded duration", + } + ) + phases.append( + { + "phase": "compile", + "wall_s": 12.2, + "attended_s": 0.0, + "model_calls": 0, + "cost_usd": 0.0, + "source": "quickstart e2e-2 log (compile 12.2 s)", + } + ) + phases.append( + { + "phase": "qualify", + "wall_s": 549.6, + "attended_s": 0.0, + "model_calls": 0, + "cost_usd": 0.0, + "source": "qual10 QUALIFICATION.md: 18 trials, 549.6 s, unattended", + } + ) + phases.append( + { + "phase": "admit", + "wall_s": 0.0, + "attended_s": 0.0, + "model_calls": 0, + "cost_usd": 0.0, + "source": "fixed charge (cost model admit_s); the signed admission " + "itself does not exist yet", + } + ) + return phases + + # -- one item ---------------------------------------------------------------------- + + def _approvals(self, run_dir: Path) -> list[dict[str, Any]]: + if not (run_dir / "item-approval").exists(): + return [] + proc = subprocess.run( + [*_cli(), "item-approval", "show", str(run_dir)], + capture_output=True, + text=True, + env=_env(), + timeout=300, + ) + if proc.returncode != 0: + return [] + try: + data = json.loads(proc.stdout) + except ValueError: + return [] + if isinstance(data, dict): + data = data.get("requests", []) + return [r for r in data if isinstance(r, dict)] + + def _answer( + self, + item: WorkItem, + run_dir: Path, + req: dict[str, Any], + operator: Any, + log: list[dict[str, Any]], + ) -> None: + rid = req.get("request_id") or req.get("id") + sha = req.get("request_sha256") or req.get("digest") or req.get("sha256") + text = json.dumps(req) + is_repair = "repair" in text.lower() + values = {} + for f in req.get("fields") or []: + if isinstance(f, dict): + key = f.get("param") or f.get("name") or f.get("label") + if key: + values[str(key)] = str(f.get("value", "")) + kind = "repair_review" if is_repair else "approval" + decision = operator.ask( + OperatorRequest( + kind=kind, + item_id=item.item_id, + reason=str( + req.get("reason") or req.get("workflow_name") or "save approval" + ), + surface="cli:openadapt-flow item-approval", + detail={ + "values": values or dict(item.params), + "probes_passed": is_repair, + "request_id": rid, + }, + ) + ) + verb = ( + "approve" if decision.action in ("approve", "accept_repair") else "decline" + ) + cmd = [ + *_cli(), + "item-approval", + verb, + str(run_dir), + "--request-id", + str(rid), + "--request-sha256", + str(sha), + "--decided-by", + "human", + "--route", + "desktop_run_it", + "--unauthenticated", + ] + if verb == "decline": + cmd += ["--reason", "wrong_values"] + proc = subprocess.run( + cmd, capture_output=True, text=True, env=_env(), timeout=300 + ) + log.append( + { + "answered": rid, + "verb": verb, + "kind": kind, + "exit": proc.returncode, + "stderr": proc.stderr[-300:], + } + ) + + def _drive( + self, + cmd: list[str], + run_dir: Path, + item: WorkItem, + operator: Any, + log: list[dict[str, Any]], + ) -> int: + """Run one CLI command; answer every approval it asks for meanwhile.""" + + out = open(run_dir.parent / f"{run_dir.name}-{len(log)}.log", "w") + proc = subprocess.Popen( + cmd, + stdout=out, + stderr=subprocess.STDOUT, + env=_env(self._token_env()), + cwd=self.work, + ) + answered: set[str] = set() + deadline = time.monotonic() + self.item_timeout + while proc.poll() is None: + if time.monotonic() > deadline: + proc.kill() + log.append({"timeout": True}) + break + for req in self._approvals(run_dir): + rid = str(req.get("request_id") or req.get("id")) + status = str(req.get("status", "")).lower() + if rid in answered or status in ("answered", "consumed", "expired"): + continue + answered.add(rid) + self._answer(item, run_dir, req, operator, log) + time.sleep(2.0) + out.close() + code = proc.wait() + text = Path(out.name).read_text(errors="replace") + for line in text.splitlines(): + if line.startswith("Auto-repair is off for this run:") and not any( + r["feature"] == "self_repair" for r in self.refused + ): + self.refused.append({"feature": "self_repair", "reason": line.strip()}) + return code + + def _report(self, run_dir: Path) -> dict[str, Any]: + path = run_dir / "report.json" + if not path.exists(): + return {} + try: + return json.loads(path.read_text()) + except ValueError: + return {} + + def run_item(self, item: WorkItem, env: Env, operator: Any) -> ItemResult: + if self.mode == "governed": + return self._item_governed(item, operator) + t0 = time.time() + idir = self.work / "items" / item.item_id + idir.mkdir(parents=True, exist_ok=True) + run_dir = idir / "run" + params = idir / "params.json" + params.write_text(json.dumps(item.params)) + params.chmod(0o600) + detail: dict[str, Any] = {"log": []} + log = detail["log"] + try: + detail.update(self._ready()) + except Exception as exc: # noqa: BLE001 - the session could not be opened + detail["session_error"] = f"{type(exc).__name__}: {exc}"[:300] + self._drive(self._run_cmd(run_dir, params), run_dir, item, operator, log) + report = self._report(run_dir) + model_calls = int(report.get("model_calls") or 0) + cost = float(report.get("est_model_cost_usd") or 0.0) + + for attempt in range(2): + tx = str(report.get("transaction_outcome") or "") + ex = str(report.get("execution_outcome") or "") + if tx == "VERIFIED": + return self._result( + item, "done", report, t0, model_calls, cost, detail, run_dir + ) + esc = {} + if (run_dir / "pending_escalation.json").exists(): + try: + esc = json.loads((run_dir / "pending_escalation.json").read_text()) + except ValueError: + esc = {} + category = str(esc.get("category", "")) + unsure = tx == "RECONCILIATION_REQUIRED" or category.startswith( + ("delivery_uncertain", "effect_") + ) + halt = report.get("halt") or {} + reason = ( + f"{tx or ex or 'no report'}: {category} " + f"{halt.get('state_id', '')} {str(halt.get('reason', ''))[:200]}" + ) + decision = operator.ask( + OperatorRequest( + kind="reconcile" if unsure else "stop", + item_id=item.item_id, + reason=reason.strip(), + surface="cli:openadapt-flow explain/approve/resume", + detail={ + "resumable": bool(esc), + "category": category, + "transaction_outcome": tx, + "halt_step": halt.get("state_id"), + }, + ) + ) + log.append({"stop": reason.strip(), "decision": decision.action}) + if decision.action != "resume": + return self._result( + item, "stopped", report, t0, model_calls, cost, detail, run_dir + ) + # The person resolves the stop, approves, and resumes the run. + try: + self._ready_for_resume() + except Exception as exc: # noqa: BLE001 + detail["resume_session_error"] = f"{type(exc).__name__}: {exc}"[:300] + subprocess.run( + [ + *_cli(), + "approve", + str(run_dir), + "--approver", + "operator", + "--resolution", + "checked the item and resumed", + ], + capture_output=True, + text=True, + env=_env(), + timeout=300, + ) + self._drive( + [ + *_cli(), + "resume", + str(run_dir), + "--config", + str(self.config), + "--url", + self.fx.ui_base_url, + "--params-file", + str(params), + ], + run_dir, + item, + operator, + log, + ) + report = self._report(run_dir) + model_calls += int(report.get("model_calls") or 0) + cost += float(report.get("est_model_cost_usd") or 0.0) + log.append({"resumed": report.get("transaction_outcome")}) + return self._result( + item, "stopped", report, t0, model_calls, cost, detail, run_dir + ) + + def _ready_for_resume(self) -> None: + """Before a resume: if the session ended, sign in again and open the + form; otherwise leave the page where the run paused.""" + + if not self._signed_in(): + self.page.goto(self.fx.ui_base_url) + self.sign_in() + self.open_form() + + def _result( + self, + item: WorkItem, + claimed: str, + report: dict[str, Any], + t0: float, + calls: int, + cost: float, + detail: dict[str, Any], + run_dir: Path, + ) -> ItemResult: + halt = report.get("halt") or {} + approval = report.get("approval") or {} + detail.update( + { + "execution_outcome": report.get("execution_outcome"), + "transaction_outcome": report.get("transaction_outcome"), + "halt_step": halt.get("state_id"), + "halt_reason": str(halt.get("reason", ""))[:300], + "approval_mode": approval.get("mode"), + "approval_decision": approval.get("decision"), + "self_repair": report.get("self_repair"), + "readback": report.get("readback"), + } + ) + status = " / ".join( + str(x) + for x in ( + report.get("execution_outcome"), + report.get("transaction_outcome"), + ) + if x + ) + return ItemResult( + item_id=item.item_id, + claimed=claimed, # type: ignore[arg-type] + product_status=status or "no report", + wall_s=time.time() - t0, + model_calls=calls, + cost_usd=cost, + evidence=str(run_dir.relative_to(self.env.workdir.parent.parent)), + detail=detail, + ) + + def after_drift( + self, event: dict[str, Any], env: Env, operator: Any + ) -> list[dict[str, Any]]: + return [] # the product is not told about UI changes; it meets them + + def close(self) -> None: + if getattr(self, "_close_backend", None): + self._close_backend() + return + try: + if self._browser is not None: + self._browser.close() + finally: + if self._pw is not None: + self._pw.stop() + + +class _DemoBackend: + """The one attribute the demo's sign-in uses.""" + + def __init__(self, page: Any) -> None: + self.page = page + + +def make(options: dict[str, Any]) -> OpenAdaptArm: + return OpenAdaptArm(options) diff --git a/packages/flow/benchmark/lifecycle/report.py b/packages/flow/benchmark/lifecycle/report.py index 90e97705d..9ae3efc3d 100644 --- a/packages/flow/benchmark/lifecycle/report.py +++ b/packages/flow/benchmark/lifecycle/report.py @@ -166,8 +166,45 @@ def render(res: dict[str, Any]) -> str: return "\n".join(lines) +def stops(run_dir: Path) -> list[dict[str, Any]]: + """One row per item an arm did not claim done, with the oracle's view of + whether anything was actually wrong (for false-stop root-causing).""" + + out = [] + for r in load(run_dir): + if r["type"] != "item_result" or r["claimed"] == "done": + continue + d = r.get("detail") or {} + repair = d.get("self_repair") or {} + out.append( + { + "arm": r["arm"], + "seq": r["seq"], + "item_id": r["item_id"], + "evidence": r.get("evidence"), + "app": "openemr", + "exception": r["exception"], + "drift_active": r.get("drift_active"), + "halt_step": d.get("halt_step"), + "halt_reason": d.get("halt_reason"), + "execution_outcome": d.get("execution_outcome"), + "transaction_outcome": d.get("transaction_outcome"), + "repair": repair if isinstance(repair, dict) else str(repair), + "outcome": r["outcome"], + "anything_wrong": r["outcome"] not in ("false_stop",), + "oracle": r["oracle"].get("verdict"), + "final": r["final_oracle"], + "product_status": r["product_status"], + } + ) + return out + + def write_report(run_dir: Path) -> dict[str, Any]: res = results(run_dir) + (run_dir / "stops.jsonl").write_text( + "".join(json.dumps(s, sort_keys=True) + "\n" for s in stops(run_dir)) + ) (run_dir / "results.json").write_text( json.dumps(res, indent=2, sort_keys=True) + "\n" ) diff --git a/packages/flow/benchmark/lifecycle/run.py b/packages/flow/benchmark/lifecycle/run.py index e64088388..658096c68 100644 --- a/packages/flow/benchmark/lifecycle/run.py +++ b/packages/flow/benchmark/lifecycle/run.py @@ -235,7 +235,7 @@ def record(row: dict[str, Any]) -> None: for th in during: th.join(timeout=60) cleared = app.clear_item_events() - for phase in result.phases: + for phase in [*result.phases, *result.detail.get("maintenance_phases", [])]: ledger.write( { "type": "phase", diff --git a/packages/flow/benchmark/lifecycle/workload.py b/packages/flow/benchmark/lifecycle/workload.py index c10b8d16c..f126e2b5c 100644 --- a/packages/flow/benchmark/lifecycle/workload.py +++ b/packages/flow/benchmark/lifecycle/workload.py @@ -53,7 +53,7 @@ from .arm import WorkItem -WORKLOAD_VERSION = "lifecycle-workload/2026-10-20.1" +WORKLOAD_VERSION = "lifecycle-workload/2026-10-20.2" EXCEPTION_MIX: dict[str, float] = { "dup_existing": 0.03, @@ -87,14 +87,18 @@ "Henrik Talia Oren Signe Mateo Leilani Fergus Ilse Kwame Rosalind Zeno " "Petra Anouk Calum Dalia Emeric Farida Gideon Hollis Ida Jasper Kalinda" ).split() -LAST = ( - "Brennan Feld Carvalho Lindqvist Adeyemi Whitcombe Raman Okafor Vance " - "Halvorsen Quist Marchetti Szabo Tanaka Delacroix Mbeki Novak Ferreira " - "Ashby Kowalczyk Lund Pereira Ostrowski Nakamura Esposito Fairweather " - "Galloway Hartigan Ibarra Jablonski Kestrel Larkspur Merriweather Nyberg " - "Oyelaran Pemberton Quennell Rasmussen Stavros Thorne Ulloa Vasquez " - "Wexford Yarrow Zielinski Abernathy Birchall Caddick Dunmore Ng Li" +#: 300 invented surnames (20 stems x 15 endings). OpenEMR's duplicate search +#: lists any chart that shares a last name, so the size of this pool sets how +#: often a new patient meets a namesake; a real practice has common surnames +#: too. Short surnames are kept for the same reason as short first names. +_STEMS = ( + "Ash Birch Cald Dun Ell Fair Gal Hart Ivers Jess Kell Lang Mar Nor Oak " + "Pem Quen Rad Stan Thorn" ).split() +_ENDINGS = ( + "by ford wick ton ley more well wood field brook combe stead mere gate ridge" +).split() +LAST = [a + b for a in _STEMS for b in _ENDINGS][:298] + ["Ng", "Li"] STREETS = ( "WILLOW BEND ROAD QUARRY HILL DRIVE LANTERN COURT FERRY STREET CEDAR ROW " "BEACON TERRACE STATION AVENUE MILL ROAD ORCHARD LANE HARBOR WAY" From fd0bdcbac8078732334b66666929a15321fce3a1 Mon Sep 17 00:00:00 2001 From: abrichr Date: Sat, 24 Oct 2026 12:25:40 -0400 Subject: [PATCH 03/16] measure: production-configuration soak arm, operator-minute headline, --drift, pilot protocol (WIP) Co-Authored-By: Claude Opus 5.5 --- packages/flow/benchmark/lifecycle/apps.py | 7 + packages/flow/benchmark/lifecycle/metrics.py | 96 +- .../benchmark/lifecycle/production_arm.py | 628 +++ packages/flow/benchmark/lifecycle/report.py | 35 + packages/flow/benchmark/lifecycle/run.py | 16 + .../flow/benchmark/lifecycle_proof/README.md | 155 + .../benchmark/lifecycle_proof/__init__.py | 0 .../flow/benchmark/lifecycle_proof/fixture.py | 282 ++ .../earlier-attempts/proof-12-ledger.jsonl | 6 + .../earlier-attempts/proof-13-ledger.jsonl | 44 + .../earlier-attempts/proof-14-ledger.jsonl | 40 + .../results/proof-15/admission/admission.json | 143 + .../qualification/campaign-summary.json | 104 + .../qualification/qualify-notes.json | 7 + .../batch/r1-nadia-brennan/report.json | 3638 +++++++++++++++++ .../proof-15/batch/r2-marcus-feld/report.json | 3638 +++++++++++++++++ .../batch/r3-ines-carvalho/report.json | 3638 +++++++++++++++++ .../continue/r7-arlo-whitcombe/report.json | 3266 +++++++++++++++ .../continue/r8-priya-raman/report.json | 3266 +++++++++++++++ .../crash/r4-theo-lindqvist/report.json | 3065 ++++++++++++++ .../drift/r5-grace-adeyemi/report.json | 3286 +++++++++++++++ .../self-repair/self-repair.json | 20 + .../results/proof-15/ledger.jsonl | 59 + .../proof-15/switch/log-1792535879.jsonl | 9 + .../proof-15/switch/log-1792536529.jsonl | 3 + .../results/proof-15/switch/switch.json | 42 + .../flow/benchmark/lifecycle_proof/run.py | 1115 +++++ .../benchmark/lifecycle_proof/verify.yaml | 65 + packages/flow/docs/PILOT_MEASUREMENT.md | 140 + .../flow/openadapt_flow/repair/relabel.py | 488 +++ packages/flow/tests/test_repair_relabel.py | 315 ++ 31 files changed, 27615 insertions(+), 1 deletion(-) create mode 100644 packages/flow/benchmark/lifecycle/production_arm.py create mode 100644 packages/flow/benchmark/lifecycle_proof/README.md create mode 100644 packages/flow/benchmark/lifecycle_proof/__init__.py create mode 100644 packages/flow/benchmark/lifecycle_proof/fixture.py create mode 100644 packages/flow/benchmark/lifecycle_proof/results/earlier-attempts/proof-12-ledger.jsonl create mode 100644 packages/flow/benchmark/lifecycle_proof/results/earlier-attempts/proof-13-ledger.jsonl create mode 100644 packages/flow/benchmark/lifecycle_proof/results/earlier-attempts/proof-14-ledger.jsonl create mode 100644 packages/flow/benchmark/lifecycle_proof/results/proof-15/admission/admission.json create mode 100644 packages/flow/benchmark/lifecycle_proof/results/proof-15/admission/qualification/campaign-summary.json create mode 100644 packages/flow/benchmark/lifecycle_proof/results/proof-15/admission/qualification/qualify-notes.json create mode 100644 packages/flow/benchmark/lifecycle_proof/results/proof-15/batch/r1-nadia-brennan/report.json create mode 100644 packages/flow/benchmark/lifecycle_proof/results/proof-15/batch/r2-marcus-feld/report.json create mode 100644 packages/flow/benchmark/lifecycle_proof/results/proof-15/batch/r3-ines-carvalho/report.json create mode 100644 packages/flow/benchmark/lifecycle_proof/results/proof-15/continue/r7-arlo-whitcombe/report.json create mode 100644 packages/flow/benchmark/lifecycle_proof/results/proof-15/continue/r8-priya-raman/report.json create mode 100644 packages/flow/benchmark/lifecycle_proof/results/proof-15/crash/r4-theo-lindqvist/report.json create mode 100644 packages/flow/benchmark/lifecycle_proof/results/proof-15/drift/r5-grace-adeyemi/report.json create mode 100644 packages/flow/benchmark/lifecycle_proof/results/proof-15/drift/r5-grace-adeyemi/self-repair/self-repair.json create mode 100644 packages/flow/benchmark/lifecycle_proof/results/proof-15/ledger.jsonl create mode 100644 packages/flow/benchmark/lifecycle_proof/results/proof-15/switch/log-1792535879.jsonl create mode 100644 packages/flow/benchmark/lifecycle_proof/results/proof-15/switch/log-1792536529.jsonl create mode 100644 packages/flow/benchmark/lifecycle_proof/results/proof-15/switch/switch.json create mode 100644 packages/flow/benchmark/lifecycle_proof/run.py create mode 100644 packages/flow/benchmark/lifecycle_proof/verify.yaml create mode 100644 packages/flow/docs/PILOT_MEASUREMENT.md create mode 100644 packages/flow/openadapt_flow/repair/relabel.py create mode 100644 packages/flow/tests/test_repair_relabel.py diff --git a/packages/flow/benchmark/lifecycle/apps.py b/packages/flow/benchmark/lifecycle/apps.py index a79a8fd14..8c11978c8 100644 --- a/packages/flow/benchmark/lifecycle/apps.py +++ b/packages/flow/benchmark/lifecycle/apps.py @@ -19,6 +19,7 @@ New Patient form and its duplicate-check popup; - ``relabel``: the save button "Confirm Create New Patient" becomes "Save new patient", and "Create New Patient" becomes "Check and create"; + - ``relabel_save``: only the save button is relabeled (proof-15's change); - ``reorder``: the demographics layout (``layout_options``) puts Birth Sex before DOB, and Home Phone and Contact Email before Address; - ``interstitial``: a notice over the New Patient form that must be @@ -514,6 +515,12 @@ def apply_drift(self, kind: str) -> dict[str, Any]: "Confirm Create New Patient": "Save new patient", "Create New Patient": "Check and create", } + elif kind == "relabel_save": + # proof-15's app change: only the save button gets a new label. + self.app_exec( + f"sed -i \"s/xla('Confirm Create New Patient')/xla('Save new patient')/\" {POPUP}" + ) + changed["labels"] = {"Confirm Create New Patient": "Save new patient"} elif kind == "reorder": sql = ( "UPDATE openemr.layout_options SET seq=85 WHERE form_id='DEM' AND field_id='sex';" diff --git a/packages/flow/benchmark/lifecycle/metrics.py b/packages/flow/benchmark/lifecycle/metrics.py index 65fcb98c4..5b72088d2 100644 --- a/packages/flow/benchmark/lifecycle/metrics.py +++ b/packages/flow/benchmark/lifecycle/metrics.py @@ -1,6 +1,11 @@ """The metric, computed only from the results ledger. -Headline: verified completed items per operator-hour. +Headline (``headline``): verified completed items per operator-minute, with +every pause, approval, reconciliation and repair review charged as operator +time, beside false stops per 100 items, operator minutes per stop, and the +maintenance minutes each app change cost until the program ran again. +Verified completed items per operator-hour (``bands``) is the same number +times 60. - A *verified completed item* is one whose final state the independent oracle judges right (the intended chart exactly once, or no new chart when @@ -209,6 +214,94 @@ def bands() -> dict[str, Any]: ), } + def headline() -> dict[str, Any]: + out: dict[str, Any] = {} + stopped_ids = {r["item_id"] for r in items if r["claimed"] != "done"} + for factor in BANDS: + c = cost.scaled(factor) if factor != 1.0 else cost + setup_s = sum(_phase_charge(c, r) for r in setup) + maint_s = sum(_phase_charge(c, r) for r in maint) + sum( + _charge(c, r) for r in repair_ops + ) + item_s = sum(_charge(c, r) for r in item_ops) + run_min = (maint_s + item_s) / 60.0 + all_min = run_min + setup_s / 60.0 + stop_s = sum( + _charge(c, r) + for r in ops + if r["kind"] in ("stop", "reconcile") + and r.get("item_id") in stopped_ids + ) + drift_rows = [] + for d in drifts: + nxt = [ + x["first_seq"] for x in drifts if x["first_seq"] > d["first_seq"] + ] + end = min(nxt) if nxt else 10**9 + window = [r for r in items if d["first_seq"] <= r["seq"] < end] + # Stops the change caused: clean items that wanted a chart + # and stopped with nothing written (a right stop on a + # duplicate is not maintenance). + ids = {r["item_id"] for r in window if r["outcome"] == "false_stop"} + spent = sum( + _charge(c, r) + for r in ops + if (r["kind"] in ("stop", "reconcile") and r.get("item_id") in ids) + or ( + r["kind"] == "repair_review" + and d["first_seq"] <= r.get("seq", -1) < end + ) + ) + sum( + _phase_charge(c, r) + for r in maint + if d["first_seq"] <= r.get("seq", -1) < end + ) + first_done = next((r for r in window if r["claimed"] == "done"), None) + drift_rows.append( + { + "kind": d["kind"], + "first_seq": d["first_seq"], + "items_in_window": len(window), + "items_false_stopped": len(ids), + "maintenance_operator_min": round(spent / 60, 2), + "first_verified_seq": first_done["seq"] if first_done else None, + "seconds_to_running_again": ( + round(first_done["t"] - d["t"], 1) + if first_done and "t" in d and "t" in first_done + else None + ), + } + ) + out[f"x{factor:g}"] = { + "verified_per_operator_minute": ( + round(len(completed) / run_min, 3) if run_min else None + ), + "verified_per_operator_minute_with_setup": ( + round(len(completed) / all_min, 3) if all_min else None + ), + "operator_min_run": round(run_min, 2), + "operator_min_setup": round(setup_s / 60, 2), + "operator_min_per_stop": ( + round(stop_s / 60 / len(stopped_ids), 2) if stopped_ids else None + ), + "after_app_change": drift_rows, + } + n = len(items) + return { + "verified_completed": len(completed), + "items": n, + "false_stops_per_100_items": round(100 * len(false_stops) / n, 2) + if n + else None, + "stops_per_100_items": round(100 * len(stops) / n, 2) if n else None, + "manual_entry_min": round(cost.manual_entry_s / 60, 2), + "bands": out, + "definition": "verified completed items (oracle-correct, not done by " + "hand) per operator-minute; operator minutes are every charged " + "approval, stop, reconciliation, resume, repair review and item done " + "by hand, plus maintenance; *_with_setup also charges admission", + } + wall = [r["wall_s"] for r in items if r.get("wall_s") is not None] loads = [r["load_1m"] for r in items if r.get("load_1m") is not None] return { @@ -261,6 +354,7 @@ def bands() -> dict[str, Any]: "cost_usd": round(sum(r.get("cost_usd", 0.0) for r in items), 4), }, "bands": bands(), + "headline": headline(), } diff --git a/packages/flow/benchmark/lifecycle/production_arm.py b/packages/flow/benchmark/lifecycle/production_arm.py new file mode 100644 index 000000000..1ab140c13 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/production_arm.py @@ -0,0 +1,628 @@ +"""The production configuration as a soak arm: proof-15's configuration, at scale. + +The configuration is exactly the one `benchmark/lifecycle_proof` proves on the +local OpenEMR referral (its README has the table): + +- the Regulated profile, governed authorization from the run gate on the + certified, encrypted bundle, pinned to the admitted digest (a repaired + version passes only through signed lineage); +- durable runs with an encrypted checkpoint store; +- the API tier where admissible (the referral's API step is refused by its own + proposal on OpenEMR, so the GUI save runs); +- pipelined read-back, one window (the harness waits for each item's deferred + check before it judges the item, so the arm's wall time here does not show + the pipelining gain; proof-15 measured that); +- repair on: a halt before any effect goes to self-repair (the proof's + rule-based agent, no model); +- ``problems_only`` approval, with the local stand-in for Cloud's switch + status. + +Every person touch goes through the harness operator, which decides from the +ledger's truth and is charged from the cost model: + +- an approval the ``problems_only`` gate asks for (``approval``); +- a stopped item (``stop``, or ``reconcile`` when a save may have landed); +- a resume of a durable pause (``stop``, then the resume); +- a relabel repair to review (``repair_review``), with ``recovery="relabel"``. + +Options (``--arm-options`` JSON): + +- ``keys``: the key directory outside the repository (bundle, checkpoint, + status and admission keys), default ``~/oa/scratch/compose-proof/keys``; +- ``source``: the certified referral bundle to admit; +- ``trials``: qualification trials per case (default 1); +- ``recovery``: ``"none"`` (what main does today) or ``"relabel"`` (a halt + that :mod:`openadapt_flow.repair.relabel` proves is a relabeled control is + re-qualified, reviewed once, re-admitted with lineage, and the item re-run). +""" + +from __future__ import annotations + +import json +import os +import threading +import time +from pathlib import Path +from typing import Any, Optional + +from .arm import Env, ItemResult, OperatorRequest, WorkItem + +DEFAULT_KEYS = Path.home() / "oa" / "scratch" / "compose-proof" / "keys" +APPROVER_ID = "lifecycle-soak-operator" + + +class _Ledger: + """The arm's own detail log (the harness ledger holds the results).""" + + def __init__(self, path: Path) -> None: + self.path = path + path.parent.mkdir(parents=True, exist_ok=True) + self._lock = threading.Lock() + + def add(self, kind: str, **fields: Any) -> None: + row = {"at": round(time.time(), 3), "kind": kind, **fields} + with self._lock, self.path.open("a") as handle: + handle.write(json.dumps(row, sort_keys=True, default=str) + "\n") + + +class OperatorPerson: + """Answers the approval requests the run writes, through the harness operator. + + Stands where the proof's ``ScriptedPerson`` stands (``sleep`` is the + gate's and self-repair's wait), but every answer is the operator's + decision, charged from the cost model. + """ + + def __init__(self, ledger: _Ledger) -> None: + self.ledger = ledger + self.stores: list[Any] = [] + self.seen: set[str] = set() + self.touches = 0 + self.item: Optional[WorkItem] = None + self.operator: Any = None + self.kind = "approval" + + def watch(self, store: Any) -> None: + self.stores.append(store) + + def sleep(self, seconds: float) -> None: + time.sleep(min(seconds, 0.5)) + from openadapt_flow.approval_mode.item_approval import make_answer + + for store in list(self.stores): + for request in store.requests(): + if request.request_id in self.seen: + continue + self.seen.add(request.request_id) + values = { + f.label: f.after or "" for f in (request.fields or ()) if f.label + } + decision = self.operator.ask( + OperatorRequest( + kind=self.kind, # type: ignore[arg-type] + item_id=self.item.item_id if self.item else None, + reason=f"{request.mode}: {request.step_intent}"[:300], + surface="approval_mode:item-approval (Desktop Run it)", + detail={ + "values": values, + "step_id": request.step_id, + "probes_passed": self.kind == "repair_review", + }, + ) + ) + approve = decision.action in ("approve", "accept_repair") + store.write_answer( + make_answer( + request, + decision="approve" if approve else "decline", + decline_reason=None if approve else "wrong_record", + decided_by="human", + route="desktop_run_it", + approver_id=APPROVER_ID, + auth_method="cloud_aal2", + ) + ) + self.touches += 1 + self.ledger.add( + "person", + action=decision.action, + item=self.item.item_id if self.item else None, + request_id=request.request_id, + ) + + +class ProductionArm: + name = "openadapt-production" + + def __init__(self, options: dict[str, Any]) -> None: + self.options = options + self.keys_dir = Path(options.get("keys") or DEFAULT_KEYS).expanduser() + self.source = options.get("source") + self.trials = int(options.get("trials", 1)) + #: A prior run's workdir whose admission (the qualified, pinned bundle) + #: this run reuses, so two runs compare on one admitted version. + self.admission_from = options.get("admission_from") + self.recovery = str(options.get("recovery", "none")) + if self.recovery not in ("none", "relabel"): + raise ValueError(f"unknown recovery {self.recovery!r}") + if self.recovery == "relabel": + self.name = "openadapt-production-relabel" + self.ctx: dict[str, Any] = {} + self.pipeline: Any = None + self.recoveries: list[dict[str, Any]] = [] + self._runs: dict[str, int] = {} + + # -- describe / setup --------------------------------------------------------- + + def describe(self) -> dict[str, Any]: + from benchmark.lifecycle_proof import run as proof + + return { + "configuration": "benchmark/lifecycle_proof (proof-15)", + "profile": "regulated", + "authorization": "governed run gate on the certified, encrypted bundle", + "pin": "admitted digest; repaired versions only through signed lineage", + "durable": True, + "checkpoint_store": "encrypted", + "api_tier": "where admissible (refused on the OpenEMR referral by its " + "own proposal; the GUI save runs)", + "readback": "pipelined, window 1; the harness waits for each check", + "repair": "self-repair on a halt before any effect (rule-based agent, " + "no model)", + "approval": "problems_only (local stand-in for Cloud's switch status)", + "policy": proof.POLICY, + "recovery": self.recovery, + "qualification_trials": self.trials, + "model_calls": "none on any path", + } + + def setup(self, env: Env, operator: Any) -> list[dict[str, Any]]: + from benchmark.lifecycle_proof import run as proof + + out = env.workdir + ledger = _Ledger(out / "arm-ledger.jsonl") + ctx = proof._context(out, self.keys_dir, ledger) # type: ignore[arg-type] + person = OperatorPerson(ledger) + person.operator = operator + ctx["person"] = person + self.ctx = ctx + source = Path(self.source) if self.source else proof.DEFAULT_SOURCE + app = ctx["app"] + # Admission resets the app for its six cases; the harness already + # seeded the run's existing charts, so put them back afterwards. + reused = None + t0 = time.time() + if self.admission_from: + reused = self._reuse_admission(Path(self.admission_from), out) + admit_s = float(reused.get("seconds") or 0.0) + else: + dump = app.dump() + try: + proof.phase_admit(ctx, source, self.trials) + finally: + app.restore(dump) + admit_s = time.time() - t0 + t1 = time.time() + proof.phase_switch(ctx) + from openadapt_flow.runtime.readback_pipeline import ReadbackPipeline + + self.pipeline = ReadbackPipeline() + return [ + { + "phase": "admit", + "wall_s": round(admit_s, 1), + # Encrypt, qualify (6 cases) and the run-gate check are + # unattended; the person signs the admission (cost model). + "attended_s": 0.0, + "model_calls": 0, + "cost_usd": 0.0, + "note": "teach and compile happened before this run (the " + "certified referral bundle); onboarding effort is measured " + "in benchmark/onboarding_effort", + "pinned_digest": ctx["pinned_digest"], + "reused_from": reused, + }, + { + "phase": "switch", + "wall_s": round(time.time() - t1, 1), + "attended_s": 0.0, + "model_calls": 0, + "cost_usd": 0.0, + "note": "problems_only switch opened locally, as Cloud would", + }, + ] + + def _reuse_admission(self, source: Path, out: Path) -> dict[str, Any]: + import shutil + + doc = json.loads((source / "admission" / "admission.json").read_text()) + target = out / "admission" + target.mkdir(parents=True, exist_ok=True) + shutil.copy2(source / "admission" / "admission.json", target / "admission.json") + self.ctx.update( + pinned_digest=doc["pinned_digest"], + bundle=Path(doc["bundle"]), + environment_digest=doc["environment_digest"], + ) + seconds = None + ledger = source / "arm-ledger.jsonl" + if ledger.exists(): + for line in ledger.read_text().splitlines(): + row = json.loads(line) + if row.get("kind") == "admit": + seconds = row.get("seconds") + return { + "workdir": str(source), + "digest": doc["pinned_digest"], + "seconds": seconds, + } + + # -- one item ----------------------------------------------------------------- + + def _run_dir(self, item: WorkItem, tag: str = "") -> Path: + n = self._runs.get(item.item_id, 0) + 1 + self._runs[item.item_id] = n + name = item.item_id + (f"-{tag}" if tag else "") + (f"-{n}" if n > 1 else "") + return self.ctx["out"] / "items" / name + + def _item(self, item: WorkItem, run_dir: Path, *, retry: bool = False) -> Any: + from benchmark.lifecycle_proof import run as proof + + return proof.Item( + self.ctx, + item.item_id, + run_dir, + pipeline=self.pipeline, + params=item.params, + is_retry=retry, + ) + + def _execute(self, item: WorkItem, run_dir: Path, *, retry: bool = False) -> Any: + """Run one item under the configuration; settle its record check.""" + + handle = self._item(item, run_dir, retry=retry) + try: + report = handle.run(self.ctx["bundle"]) + handoff = self.pipeline.take() + if handoff is not None: + handoff.settled.result(timeout=600) + finally: + for close in self.ctx.pop("closers", []): + try: + close() + except Exception: # noqa: BLE001 - a closed browser is closed + pass + return report + + def run_item(self, item: WorkItem, env: Env, operator: Any) -> ItemResult: + from benchmark.lifecycle_proof import run as proof + from openadapt_flow.repair.auto_repair import route_stop + + person: OperatorPerson = self.ctx["person"] + person.item, person.operator, person.kind = item, operator, "approval" + t0 = time.time() + run_dir = self._run_dir(item) + detail: dict[str, Any] = {"run_dir": str(run_dir.relative_to(env.workdir))} + phases: list[dict[str, Any]] = [] + try: + report = self._execute(item, run_dir) + except Exception as exc: # noqa: BLE001 - a refused start is a stop + detail["error"] = f"{type(exc).__name__}: {exc}"[:400] + operator.ask( + OperatorRequest( + kind="stop", + item_id=item.item_id, + reason=detail["error"][:300], + surface="openadapt-flow run (refused before the first step)", + detail={"resumable": False}, + ) + ) + return ItemResult( + item_id=item.item_id, + claimed="error", + product_status=detail["error"][:200], + wall_s=time.time() - t0, + detail=detail, + ) + summary = proof._summary(report) + detail["first_run"] = summary + if summary["transaction_outcome"] == "VERIFIED" and report.success: + return self._result(item, "done", summary, t0, detail, phases) + + route, why = route_stop(report) + detail["route"] = {"route": route, "why": why} + if self.recovery == "relabel": + recovered = self._try_relabel(item, report, run_dir, operator, detail) + if recovered is not None: + phases.extend(recovered.pop("phases", [])) + summary = recovered["summary"] + claimed = ( + "done" + if summary["transaction_outcome"] == "VERIFIED" + and recovered["success"] + else "stopped" + ) + if claimed != "done": + self._ask_stop(item, summary, operator, detail, resumable=False) + return self._result(item, claimed, summary, t0, detail, phases) + if route == "repair": + repaired = self._self_repair(item, operator, detail) + if repaired is not None: + summary = repaired + if summary["transaction_outcome"] == "VERIFIED" and summary["success"]: + return self._result(item, "done", summary, t0, detail, phases) + + # A stop: a person decides. A durable pause that only holds a record + # check (a crash) can resume; a halted run re-runs only as a new item. + resumable = self._resumable(run_dir) + decision = self._ask_stop( + item, + summary, + operator, + detail, + resumable=resumable, + reconcile=route == "reconciliation", + ) + if decision.action == "resume" and resumable: + resumed = proof._resume(self.ctx, item.item_id, run_dir, item.params) + summary = proof._summary(resumed) + detail["resumed"] = summary + if summary["transaction_outcome"] == "VERIFIED" and resumed.success: + return self._result(item, "done", summary, t0, detail, phases) + return self._result(item, "stopped", summary, t0, detail, phases) + + def _resumable(self, run_dir: Path) -> bool: + from openadapt_flow.runtime.durable import CheckpointStore + + try: + pending = CheckpointStore( + run_dir, key=self.ctx["keys"]["checkpoint_key"] + ).read_pending() + except Exception: # noqa: BLE001 - no readable pause, nothing to resume + return False + return bool(pending and pending.deferred_readback) + + def _ask_stop( + self, + item: WorkItem, + summary: dict[str, Any], + operator: Any, + detail: dict[str, Any], + *, + resumable: bool, + reconcile: bool = False, + ) -> Any: + decision = operator.ask( + OperatorRequest( + kind="reconcile" if reconcile else "stop", + item_id=item.item_id, + reason=( + f"{summary.get('transaction_outcome')}: {summary.get('halt') or ''}" + )[:300], + surface="openadapt-flow explain / approve / resume", + detail={ + "resumable": resumable, + "transaction_outcome": summary.get("transaction_outcome"), + "approval": summary.get("approval"), + }, + ) + ) + detail.setdefault("stops", []).append( + {"decision": decision.action, "rule": decision.rule} + ) + return decision + + # -- recovery ----------------------------------------------------------------- + + def _self_repair( + self, item: WorkItem, operator: Any, detail: dict[str, Any] + ) -> Optional[dict[str, Any]]: + """Repair on: a halt before any effect goes to self-repair, as the + configuration's ``repair.agent`` does. It re-runs the item itself.""" + + from benchmark.lifecycle_proof import run as proof + from openadapt_flow.approval_mode.item_approval import ItemApprovalStore + from openadapt_flow.repair.self_repair import ScreenAccess, SelfRepair + + person: OperatorPerson = self.ctx["person"] + run_dir = self._run_dir(item, "repair") + handle = proof.Item(self.ctx, item.item_id, run_dir, params=item.params) + person.kind = "repair_review" + person.watch(ItemApprovalStore(run_dir)) + try: + repair = SelfRepair( + proof.LabelAgent(), + proof.ProofTarget(self.ctx, handle), + store=self.ctx["store"], + screen_access=ScreenAccess( + enabled_by="lifecycle soak (synthetic data)" + ), + approval_wait_s=600.0, + requalification=proof._requalification(self.ctx, self.trials), + admission_key_dir=self.ctx["keys"]["admission_key_dir"], + sleep=person.sleep, + ) + result = repair.run(self.ctx["bundle"], run_dir) + except Exception as exc: # noqa: BLE001 - a failed repair is a stop + detail["self_repair"] = {"error": f"{type(exc).__name__}: {exc}"[:300]} + return None + finally: + person.kind = "approval" + evidence = result.evidence + detail["self_repair"] = { + "status": result.status, + "reason": evidence.reason[:300], + "readmitted": evidence.readmitted_bundle_digest, + } + if evidence.readmitted_bundle_digest: + self._move_to( + self.ctx["store"] / "bundles" / evidence.readmitted_bundle_digest, + evidence.readmitted_bundle_digest, + sorted((run_dir / "self-repair").glob("requalify-*")), + ) + if result.report is None or result.status == "not_repairable": + return None + summary = proof._summary(result.report) + summary["success"] = bool(result.report.success) + return summary + + def _move_to(self, bundle: Path, digest: str, requalified: list[Path]) -> None: + """Run the re-admitted version from here on, under a new switch record.""" + + from benchmark.lifecycle_proof import run as proof + + proof._write( + self.ctx["out"] / "current-bundle.json", + { + "bundle": str(bundle), + "digest": digest, + "qualification_dir": str(requalified[-1]) if requalified else "", + }, + ) + self.ctx["bundle"] = bundle + # A switch record names one bundle digest; Cloud issues one for the + # re-admitted version from its own re-qualification's passing cases. + proof.phase_switch(self.ctx) + + def _try_relabel( + self, + item: WorkItem, + report: Any, + run_dir: Path, + operator: Any, + detail: dict[str, Any], + ) -> Optional[dict[str, Any]]: + from benchmark.lifecycle_proof import run as proof + from openadapt_flow.ir import Workflow + from openadapt_flow.repair import relabel + from openadapt_flow.repair.lifecycle import RepairStore + + bundle = Path(self.ctx["bundle"]) + workflow = Workflow.load(bundle) + proposal = relabel.propose(report, workflow) + if isinstance(proposal, str): + detail["relabel"] = {"proposed": False, "why": proposal} + return None + t0 = time.time() + work = run_dir.parent / f"{run_dir.name}-relabel" + candidate = relabel.build( + bundle, proposal, work / "candidate", key=self.ctx["keys"]["bundle_key"] + ) + review_charge: dict[str, Any] = {} + + def ask_person(review: Any) -> tuple[str, str]: + rows = review.requalification["rows"] + decision = operator.ask( + OperatorRequest( + kind="repair_review", + item_id=item.item_id, + reason=review.proposal.summary()[:300], + surface="openadapt-flow repair relabel (review card)", + detail={ + "probes_passed": bool(rows), + "requalified_cases": len(rows), + "certified_digest": review.certified_digest, + }, + ) + ) + review_charge.update(action=decision.action, charged_s=decision.charged_s) + approve = decision.action == "accept_repair" + return ("approve" if approve else "decline", APPROVER_ID) + + result = relabel.readmit( + parent_bundle=bundle, + candidate_bundle=candidate, + proposal=proposal, + store=RepairStore(self.ctx["store"]), + requalification=proof._requalification(self.ctx, self.trials), + ask_person=ask_person, + work_dir=work, + evidence_run_dir=run_dir, + key_dir=self.ctx["keys"]["admission_key_dir"], + ) + record = { + "item": item.item_id, + "proposal": proposal.summary(), + "status": result.status, + "reason": result.reason[:300], + "digest": result.digest, + "lineage_hop": (result.lineage or {}).get("hop"), + "timings": result.timings, + "review": review_charge, + "seconds_to_readmitted": round(time.time() - t0, 1), + } + detail["relabel"] = record + self.recoveries.append(record) + if result.status != "readmitted" or result.bundle_dir is None: + return None + self._move_to(result.bundle_dir, str(result.digest), [work / "requalify"]) + # The stopped item never wrote; it runs again on the re-admitted + # version, as a retry (problems_only sends a retry to a person). + retry_dir = self._run_dir(item, "after-relabel") + rerun = self._execute(item, retry_dir, retry=True) + summary = proof._summary(rerun) + record["rerun"] = summary + record["seconds_to_item_done"] = round(time.time() - t0, 1) + return { + "summary": summary, + "success": bool(rerun.success), + "phases": [ + { + "phase": "relabel_requalify", + "wall_s": result.timings.get("requalify_s", 0.0), + "attended_s": 0.0, + "model_calls": 0, + "cost_usd": 0.0, + } + ], + } + + # -- result ------------------------------------------------------------------- + + def _result( + self, + item: WorkItem, + claimed: str, + summary: dict[str, Any], + t0: float, + detail: dict[str, Any], + phases: list[dict[str, Any]], + ) -> ItemResult: + status = " / ".join( + str(x) + for x in ( + summary.get("execution_outcome"), + summary.get("transaction_outcome"), + ) + if x + ) + detail["final"] = summary + return ItemResult( + item_id=item.item_id, + claimed=claimed, # type: ignore[arg-type] + product_status=status or "no report", + wall_s=time.time() - t0, + model_calls=int(summary.get("model_calls") or 0), + evidence=detail.get("run_dir", ""), + phases=phases, + detail=detail, + ) + + def after_drift( + self, event: dict[str, Any], env: Env, operator: Any + ) -> list[dict[str, Any]]: + return [] # the product is not told about app changes; it meets them + + def close(self) -> None: + if self.pipeline is not None: + self.pipeline.close() + for close in self.ctx.pop("closers", []): + try: + close() + except Exception: # noqa: BLE001 + pass + + +def make(options: dict[str, Any]) -> ProductionArm: + os.environ.setdefault("OPENADAPT_NO_LAUNCHER_CHECK", "1") + return ProductionArm(options) diff --git a/packages/flow/benchmark/lifecycle/report.py b/packages/flow/benchmark/lifecycle/report.py index 9ae3efc3d..37cf8f171 100644 --- a/packages/flow/benchmark/lifecycle/report.py +++ b/packages/flow/benchmark/lifecycle/report.py @@ -66,9 +66,44 @@ def render(res: dict[str, Any]) -> str: ] for name, m in res["arms"].items(): b = m["bands"] + h = m.get("headline") lines += [ f"## Arm `{name}`" + ("" if m["complete"] else " (incomplete)"), "", + ] + if h: + x1 = h["bands"]["x1"] + lines += [ + f"- **Verified items per operator-minute: " + f"{x1['verified_per_operator_minute']}** " + f"({h['verified_completed']} verified of {h['items']} items over " + f"{x1['operator_min_run']} operator minutes; " + f"{x1['verified_per_operator_minute_with_setup']} with the " + f"{x1['operator_min_setup']} setup minutes). By hand: " + f"{round(1 / h['manual_entry_min'], 3)} an operator-minute.", + f"- False stops per 100 items: {h['false_stops_per_100_items']}; " + f"all stops per 100 items: {h['stops_per_100_items']}; operator " + f"minutes per stop: {x1['operator_min_per_stop']}.", + ] + for d in x1["after_app_change"]: + lines.append( + f"- After the app change `{d['kind']}` (item {d['first_seq']}): " + f"{d['items_false_stopped']} of {d['items_in_window']} items false-stopped, " + f"{d['maintenance_operator_min']} operator minutes of maintenance " + "(stops, repair reviews); first verified item after it: " + f"{d['first_verified_seq']}, " + f"{d['seconds_to_running_again']} s after the change." + ) + lines += [ + "- Cost-model bands, verified per operator-minute: " + + ", ".join( + f"{k} {v['verified_per_operator_minute']}" + for k, v in h["bands"].items() + ) + + ".", + "", + ] + lines += [ "| | x0.5 | x1 | x2 |", "|---|---:|---:|---:|", ] diff --git a/packages/flow/benchmark/lifecycle/run.py b/packages/flow/benchmark/lifecycle/run.py index 658096c68..53c49018c 100644 --- a/packages/flow/benchmark/lifecycle/run.py +++ b/packages/flow/benchmark/lifecycle/run.py @@ -328,6 +328,14 @@ def main(argv: Optional[list[str]] = None) -> int: default=None, help="run only the first N items (a smoke run)", ) + p.add_argument( + "--drift", + action="append", + default=None, + metavar="KIND@SEQ", + help="replace the drift schedule: apply UI change KIND before item SEQ " + "(repeatable), e.g. relabel_save@26", + ) p.add_argument("--cost-model", default=V1.version, choices=sorted(MODELS)) p.add_argument("--out", type=Path, required=True) args = p.parse_args(argv) @@ -335,6 +343,14 @@ def main(argv: Optional[list[str]] = None) -> int: out: Path = args.out out.mkdir(parents=True, exist_ok=False) workload = generate(args.seed, args.items, args.days, args.existing) + if args.drift is not None: + by_seq = {i.seq: i for i in workload.items} + workload.drift = [] + for spec in args.drift: + kind, _, seq = spec.partition("@") + workload.drift.append( + {"day": by_seq[int(seq)].day, "kind": kind, "first_seq": int(seq)} + ) (out / "workload.jsonl").write_text( "".join(json.dumps(r, sort_keys=True) + "\n" for r in workload.ledger_rows()) ) diff --git a/packages/flow/benchmark/lifecycle_proof/README.md b/packages/flow/benchmark/lifecycle_proof/README.md new file mode 100644 index 000000000..dfd13adfc --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/README.md @@ -0,0 +1,155 @@ +# One production configuration, its whole lifecycle + +`run.py` runs the OpenEMR referral program on a local OpenEMR test copy, +using synthetic patients only. It runs one supported configuration through +admission, a batch, an interruption, an app change and continued operation. +Each phase writes its evidence to `--out`. The [results](results/) directory +holds a committed run (proof-15); see [Results](#results). + +## The configuration + +| Part | Setting | +| --- | --- | +| Profile | Regulated | +| Authorization | Governed: the run gate on the certified, encrypted bundle authorizes each run | +| Pin | The admitted content digest. A repaired version passes only through signed lineage. | +| Durable | Yes, with an encrypted checkpoint store | +| API tier | Where admissible. The referral's API step is refused by its own proposal on OpenEMR (other writes in the span, native validation), so the GUI save runs and the report says why. | +| Pipelined read-back | One window. Under a durable run, the deferred record check is held in the durable pause. | +| Repair | On. Every fix is re-qualified on the test copy and re-admitted with signed lineage. | +| Approval | `problems_only` | + +This is the configuration the lifecycle soak (`benchmark/lifecycle`) runs at +scale. + +## Phases + +1. **admit** + - Encrypt the certified referral bundle file by file. A whole sealed set + can't hold the approval gate's state yet (see Limits). + - Qualify the encrypted copy on this fixture: the six cases, certified + under `clinical-write`. + - Check the Regulated run gate. +2. **switch**: open the `problems_only` switch record for the admitted + digest. Its rung floor is computed from the passing cases (see below). +3. **batch**: three referrals. Each item starts while the previous item's + record check is still running. +4. **crash** + - An item runs in a child process, which is killed (SIGKILL) while its + record check runs. + - The resume re-runs only the check. + - The oracle counts one chart. + - After the restart the killed item reads as interrupted, so the + `problems_only` switch turns off. A person approves the resume. +5. **drift** + - The vendor relabels the save button ("Confirm Create New Patient" + becomes "Save new patient"). + - The item stops before saving. + - Self-repair runs. When it may repair the stop, it proposes a fix, a + person approves it once, and the fix is re-qualified on the test copy + and re-admitted with lineage. A relabeled save button is not such a + stop (see Results). +6. **switch** again, for the repaired digest. A switch record names one + bundle digest, so a re-admitted version needs its own record. +7. **continue**: two more referrals on the repaired version. The pin to the + original digest passes through the lineage. + +### The rung floor + +For each step, the switch record's rung floor is the weakest resolution rung +used by any VERIFIED representative case of the qualification. A grounder +(model) resolution is never part of the floor. The dialogs those cases +dismissed become the record's allowed dialogs. Under `problems_only`, a run +that resolves a step below its floor, or meets a dialog outside that set, +goes to a person. Cloud computes the floor the same way on a real switch; +here `_passing_screen_facts` in `run.py` computes it locally. + +The oracle reads the database directly and counts the charts for each +referral's email. The person is scripted (`ScriptedPerson`), and every touch +is in `ledger.jsonl`. The repair agent is a rule-based stand-in that calls no +model (`LabelAgent`). Pass `--repair-agent module:factory` to use another, +such as the Claude bridge agent in `benchmark/auto_repair`. The +`problems_only` switch status comes from a local stand-in for Cloud's signed +status route (`LocalStatusAuthority`); it signs "on" for the open switch. + +## Results + +proof-15 ran every phase on 2026-10-20 at commit `e58b279f9` of +`compose/lifecycle-proof`, against the pinned local OpenEMR release. + +| Phase | What happened | Charts | Person touches | +| --- | --- | --- | --- | +| admit | All 6 qualification cases (one trial each) matched their expected outcomes: the representative case read `VERIFIED`, and the 5 fault cases stopped before any effect. The encrypted bundle `0c985b8b…` was certified under `clinical-write` and passed the Regulated run gate. | n/a | 0 | +| switch | The switch record was opened for that digest, with a structural rung floor on 15 steps and no allowed dialogs. | n/a | 0 | +| batch | r1, r2 and r3 each read `VERIFIED`, `no_person`, with 0 model calls. Each record check ran while the next item started. | 1 each | 0 | +| crash | r4 was killed (SIGKILL) inside its record check. The durable pause held the check (`readback_pending`, `delivery_uncertainty`). After a person approved the resume, only the check re-ran, and the run read `VERIFIED`. | 1 (at kill and after) | 1 | +| drift | After the relabel, r5 stopped before saving: the identity check failed at the save step, and the run read `REJECTED_POLICY`, `stop_before_saving`. Self-repair refused it as `not_repairable`. | 0 | 0 | +| continue | With the app still changed and the original bundle, r7 and r8 each stopped before saving, in the same way. | 0 each | 0 | + +What this shows on the real application: + +- **No double save.** The killed item has exactly one chart, and the save + was never sent again. +- **No silent wrong save.** After the app change, every item stopped before + saving and went to a person. +- **No repair hop.** The repair, re-qualification and re-admission hop did not + run here. Self-repair never repairs a stop where the identity check didn't + verify, because that stop could mean the wrong record. A relabeled control + is indistinguishable from a different control, so a person re-teaches the + step. That hop is covered by synthetic tests + (`tests/test_repair_readmission.py`). Running it on OpenEMR needs an app + change that the target ladder can't find at all, such as a moved or + restyled button. That is a follow-up. + +The earlier attempts are kept in `results/earlier-attempts/`. Each one found +something: + +- **proof-12: a screen-hash race.** Admission failed closed on a repaint + race. The stale-identity fault receipt hashes the screen once in the driver + and again in the replayer, so a repaint between the two breaks the binding. + A fix is planned in its own change. +- **proof-13: the batch worked, and the crash harness was wrong twice.** + - The harness wrapped the record check. The `problems_only` gate correctly + refused the wrapped check (`verifier_identity_changed`) and turned the + switch off. + - The harness's kill landed after the save was sent but before the durable + pause was written. The runtime then started a durable run's check before + its pause existed. That is fixed: the check now waits for the pause. +- **proof-14: one key for resume.** Resume failed closed because the harness + used a separate checkpoint key. `resume` opens the bundle and the + checkpoints with one key, as `openadapt-flow resume` does. + +## Reproduce + +Before you start Docker, follow the shared-machine rules in +`~/oa/scratch/fixture-lease/README.md`: take a lease, keep at least 15 GiB +free, and keep the load under 40. + +```bash +cd packages/flow +export PYTHONPATH=.:../types +python -m benchmark.lifecycle_proof.run up --out runs/proof --keys ~/oa/scratch/compose-proof/keys +python -m benchmark.lifecycle_proof.run all --out runs/proof --keys ~/oa/scratch/compose-proof/keys +``` + +`--keys` is a directory outside the repository. It holds the bundle key, the +checkpoint key, the local status key and the local admission key. Nothing +secret is written under `--out`. + +## Limits + +- **Massachusetts referrals only.** OpenEMR's state select shows a name and + stores a code. The record check reads the entered name back through a value + map in verify.yaml, and the map names only `Massachusetts: MA`. Every + referral in this run is in Massachusetts. A referral in any other state + fails its record check closed and goes to a person. A full map is + [#1461](https://github.com/OpenAdaptAI/OpenAdapt/issues/1461). +- **The approval state outside a sealed set.** The bundle is encrypted file by + file. A whole sealed set refuses an approval gate today, because Desktop and + the console can't read sealed approval state yet. + +- **The test copy.** Re-qualification runs on the same fixture. Its data is + dumped before and restored after, so the six cases' resets don't erase the + batch's charts. A deployment would point verify.yaml at a separate copy. +- **The switch status.** It is signed locally. Cloud's status route and its + switch thresholds are not part of this run. diff --git a/packages/flow/benchmark/lifecycle_proof/__init__.py b/packages/flow/benchmark/lifecycle_proof/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/packages/flow/benchmark/lifecycle_proof/fixture.py b/packages/flow/benchmark/lifecycle_proof/fixture.py new file mode 100644 index 000000000..ac1420deb --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/fixture.py @@ -0,0 +1,282 @@ +"""This proof's own OpenEMR copy: its Compose project, ports, reset and app change. + +The pinned fixture is ``benchmark/openemr_local`` (OpenEMR 8.0.0.3, synthetic +data only). This copy runs as its own Compose project on loopback ports, so it +never touches another session's copy, following the lifecycle soak's adapter +(``benchmark/lifecycle/apps.py``). The app change is the soak's ``relabel`` +narrowed to the save button: "Confirm Create New Patient" becomes "Save new +patient", served to every client as a vendor release would be. + +Environment (all optional): + +- ``LIFECYCLE_PROOF_STATE``: the fixture state directory; +- ``LIFECYCLE_PROOF_PROJECT``: the Compose project + (default ``openadapt-openemr-compose``); +- ``LIFECYCLE_PROOF_UI_PORT`` / ``LIFECYCLE_PROOF_API_PORT`` (9401 / 9400). +""" + +from __future__ import annotations + +import json +import os +import shutil +import subprocess +from pathlib import Path +from typing import Any, Optional + +PROJECT = os.environ.get("LIFECYCLE_PROOF_PROJECT", "openadapt-openemr-compose") +UI_PORT = os.environ.get("LIFECYCLE_PROOF_UI_PORT", "9401") +API_PORT = os.environ.get("LIFECYCLE_PROOF_API_PORT", "9400") +DEFAULT_STATE = Path.home() / "oa" / "scratch" / "compose-proof" / "openemr-state" +WEBROOT = "/var/www/localhost/htdocs/openemr" +POPUP = f"{WEBROOT}/interface/new/new_search_popup.php" +SQL_FIELDS = ( + "id", + "pid", + "fname", + "lname", + "DOB", + "email", +) + + +def podman_env() -> dict[str, str]: + """Docker Compose pointed at the benchmark Podman machine.""" + + env = dict(os.environ) + if not env.get("DOCKER_HOST"): + sock = subprocess.run( + [ + "podman", + "machine", + "inspect", + "openadapt-benchmark", + "--format", + "{{.ConnectionInfo.PodmanSocket.Path}}", + ], + capture_output=True, + text=True, + check=False, + ).stdout.strip() + if sock: + env["DOCKER_HOST"] = f"unix://{sock}" + return env + + +def make_fixture(state_dir: Path) -> Any: + import benchmark.openemr_local.fixture as fx + + class ProofFixture(fx.OpenEMRFixture): + def __init__(self, state: Path) -> None: + super().__init__(state) + self.lock = {**self.lock, "project": PROJECT} + + @property + def ui_base_url(self) -> str: + return f"http://127.0.0.1:{UI_PORT}" + + @property + def api_base_url(self) -> str: + return f"https://127.0.0.1:{API_PORT}" + + def _expected(self) -> dict[str, str]: + return { + "OPENEMR_IMAGE": self.lock["services"]["openemr"], + "MARIADB_IMAGE": self.lock["services"]["mariadb"], + "OPENEMR_ACTOR_USER": "openadapt_actor", + "OPENEMR_HTTP_PORT": UI_PORT, + "OPENEMR_HTTPS_PORT": API_PORT, + } + + def _validate_runtime_env(self) -> None: + values = self._runtime_values() + for key, value in self._expected().items(): + if values.get(key) != value: + raise fx.FixtureError(f"runtime.env {key} differs") + self.runtime_env.chmod(0o600) + + def runtime_preflight(self) -> None: + # The shared machine's rules (~/oa/scratch/fixture-lease/README.md). + free = shutil.disk_usage("/System/Volumes/Data").free / 2**30 + if free < 15: + raise fx.FixtureError(f"only {free:.1f} GiB free on the host") + if os.getloadavg()[0] >= 40: + raise fx.FixtureError("the 1-minute load is over 40") + + def prepare(self) -> None: + import secrets + + self._protect_state_dir() + if not self.runtime_env.exists(): + values = { + **self._expected(), + "MARIADB_ROOT_PASSWORD": secrets.token_urlsafe(32), + "OPENEMR_DB_PASSWORD": secrets.token_urlsafe(32), + "OPENEMR_ACTOR_PASSWORD": secrets.token_urlsafe(32), + } + self._write_private_exclusive( + self.runtime_env, + ( + "# generated local synthetic fixture; never commit\n" + + "".join(f"{k}={v}\n" for k, v in values.items()) + ).encode(), + ) + super().prepare() + + def _run(self, argv, *, input_bytes=None, timeout_s=300.0): # type: ignore[override] + if argv[:1] == ["docker"]: + proc = subprocess.run( + argv, + input=input_bytes, + capture_output=True, + timeout=timeout_s, + env=podman_env(), + check=False, + ) + if proc.returncode != 0: + raise fx.FixtureError( + f"{' '.join(argv[:4])} failed: {proc.stderr.decode()[-800:]}" + ) + return proc + return super()._run(argv, input_bytes=input_bytes, timeout_s=timeout_s) + + return ProofFixture(state_dir) + + +class ProofApp: + """Bring-up, the oracle's SQL read, and the app change.""" + + def __init__(self, state_dir: Optional[Path] = None) -> None: + self.state_dir = Path( + state_dir or os.environ.get("LIFECYCLE_PROOF_STATE") or DEFAULT_STATE + ) + self.fx = make_fixture(self.state_dir) + self.db_container = f"{PROJECT}-db-1" + self.app_container = f"{PROJECT}-openemr-1" + + def bootstrapped(self) -> bool: + return all( + p.is_file() + for p in ( + self.fx.runtime_env, + self.fx.clients_path, + self.fx.snapshot_path, + self.fx.snapshot_hash_path, + ) + ) + + def bring_up(self, say: Any = print) -> str: + if self.bootstrapped(): + say("starting the existing copy") + self.fx._compose("up", "-d", timeout_s=900.0) + self.fx._wait_ready(timeout_s=900.0) + return "restarted" + self.fx.runtime_preflight() + say("checking the pinned OpenEMR release") + self.fx.prepare() + self.fx.image_identity() + say("starting; OpenEMR installs itself on first start") + self.fx._compose("up", "-d", timeout_s=900.0) + self.fx._wait_ready(timeout_s=1800.0) + self.fx._verify_running_source() + say("adding synthetic API clients") + self.fx.bootstrap() + self.fx.snapshot() + return "created" + + def point_hooks_here(self) -> None: + """verify.yaml's hooks (sign-in, reset, REST read-back) read these.""" + + lock = self.state_dir / "environment.lock.json" + lock.write_text(json.dumps(self.fx.lock, indent=2) + "\n") + os.environ["OPENEMR_FIXTURE_STATE"] = str(self.state_dir) + os.environ["OPENEMR_FIXTURE_LOCK"] = str(lock) + os.environ["OPENEMR_UI_URL"] = self.fx.ui_base_url + os.environ["OPENEMR_API_URL"] = self.fx.api_base_url + sock = podman_env().get("DOCKER_HOST") + if sock: + os.environ["DOCKER_HOST"] = sock + + def _exec_bytes( + self, container: str, script: str, *, stdin: bytes = b"", timeout: float = 120 + ) -> bytes: + proc = subprocess.run( + ["podman", "exec", "-i", container, "sh", "-c", script], + input=stdin, + capture_output=True, + timeout=timeout, + check=False, + ) + if proc.returncode != 0: + raise RuntimeError(f"podman exec failed: {proc.stderr.decode()[-400:]}") + return proc.stdout + + def _exec(self, container: str, script: str, *, stdin: bytes = b"") -> str: + return self._exec_bytes(container, script, stdin=stdin).decode() + + def rows(self) -> list[dict[str, str]]: + """Every chart, read directly from the database (the oracle).""" + + out = self._exec( + self.db_container, + 'MYSQL_PWD="$MARIADB_ROOT_PASSWORD" exec mariadb -uroot --batch --raw ' + "--skip-column-names", + stdin=( + "SELECT " + ",".join(SQL_FIELDS) + " FROM openemr.patient_data " + "ORDER BY id;" + ).encode(), + ) + return [ + { + k: ("" if v == "NULL" else v) + for k, v in zip(SQL_FIELDS, line.split("\t")) + } + for line in out.splitlines() + if line + ] + + def charts_for(self, email: str) -> int: + return sum(1 for row in self.rows() if row["email"] == email) + + def dump(self) -> Path: + """The current charts, for putting back after a re-qualification.""" + + path = self.state_dir / "proof-data.sql" + # The dump is bytes: OpenEMR's install data is not all UTF-8. + sql = self._exec_bytes( + self.db_container, + 'MYSQL_PWD="$MARIADB_ROOT_PASSWORD" exec mariadb-dump -uroot ' + "--single-transaction --triggers openemr", + timeout=600, + ) + path.write_bytes(sql) + path.chmod(0o600) + return path + + def restore(self, path: Path) -> None: + self._exec_bytes( + self.db_container, + 'MYSQL_PWD="$MARIADB_ROOT_PASSWORD" exec mariadb -uroot openemr', + stdin=path.read_bytes(), + timeout=600, + ) + + def relabel_save(self) -> dict[str, str]: + """The vendor change: the save button gets a new label.""" + + self._exec( + self.app_container, + f"[ -f {POPUP}.oa-orig ] || cp -p {POPUP} {POPUP}.oa-orig; " + f"sed -i \"s/xla('Confirm Create New Patient')/xla('Save new patient')/\" " + f"{POPUP}", + ) + return {"Confirm Create New Patient": "Save new patient"} + + def undo_changes(self) -> None: + self._exec( + self.app_container, + f"[ -f {POPUP}.oa-orig ] && cp -p {POPUP}.oa-orig {POPUP}; true", + ) + + def stop(self) -> None: + self.fx._compose("stop", timeout_s=300.0) diff --git a/packages/flow/benchmark/lifecycle_proof/results/earlier-attempts/proof-12-ledger.jsonl b/packages/flow/benchmark/lifecycle_proof/results/earlier-attempts/proof-12-ledger.jsonl new file mode 100644 index 000000000..6cde4ec5e --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/earlier-attempts/proof-12-ledger.jsonl @@ -0,0 +1,6 @@ +{"at": 1792530087.800094, "kind": "phase.start", "phase": "admit"} +{"at": 1792530092.097451, "certification_invalidated": true, "encrypted": true, "encrypted_digest": "ec87be520a03662a423d15e8a778058c46588bcd1225bcaf4471f34032776874", "kind": "admit.encrypt", "source_digest": "ec096afa2b614326b00ec3155f256041c19d86f3998761ce9d772cfd911460b6"} +{"at": 1792530234.633174, "kind": "admit.qualify.log", "line": "{\"case_id\": \"representative\", \"trial\": 1, \"expected\": \"VERIFIED\", \"execution_outcome\": \"VERIFIED\", \"transaction_outcome\": \"VERIFIED\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": true, \"model_calls\": 0, \"total_ms\": 112068.79779230803, \"failed_step_id\": null, \"failed_erro"} +{"at": 1792530356.256855, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-ambiguity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 112810.85924990475, \"failed_step_id\": \"step_04"} +{"at": 1792530474.823217, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-wrong-identity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"REJECTED_POLICY\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 109714.90270784125, \"failed_step_id\": \"step_04"} +{"at": 1792530606.085123, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-stale-identity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"FAILED\", \"transaction_outcome\": \"FAILED_PLATFORM\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 121918.84012520313, \"failed_step_id\": \"step_04"} diff --git a/packages/flow/benchmark/lifecycle_proof/results/earlier-attempts/proof-13-ledger.jsonl b/packages/flow/benchmark/lifecycle_proof/results/earlier-attempts/proof-13-ledger.jsonl new file mode 100644 index 000000000..f5ca61829 --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/earlier-attempts/proof-13-ledger.jsonl @@ -0,0 +1,44 @@ +{"at": 1792530678.7918432, "kind": "phase.start", "phase": "admit"} +{"at": 1792530683.1365309, "certification_invalidated": true, "encrypted": true, "encrypted_digest": "ec87be520a03662a423d15e8a778058c46588bcd1225bcaf4471f34032776874", "kind": "admit.encrypt", "source_digest": "ec096afa2b614326b00ec3155f256041c19d86f3998761ce9d772cfd911460b6"} +{"at": 1792530826.662966, "kind": "admit.qualify.log", "line": "{\"case_id\": \"representative\", \"trial\": 1, \"expected\": \"VERIFIED\", \"execution_outcome\": \"VERIFIED\", \"transaction_outcome\": \"VERIFIED\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": true, \"model_calls\": 0, \"total_ms\": 112567.86254094914, \"failed_step_id\": null, \"failed_erro"} +{"at": 1792530949.3869069, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-ambiguity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 113524.27366608754, \"failed_step_id\": \"step_04"} +{"at": 1792531069.448334, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-wrong-identity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"REJECTED_POLICY\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 110892.6258329302, \"failed_step_id\": \"step_040"} +{"at": 1792531185.503637, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-stale-identity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 107938.9859996736, \"failed_step_id\": \"ste"} +{"at": 1792531293.901531, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-weak-effect\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 100128.86758288369, \"failed_step_id\": \"step_"} +{"at": 1792531407.142271, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-missing-effect\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 105304.80095790699, \"failed_step_id\": \"st"} +{"at": 1792531414.767892, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"representative\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792531422.350912, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-ambiguity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792531429.77931, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-wrong-identity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792531437.2952662, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-stale-identity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792531444.750168, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-weak-effect\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792531452.3809001, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-missing-effect\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792531452.3812869, "kind": "admit.qualify.log", "line": "pixels-only pass (informational): 0/6 (0%) trials behaved as required with structure lookups disabled; most common failure: StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"at": 1792531452.597991, "kind": "admit.qualify.log", "line": "qualified lookups: structure on a local surface"} +{"at": 1792531452.8036249, "kind": "admit.qualify.log", "line": "PASS: qualification for 'openemr-create-synthetic-patient'\n identity coverage 1/1; effect coverage 1/1; cases 6/6"} +{"at": 1792531452.803745, "kind": "admit.qualify.log", "line": "qualification-result/v1 89a94c6ec7e506dd: passed=True silent_incorrect_success=0 over_halt=0 executor_model_calls=0 verifier_model_calls=0"} +{"at": 1792531459.597688, "kind": "admit.qualify.log", "line": "no admission envelope: the qualification-admission/v1 envelope needs at least 3 trials per case; this campaign ran 1"} +{"at": 1792531466.3895, "certified": true, "digest": "2a6be62c14b48050e3572480777148449d4e2ba83e81b56a35e28cac07c9df91", "kind": "admit.qualify", "passed": true, "rows": [{"case_id": "representative", "expected": "VERIFIED", "transaction_outcome": "VERIFIED", "trial": 1}, {"case_id": "fault-ambiguity", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-wrong-identity", "expected": "HALTED", "transaction_outcome": "REJECTED_POLICY", "trial": 1}, {"case_id": "fault-stale-identity", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-weak-effect", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-missing-effect", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}], "seconds": 787.6} +{"at": 1792531466.3900049, "kind": "admit", "pinned_digest": "2a6be62c14b48050e3572480777148449d4e2ba83e81b56a35e28cac07c9df91", "seconds": 787.6} +{"at": 1792531466.391874, "kind": "phase.end", "person_touches": 0, "phase": "admit"} +{"at": 1792531466.391943, "kind": "phase.start", "phase": "switch"} +{"at": 1792531466.6834261, "bundle": "2a6be62c14b48050e3572480777148449d4e2ba83e81b56a35e28cac07c9df91", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-2a6be62c14b4-1792531466"} +{"at": 1792531466.683539, "kind": "phase.end", "person_touches": 0, "phase": "switch"} +{"at": 1792531466.683593, "kind": "phase.start", "phase": "batch"} +{"at": 1792531589.871233, "deferred": true, "inline_reason": null, "item": "r1-nadia-brennan", "kind": "batch.item", "returned_s": 123.2} +{"at": 1792531711.7264938, "deferred": true, "inline_reason": null, "item": "r2-marcus-feld", "kind": "batch.item", "returned_s": 121.9} +{"at": 1792531830.1749928, "deferred": true, "inline_reason": null, "item": "r3-ines-carvalho", "kind": "batch.item", "returned_s": 118.4} +{"at": 1792531830.398943, "charts": 1, "item": "r1-nadia-brennan", "kind": "oracle"} +{"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "at": 1792531830.3991969, "bundle_content_digest": "2a6be62c14b48050e3572480777148449d4e2ba83e81b56a35e28cac07c9df91", "charts": 1, "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "item": "r1-nadia-brennan", "kind": "batch.result", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"} +{"at": 1792531830.5063622, "charts": 1, "item": "r2-marcus-feld", "kind": "oracle"} +{"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "at": 1792531830.506609, "bundle_content_digest": "2a6be62c14b48050e3572480777148449d4e2ba83e81b56a35e28cac07c9df91", "charts": 1, "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "item": "r2-marcus-feld", "kind": "batch.result", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"} +{"at": 1792531830.611754, "charts": 1, "item": "r3-ines-carvalho", "kind": "oracle"} +{"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "at": 1792531830.612017, "bundle_content_digest": "2a6be62c14b48050e3572480777148449d4e2ba83e81b56a35e28cac07c9df91", "charts": 1, "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "item": "r3-ines-carvalho", "kind": "batch.result", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"} +{"at": 1792531830.612374, "kind": "phase.end", "person_touches": 0, "phase": "batch"} +{"at": 1792531830.61243, "kind": "phase.start", "phase": "crash"} +{"at": 1792532621.3775349, "kind": "phase.start", "phase": "switch"} +{"at": 1792532621.7848058, "bundle": "2a6be62c14b48050e3572480777148449d4e2ba83e81b56a35e28cac07c9df91", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-2a6be62c14b4-1792532621"} +{"at": 1792532621.78491, "kind": "phase.end", "person_touches": 0, "phase": "switch"} +{"at": 1792532622.3379, "kind": "phase.start", "phase": "crash"} +{"at": 1792532659.2909398, "kind": "phase.start", "phase": "crash"} +{"at": 1792532771.8254888, "charts": 1, "item": "r4-theo-lindqvist", "kind": "oracle"} +{"at": 1792532771.845352, "charts": 1, "deferred_check_held": false, "delivery_uncertainty": false, "item": "r4-theo-lindqvist", "kind": "crash.killed", "pause_category": null} diff --git a/packages/flow/benchmark/lifecycle_proof/results/earlier-attempts/proof-14-ledger.jsonl b/packages/flow/benchmark/lifecycle_proof/results/earlier-attempts/proof-14-ledger.jsonl new file mode 100644 index 000000000..d02a2af32 --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/earlier-attempts/proof-14-ledger.jsonl @@ -0,0 +1,40 @@ +{"at": 1792533716.650221, "kind": "phase.start", "phase": "admit"} +{"at": 1792533721.0144, "certification_invalidated": true, "encrypted": true, "encrypted_digest": "ec87be520a03662a423d15e8a778058c46588bcd1225bcaf4471f34032776874", "kind": "admit.encrypt", "source_digest": "ec096afa2b614326b00ec3155f256041c19d86f3998761ce9d772cfd911460b6"} +{"at": 1792533862.232529, "kind": "admit.qualify.log", "line": "{\"case_id\": \"representative\", \"trial\": 1, \"expected\": \"VERIFIED\", \"execution_outcome\": \"VERIFIED\", \"transaction_outcome\": \"VERIFIED\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": true, \"model_calls\": 0, \"total_ms\": 110788.65749994293, \"failed_step_id\": null, \"failed_erro"} +{"at": 1792533982.491713, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-ambiguity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 111619.18250005692, \"failed_step_id\": \"step_04"} +{"at": 1792534103.7967181, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-wrong-identity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"REJECTED_POLICY\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 112351.73508292064, \"failed_step_id\": \"step_04"} +{"at": 1792534224.727971, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-stale-identity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 112530.91291664168, \"failed_step_id\": \"st"} +{"at": 1792534345.1485791, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-weak-effect\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 111330.75579116121, \"failed_step_id\": \"step_"} +{"at": 1792534462.2681432, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-missing-effect\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 108827.52041704953, \"failed_step_id\": \"st"} +{"at": 1792534470.404949, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"representative\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792534478.503616, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-ambiguity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792534486.030577, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-wrong-identity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792534493.87969, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-stale-identity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792534501.883966, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-weak-effect\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792534509.864945, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-missing-effect\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792534509.865364, "kind": "admit.qualify.log", "line": "pixels-only pass (informational): 0/6 (0%) trials behaved as required with structure lookups disabled; most common failure: StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"at": 1792534510.175458, "kind": "admit.qualify.log", "line": "qualified lookups: structure on a local surface"} +{"at": 1792534510.400821, "kind": "admit.qualify.log", "line": "PASS: qualification for 'openemr-create-synthetic-patient'\n identity coverage 1/1; effect coverage 1/1; cases 6/6"} +{"at": 1792534510.4009442, "kind": "admit.qualify.log", "line": "qualification-result/v1 8a36f35f57c6f2a6: passed=True silent_incorrect_success=0 over_halt=0 executor_model_calls=0 verifier_model_calls=0"} +{"at": 1792534517.540077, "kind": "admit.qualify.log", "line": "no admission envelope: the qualification-admission/v1 envelope needs at least 3 trials per case; this campaign ran 1"} +{"at": 1792534524.343861, "certified": true, "digest": "34b60c05b78be7a5883e50ab0ea5e3084cd1d53307382f6fec8654c16679ba32", "kind": "admit.qualify", "passed": true, "rows": [{"case_id": "representative", "expected": "VERIFIED", "transaction_outcome": "VERIFIED", "trial": 1}, {"case_id": "fault-ambiguity", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-wrong-identity", "expected": "HALTED", "transaction_outcome": "REJECTED_POLICY", "trial": 1}, {"case_id": "fault-stale-identity", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-weak-effect", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-missing-effect", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}], "seconds": 807.7} +{"at": 1792534524.344584, "kind": "admit", "pinned_digest": "34b60c05b78be7a5883e50ab0ea5e3084cd1d53307382f6fec8654c16679ba32", "seconds": 807.7} +{"at": 1792534524.346942, "kind": "phase.end", "person_touches": 0, "phase": "admit"} +{"at": 1792534524.3470268, "kind": "phase.start", "phase": "switch"} +{"at": 1792534524.636534, "bundle": "34b60c05b78be7a5883e50ab0ea5e3084cd1d53307382f6fec8654c16679ba32", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-34b60c05b78b-1792534524"} +{"at": 1792534524.63664, "kind": "phase.end", "person_touches": 0, "phase": "switch"} +{"at": 1792534524.6366878, "kind": "phase.start", "phase": "batch"} +{"at": 1792534644.766527, "deferred": true, "inline_reason": null, "item": "r1-nadia-brennan", "kind": "batch.item", "returned_s": 120.1} +{"at": 1792534764.842647, "deferred": true, "inline_reason": null, "item": "r2-marcus-feld", "kind": "batch.item", "returned_s": 120.1} +{"at": 1792534885.810501, "deferred": true, "inline_reason": null, "item": "r3-ines-carvalho", "kind": "batch.item", "returned_s": 121.0} +{"at": 1792534890.7965372, "charts": 1, "item": "r1-nadia-brennan", "kind": "oracle"} +{"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "at": 1792534890.796853, "bundle_content_digest": "34b60c05b78be7a5883e50ab0ea5e3084cd1d53307382f6fec8654c16679ba32", "charts": 1, "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "item": "r1-nadia-brennan", "kind": "batch.result", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"} +{"at": 1792534890.906938, "charts": 1, "item": "r2-marcus-feld", "kind": "oracle"} +{"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "at": 1792534890.907273, "bundle_content_digest": "34b60c05b78be7a5883e50ab0ea5e3084cd1d53307382f6fec8654c16679ba32", "charts": 1, "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "item": "r2-marcus-feld", "kind": "batch.result", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"} +{"at": 1792534891.015286, "charts": 1, "item": "r3-ines-carvalho", "kind": "oracle"} +{"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "at": 1792534891.0156648, "bundle_content_digest": "34b60c05b78be7a5883e50ab0ea5e3084cd1d53307382f6fec8654c16679ba32", "charts": 1, "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "item": "r3-ines-carvalho", "kind": "batch.result", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"} +{"at": 1792534891.016074, "kind": "phase.end", "person_touches": 0, "phase": "batch"} +{"at": 1792534891.0161622, "kind": "phase.start", "phase": "crash"} +{"at": 1792535010.0551949, "charts": 1, "item": "r4-theo-lindqvist", "kind": "oracle"} +{"at": 1792535010.1237628, "charts": 1, "deferred_check_held": true, "delivery_uncertainty": true, "item": "r4-theo-lindqvist", "kind": "crash.killed", "pause_category": "readback_pending"} +{"action": "resume", "at": 1792535010.255796, "item": "r4-theo-lindqvist", "kind": "person"} diff --git a/packages/flow/benchmark/lifecycle_proof/results/proof-15/admission/admission.json b/packages/flow/benchmark/lifecycle_proof/results/proof-15/admission/admission.json new file mode 100644 index 000000000..acbe8ae29 --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/proof-15/admission/admission.json @@ -0,0 +1,143 @@ +{ + "bundle": "/Users/abrichr/oa/scratch/compose-proof/runs/proof-15/admission/qualification/bundle", + "environment_digest": "sha256:2dc00aa5bd8d4cb971fc11d724d7bae63aaa300f8cfe636298f68d5500913df5", + "pinned_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", + "policy": "clinical-write", + "profile": "regulated", + "qualification_dir": "/Users/abrichr/oa/scratch/compose-proof/runs/proof-15/admission/qualification", + "qualification_result": { + "action_count": 29, + "case_count": 6, + "cases": [ + { + "case_id": "representative", + "engine_outcome": "VERIFIED", + "evidence_digest": "sha256:7a43bbe03b48271036314618144eb58eb2390a4e80f71452afebb5be147003f6", + "executor_kind": "flow_replay", + "executor_model_calls": 0, + "expected_verdict": "CONFIRMED", + "fault_class": null, + "observed_verdict": "CONFIRMED", + "outcome": "verified", + "over_halt": false, + "passed": true, + "receipt_sha256": "27dac41ef88a318d9978667e7cc89184c6c41050fe40225657111425c18ec29b", + "silent_incorrect_success": false, + "trial": 1, + "verification_tier": "independent_readback" + }, + { + "case_id": "fault-ambiguity", + "engine_outcome": "HALTED", + "evidence_digest": "sha256:e253d9ca33d00adf9cac63ed5b1f36a363ec1b94b54ce191cf78074911d60157", + "executor_kind": "flow_replay", + "executor_model_calls": 0, + "expected_verdict": "REFUTED", + "fault_class": "ambiguity", + "observed_verdict": "REFUTED", + "outcome": "halted_before_effect", + "over_halt": false, + "passed": true, + "receipt_sha256": "7e00ee0c5c63e24206275f114f9f6a8a51bebb58c8d935ad32ae750b3bb3eb64", + "silent_incorrect_success": false, + "trial": 1, + "verification_tier": "independent_readback" + }, + { + "case_id": "fault-wrong-identity", + "engine_outcome": "HALTED", + "evidence_digest": "sha256:e253d9ca33d00adf9cac63ed5b1f36a363ec1b94b54ce191cf78074911d60157", + "executor_kind": "flow_replay", + "executor_model_calls": 0, + "expected_verdict": "REFUTED", + "fault_class": "wrong_identity", + "observed_verdict": "REFUTED", + "outcome": "halted_before_effect", + "over_halt": false, + "passed": true, + "receipt_sha256": "0a01ce9908b5a3d5d721e40589f1fbdbb873ccb0547ca2b05ec703c0e8799aa5", + "silent_incorrect_success": false, + "trial": 1, + "verification_tier": "independent_readback" + }, + { + "case_id": "fault-stale-identity", + "engine_outcome": "HALTED", + "evidence_digest": "sha256:e253d9ca33d00adf9cac63ed5b1f36a363ec1b94b54ce191cf78074911d60157", + "executor_kind": "flow_replay", + "executor_model_calls": 0, + "expected_verdict": "REFUTED", + "fault_class": "stale_identity", + "observed_verdict": "REFUTED", + "outcome": "halted_before_effect", + "over_halt": false, + "passed": true, + "receipt_sha256": "f7b5192e88eaf7bbd3cbc5cc308d57ef175692c44ecb67c087e5dc0c1bae1a8f", + "silent_incorrect_success": false, + "trial": 1, + "verification_tier": "independent_readback" + }, + { + "case_id": "fault-weak-effect", + "engine_outcome": "HALTED", + "evidence_digest": "sha256:e253d9ca33d00adf9cac63ed5b1f36a363ec1b94b54ce191cf78074911d60157", + "executor_kind": "flow_replay", + "executor_model_calls": 0, + "expected_verdict": "REFUTED", + "fault_class": "weak_effect", + "observed_verdict": "REFUTED", + "outcome": "halted_before_effect", + "over_halt": false, + "passed": true, + "receipt_sha256": "12be3326fb352c5845106bd71d2127f41d9b2d575af50242874bc873bec8ec55", + "silent_incorrect_success": false, + "trial": 1, + "verification_tier": "independent_readback" + }, + { + "case_id": "fault-missing-effect", + "engine_outcome": "HALTED", + "evidence_digest": "sha256:e253d9ca33d00adf9cac63ed5b1f36a363ec1b94b54ce191cf78074911d60157", + "executor_kind": "flow_replay", + "executor_model_calls": 0, + "expected_verdict": "REFUTED", + "fault_class": "missing_effect", + "observed_verdict": "REFUTED", + "outcome": "halted_before_effect", + "over_halt": false, + "passed": true, + "receipt_sha256": "0ad0c84bd5b1c0e69a828eb59f175703f9344ebbf0beb539383526575daf8be1", + "silent_incorrect_success": false, + "trial": 1, + "verification_tier": "independent_readback" + } + ], + "consequential_action_count": 1, + "effect_covered_action_count": 1, + "effect_required_action_count": 1, + "environment_contract_sha256": "450681aa09d195b9007463f5864ade3680848bbcb07edb9736fd3d8a7b24fd48", + "executor_model_calls": 0, + "fault_driver": { + "kind": "web-generic", + "version": "4f8c0e2cbba08ab5" + }, + "generated_at": "2026-10-20T22:37:46.043167+00:00", + "identity_covered_action_count": 1, + "minimum_effect_tier": 1, + "over_halt_count": 0, + "passed": true, + "passed_case_count": 6, + "policy_name": "clinical-write", + "project_id": "42abe878-ae09-4db1-84f1-0b487676098a", + "project_revision": 103, + "refusals": [], + "schema_version": "openadapt.qualification-result/v1", + "silent_incorrect_success_count": 0, + "state_changing_action_count": 0, + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verifier_model_calls": 0, + "verify_config_sha256": "sha256:8314086a5cb521b553ac0738c11bf4fe51171ac7873e3b38909e58218868de0e", + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839" + }, + "qualification_trials": 1 +} diff --git a/packages/flow/benchmark/lifecycle_proof/results/proof-15/admission/qualification/campaign-summary.json b/packages/flow/benchmark/lifecycle_proof/results/proof-15/admission/qualification/campaign-summary.json new file mode 100644 index 000000000..99a585167 --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/proof-15/admission/qualification/campaign-summary.json @@ -0,0 +1,104 @@ +[ + { + "case_id": "representative", + "execution_outcome": "VERIFIED", + "execution_profile": "standard", + "expected": "VERIFIED", + "failed_error": null, + "failed_step_id": null, + "fault_declined": null, + "model_calls": 0, + "oracle": "exact_record", + "production_eligible": false, + "success": true, + "total_ms": 110629.55450033769, + "transaction_outcome": "VERIFIED", + "trial": 1, + "trial_wall_s": 118.8 + }, + { + "case_id": "fault-ambiguity", + "execution_outcome": "HALTED", + "execution_profile": "standard", + "expected": "HALTED", + "failed_error": "OCR safety refusal for step 'step_040' (click 'Confirm Create New Patient'): 2 OCR target candidates remain after retained-evidence disambiguation \u2014 no action was admitted", + "failed_step_id": "step_040", + "fault_declined": null, + "model_calls": 0, + "oracle": "no_mutation", + "production_eligible": false, + "success": false, + "total_ms": 110470.15216713771, + "transaction_outcome": "HALTED_BEFORE_EFFECT", + "trial": 1, + "trial_wall_s": 119.0 + }, + { + "case_id": "fault-wrong-identity", + "execution_outcome": "HALTED", + "execution_profile": "standard", + "expected": "HALTED", + "failed_error": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's \u2014 expected '', observed '{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Merge Into Existing Record\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}' (coverage 0.00) \u2014 refusing to act; run aborted", + "failed_step_id": "step_040", + "fault_declined": null, + "model_calls": 0, + "oracle": "no_mutation", + "production_eligible": false, + "success": false, + "total_ms": 111084.64349992573, + "transaction_outcome": "REJECTED_POLICY", + "trial": 1, + "trial_wall_s": 119.7 + }, + { + "case_id": "fault-stale-identity", + "execution_outcome": "HALTED", + "execution_profile": "standard", + "expected": "HALTED", + "failed_error": "Could not resolve target for step 'step_040' (click 'Confirm Create New Patient'): all resolution rungs failed", + "failed_step_id": "step_040", + "fault_declined": null, + "model_calls": 0, + "oracle": "no_mutation", + "production_eligible": false, + "success": false, + "total_ms": 108867.19437502325, + "transaction_outcome": "HALTED_BEFORE_EFFECT", + "trial": 1, + "trial_wall_s": 117.3 + }, + { + "case_id": "fault-weak-effect", + "execution_outcome": "HALTED", + "execution_profile": "standard", + "expected": "HALTED", + "failed_error": "Effect verifier strength changed after admission: immediate_screen evidence cannot satisfy the required qualified effect tier \u2014 refusing to actuate; run aborted", + "failed_step_id": "step_040", + "fault_declined": null, + "model_calls": 0, + "oracle": "no_mutation", + "production_eligible": false, + "success": false, + "total_ms": 106066.22429192066, + "transaction_outcome": "HALTED_BEFORE_EFFECT", + "trial": 1, + "trial_wall_s": 114.5 + }, + { + "case_id": "fault-missing-effect", + "execution_outcome": "HALTED", + "execution_profile": "standard", + "expected": "HALTED", + "failed_error": "Step 'step_040' (click 'Confirm Create New Patient') declares 12 system-of-record effect(s) but no EffectVerifier is configured for this run \u2014 refusing to perform an unverifiable consequential write (deployment/configuration error); run aborted", + "failed_step_id": "step_040", + "fault_declined": null, + "model_calls": 0, + "oracle": "no_mutation", + "production_eligible": false, + "success": false, + "total_ms": 109981.55745863914, + "transaction_outcome": "HALTED_BEFORE_EFFECT", + "trial": 1, + "trial_wall_s": 118.2 + } +] diff --git a/packages/flow/benchmark/lifecycle_proof/results/proof-15/admission/qualification/qualify-notes.json b/packages/flow/benchmark/lifecycle_proof/results/proof-15/admission/qualification/qualify-notes.json new file mode 100644 index 000000000..b1d4de038 --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/proof-15/admission/qualification/qualify-notes.json @@ -0,0 +1,7 @@ +[ + { + "change": "record_checks_from_verify_yaml", + "effects": 12, + "step": "step_040" + } +] diff --git a/packages/flow/benchmark/lifecycle_proof/results/proof-15/batch/r1-nadia-brennan/report.json b/packages/flow/benchmark/lifecycle_proof/results/proof-15/batch/r1-nadia-brennan/report.json new file mode 100644 index 000000000..8be107d5e --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/proof-15/batch/r1-nadia-brennan/report.json @@ -0,0 +1,3638 @@ +{ + "workflow_name": "openemr-create-synthetic-patient", + "started_at": "2026-10-20T22:38:04.935690+00:00", + "execution_profile": "regulated", + "execution_outcome": "VERIFIED", + "production_eligible": true, + "execution_completed": true, + "outcome_envelope": { + "version": "openadapt.execution-outcome/v1", + "outcome": "VERIFIED", + "profile": "regulated", + "production_eligible": true, + "execution_completed": true, + "required_contracts": { + "authorization": 1, + "identity": 15, + "postcondition": 32, + "effect": 12 + }, + "passed_contracts": { + "authorization": 1, + "identity": 15, + "postcondition": 32, + "effect": 12 + }, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "postcondition_evidence": [ + { + "result_index": 0, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 0, + "step_contract_sha256": "229c3c9ec053ef29cf51bfea8e2b894f8bd0f5ac6ae8e86359ff4ac804a6e412", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "401187c13f64c38950e30ea4262ce2a935630e218bcd61a7d073cf991b7d9d52", + "verdict": "passed" + }, + { + "result_index": 0, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 0, + "step_contract_sha256": "229c3c9ec053ef29cf51bfea8e2b894f8bd0f5ac6ae8e86359ff4ac804a6e412", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "8c20f460859d7e96ddd1262caac7b0dcb62cf686efdee3f4e29fdd71c42596b7", + "verdict": "passed" + }, + { + "result_index": 1, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 1, + "step_contract_sha256": "ed6d8f4e51d357034dbb251bbbfb449f36db5616cb859e9fe77eade11e4c242f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "6d2bdc9553c6f5ceb6523f7ef6b422f7adf3c430a269ac860fe57d3424c57e5e", + "verdict": "passed" + }, + { + "result_index": 2, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 2, + "step_contract_sha256": "535b3af532c6b62630cb42d7ec12cf9a45067082a8e6c568568c9f1ea9294557", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "a3303142996bd058638ab541923a04b4fd4db7779b2a5cd1437c1b09f0f719c1", + "verdict": "passed" + }, + { + "result_index": 3, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 3, + "step_contract_sha256": "af6a582512adef1ab2655799bacb2f9c4f8d5c5d1fc093f8bbda3cf3993b13e3", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "d66343de1fb0f9486c8f490c22883a16d57fd0751c6a9af72ca033bd8226666e", + "verdict": "passed" + }, + { + "result_index": 4, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 4, + "step_contract_sha256": "db027061d3124e5b4bfb8d015a1d04a768ee71009aa12c2ca1ea395cee19c72c", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "d7676eca4e18055dccf69cfe02735b0f54f8fbb3b5adeeedbb5f77e724dcb405", + "verdict": "passed" + }, + { + "result_index": 5, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 5, + "step_contract_sha256": "0d1e7e53976a613a963b69d8659af906c19bb1f1e1f5e4faf98bd2b9c271e186", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "8cc322d346b34042845d05725697f3df24fcc7355a63368bc211e06afeaf04f1", + "verdict": "passed" + }, + { + "result_index": 6, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 6, + "step_contract_sha256": "10173be5ada082e37361f383f8c1cb702f6c8165fca5edd74cd06e225cf56d52", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "ba495991f7f4029c350243a6c4853dfa96a21f76478227ead0b58cd578d724d0", + "verdict": "passed" + }, + { + "result_index": 6, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 6, + "step_contract_sha256": "10173be5ada082e37361f383f8c1cb702f6c8165fca5edd74cd06e225cf56d52", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "33e2e8251b8960cc9d0dea8b0c610f66c8ab5532d4e9c610f826550d1969b319", + "verdict": "passed" + }, + { + "result_index": 7, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 7, + "step_contract_sha256": "7bdece9442af62928750cddf1b954dc0211e8137999c2dcb5123495557a64aff", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "21b21cc72a141d168d1f486ee9d5e686e9343d19479226fd0493c0e44acfb88f", + "verdict": "passed" + }, + { + "result_index": 8, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 8, + "step_contract_sha256": "924d89b47b94ae64b988b910c68fbe6afb3ae43cfcbd642271d83f6c8305bf58", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "c46e0fb995659cc26a2e96712dc2fe28e5855d930c2ef34a660c4a6f29a90ad4", + "verdict": "passed" + }, + { + "result_index": 9, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 9, + "step_contract_sha256": "210300a3b19d838675c64a43e28c5d05a65f6af0275a5c5cff2b81dd414a6ed1", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "6c79001d3f898490d8aaf4aa98e5009a3c3b35a0f3f00b52cd6588c3935ba634", + "verdict": "passed" + }, + { + "result_index": 11, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 11, + "step_contract_sha256": "f2f9caf11689c7abc85708df15b3d9c60d7907bc68262424d19d766bc5cb38bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "4dffb3e101368cd79a407a52df4ef3d4985827a932283d2d7a5bdbdf7b1a017a", + "verdict": "passed" + }, + { + "result_index": 11, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 11, + "step_contract_sha256": "f2f9caf11689c7abc85708df15b3d9c60d7907bc68262424d19d766bc5cb38bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "9a70e83e890372735f62c8c14072c5d5566e802712ca186eab31717fc09d5fb6", + "verdict": "passed" + }, + { + "result_index": 13, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 13, + "step_contract_sha256": "a1ec6bec55348170c3141f790e6d33909fc02034c50320f28a98afa025aa26bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "f4cdf9296fc00bafdca1f10cad96a713a1a77f13992fd8c8305ce33ac20725e6", + "verdict": "passed" + }, + { + "result_index": 14, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 14, + "step_contract_sha256": "38b8933e8bc3047d51fa72be99a9626f39910af3338152d64deff466e2381201", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "bcf795f882b3ea8db403894d208d48ca144950ddd28ef79ac99b0790d425cedf", + "verdict": "passed" + }, + { + "result_index": 15, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 15, + "step_contract_sha256": "314dfd0de9aeb5703e85cea70684f9e9ceded68be65bf724ce8c3e56baf000ff", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "1f34178539962ade7f7e3d3ea5542627f621ab125d433d667be815d366089958", + "verdict": "passed" + }, + { + "result_index": 16, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 16, + "step_contract_sha256": "2822b83d6e7e089b86920bbf4bb3b3bf62bd2594454242ba5ad76df41303aa00", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "82517d98410bde6259a7bc2b633a5efb475f2aaef11453ff7e58e9d89a4ca225", + "verdict": "passed" + }, + { + "result_index": 17, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 17, + "step_contract_sha256": "72ddbbc8bcee54e91b36253fa1b82c9a571a115ee086c31ad32982ae30dee59c", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "ff86f0b85d1718d49a97846817a769342e9113be9ea4297b9daaddb21688bdab", + "verdict": "passed" + }, + { + "result_index": 18, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 18, + "step_contract_sha256": "60f4dc2405e90e851af7a536a90c1e7551e66fa1f07e83002b690e6419ea2e68", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "c7730849ecdd8a488d8a3c19f19607f494f54b95fa4d17cc148fbae7b0ee3ea6", + "verdict": "passed" + }, + { + "result_index": 19, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 19, + "step_contract_sha256": "62c301c5e4731945d06e2fefce787cee0408990894a74bcde540841b96bda992", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "8d69a409f2da5411f6a1ffb89cbb6922ea4bd4e53cad88c07d91e2eb815bfbed", + "verdict": "passed" + }, + { + "result_index": 20, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 20, + "step_contract_sha256": "ec1b3c559fd1a1537e3041731aeedac080f3e53f7a0993099f27e83a4f4b9e8f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "36c6e797959d8ab804c4b41b750c0673063647cf6a1867bf7d9fbcfb82e35704", + "verdict": "passed" + }, + { + "result_index": 21, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 21, + "step_contract_sha256": "7586311fe4153a125c44cd9b9172e027a52a93df18f39907ace63d88920a3435", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "10e30a58326e2002cb8f578099f6e941c16a9c27325b9f9b81aa4876b4bc1e9c", + "verdict": "passed" + }, + { + "result_index": 22, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 22, + "step_contract_sha256": "5f8f28bb7f94a3fd80c95ac23ebc2144e5cb5fd558d83f1c7c3e7e54f8d5b989", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "0a0db9c0ae0c5ee7e7c832f7271d9fc56c20eca5233ac5adb9de41b3198a716f", + "verdict": "passed" + }, + { + "result_index": 23, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 23, + "step_contract_sha256": "d17ab75a87ee445f4616d61244bc33776696341c175099dda31e07f3524b18ce", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "7fe199b71066a71474ad1e5d16f5b3ba3591f67ded03ac5795aed0ea97606ec2", + "verdict": "passed" + }, + { + "result_index": 24, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 24, + "step_contract_sha256": "18959802e73a694c58d99b47a2bc3dba43ae047201f89d82776858349e7282cd", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "40a861211b6660e7cd12ae97a783522d35b7dac6e67b87a606b6c7631d967c03", + "verdict": "passed" + }, + { + "result_index": 25, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 25, + "step_contract_sha256": "b08f16f538d9547def1826013afffbb26478d83b2546d4ffa74e23a2860fc0e4", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "f1d929f76799835ffa2c67c42b7c0cb0fa02f6a5b960043e23ba455e75d4b61f", + "verdict": "passed" + }, + { + "result_index": 26, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 26, + "step_contract_sha256": "6115b2756620c9752efc3546a78ce18a4d5cecfca20beec7003a4529f9e2ae6f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "5bb10f94d82e26d0a55df0caa8140ab7f2a6bccdf74f10ed3fb1de08f946734b", + "verdict": "passed" + }, + { + "result_index": 27, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 27, + "step_contract_sha256": "84bb4b45b2b3c4739ff15089ac8b5d81eab784c8cb8515366b50672b26d94693", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "8afe0db69640d10aedd282fd0fb2932604f07364e1997040212f2ad66ae7b0c8", + "verdict": "passed" + }, + { + "result_index": 27, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 27, + "step_contract_sha256": "84bb4b45b2b3c4739ff15089ac8b5d81eab784c8cb8515366b50672b26d94693", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "7cb99120bcbba08a678c92d9ed380fecdf9ff40b208b603730b13fa1f088cebb", + "verdict": "passed" + }, + { + "result_index": 28, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 28, + "step_contract_sha256": "f1798bf8e82aa7907be82cb2276c5ab48f861213983faa26078b195f823c6a7e", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "5039384bb50435098e823e2de5fe3128495bf982d38319bb8552212679eeddc0", + "verdict": "passed" + }, + { + "result_index": 28, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 28, + "step_contract_sha256": "f1798bf8e82aa7907be82cb2276c5ab48f861213983faa26078b195f823c6a7e", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "f377120063182c856629a042d08e439f20a26fd6e41041fbd102c93c96f5cd5e", + "verdict": "passed" + } + ], + "evidence_classes": [ + "authorization", + "effect_tier_1", + "identity", + "postcondition" + ], + "model_calls": 0, + "external_network_calls": "none", + "compensation_actions": 0 + }, + "readback": { + "minimum": "separate_session", + "checked_how": "system_of_record", + "label": "Checked in your system's records", + "below_minimum": false, + "saves": [ + { + "step_id": "step_040", + "checked_how": "system_of_record", + "flow_tier": 1 + } + ] + }, + "transaction_outcome": "VERIFIED", + "transaction_billable": true, + "transaction_platform_fault": false, + "effect_journal": [ + { + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "consequential": true, + "intended_effect_contract_hashes": [], + "attempt_state": "delivered", + "observed_effect": "unknown", + "effect_verified": null, + "approved_unverified": false, + "verification_performed": false, + "observed_at": null, + "collateral_reconciliation_actions": 0 + }, + { + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "consequential": true, + "intended_effect_contract_hashes": [ + "sha256:4055eab5883e6d757ec5047232288af50075d40cde2c99f26a9144cbfb33cc30", + "sha256:a9782b7aa3d997601c1e3b9e020d64eae32ba36631bb97ce17e1d119278638b5", + "sha256:412b26c1f6775904c941a8c9587d4f5604a8f26b45ccb4cf158c05a2e2a4af37", + "sha256:80af3833989aea36f49891ca5486ba78daf770987a9afeb0f3110ad3c73a7636", + "sha256:788052e4c2d64fff9da02931ed2fff4d1e487e20e81dbd828ea83249d4d06ab9", + "sha256:040cb6e49d58b35690c90749fb249632e49894c38764bbddd8606f4cad3ef7cb", + "sha256:348267399f046676967daa3e19235077b7d6af3716705e6f26aa409ef744c49d", + "sha256:c868b3535924de67ccabfcb64618dad6d4e0e75900e336cc2a46a16eba21e7d9", + "sha256:05583145160d9c65dae3c9e43b94584085f27f804b0c8d55193351b1390df0e1", + "sha256:063ef43399e2673ae0aa9adca5fec1e55bf09de0ee657c60b69302c9219996a1", + "sha256:f482d1376c612caf4f9c62fa9f3162f82c3fbba5e3f37116f9fa55703142d14e", + "sha256:f3e5947b5cc139fe4bc6e7f7f58bc375f1afe80bb2550bebf98bc89fee35501c" + ], + "attempt_state": "delivered", + "observed_effect": "present", + "effect_verified": true, + "approved_unverified": false, + "verification_performed": true, + "observed_at": null, + "collateral_reconciliation_actions": 0 + } + ], + "change_ledger": [ + { + "position": 28, + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "attempt_state": "delivered", + "status": "unknown", + "effects": [], + "may_need_undo": true, + "undo_id": null + }, + { + "position": 29, + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "attempt_state": "delivered", + "status": "confirmed", + "effects": [ + { + "kind": "record_written", + "description": "record_written", + "contract_hash": "sha256:4055eab5883e6d757ec5047232288af50075d40cde2c99f26a9144cbfb33cc30", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "exact_new_set", + "description": "exact_new_set", + "contract_hash": "sha256:a9782b7aa3d997601c1e3b9e020d64eae32ba36631bb97ce17e1d119278638b5", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:412b26c1f6775904c941a8c9587d4f5604a8f26b45ccb4cf158c05a2e2a4af37", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:80af3833989aea36f49891ca5486ba78daf770987a9afeb0f3110ad3c73a7636", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:788052e4c2d64fff9da02931ed2fff4d1e487e20e81dbd828ea83249d4d06ab9", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:040cb6e49d58b35690c90749fb249632e49894c38764bbddd8606f4cad3ef7cb", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:348267399f046676967daa3e19235077b7d6af3716705e6f26aa409ef744c49d", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:c868b3535924de67ccabfcb64618dad6d4e0e75900e336cc2a46a16eba21e7d9", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:05583145160d9c65dae3c9e43b94584085f27f804b0c8d55193351b1390df0e1", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:063ef43399e2673ae0aa9adca5fec1e55bf09de0ee657c60b69302c9219996a1", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:f482d1376c612caf4f9c62fa9f3162f82c3fbba5e3f37116f9fa55703142d14e", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:f3e5947b5cc139fe4bc6e7f7f58bc375f1afe80bb2550bebf98bc89fee35501c", + "status": "confirmed", + "observed_effect": "present" + } + ], + "may_need_undo": true, + "undo_id": null + } + ], + "idempotency_key": null, + "idempotent_replay": false, + "canceled": false, + "execution_target_kind": "web", + "recorded_surface": null, + "surface_override": false, + "execution_origin": "http://127.0.0.1:9401", + "execution_entry_url": "http://127.0.0.1:9401/interface/main/tabs/main.php?token_main=", + "bundle_content_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "source_recording_sha256": "243fb7853b228a2e0fd93c51c1d43e7b84fff567f1aac917bdcd91a54d044894", + "parameter_schema_sha256": "2a19e2c3ea6e0644cfe9a842aea8c53e036d18bed254b100cf23c88ea090d603", + "governed_authorization_id": "a425bac210374699b0ffcd8bf3a353e0", + "governed_approval_source": "local-cli-explicit-flag", + "governed_authorization_created_at": "2026-10-20T22:38:04.924397+00:00", + "governed_policy_name": "clinical-write", + "governed_policy_contract_sha256": "f35a6a94b3f2787165f071ce8571de07095169b9632d394e9df719b35da52c0f", + "governed_minimum_effect_tier": 1, + "governed_qualified_effect_requirements": [ + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 0, + "effect_contract_hash": "sha256:f64985856097097954250be6523fa260daf9fc5db495671c2548ead9a388577b", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 1, + "effect_contract_hash": "sha256:709f0a4ad813f47658bb934bd1ea8c4c4c20b9c108b13d0a316e193d03dbddb8", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 2, + "effect_contract_hash": "sha256:206d1d6fc27df6f24c02bb6b6f4419e0612e7935ec7e744fc8cc446f54558385", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 3, + "effect_contract_hash": "sha256:8f295459bdd868daf117ca9f77dd948cdc2c8c034a65184cb5418ccfab7f60e7", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 4, + "effect_contract_hash": "sha256:52c6884d06d82c4ccc14600150f2890bcd25d92cb7eb26bc53ef54033075ba3c", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 5, + "effect_contract_hash": "sha256:7732675a6e6123c0c3f51512496f695fa4ce503ab989993c520fb8a469bbdc3d", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 6, + "effect_contract_hash": "sha256:598fb97e12d3c0b537f0453e7fdaad453b969e249e888424e67fcd85a06741f0", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 7, + "effect_contract_hash": "sha256:ba109cf90077d7b20a37c2848fa7bee8ea0039747a5ae47465617b2ea1039a2b", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 8, + "effect_contract_hash": "sha256:f9365eda04aba1960fc26c35d252cdadafcec9ad9f9c433b626af6f137189707", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 9, + "effect_contract_hash": "sha256:b311b51ece1670a60f793b29aa3d28d40da196ffbcd26f2fdd620e380dedf97a", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 10, + "effect_contract_hash": "sha256:a33cf54165b96ce6d48014e6e68bac94cdc8f9c9176bae6f5c955123d20683c2", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 11, + "effect_contract_hash": "sha256:d2516eb0f6aa365b812e84fd754127d053d8e0b1a4b349a0b8ce71936bcec199", + "minimum_tier": 1 + } + ], + "governed_runtime_inputs_digest": "db1a3bd61567e6518cbffd388b92c5e4de87f52c81509d2de10f6980ee53078b", + "run_id_sha256": "447b95a5ed746f18606ae46eb9af915d415d3d227959f6fee2222fc2abc12773", + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_run_id_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_session_sha256": null, + "observed_environment_digest": null, + "observed_environment_binding_sha256": null, + "qualification_environment_observer_id": null, + "qualification_environment_observer_contract_sha256": null, + "governed_authorized_effect_contracts": {}, + "required_identity_step_ids": [ + "step_000", + "step_003", + "step_006", + "step_009", + "step_012", + "step_016", + "step_018", + "step_021", + "step_024", + "step_027", + "step_030", + "step_033", + "step_036", + "step_039", + "step_040" + ], + "approved_unverified_effect_step_ids": [], + "params": { + "title": "Ms.", + "fname": "Nadia", + "lname": "Brennan", + "DOB": "1971-04-19", + "sex": "Female", + "street": "27 WILLOW BEND ROAD", + "city": "EXAMPLETON", + "state_label": "Massachusetts", + "postal_code": "02139", + "phone_home": "555-0121", + "email": "nadia.brennan@example.invalid", + "country_code": "USA" + }, + "results": [ + { + "step_id": "step_000", + "intent": "click 'Unassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 434, + 282 + ], + "confidence": 1.0, + "elapsed_ms": 58.98062512278557, + "structural_handle": { + "point": [ + 434, + 282 + ], + "confidence": 1.0, + "region": [ + 380, + 267, + 108, + 31 + ], + "target_fingerprint": "1d4b537e2412aa5243174d37b7cdbfb66e0dae7883788efbb22387bf69037c45", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"title\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-081ad2e9967a44aeacc17b3d51d6378e", + "operation": "dom_click", + "native": false, + "target_fingerprint": "1d4b537e2412aa5243174d37b7cdbfb66e0dae7883788efbb22387bf69037c45", + "delivered_at": "2026-10-20T22:38:05.757558+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_000_before.png", + "after_png": "steps/step_000_after.png", + "elapsed_ms": 700.3368749283254, + "timings": { + "screenshot": 112.7, + "artifact_write": 2.2, + "settle_before": 31.1, + "postcondition": 24.6, + "resolve": 111.5, + "identity": 125.7, + "actuate": 161.1, + "settle_after": 129.2, + "other": 2.3 + } + }, + { + "step_id": "step_001", + "intent": "type ", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_001_before.png", + "after_png": "steps/step_001_after.png", + "elapsed_ms": 365.36975018680096, + "timings": { + "screenshot": 90.9, + "artifact_write": 1.3, + "settle_before": 5.7, + "postcondition": 28.4, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 126.8, + "actuate": 111.1, + "other": 1.3 + } + }, + { + "step_id": "step_003", + "intent": "click 'First Name'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 445, + 317 + ], + "confidence": 1.0, + "elapsed_ms": 58.347499929368496, + "structural_handle": { + "point": [ + 445, + 317 + ], + "confidence": 1.0, + "region": [ + 380, + 302, + 129, + 31 + ], + "target_fingerprint": "2a3477715d9d94afe4438b1feb6f53f6a38d55cd5d9d0b9fd8c053644539f8c5", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"fname\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-c21c9533f37649dbbc429a58a670cea8", + "operation": "dom_click", + "native": false, + "target_fingerprint": "2a3477715d9d94afe4438b1feb6f53f6a38d55cd5d9d0b9fd8c053644539f8c5", + "delivered_at": "2026-10-20T22:38:07.941649+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_003_before.png", + "after_png": "steps/step_003_after.png", + "elapsed_ms": 644.1355827264488, + "timings": { + "screenshot": 117.1, + "artifact_write": 3.1, + "settle_before": 6.1, + "postcondition": 11.8, + "resolve": 118.6, + "identity": 101.9, + "actuate": 144.9, + "settle_after": 139.6, + "other": 1.2 + } + }, + { + "step_id": "step_005", + "intent": "type <fname>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_005_before.png", + "after_png": "steps/step_005_after.png", + "elapsed_ms": 332.18425000086427, + "timings": { + "screenshot": 94.4, + "artifact_write": 1.9, + "settle_before": 5.6, + "postcondition": 30.8, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 124.3, + "actuate": 73.9, + "other": 1.3 + } + }, + { + "step_id": "step_006", + "intent": "click 'Last Name'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 671, + 317 + ], + "confidence": 1.0, + "elapsed_ms": 66.08779216185212, + "structural_handle": { + "point": [ + 671, + 317 + ], + "confidence": 1.0, + "region": [ + 589, + 302, + 164, + 31 + ], + "target_fingerprint": "7775aa75c7697af25c92223f4d02520153537e363b966ef5656eda5cf1d7f4fe", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"lname\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-0796b9a1410147c1be26a3f197a3ebfc", + "operation": "dom_click", + "native": false, + "target_fingerprint": "7775aa75c7697af25c92223f4d02520153537e363b966ef5656eda5cf1d7f4fe", + "delivered_at": "2026-10-20T22:38:10.841460+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_006_before.png", + "after_png": "steps/step_006_after.png", + "elapsed_ms": 624.3813326582313, + "timings": { + "screenshot": 101.9, + "artifact_write": 2.6, + "settle_before": 3.9, + "postcondition": 14.0, + "resolve": 121.3, + "identity": 93.7, + "actuate": 151.1, + "settle_after": 134.8, + "other": 1.1 + } + }, + { + "step_id": "step_008", + "intent": "type <lname>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_008_before.png", + "after_png": "steps/step_008_after.png", + "elapsed_ms": 330.16483299434185, + "timings": { + "screenshot": 97.7, + "artifact_write": 1.3, + "settle_before": 3.5, + "postcondition": 30.1, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 126.7, + "actuate": 69.7, + "other": 1.2 + } + }, + { + "step_id": "step_009", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 427, + 430 + ], + "confidence": 1.0, + "elapsed_ms": 52.5714592076838, + "structural_handle": { + "point": [ + 427, + 430 + ], + "confidence": 1.0, + "region": [ + 380, + 415, + 94, + 31 + ], + "target_fingerprint": "850cec0b52d120cfe2b5b652bd43bead0e1856ceae606e573a7b6be2271bcebd", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"DOB\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-1cda6d860d9f45c9b01b45d1a9e129b2", + "operation": "dom_click", + "native": false, + "target_fingerprint": "850cec0b52d120cfe2b5b652bd43bead0e1856ceae606e573a7b6be2271bcebd", + "delivered_at": "2026-10-20T22:38:14.541127+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_009_before.png", + "after_png": "steps/step_009_after.png", + "elapsed_ms": 1531.4558343961835, + "timings": { + "screenshot": 90.5, + "artifact_write": 2.2, + "settle_before": 30.5, + "postcondition": 47.1, + "resolve": 102.9, + "identity": 92.5, + "actuate": 135.9, + "settle_after": 235.8, + "ocr": 792.6, + "other": 1.5 + } + }, + { + "step_id": "step_011", + "intent": "type <DOB>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_011_before.png", + "after_png": "steps/step_011_after.png", + "elapsed_ms": 334.7280831076205, + "timings": { + "screenshot": 101.9, + "artifact_write": 1.3, + "settle_before": 3.5, + "postcondition": 29.3, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 129.6, + "actuate": 68.1, + "other": 1.1 + } + }, + { + "step_id": "step_012", + "intent": "click 'Unassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 973, + 430 + ], + "confidence": 1.0, + "elapsed_ms": 61.24420836567879, + "structural_handle": { + "point": [ + 973, + 430 + ], + "confidence": 1.0, + "region": [ + 919, + 415, + 108, + 31 + ], + "target_fingerprint": "b0afc219cbf47d687e5a3e0739953dafa6c3a16c95e51fc9baef426c551370cd", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"sex\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-c98613b0bdd64f1a8c8ec344e3d1746b", + "operation": "dom_click", + "native": false, + "target_fingerprint": "b0afc219cbf47d687e5a3e0739953dafa6c3a16c95e51fc9baef426c551370cd", + "delivered_at": "2026-10-20T22:38:20.042198+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_012_before.png", + "after_png": "steps/step_012_after.png", + "elapsed_ms": 591.9171669520438, + "timings": { + "screenshot": 98.3, + "artifact_write": 2.1, + "settle_before": 3.3, + "postcondition": 19.5, + "resolve": 111.5, + "identity": 96.2, + "actuate": 125.5, + "settle_after": 134.5, + "other": 1.0 + } + }, + { + "step_id": "step_013", + "intent": "type <sex>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_013_before.png", + "after_png": "steps/step_013_after.png", + "elapsed_ms": 309.2497498728335, + "timings": { + "screenshot": 83.6, + "artifact_write": 1.3, + "settle_before": 3.5, + "postcondition": 27.5, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 108.6, + "actuate": 83.7, + "other": 1.2 + } + }, + { + "step_id": "step_015", + "intent": "scroll by (0, 300)", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_015_before.png", + "after_png": "steps/step_015_after.png", + "elapsed_ms": 419.11579109728336, + "timings": { + "screenshot": 146.1, + "artifact_write": 1.2, + "settle_before": 3.1, + "postcondition": 0.0, + "resolve": 97.6, + "identity": 9.7, + "settle_after": 99.7, + "actuate": 60.7, + "other": 1.0 + } + }, + { + "step_id": "step_016", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 634, + 506 + ], + "confidence": 1.0, + "elapsed_ms": 42.98083297908306, + "structural_handle": { + "point": [ + 634, + 506 + ], + "confidence": 1.0, + "region": [ + 91, + 487, + 1087, + 38 + ], + "target_fingerprint": "e6beb4306ca6998de6e8be0f6ca8a80fac641e0dec3b33248694f8203355d38d", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "pixel", + "coverage": 1.0, + "expected": "recorded identifier crop", + "observed": "live identifier crop matches after alignment (worst window 0.036)", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": { + "recorded_crop_sha256": "457eccee597076f6e0d2b6fdd6b1fdd148dfc0eb72501442413c2020efc4ce15", + "live_crop_sha256": "14a873e4bbcb5868c0ad4ca733fbbaf8beee79ab5958cf519c11a2a85115d2a5", + "recorded_crop_inventory_ref": "private/identity-crops/457eccee597076f6e0d2b6fdd6b1fdd148dfc0eb72501442413c2020efc4ce15.png", + "live_crop_inventory_ref": "private/identity-crops/14a873e4bbcb5868c0ad4ca733fbbaf8beee79ab5958cf519c11a2a85115d2a5.png", + "evaluator_contract_sha256": "277ca2432781bdf72113a5225ccd2954f214cfc31b18e2b19fdec02f01e5dce7" + }, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-4380adb9c9b147a19387bf9f2f953865", + "operation": "dom_click", + "native": false, + "target_fingerprint": "e6beb4306ca6998de6e8be0f6ca8a80fac641e0dec3b33248694f8203355d38d", + "delivered_at": "2026-10-20T22:38:28.241879+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_016_before.png", + "after_png": "steps/step_016_after.png", + "elapsed_ms": 1020.9358748979867, + "timings": { + "screenshot": 102.1, + "artifact_write": 2.0, + "settle_before": 4.0, + "postcondition": 111.7, + "resolve": 76.3, + "identity": 90.3, + "actuate": 159.1, + "settle_after": 464.6, + "other": 10.8 + } + }, + { + "step_id": "step_017", + "intent": "scroll by (0, 600)", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_017_before.png", + "after_png": "steps/step_017_after.png", + "elapsed_ms": 455.4477916099131, + "timings": { + "screenshot": 174.6, + "artifact_write": 1.3, + "settle_before": 3.4, + "postcondition": 0.0, + "resolve": 121.0, + "identity": 14.5, + "settle_after": 74.0, + "actuate": 65.6, + "other": 1.0 + } + }, + { + "step_id": "step_018", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 480, + 160 + ], + "confidence": 1.0, + "elapsed_ms": 58.264541905373335, + "structural_handle": { + "point": [ + 480, + 160 + ], + "confidence": 1.0, + "region": [ + 380, + 145, + 199, + 31 + ], + "target_fingerprint": "1fcd90dfe745c8677e35de2c77849ae8653811263e01d2df5b8ce53dfb9bdeeb", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"street\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-45cbeb0ce65b491da5deba039c68ce14", + "operation": "dom_click", + "native": false, + "target_fingerprint": "1fcd90dfe745c8677e35de2c77849ae8653811263e01d2df5b8ce53dfb9bdeeb", + "delivered_at": "2026-10-20T22:38:35.288457+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_018_before.png", + "after_png": "steps/step_018_after.png", + "elapsed_ms": 616.449374705553, + "timings": { + "screenshot": 113.2, + "artifact_write": 4.1, + "settle_before": 3.9, + "postcondition": 36.2, + "resolve": 106.8, + "identity": 96.2, + "actuate": 127.4, + "settle_after": 127.7, + "other": 1.0 + } + }, + { + "step_id": "step_020", + "intent": "type <street>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_020_before.png", + "after_png": "steps/step_020_after.png", + "elapsed_ms": 346.2081253528595, + "timings": { + "screenshot": 101.7, + "artifact_write": 1.3, + "settle_before": 3.6, + "postcondition": 33.1, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 133.7, + "actuate": 71.7, + "other": 1.1 + } + }, + { + "step_id": "step_021", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 445, + 197 + ], + "confidence": 1.0, + "elapsed_ms": 61.0356661491096, + "structural_handle": { + "point": [ + 445, + 197 + ], + "confidence": 1.0, + "region": [ + 380, + 182, + 129, + 31 + ], + "target_fingerprint": "cd86a292c0ae58c1afa31a1154c233c343b95edc216c6f6108024746afaf1326", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"city\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-4305bbfc08e14768a05a076cc0aa7cca", + "operation": "dom_click", + "native": false, + "target_fingerprint": "cd86a292c0ae58c1afa31a1154c233c343b95edc216c6f6108024746afaf1326", + "delivered_at": "2026-10-20T22:38:42.722337+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_021_before.png", + "after_png": "steps/step_021_after.png", + "elapsed_ms": 623.9481247030199, + "timings": { + "screenshot": 100.8, + "artifact_write": 2.0, + "settle_before": 3.5, + "postcondition": 12.8, + "resolve": 111.9, + "identity": 100.7, + "actuate": 153.7, + "settle_after": 137.5, + "other": 1.0 + } + }, + { + "step_id": "step_023", + "intent": "type <city>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_023_before.png", + "after_png": "steps/step_023_after.png", + "elapsed_ms": 329.673666972667, + "timings": { + "screenshot": 96.1, + "artifact_write": 1.4, + "settle_before": 3.9, + "postcondition": 29.6, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 125.9, + "actuate": 71.6, + "other": 1.1 + } + }, + { + "step_id": "step_024", + "intent": "click 'Jnassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1017, + 197 + ], + "confidence": 1.0, + "elapsed_ms": 58.056042063981295, + "structural_handle": { + "point": [ + 1017, + 197 + ], + "confidence": 1.0, + "region": [ + 919, + 182, + 197, + 31 + ], + "target_fingerprint": "a7279b4fd78cc604cceb36263c70e91e29163c4c0e6ee554c366192ec6c94474", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"state\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-6123d16c135144afb72f00b16baba473", + "operation": "dom_click", + "native": false, + "target_fingerprint": "a7279b4fd78cc604cceb36263c70e91e29163c4c0e6ee554c366192ec6c94474", + "delivered_at": "2026-10-20T22:38:50.805916+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_024_before.png", + "after_png": "steps/step_024_after.png", + "elapsed_ms": 583.5680412128568, + "timings": { + "screenshot": 99.3, + "artifact_write": 1.9, + "settle_before": 3.7, + "postcondition": 15.6, + "resolve": 113.4, + "identity": 90.6, + "actuate": 130.0, + "settle_after": 128.1, + "other": 1.0 + } + }, + { + "step_id": "step_025", + "intent": "type <state_label>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_025_before.png", + "after_png": "steps/step_025_after.png", + "elapsed_ms": 331.31224988028407, + "timings": { + "screenshot": 101.5, + "artifact_write": 1.4, + "settle_before": 3.8, + "postcondition": 28.9, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 106.3, + "actuate": 88.3, + "other": 1.1 + } + }, + { + "step_id": "step_027", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 420, + 236 + ], + "confidence": 1.0, + "elapsed_ms": 62.03150004148483, + "structural_handle": { + "point": [ + 420, + 236 + ], + "confidence": 1.0, + "region": [ + 380, + 221, + 80, + 31 + ], + "target_fingerprint": "e599ea38ec3205b68ebaef952110715ffbf801a4784cd5309b56836fc1bd34e6", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"postal_code\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-350369f8872b4f889cb8f4c98fb96c18", + "operation": "dom_click", + "native": false, + "target_fingerprint": "e599ea38ec3205b68ebaef952110715ffbf801a4784cd5309b56836fc1bd34e6", + "delivered_at": "2026-10-20T22:38:59.805779+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_027_before.png", + "after_png": "steps/step_027_after.png", + "elapsed_ms": 630.9190830215812, + "timings": { + "screenshot": 94.2, + "artifact_write": 2.1, + "settle_before": 4.0, + "postcondition": 12.6, + "resolve": 122.8, + "identity": 102.2, + "actuate": 158.0, + "settle_after": 133.6, + "other": 1.5 + } + }, + { + "step_id": "step_029", + "intent": "type <postal_code>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_029_before.png", + "after_png": "steps/step_029_after.png", + "elapsed_ms": 372.1549166366458, + "timings": { + "screenshot": 99.2, + "artifact_write": 1.7, + "settle_before": 29.3, + "postcondition": 35.6, + "resolve": 0.0, + "identity": 0.1, + "settle_after": 129.6, + "actuate": 75.5, + "other": 1.2 + } + }, + { + "step_id": "step_030", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 462, + 349 + ], + "confidence": 1.0, + "elapsed_ms": 48.67820907384157, + "structural_handle": { + "point": [ + 462, + 349 + ], + "confidence": 1.0, + "region": [ + 380, + 334, + 164, + 31 + ], + "target_fingerprint": "1fd426ef23bc85a0153e2e99bd25251e477a494663e7cd948daec806780687ca", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"phone_home\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-1fdabc97fd4a41188ec360524f1dd31d", + "operation": "dom_click", + "native": false, + "target_fingerprint": "1fd426ef23bc85a0153e2e99bd25251e477a494663e7cd948daec806780687ca", + "delivered_at": "2026-10-20T22:39:09.686726+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_030_before.png", + "after_png": "steps/step_030_after.png", + "elapsed_ms": 577.1505841985345, + "timings": { + "screenshot": 104.0, + "artifact_write": 1.8, + "settle_before": 3.4, + "postcondition": 15.7, + "resolve": 102.4, + "identity": 87.8, + "actuate": 124.4, + "settle_after": 136.4, + "other": 1.1 + } + }, + { + "step_id": "step_032", + "intent": "type <phone_home>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_032_before.png", + "after_png": "steps/step_032_after.png", + "elapsed_ms": 369.70487516373396, + "timings": { + "screenshot": 100.4, + "artifact_write": 1.7, + "settle_before": 31.0, + "postcondition": 32.1, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 129.4, + "actuate": 73.9, + "other": 1.2 + } + }, + { + "step_id": "step_033", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1036, + 384 + ], + "confidence": 1.0, + "elapsed_ms": 52.403916139155626, + "structural_handle": { + "point": [ + 1036, + 384 + ], + "confidence": 1.0, + "region": [ + 919, + 369, + 234, + 31 + ], + "target_fingerprint": "7e9d1805637805b1591077d48267e2153d409ad1ebbdfc8e119f03160db77a4f", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"email\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-e4d139e4fd8a4305a77ef1b0647263c0", + "operation": "dom_click", + "native": false, + "target_fingerprint": "7e9d1805637805b1591077d48267e2153d409ad1ebbdfc8e119f03160db77a4f", + "delivered_at": "2026-10-20T22:39:20.419641+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_033_before.png", + "after_png": "steps/step_033_after.png", + "elapsed_ms": 581.2951666302979, + "timings": { + "screenshot": 92.4, + "artifact_write": 2.0, + "settle_before": 4.1, + "postcondition": 16.3, + "resolve": 110.4, + "identity": 85.6, + "actuate": 135.0, + "settle_after": 134.6, + "other": 1.0 + } + }, + { + "step_id": "step_035", + "intent": "type <email>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_035_before.png", + "after_png": "steps/step_035_after.png", + "elapsed_ms": 341.58170875161886, + "timings": { + "screenshot": 96.3, + "artifact_write": 1.3, + "settle_before": 3.4, + "postcondition": 34.3, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 124.8, + "actuate": 80.3, + "other": 1.1 + } + }, + { + "step_id": "step_036", + "intent": "click 'Jnassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1017, + 236 + ], + "confidence": 1.0, + "elapsed_ms": 59.56787522882223, + "structural_handle": { + "point": [ + 1017, + 236 + ], + "confidence": 1.0, + "region": [ + 919, + 221, + 197, + 31 + ], + "target_fingerprint": "f478e4807efe3f062bed01980ffcf480f9749c1b4107c934d348cbb930f558fc", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"country_code\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-87a36a7ea7734b2f8376a7f93c100da7", + "operation": "dom_click", + "native": false, + "target_fingerprint": "f478e4807efe3f062bed01980ffcf480f9749c1b4107c934d348cbb930f558fc", + "delivered_at": "2026-10-20T22:39:31.721122+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_036_before.png", + "after_png": "steps/step_036_after.png", + "elapsed_ms": 611.8321670219302, + "timings": { + "screenshot": 92.3, + "artifact_write": 2.2, + "settle_before": 3.5, + "postcondition": 12.3, + "resolve": 117.1, + "identity": 89.6, + "actuate": 159.7, + "settle_after": 133.9, + "other": 1.2 + } + }, + { + "step_id": "step_037", + "intent": "type <country_code>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_037_before.png", + "after_png": "steps/step_037_after.png", + "elapsed_ms": 339.38550017774105, + "timings": { + "screenshot": 90.9, + "artifact_write": 1.3, + "settle_before": 3.8, + "postcondition": 26.8, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 125.8, + "actuate": 89.4, + "other": 1.2 + } + }, + { + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 285, + 774 + ], + "confidence": 1.0, + "elapsed_ms": 49.968792125582695, + "structural_handle": { + "point": [ + 285, + 774 + ], + "confidence": 1.0, + "region": [ + 189, + 755, + 191, + 39 + ], + "target_fingerprint": "088f32fcf92c245ea2e1b71e6ec188ad227d8777b4dacf856d42ae469f30e056", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"open_duplicate_check\",\"target_kind\":\"action\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-adc7cfb40e4e44c398fb6576daf780b9", + "operation": "dom_click", + "native": false, + "target_fingerprint": "088f32fcf92c245ea2e1b71e6ec188ad227d8777b4dacf856d42ae469f30e056", + "delivered_at": "2026-10-20T22:39:43.953277+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_039_before.png", + "after_png": "steps/step_039_after.png", + "elapsed_ms": 1157.788958400488, + "timings": { + "screenshot": 101.4, + "artifact_write": 2.8, + "settle_before": 3.7, + "postcondition": 62.7, + "resolve": 96.9, + "identity": 97.0, + "actuate": 170.9, + "settle_after": 596.3, + "other": 26.2 + } + }, + { + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "ok": true, + "risk": "irreversible", + "risk_explanation": "operator-qualified override: irreversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 600, + 280 + ], + "confidence": 1.0, + "elapsed_ms": 43.72433293610811, + "structural_handle": { + "point": [ + 600, + 280 + ], + "confidence": 1.0, + "region": [ + 488, + 261, + 225, + 38 + ], + "target_fingerprint": "7de97c7ab879fbe739a00d8ea9fcbe26772f812244ec40aa38e0a75ff9833769", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Confirm Create New Patient\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": true, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [ + "[rest] record_written: CONFIRMED — exactly 1 record(s) match the target selector", + "[rest] exact_new_set: CONFIRMED — the action added exactly the 1 declared record(s) to the scoped read set, and nothing else", + "[rest] field_equals: CONFIRMED — field 'title' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'fname' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'DOB' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'sex' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'street' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'city' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'state' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'postal_code' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'phone_home' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'country_code' equals the expected value" + ], + "effect_evidence": [ + { + "effect_contract_hash": "sha256:4055eab5883e6d757ec5047232288af50075d40cde2c99f26a9144cbfb33cc30", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:a9782b7aa3d997601c1e3b9e020d64eae32ba36631bb97ce17e1d119278638b5", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:412b26c1f6775904c941a8c9587d4f5604a8f26b45ccb4cf158c05a2e2a4af37", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:80af3833989aea36f49891ca5486ba78daf770987a9afeb0f3110ad3c73a7636", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:788052e4c2d64fff9da02931ed2fff4d1e487e20e81dbd828ea83249d4d06ab9", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:040cb6e49d58b35690c90749fb249632e49894c38764bbddd8606f4cad3ef7cb", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:348267399f046676967daa3e19235077b7d6af3716705e6f26aa409ef744c49d", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:c868b3535924de67ccabfcb64618dad6d4e0e75900e336cc2a46a16eba21e7d9", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:05583145160d9c65dae3c9e43b94584085f27f804b0c8d55193351b1390df0e1", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:063ef43399e2673ae0aa9adca5fec1e55bf09de0ee657c60b69302c9219996a1", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:f482d1376c612caf4f9c62fa9f3162f82c3fbba5e3f37116f9fa55703142d14e", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:f3e5947b5cc139fe4bc6e7f7f58bc375f1afe80bb2550bebf98bc89fee35501c", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + } + ], + "server_responses": [ + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + } + ], + "effect_field_checks": [ + { + "field": "title", + "expected": "Ms.", + "observed": "Ms.", + "matched": true, + "verification_tier": 1 + }, + { + "field": "fname", + "expected": "Nadia", + "observed": "Nadia", + "matched": true, + "verification_tier": 1 + }, + { + "field": "DOB", + "expected": "1971-04-19", + "observed": "1971-04-19", + "matched": true, + "verification_tier": 1 + }, + { + "field": "sex", + "expected": "Female", + "observed": "Female", + "matched": true, + "verification_tier": 1 + }, + { + "field": "street", + "expected": "27 WILLOW BEND ROAD", + "observed": "27 WILLOW BEND ROAD", + "matched": true, + "verification_tier": 1 + }, + { + "field": "city", + "expected": "EXAMPLETON", + "observed": "EXAMPLETON", + "matched": true, + "verification_tier": 1 + }, + { + "field": "state", + "expected": "MA", + "observed": "MA", + "matched": true, + "verification_tier": 1 + }, + { + "field": "postal_code", + "expected": "02139", + "observed": "02139", + "matched": true, + "verification_tier": 1 + }, + { + "field": "phone_home", + "expected": "555-0121", + "observed": "555-0121", + "matched": true, + "verification_tier": 1 + }, + { + "field": "country_code", + "expected": "USA", + "observed": "USA", + "matched": true, + "verification_tier": 1 + } + ], + "failure_category": null, + "effect_contract_hashes": [ + "sha256:4055eab5883e6d757ec5047232288af50075d40cde2c99f26a9144cbfb33cc30", + "sha256:a9782b7aa3d997601c1e3b9e020d64eae32ba36631bb97ce17e1d119278638b5", + "sha256:412b26c1f6775904c941a8c9587d4f5604a8f26b45ccb4cf158c05a2e2a4af37", + "sha256:80af3833989aea36f49891ca5486ba78daf770987a9afeb0f3110ad3c73a7636", + "sha256:788052e4c2d64fff9da02931ed2fff4d1e487e20e81dbd828ea83249d4d06ab9", + "sha256:040cb6e49d58b35690c90749fb249632e49894c38764bbddd8606f4cad3ef7cb", + "sha256:348267399f046676967daa3e19235077b7d6af3716705e6f26aa409ef744c49d", + "sha256:c868b3535924de67ccabfcb64618dad6d4e0e75900e336cc2a46a16eba21e7d9", + "sha256:05583145160d9c65dae3c9e43b94584085f27f804b0c8d55193351b1390df0e1", + "sha256:063ef43399e2673ae0aa9adca5fec1e55bf09de0ee657c60b69302c9219996a1", + "sha256:f482d1376c612caf4f9c62fa9f3162f82c3fbba5e3f37116f9fa55703142d14e", + "sha256:f3e5947b5cc139fe4bc6e7f7f58bc375f1afe80bb2550bebf98bc89fee35501c" + ], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-a509b598388d479394b381e38e84e9ad", + "operation": "dom_click", + "native": false, + "target_fingerprint": "7de97c7ab879fbe739a00d8ea9fcbe26772f812244ec40aa38e0a75ff9833769", + "delivered_at": "2026-10-20T22:39:51.104127+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_040_before.png", + "after_png": "steps/step_040_after.png", + "elapsed_ms": 1649.5747081935406, + "timings": { + "screenshot": 106.6, + "artifact_write": 2.1, + "settle_before": 3.4, + "postcondition": 89.2, + "resolve": 88.0, + "identity": 81.3, + "actuate": 200.7, + "settle_after": 1043.8, + "other": 34.5 + } + } + ], + "success": true, + "terminal_outcome": null, + "visited_states": [], + "loop_iterations": [], + "program_transition_evidence": [], + "business_decision_evidence": [], + "program_exception_evidence": [], + "attended_program_transition_evidence": [], + "halt": null, + "rung_counts": { + "structural": 15 + }, + "render_scale": null, + "heal_count": 0, + "model_calls": 0, + "external_network_calls": "none", + "est_model_cost_usd": 0.0, + "total_ms": 114719.9497083202, + "identity_applicable_steps": 15, + "identity_armed_steps": 15, + "identity_unarmed": [], + "screenshots_may_leave_box": false, + "approval": { + "schema_version": "openadapt.approval-mode-item/v1", + "mode": "problems_only", + "channel": "desktop_run_it_list_with_header", + "switch_id": "switch-lifecycle-proof-0c985b8bb0fd-1792535879", + "switch_record_sha256": "sha256:646a2d9143579b4abc926c14a41ff5ba14a980a5a937dad38bf6af950b06f2c3", + "item_checks": [ + { + "code": "inputs_supplied", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "channel", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "inputs_strict", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "not_a_retry", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "record_key_not_recent", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "deployment_config", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "switch_lease", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "not_resumed", + "passed": true, + "detail": "ok", + "step_id": null + } + ], + "pre_checks": [ + { + "code": "switch_on", + "passed": true, + "detail": "ok", + "step_id": "step_040" + }, + { + "code": "signed_in_user", + "passed": true, + "detail": "ok", + "step_id": "step_040" + }, + { + "code": "right_record", + "passed": true, + "detail": "ok", + "step_id": "step_040" + }, + { + "code": "same_screens", + "passed": true, + "detail": "ok", + "step_id": "step_040" + }, + { + "code": "record_check_ready", + "passed": true, + "detail": "ok", + "step_id": "step_040" + } + ], + "post_checks": [ + { + "code": "verified", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "whole_run_clean", + "passed": true, + "detail": "ok", + "step_id": null + } + ], + "saves_without_person": 1, + "gated_step_id": null, + "decision": "no_person", + "decision_reason": null, + "needs_person": false, + "counts_toward_problems": false, + "switch_off_reason": null, + "switch_log_recorded": true, + "approvals": [] + }, + "redactions": [ + { + "pointer": "/execution_entry_url", + "reason": "url_param:token_main" + } + ] +} \ No newline at end of file diff --git a/packages/flow/benchmark/lifecycle_proof/results/proof-15/batch/r2-marcus-feld/report.json b/packages/flow/benchmark/lifecycle_proof/results/proof-15/batch/r2-marcus-feld/report.json new file mode 100644 index 000000000..4f8b15052 --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/proof-15/batch/r2-marcus-feld/report.json @@ -0,0 +1,3638 @@ +{ + "workflow_name": "openemr-create-synthetic-patient", + "started_at": "2026-10-20T22:40:04.938632+00:00", + "execution_profile": "regulated", + "execution_outcome": "VERIFIED", + "production_eligible": true, + "execution_completed": true, + "outcome_envelope": { + "version": "openadapt.execution-outcome/v1", + "outcome": "VERIFIED", + "profile": "regulated", + "production_eligible": true, + "execution_completed": true, + "required_contracts": { + "authorization": 1, + "identity": 15, + "postcondition": 32, + "effect": 12 + }, + "passed_contracts": { + "authorization": 1, + "identity": 15, + "postcondition": 32, + "effect": 12 + }, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "postcondition_evidence": [ + { + "result_index": 0, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 0, + "step_contract_sha256": "229c3c9ec053ef29cf51bfea8e2b894f8bd0f5ac6ae8e86359ff4ac804a6e412", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "401187c13f64c38950e30ea4262ce2a935630e218bcd61a7d073cf991b7d9d52", + "verdict": "passed" + }, + { + "result_index": 0, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 0, + "step_contract_sha256": "229c3c9ec053ef29cf51bfea8e2b894f8bd0f5ac6ae8e86359ff4ac804a6e412", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "8c20f460859d7e96ddd1262caac7b0dcb62cf686efdee3f4e29fdd71c42596b7", + "verdict": "passed" + }, + { + "result_index": 1, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 1, + "step_contract_sha256": "ed6d8f4e51d357034dbb251bbbfb449f36db5616cb859e9fe77eade11e4c242f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "6d2bdc9553c6f5ceb6523f7ef6b422f7adf3c430a269ac860fe57d3424c57e5e", + "verdict": "passed" + }, + { + "result_index": 2, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 2, + "step_contract_sha256": "535b3af532c6b62630cb42d7ec12cf9a45067082a8e6c568568c9f1ea9294557", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "a3303142996bd058638ab541923a04b4fd4db7779b2a5cd1437c1b09f0f719c1", + "verdict": "passed" + }, + { + "result_index": 3, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 3, + "step_contract_sha256": "af6a582512adef1ab2655799bacb2f9c4f8d5c5d1fc093f8bbda3cf3993b13e3", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "d66343de1fb0f9486c8f490c22883a16d57fd0751c6a9af72ca033bd8226666e", + "verdict": "passed" + }, + { + "result_index": 4, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 4, + "step_contract_sha256": "db027061d3124e5b4bfb8d015a1d04a768ee71009aa12c2ca1ea395cee19c72c", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "d7676eca4e18055dccf69cfe02735b0f54f8fbb3b5adeeedbb5f77e724dcb405", + "verdict": "passed" + }, + { + "result_index": 5, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 5, + "step_contract_sha256": "0d1e7e53976a613a963b69d8659af906c19bb1f1e1f5e4faf98bd2b9c271e186", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "8cc322d346b34042845d05725697f3df24fcc7355a63368bc211e06afeaf04f1", + "verdict": "passed" + }, + { + "result_index": 6, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 6, + "step_contract_sha256": "10173be5ada082e37361f383f8c1cb702f6c8165fca5edd74cd06e225cf56d52", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "ba495991f7f4029c350243a6c4853dfa96a21f76478227ead0b58cd578d724d0", + "verdict": "passed" + }, + { + "result_index": 6, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 6, + "step_contract_sha256": "10173be5ada082e37361f383f8c1cb702f6c8165fca5edd74cd06e225cf56d52", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "33e2e8251b8960cc9d0dea8b0c610f66c8ab5532d4e9c610f826550d1969b319", + "verdict": "passed" + }, + { + "result_index": 7, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 7, + "step_contract_sha256": "7bdece9442af62928750cddf1b954dc0211e8137999c2dcb5123495557a64aff", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "21b21cc72a141d168d1f486ee9d5e686e9343d19479226fd0493c0e44acfb88f", + "verdict": "passed" + }, + { + "result_index": 8, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 8, + "step_contract_sha256": "924d89b47b94ae64b988b910c68fbe6afb3ae43cfcbd642271d83f6c8305bf58", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "c46e0fb995659cc26a2e96712dc2fe28e5855d930c2ef34a660c4a6f29a90ad4", + "verdict": "passed" + }, + { + "result_index": 9, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 9, + "step_contract_sha256": "210300a3b19d838675c64a43e28c5d05a65f6af0275a5c5cff2b81dd414a6ed1", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "6c79001d3f898490d8aaf4aa98e5009a3c3b35a0f3f00b52cd6588c3935ba634", + "verdict": "passed" + }, + { + "result_index": 11, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 11, + "step_contract_sha256": "f2f9caf11689c7abc85708df15b3d9c60d7907bc68262424d19d766bc5cb38bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "4dffb3e101368cd79a407a52df4ef3d4985827a932283d2d7a5bdbdf7b1a017a", + "verdict": "passed" + }, + { + "result_index": 11, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 11, + "step_contract_sha256": "f2f9caf11689c7abc85708df15b3d9c60d7907bc68262424d19d766bc5cb38bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "9a70e83e890372735f62c8c14072c5d5566e802712ca186eab31717fc09d5fb6", + "verdict": "passed" + }, + { + "result_index": 13, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 13, + "step_contract_sha256": "a1ec6bec55348170c3141f790e6d33909fc02034c50320f28a98afa025aa26bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "f4cdf9296fc00bafdca1f10cad96a713a1a77f13992fd8c8305ce33ac20725e6", + "verdict": "passed" + }, + { + "result_index": 14, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 14, + "step_contract_sha256": "38b8933e8bc3047d51fa72be99a9626f39910af3338152d64deff466e2381201", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "bcf795f882b3ea8db403894d208d48ca144950ddd28ef79ac99b0790d425cedf", + "verdict": "passed" + }, + { + "result_index": 15, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 15, + "step_contract_sha256": "314dfd0de9aeb5703e85cea70684f9e9ceded68be65bf724ce8c3e56baf000ff", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "1f34178539962ade7f7e3d3ea5542627f621ab125d433d667be815d366089958", + "verdict": "passed" + }, + { + "result_index": 16, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 16, + "step_contract_sha256": "2822b83d6e7e089b86920bbf4bb3b3bf62bd2594454242ba5ad76df41303aa00", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "82517d98410bde6259a7bc2b633a5efb475f2aaef11453ff7e58e9d89a4ca225", + "verdict": "passed" + }, + { + "result_index": 17, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 17, + "step_contract_sha256": "72ddbbc8bcee54e91b36253fa1b82c9a571a115ee086c31ad32982ae30dee59c", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "ff86f0b85d1718d49a97846817a769342e9113be9ea4297b9daaddb21688bdab", + "verdict": "passed" + }, + { + "result_index": 18, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 18, + "step_contract_sha256": "60f4dc2405e90e851af7a536a90c1e7551e66fa1f07e83002b690e6419ea2e68", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "c7730849ecdd8a488d8a3c19f19607f494f54b95fa4d17cc148fbae7b0ee3ea6", + "verdict": "passed" + }, + { + "result_index": 19, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 19, + "step_contract_sha256": "62c301c5e4731945d06e2fefce787cee0408990894a74bcde540841b96bda992", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "8d69a409f2da5411f6a1ffb89cbb6922ea4bd4e53cad88c07d91e2eb815bfbed", + "verdict": "passed" + }, + { + "result_index": 20, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 20, + "step_contract_sha256": "ec1b3c559fd1a1537e3041731aeedac080f3e53f7a0993099f27e83a4f4b9e8f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "36c6e797959d8ab804c4b41b750c0673063647cf6a1867bf7d9fbcfb82e35704", + "verdict": "passed" + }, + { + "result_index": 21, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 21, + "step_contract_sha256": "7586311fe4153a125c44cd9b9172e027a52a93df18f39907ace63d88920a3435", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "10e30a58326e2002cb8f578099f6e941c16a9c27325b9f9b81aa4876b4bc1e9c", + "verdict": "passed" + }, + { + "result_index": 22, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 22, + "step_contract_sha256": "5f8f28bb7f94a3fd80c95ac23ebc2144e5cb5fd558d83f1c7c3e7e54f8d5b989", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "0a0db9c0ae0c5ee7e7c832f7271d9fc56c20eca5233ac5adb9de41b3198a716f", + "verdict": "passed" + }, + { + "result_index": 23, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 23, + "step_contract_sha256": "d17ab75a87ee445f4616d61244bc33776696341c175099dda31e07f3524b18ce", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "7fe199b71066a71474ad1e5d16f5b3ba3591f67ded03ac5795aed0ea97606ec2", + "verdict": "passed" + }, + { + "result_index": 24, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 24, + "step_contract_sha256": "18959802e73a694c58d99b47a2bc3dba43ae047201f89d82776858349e7282cd", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "40a861211b6660e7cd12ae97a783522d35b7dac6e67b87a606b6c7631d967c03", + "verdict": "passed" + }, + { + "result_index": 25, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 25, + "step_contract_sha256": "b08f16f538d9547def1826013afffbb26478d83b2546d4ffa74e23a2860fc0e4", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "f1d929f76799835ffa2c67c42b7c0cb0fa02f6a5b960043e23ba455e75d4b61f", + "verdict": "passed" + }, + { + "result_index": 26, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 26, + "step_contract_sha256": "6115b2756620c9752efc3546a78ce18a4d5cecfca20beec7003a4529f9e2ae6f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "5bb10f94d82e26d0a55df0caa8140ab7f2a6bccdf74f10ed3fb1de08f946734b", + "verdict": "passed" + }, + { + "result_index": 27, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 27, + "step_contract_sha256": "84bb4b45b2b3c4739ff15089ac8b5d81eab784c8cb8515366b50672b26d94693", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "8afe0db69640d10aedd282fd0fb2932604f07364e1997040212f2ad66ae7b0c8", + "verdict": "passed" + }, + { + "result_index": 27, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 27, + "step_contract_sha256": "84bb4b45b2b3c4739ff15089ac8b5d81eab784c8cb8515366b50672b26d94693", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "7cb99120bcbba08a678c92d9ed380fecdf9ff40b208b603730b13fa1f088cebb", + "verdict": "passed" + }, + { + "result_index": 28, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 28, + "step_contract_sha256": "f1798bf8e82aa7907be82cb2276c5ab48f861213983faa26078b195f823c6a7e", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "5039384bb50435098e823e2de5fe3128495bf982d38319bb8552212679eeddc0", + "verdict": "passed" + }, + { + "result_index": 28, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 28, + "step_contract_sha256": "f1798bf8e82aa7907be82cb2276c5ab48f861213983faa26078b195f823c6a7e", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "f377120063182c856629a042d08e439f20a26fd6e41041fbd102c93c96f5cd5e", + "verdict": "passed" + } + ], + "evidence_classes": [ + "authorization", + "effect_tier_1", + "identity", + "postcondition" + ], + "model_calls": 0, + "external_network_calls": "none", + "compensation_actions": 0 + }, + "readback": { + "minimum": "separate_session", + "checked_how": "system_of_record", + "label": "Checked in your system's records", + "below_minimum": false, + "saves": [ + { + "step_id": "step_040", + "checked_how": "system_of_record", + "flow_tier": 1 + } + ] + }, + "transaction_outcome": "VERIFIED", + "transaction_billable": true, + "transaction_platform_fault": false, + "effect_journal": [ + { + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "consequential": true, + "intended_effect_contract_hashes": [], + "attempt_state": "delivered", + "observed_effect": "unknown", + "effect_verified": null, + "approved_unverified": false, + "verification_performed": false, + "observed_at": null, + "collateral_reconciliation_actions": 0 + }, + { + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "consequential": true, + "intended_effect_contract_hashes": [ + "sha256:7b0cdb04157674f9a7c3cd3233b4393b5df94b9abe7b0edcd9e4f33d52c95cc3", + "sha256:25cfbd139d46039d0217ad7e5419b25afb5ac73e4213d9c0fddb22bf0fdbfd6f", + "sha256:7c3c0067151440e146fde306e1535e6b825003d645cadb5b47cd9366cba2bd59", + "sha256:8a90eddd46c62c5fdaaead8cd22326ee946961d020e18e6ae61a9269cd723449", + "sha256:7ec3eeb19ad76ff5c23139b32f2765f3983812e3d2c858daf5a3fb35b3269413", + "sha256:82d2ce743873914358084fc6c29b2bfe70618cfc5540ce9eae9d5a31c90b0fac", + "sha256:ed8351eb7a8e84b58c38fa02cc6fb702689027ab40629dc0eb3e2628aec37184", + "sha256:7e9fede76eb97b9f4199b7471fb5c972806bae2bc13db6032d714d6d73f7164f", + "sha256:b376d279579440f4d9f0c3a422bfb1463921287dd32b997e624dde70c09421e7", + "sha256:bfab2d2fe6839a388e745671b0fe15826ef6332881ef8f74f21e587d1593b40e", + "sha256:7fe8eabc7e9ca3acd3f61f105e8c0346f573758409fdb2f75f9bf3f9000dbcb7", + "sha256:3557b699750e2ed0d8ba59b184b0fe9568ea3bd465bfd88c73a4469b7b3728c7" + ], + "attempt_state": "delivered", + "observed_effect": "present", + "effect_verified": true, + "approved_unverified": false, + "verification_performed": true, + "observed_at": null, + "collateral_reconciliation_actions": 0 + } + ], + "change_ledger": [ + { + "position": 28, + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "attempt_state": "delivered", + "status": "unknown", + "effects": [], + "may_need_undo": true, + "undo_id": null + }, + { + "position": 29, + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "attempt_state": "delivered", + "status": "confirmed", + "effects": [ + { + "kind": "record_written", + "description": "record_written", + "contract_hash": "sha256:7b0cdb04157674f9a7c3cd3233b4393b5df94b9abe7b0edcd9e4f33d52c95cc3", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "exact_new_set", + "description": "exact_new_set", + "contract_hash": "sha256:25cfbd139d46039d0217ad7e5419b25afb5ac73e4213d9c0fddb22bf0fdbfd6f", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:7c3c0067151440e146fde306e1535e6b825003d645cadb5b47cd9366cba2bd59", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:8a90eddd46c62c5fdaaead8cd22326ee946961d020e18e6ae61a9269cd723449", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:7ec3eeb19ad76ff5c23139b32f2765f3983812e3d2c858daf5a3fb35b3269413", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:82d2ce743873914358084fc6c29b2bfe70618cfc5540ce9eae9d5a31c90b0fac", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:ed8351eb7a8e84b58c38fa02cc6fb702689027ab40629dc0eb3e2628aec37184", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:7e9fede76eb97b9f4199b7471fb5c972806bae2bc13db6032d714d6d73f7164f", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:b376d279579440f4d9f0c3a422bfb1463921287dd32b997e624dde70c09421e7", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:bfab2d2fe6839a388e745671b0fe15826ef6332881ef8f74f21e587d1593b40e", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:7fe8eabc7e9ca3acd3f61f105e8c0346f573758409fdb2f75f9bf3f9000dbcb7", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:3557b699750e2ed0d8ba59b184b0fe9568ea3bd465bfd88c73a4469b7b3728c7", + "status": "confirmed", + "observed_effect": "present" + } + ], + "may_need_undo": true, + "undo_id": null + } + ], + "idempotency_key": null, + "idempotent_replay": false, + "canceled": false, + "execution_target_kind": "web", + "recorded_surface": null, + "surface_override": false, + "execution_origin": "http://127.0.0.1:9401", + "execution_entry_url": "http://127.0.0.1:9401/interface/main/tabs/main.php?token_main=<redacted>", + "bundle_content_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "source_recording_sha256": "243fb7853b228a2e0fd93c51c1d43e7b84fff567f1aac917bdcd91a54d044894", + "parameter_schema_sha256": "2a19e2c3ea6e0644cfe9a842aea8c53e036d18bed254b100cf23c88ea090d603", + "governed_authorization_id": "021ee03e4a664012b5723085c1aef2e5", + "governed_approval_source": "local-cli-explicit-flag", + "governed_authorization_created_at": "2026-10-20T22:40:04.927611+00:00", + "governed_policy_name": "clinical-write", + "governed_policy_contract_sha256": "f35a6a94b3f2787165f071ce8571de07095169b9632d394e9df719b35da52c0f", + "governed_minimum_effect_tier": 1, + "governed_qualified_effect_requirements": [ + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 0, + "effect_contract_hash": "sha256:f64985856097097954250be6523fa260daf9fc5db495671c2548ead9a388577b", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 1, + "effect_contract_hash": "sha256:709f0a4ad813f47658bb934bd1ea8c4c4c20b9c108b13d0a316e193d03dbddb8", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 2, + "effect_contract_hash": "sha256:206d1d6fc27df6f24c02bb6b6f4419e0612e7935ec7e744fc8cc446f54558385", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 3, + "effect_contract_hash": "sha256:8f295459bdd868daf117ca9f77dd948cdc2c8c034a65184cb5418ccfab7f60e7", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 4, + "effect_contract_hash": "sha256:52c6884d06d82c4ccc14600150f2890bcd25d92cb7eb26bc53ef54033075ba3c", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 5, + "effect_contract_hash": "sha256:7732675a6e6123c0c3f51512496f695fa4ce503ab989993c520fb8a469bbdc3d", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 6, + "effect_contract_hash": "sha256:598fb97e12d3c0b537f0453e7fdaad453b969e249e888424e67fcd85a06741f0", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 7, + "effect_contract_hash": "sha256:ba109cf90077d7b20a37c2848fa7bee8ea0039747a5ae47465617b2ea1039a2b", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 8, + "effect_contract_hash": "sha256:f9365eda04aba1960fc26c35d252cdadafcec9ad9f9c433b626af6f137189707", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 9, + "effect_contract_hash": "sha256:b311b51ece1670a60f793b29aa3d28d40da196ffbcd26f2fdd620e380dedf97a", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 10, + "effect_contract_hash": "sha256:a33cf54165b96ce6d48014e6e68bac94cdc8f9c9176bae6f5c955123d20683c2", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 11, + "effect_contract_hash": "sha256:d2516eb0f6aa365b812e84fd754127d053d8e0b1a4b349a0b8ce71936bcec199", + "minimum_tier": 1 + } + ], + "governed_runtime_inputs_digest": "acac41545890d6054a85814efe82c932075313352e24e5eece006167a1308716", + "run_id_sha256": "70ed79c019d6b3ec1ea9b18dc4ffed4ec5e9693bb397bfa06fb40bef6f5059f1", + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_run_id_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_session_sha256": null, + "observed_environment_digest": null, + "observed_environment_binding_sha256": null, + "qualification_environment_observer_id": null, + "qualification_environment_observer_contract_sha256": null, + "governed_authorized_effect_contracts": {}, + "required_identity_step_ids": [ + "step_000", + "step_003", + "step_006", + "step_009", + "step_012", + "step_016", + "step_018", + "step_021", + "step_024", + "step_027", + "step_030", + "step_033", + "step_036", + "step_039", + "step_040" + ], + "approved_unverified_effect_step_ids": [], + "params": { + "title": "Mr.", + "fname": "Marcus", + "lname": "Feld", + "DOB": "1958-09-02", + "sex": "Male", + "street": "114 QUARRY HILL DRIVE", + "city": "EXAMPLETON", + "state_label": "Massachusetts", + "postal_code": "02139", + "phone_home": "555-0124", + "email": "marcus.feld@example.invalid", + "country_code": "USA" + }, + "results": [ + { + "step_id": "step_000", + "intent": "click 'Unassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 434, + 282 + ], + "confidence": 1.0, + "elapsed_ms": 52.00041737407446, + "structural_handle": { + "point": [ + 434, + 282 + ], + "confidence": 1.0, + "region": [ + 380, + 267, + 108, + 31 + ], + "target_fingerprint": "572921fb6f0fb24ef748facf9e43ea6faa61e2d460ba76c06acb4cacafc19368", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"title\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-c711506d04b344aab1718f680b3bf6b0", + "operation": "dom_click", + "native": false, + "target_fingerprint": "572921fb6f0fb24ef748facf9e43ea6faa61e2d460ba76c06acb4cacafc19368", + "delivered_at": "2026-10-20T22:40:05.731089+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_000_before.png", + "after_png": "steps/step_000_after.png", + "elapsed_ms": 667.1932502649724, + "timings": { + "screenshot": 108.0, + "artifact_write": 2.0, + "settle_before": 30.2, + "postcondition": 23.1, + "resolve": 102.6, + "identity": 126.2, + "actuate": 136.6, + "settle_after": 136.0, + "other": 2.3 + } + }, + { + "step_id": "step_001", + "intent": "type <title>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_001_before.png", + "after_png": "steps/step_001_after.png", + "elapsed_ms": 314.1712499782443, + "timings": { + "screenshot": 92.3, + "artifact_write": 1.2, + "settle_before": 3.0, + "postcondition": 28.0, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 104.5, + "actuate": 84.2, + "other": 1.0 + } + }, + { + "step_id": "step_003", + "intent": "click 'First Name'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 445, + 317 + ], + "confidence": 1.0, + "elapsed_ms": 49.864291213452816, + "structural_handle": { + "point": [ + 445, + 317 + ], + "confidence": 1.0, + "region": [ + 380, + 302, + 129, + 31 + ], + "target_fingerprint": "03249198b87f4f709c440d8eb4bb8386d5aef2c5d3417e0a18470bde89d99c4a", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"fname\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-162dd4effb794b2287fa0a49ee918f5b", + "operation": "dom_click", + "native": false, + "target_fingerprint": "03249198b87f4f709c440d8eb4bb8386d5aef2c5d3417e0a18470bde89d99c4a", + "delivered_at": "2026-10-20T22:40:07.714006+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_003_before.png", + "after_png": "steps/step_003_after.png", + "elapsed_ms": 546.4236671105027, + "timings": { + "screenshot": 100.5, + "artifact_write": 1.8, + "settle_before": 2.9, + "postcondition": 12.4, + "resolve": 96.5, + "identity": 82.1, + "actuate": 121.9, + "settle_after": 127.3, + "other": 1.0 + } + }, + { + "step_id": "step_005", + "intent": "type <fname>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_005_before.png", + "after_png": "steps/step_005_after.png", + "elapsed_ms": 329.6597497537732, + "timings": { + "screenshot": 100.8, + "artifact_write": 1.2, + "settle_before": 3.0, + "postcondition": 26.5, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 133.2, + "actuate": 64.0, + "other": 0.9 + } + }, + { + "step_id": "step_006", + "intent": "click 'Last Name'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 671, + 317 + ], + "confidence": 1.0, + "elapsed_ms": 46.42287502065301, + "structural_handle": { + "point": [ + 671, + 317 + ], + "confidence": 1.0, + "region": [ + 589, + 302, + 164, + 31 + ], + "target_fingerprint": "00eb17ee73d959679f3a542ab39a2d7e69744816becbee1345109fc51fb49a93", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"lname\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-fd3cb510d3554c48a6b8860c59fe8bad", + "operation": "dom_click", + "native": false, + "target_fingerprint": "00eb17ee73d959679f3a542ab39a2d7e69744816becbee1345109fc51fb49a93", + "delivered_at": "2026-10-20T22:40:10.464376+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_006_before.png", + "after_png": "steps/step_006_after.png", + "elapsed_ms": 557.5405838899314, + "timings": { + "screenshot": 107.0, + "artifact_write": 1.8, + "settle_before": 3.0, + "postcondition": 14.9, + "resolve": 88.9, + "identity": 88.3, + "actuate": 123.6, + "settle_after": 129.1, + "other": 1.0 + } + }, + { + "step_id": "step_008", + "intent": "type <lname>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_008_before.png", + "after_png": "steps/step_008_after.png", + "elapsed_ms": 328.6915407516062, + "timings": { + "screenshot": 91.6, + "artifact_write": 5.5, + "settle_before": 3.6, + "postcondition": 28.5, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 131.5, + "actuate": 66.9, + "other": 1.2 + } + }, + { + "step_id": "step_009", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 427, + 430 + ], + "confidence": 1.0, + "elapsed_ms": 58.84908279404044, + "structural_handle": { + "point": [ + 427, + 430 + ], + "confidence": 1.0, + "region": [ + 380, + 415, + 94, + 31 + ], + "target_fingerprint": "e59b64035d722a55d5a6e257909078b59350b8c9cdf16b802d40f234cf9ce611", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"DOB\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-3a2078796fca470dab10ca15a0b68274", + "operation": "dom_click", + "native": false, + "target_fingerprint": "e59b64035d722a55d5a6e257909078b59350b8c9cdf16b802d40f234cf9ce611", + "delivered_at": "2026-10-20T22:40:14.115352+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_009_before.png", + "after_png": "steps/step_009_after.png", + "elapsed_ms": 1857.2472091764212, + "timings": { + "screenshot": 121.1, + "artifact_write": 2.1, + "settle_before": 29.1, + "postcondition": 47.6, + "resolve": 113.1, + "identity": 93.5, + "actuate": 143.9, + "settle_after": 225.5, + "ocr": 1080.3, + "other": 1.1 + } + }, + { + "step_id": "step_011", + "intent": "type <DOB>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_011_before.png", + "after_png": "steps/step_011_after.png", + "elapsed_ms": 332.7331254258752, + "timings": { + "screenshot": 97.5, + "artifact_write": 1.2, + "settle_before": 3.1, + "postcondition": 30.9, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 132.3, + "actuate": 66.7, + "other": 0.9 + } + }, + { + "step_id": "step_012", + "intent": "click 'Unassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 973, + 430 + ], + "confidence": 1.0, + "elapsed_ms": 90.76266596093774, + "structural_handle": { + "point": [ + 973, + 430 + ], + "confidence": 1.0, + "region": [ + 919, + 415, + 108, + 31 + ], + "target_fingerprint": "8383e0501602be84585848ebb162b112e1d6d663f60b4595c59c51836c3c2e51", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"sex\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-e32b063d52624853a2ad37ce28ed1d32", + "operation": "dom_click", + "native": false, + "target_fingerprint": "8383e0501602be84585848ebb162b112e1d6d663f60b4595c59c51836c3c2e51", + "delivered_at": "2026-10-20T22:40:19.765112+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_012_before.png", + "after_png": "steps/step_012_after.png", + "elapsed_ms": 672.585666179657, + "timings": { + "screenshot": 97.9, + "artifact_write": 1.9, + "settle_before": 2.7, + "postcondition": 21.2, + "resolve": 138.5, + "identity": 101.8, + "actuate": 176.7, + "settle_after": 130.7, + "other": 1.2 + } + }, + { + "step_id": "step_013", + "intent": "type <sex>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_013_before.png", + "after_png": "steps/step_013_after.png", + "elapsed_ms": 331.6043331287801, + "timings": { + "screenshot": 91.5, + "artifact_write": 1.3, + "settle_before": 2.9, + "postcondition": 28.8, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 126.7, + "actuate": 79.4, + "other": 1.0 + } + }, + { + "step_id": "step_015", + "intent": "scroll by (0, 300)", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_015_before.png", + "after_png": "steps/step_015_after.png", + "elapsed_ms": 446.7051671817899, + "timings": { + "screenshot": 169.5, + "artifact_write": 1.1, + "settle_before": 2.9, + "postcondition": 0.0, + "resolve": 95.5, + "identity": 9.5, + "settle_after": 98.6, + "actuate": 68.6, + "other": 0.9 + } + }, + { + "step_id": "step_016", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 634, + 506 + ], + "confidence": 1.0, + "elapsed_ms": 32.747582998126745, + "structural_handle": { + "point": [ + 634, + 506 + ], + "confidence": 1.0, + "region": [ + 91, + 487, + 1087, + 38 + ], + "target_fingerprint": "51132ce584d1bb702c12c7a71684543a9757a156c0a1e5ba4cc4876615c9f023", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "pixel", + "coverage": 1.0, + "expected": "recorded identifier crop", + "observed": "live identifier crop matches after alignment (worst window 0.036)", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": { + "recorded_crop_sha256": "457eccee597076f6e0d2b6fdd6b1fdd148dfc0eb72501442413c2020efc4ce15", + "live_crop_sha256": "14a873e4bbcb5868c0ad4ca733fbbaf8beee79ab5958cf519c11a2a85115d2a5", + "recorded_crop_inventory_ref": "private/identity-crops/457eccee597076f6e0d2b6fdd6b1fdd148dfc0eb72501442413c2020efc4ce15.png", + "live_crop_inventory_ref": "private/identity-crops/14a873e4bbcb5868c0ad4ca733fbbaf8beee79ab5958cf519c11a2a85115d2a5.png", + "evaluator_contract_sha256": "277ca2432781bdf72113a5225ccd2954f214cfc31b18e2b19fdec02f01e5dce7" + }, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-a1952fa4152846d8b4e07038150ea328", + "operation": "dom_click", + "native": false, + "target_fingerprint": "51132ce584d1bb702c12c7a71684543a9757a156c0a1e5ba4cc4876615c9f023", + "delivered_at": "2026-10-20T22:40:27.697827+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_016_before.png", + "after_png": "steps/step_016_after.png", + "elapsed_ms": 1011.653917375952, + "timings": { + "screenshot": 100.0, + "artifact_write": 1.7, + "settle_before": 3.1, + "postcondition": 104.5, + "resolve": 67.6, + "identity": 89.2, + "actuate": 154.1, + "settle_after": 482.1, + "other": 9.5 + } + }, + { + "step_id": "step_017", + "intent": "scroll by (0, 600)", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_017_before.png", + "after_png": "steps/step_017_after.png", + "elapsed_ms": 423.7677911296487, + "timings": { + "screenshot": 168.2, + "artifact_write": 1.2, + "settle_before": 3.4, + "postcondition": 0.0, + "resolve": 105.4, + "identity": 11.9, + "settle_after": 73.9, + "actuate": 58.7, + "other": 1.0 + } + }, + { + "step_id": "step_018", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 480, + 160 + ], + "confidence": 1.0, + "elapsed_ms": 47.5740828551352, + "structural_handle": { + "point": [ + 480, + 160 + ], + "confidence": 1.0, + "region": [ + 380, + 145, + 199, + 31 + ], + "target_fingerprint": "9324fe133dcc16d8ba52ebf482c8898b2ac855fd597e8f93e983f409021753fa", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"street\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-937dd21111224693b23dd63ca184cec7", + "operation": "dom_click", + "native": false, + "target_fingerprint": "9324fe133dcc16d8ba52ebf482c8898b2ac855fd597e8f93e983f409021753fa", + "delivered_at": "2026-10-20T22:40:34.328573+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_018_before.png", + "after_png": "steps/step_018_after.png", + "elapsed_ms": 576.6225419938564, + "timings": { + "screenshot": 96.4, + "artifact_write": 1.9, + "settle_before": 2.8, + "postcondition": 36.9, + "resolve": 92.1, + "identity": 84.1, + "actuate": 125.3, + "settle_after": 136.1, + "other": 1.0 + } + }, + { + "step_id": "step_020", + "intent": "type <street>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_020_before.png", + "after_png": "steps/step_020_after.png", + "elapsed_ms": 341.44220827147365, + "timings": { + "screenshot": 111.1, + "artifact_write": 1.2, + "settle_before": 2.9, + "postcondition": 27.5, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 125.6, + "actuate": 72.3, + "other": 0.9 + } + }, + { + "step_id": "step_021", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 445, + 197 + ], + "confidence": 1.0, + "elapsed_ms": 47.38029232248664, + "structural_handle": { + "point": [ + 445, + 197 + ], + "confidence": 1.0, + "region": [ + 380, + 182, + 129, + 31 + ], + "target_fingerprint": "bcd0f58619d6a157406da4e2b834190b1ace0d2e52472a2a63db7f6aa09873db", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"city\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-6d700643c7ae4d60bc4f505297b342a0", + "operation": "dom_click", + "native": false, + "target_fingerprint": "bcd0f58619d6a157406da4e2b834190b1ace0d2e52472a2a63db7f6aa09873db", + "delivered_at": "2026-10-20T22:40:41.362025+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_021_before.png", + "after_png": "steps/step_021_after.png", + "elapsed_ms": 562.1935003437102, + "timings": { + "screenshot": 94.1, + "artifact_write": 1.8, + "settle_before": 3.5, + "postcondition": 12.6, + "resolve": 95.9, + "identity": 94.6, + "actuate": 126.6, + "settle_after": 131.8, + "other": 1.2 + } + }, + { + "step_id": "step_023", + "intent": "type <city>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_023_before.png", + "after_png": "steps/step_023_after.png", + "elapsed_ms": 390.95120830461383, + "timings": { + "screenshot": 95.0, + "artifact_write": 3.7, + "settle_before": 3.7, + "postcondition": 65.2, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 143.2, + "actuate": 78.5, + "other": 1.6 + } + }, + { + "step_id": "step_024", + "intent": "click 'Jnassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1017, + 197 + ], + "confidence": 1.0, + "elapsed_ms": 56.5455830655992, + "structural_handle": { + "point": [ + 1017, + 197 + ], + "confidence": 1.0, + "region": [ + 919, + 182, + 197, + 31 + ], + "target_fingerprint": "c245fad87e7f5070ca14e4144cf0d990fc0e16bd2204d10a649e448552ad62fc", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"state\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-c529af82d73b46da9a66baa08a425e44", + "operation": "dom_click", + "native": false, + "target_fingerprint": "c245fad87e7f5070ca14e4144cf0d990fc0e16bd2204d10a649e448552ad62fc", + "delivered_at": "2026-10-20T22:40:49.296220+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_024_before.png", + "after_png": "steps/step_024_after.png", + "elapsed_ms": 595.9442919120193, + "timings": { + "screenshot": 87.3, + "artifact_write": 2.2, + "settle_before": 3.8, + "postcondition": 17.0, + "resolve": 113.2, + "identity": 88.9, + "actuate": 148.4, + "settle_after": 134.1, + "other": 1.1 + } + }, + { + "step_id": "step_025", + "intent": "type <state_label>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_025_before.png", + "after_png": "steps/step_025_after.png", + "elapsed_ms": 319.63533302769065, + "timings": { + "screenshot": 93.4, + "artifact_write": 1.3, + "settle_before": 3.5, + "postcondition": 28.5, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 105.0, + "actuate": 86.7, + "other": 1.1 + } + }, + { + "step_id": "step_027", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 420, + 236 + ], + "confidence": 1.0, + "elapsed_ms": 54.589665960520506, + "structural_handle": { + "point": [ + 420, + 236 + ], + "confidence": 1.0, + "region": [ + 380, + 221, + 80, + 31 + ], + "target_fingerprint": "af6942b88e23a62b9f3a7f3fa4af7ff3289320ab870b8ab59782eabad6c1f3b2", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"postal_code\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-a5940fbf606247208d11a59bb0bfec0b", + "operation": "dom_click", + "native": false, + "target_fingerprint": "af6942b88e23a62b9f3a7f3fa4af7ff3289320ab870b8ab59782eabad6c1f3b2", + "delivered_at": "2026-10-20T22:40:58.195153+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_027_before.png", + "after_png": "steps/step_027_after.png", + "elapsed_ms": 564.4972082227468, + "timings": { + "screenshot": 96.1, + "artifact_write": 2.2, + "settle_before": 3.6, + "postcondition": 13.8, + "resolve": 110.9, + "identity": 86.1, + "actuate": 117.7, + "settle_after": 133.1, + "other": 1.1 + } + }, + { + "step_id": "step_029", + "intent": "type <postal_code>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_029_before.png", + "after_png": "steps/step_029_after.png", + "elapsed_ms": 368.5893337242305, + "timings": { + "screenshot": 95.1, + "artifact_write": 1.2, + "settle_before": 3.4, + "postcondition": 29.8, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 174.2, + "actuate": 63.8, + "other": 1.1 + } + }, + { + "step_id": "step_030", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 462, + 349 + ], + "confidence": 1.0, + "elapsed_ms": 53.743667434901, + "structural_handle": { + "point": [ + 462, + 349 + ], + "confidence": 1.0, + "region": [ + 380, + 334, + 164, + 31 + ], + "target_fingerprint": "c517d29071101185acc52a8786c56a512c061290cb1a73f13751b5271804bcf5", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"phone_home\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-a5e26926bfe541c39e6655722b6d36e1", + "operation": "dom_click", + "native": false, + "target_fingerprint": "c517d29071101185acc52a8786c56a512c061290cb1a73f13751b5271804bcf5", + "delivered_at": "2026-10-20T22:41:07.978030+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_030_before.png", + "after_png": "steps/step_030_after.png", + "elapsed_ms": 600.3530411981046, + "timings": { + "screenshot": 99.7, + "artifact_write": 2.0, + "settle_before": 3.5, + "postcondition": 14.6, + "resolve": 105.1, + "identity": 93.8, + "actuate": 150.8, + "settle_after": 129.6, + "other": 1.2 + } + }, + { + "step_id": "step_032", + "intent": "type <phone_home>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_032_before.png", + "after_png": "steps/step_032_after.png", + "elapsed_ms": 363.0945421755314, + "timings": { + "screenshot": 88.6, + "artifact_write": 1.3, + "settle_before": 31.1, + "postcondition": 34.6, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 128.4, + "actuate": 77.7, + "other": 1.3 + } + }, + { + "step_id": "step_033", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1036, + 384 + ], + "confidence": 1.0, + "elapsed_ms": 56.583791971206665, + "structural_handle": { + "point": [ + 1036, + 384 + ], + "confidence": 1.0, + "region": [ + 919, + 369, + 234, + 31 + ], + "target_fingerprint": "9fd373669a493cb08f895d2402b79b356c50492cb049493e6c9eb38f4abbf12c", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"email\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-d96c21b53d5c4d3594f669433cce7ad0", + "operation": "dom_click", + "native": false, + "target_fingerprint": "9fd373669a493cb08f895d2402b79b356c50492cb049493e6c9eb38f4abbf12c", + "delivered_at": "2026-10-20T22:41:18.559943+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_033_before.png", + "after_png": "steps/step_033_after.png", + "elapsed_ms": 608.4132911637425, + "timings": { + "screenshot": 100.4, + "artifact_write": 2.3, + "settle_before": 4.1, + "postcondition": 16.9, + "resolve": 115.0, + "identity": 108.7, + "actuate": 123.7, + "settle_after": 136.0, + "other": 1.3 + } + }, + { + "step_id": "step_035", + "intent": "type <email>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_035_before.png", + "after_png": "steps/step_035_after.png", + "elapsed_ms": 345.8462501876056, + "timings": { + "screenshot": 104.0, + "artifact_write": 1.3, + "settle_before": 3.9, + "postcondition": 29.3, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 132.1, + "actuate": 74.2, + "other": 1.0 + } + }, + { + "step_id": "step_036", + "intent": "click 'Jnassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1017, + 236 + ], + "confidence": 1.0, + "elapsed_ms": 55.75770791620016, + "structural_handle": { + "point": [ + 1017, + 236 + ], + "confidence": 1.0, + "region": [ + 919, + 221, + 197, + 31 + ], + "target_fingerprint": "e7bfad87b986b0247b50b591c50a7b2c02a9c7b8d1fff07b63b8954809a29a06", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"country_code\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-34d549f532d54647bc6098680edcaba4", + "operation": "dom_click", + "native": false, + "target_fingerprint": "e7bfad87b986b0247b50b591c50a7b2c02a9c7b8d1fff07b63b8954809a29a06", + "delivered_at": "2026-10-20T22:41:29.994848+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_036_before.png", + "after_png": "steps/step_036_after.png", + "elapsed_ms": 640.8052081242204, + "timings": { + "screenshot": 104.2, + "artifact_write": 2.1, + "settle_before": 4.3, + "postcondition": 14.2, + "resolve": 119.0, + "identity": 99.0, + "actuate": 164.9, + "settle_after": 132.1, + "other": 1.1 + } + }, + { + "step_id": "step_037", + "intent": "type <country_code>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_037_before.png", + "after_png": "steps/step_037_after.png", + "elapsed_ms": 308.1370419822633, + "timings": { + "screenshot": 80.0, + "artifact_write": 1.3, + "settle_before": 3.6, + "postcondition": 29.7, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 106.1, + "actuate": 86.3, + "other": 1.1 + } + }, + { + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 285, + 774 + ], + "confidence": 1.0, + "elapsed_ms": 49.555583856999874, + "structural_handle": { + "point": [ + 285, + 774 + ], + "confidence": 1.0, + "region": [ + 189, + 755, + 191, + 39 + ], + "target_fingerprint": "bdc0afd576372174a2dc3ca33012ba62acb4d8609d98923128f253375665486d", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"open_duplicate_check\",\"target_kind\":\"action\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-5a6e20a2970b4dafb0a492729f5ca3cc", + "operation": "dom_click", + "native": false, + "target_fingerprint": "bdc0afd576372174a2dc3ca33012ba62acb4d8609d98923128f253375665486d", + "delivered_at": "2026-10-20T22:41:42.143807+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_039_before.png", + "after_png": "steps/step_039_after.png", + "elapsed_ms": 1132.9917088150978, + "timings": { + "screenshot": 94.2, + "artifact_write": 1.9, + "settle_before": 3.9, + "postcondition": 68.1, + "resolve": 94.7, + "identity": 99.6, + "actuate": 171.3, + "settle_after": 570.8, + "other": 28.4 + } + }, + { + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "ok": true, + "risk": "irreversible", + "risk_explanation": "operator-qualified override: irreversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 600, + 280 + ], + "confidence": 1.0, + "elapsed_ms": 42.77795786038041, + "structural_handle": { + "point": [ + 600, + 280 + ], + "confidence": 1.0, + "region": [ + 488, + 261, + 225, + 38 + ], + "target_fingerprint": "626c5256a0f91dbc4bb739a11ebc748f932d54bfdc429f01848e9cb96f8e1ada", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Confirm Create New Patient\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": true, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [ + "[rest] record_written: CONFIRMED — exactly 1 record(s) match the target selector", + "[rest] exact_new_set: CONFIRMED — the action added exactly the 1 declared record(s) to the scoped read set, and nothing else", + "[rest] field_equals: CONFIRMED — field 'title' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'fname' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'DOB' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'sex' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'street' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'city' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'state' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'postal_code' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'phone_home' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'country_code' equals the expected value" + ], + "effect_evidence": [ + { + "effect_contract_hash": "sha256:7b0cdb04157674f9a7c3cd3233b4393b5df94b9abe7b0edcd9e4f33d52c95cc3", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:25cfbd139d46039d0217ad7e5419b25afb5ac73e4213d9c0fddb22bf0fdbfd6f", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:7c3c0067151440e146fde306e1535e6b825003d645cadb5b47cd9366cba2bd59", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:8a90eddd46c62c5fdaaead8cd22326ee946961d020e18e6ae61a9269cd723449", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:7ec3eeb19ad76ff5c23139b32f2765f3983812e3d2c858daf5a3fb35b3269413", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:82d2ce743873914358084fc6c29b2bfe70618cfc5540ce9eae9d5a31c90b0fac", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:ed8351eb7a8e84b58c38fa02cc6fb702689027ab40629dc0eb3e2628aec37184", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:7e9fede76eb97b9f4199b7471fb5c972806bae2bc13db6032d714d6d73f7164f", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:b376d279579440f4d9f0c3a422bfb1463921287dd32b997e624dde70c09421e7", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:bfab2d2fe6839a388e745671b0fe15826ef6332881ef8f74f21e587d1593b40e", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:7fe8eabc7e9ca3acd3f61f105e8c0346f573758409fdb2f75f9bf3f9000dbcb7", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:3557b699750e2ed0d8ba59b184b0fe9568ea3bd465bfd88c73a4469b7b3728c7", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + } + ], + "server_responses": [ + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + } + ], + "effect_field_checks": [ + { + "field": "title", + "expected": "Mr.", + "observed": "Mr.", + "matched": true, + "verification_tier": 1 + }, + { + "field": "fname", + "expected": "Marcus", + "observed": "Marcus", + "matched": true, + "verification_tier": 1 + }, + { + "field": "DOB", + "expected": "1958-09-02", + "observed": "1958-09-02", + "matched": true, + "verification_tier": 1 + }, + { + "field": "sex", + "expected": "Male", + "observed": "Male", + "matched": true, + "verification_tier": 1 + }, + { + "field": "street", + "expected": "114 QUARRY HILL DRIVE", + "observed": "114 QUARRY HILL DRIVE", + "matched": true, + "verification_tier": 1 + }, + { + "field": "city", + "expected": "EXAMPLETON", + "observed": "EXAMPLETON", + "matched": true, + "verification_tier": 1 + }, + { + "field": "state", + "expected": "MA", + "observed": "MA", + "matched": true, + "verification_tier": 1 + }, + { + "field": "postal_code", + "expected": "02139", + "observed": "02139", + "matched": true, + "verification_tier": 1 + }, + { + "field": "phone_home", + "expected": "555-0124", + "observed": "555-0124", + "matched": true, + "verification_tier": 1 + }, + { + "field": "country_code", + "expected": "USA", + "observed": "USA", + "matched": true, + "verification_tier": 1 + } + ], + "failure_category": null, + "effect_contract_hashes": [ + "sha256:7b0cdb04157674f9a7c3cd3233b4393b5df94b9abe7b0edcd9e4f33d52c95cc3", + "sha256:25cfbd139d46039d0217ad7e5419b25afb5ac73e4213d9c0fddb22bf0fdbfd6f", + "sha256:7c3c0067151440e146fde306e1535e6b825003d645cadb5b47cd9366cba2bd59", + "sha256:8a90eddd46c62c5fdaaead8cd22326ee946961d020e18e6ae61a9269cd723449", + "sha256:7ec3eeb19ad76ff5c23139b32f2765f3983812e3d2c858daf5a3fb35b3269413", + "sha256:82d2ce743873914358084fc6c29b2bfe70618cfc5540ce9eae9d5a31c90b0fac", + "sha256:ed8351eb7a8e84b58c38fa02cc6fb702689027ab40629dc0eb3e2628aec37184", + "sha256:7e9fede76eb97b9f4199b7471fb5c972806bae2bc13db6032d714d6d73f7164f", + "sha256:b376d279579440f4d9f0c3a422bfb1463921287dd32b997e624dde70c09421e7", + "sha256:bfab2d2fe6839a388e745671b0fe15826ef6332881ef8f74f21e587d1593b40e", + "sha256:7fe8eabc7e9ca3acd3f61f105e8c0346f573758409fdb2f75f9bf3f9000dbcb7", + "sha256:3557b699750e2ed0d8ba59b184b0fe9568ea3bd465bfd88c73a4469b7b3728c7" + ], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-fe673bb2ca28499ba857323094557745", + "operation": "dom_click", + "native": false, + "target_fingerprint": "626c5256a0f91dbc4bb739a11ebc748f932d54bfdc429f01848e9cb96f8e1ada", + "delivered_at": "2026-10-20T22:41:49.177598+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_040_before.png", + "after_png": "steps/step_040_after.png", + "elapsed_ms": 1690.5101658776402, + "timings": { + "screenshot": 87.3, + "artifact_write": 2.1, + "settle_before": 3.4, + "postcondition": 90.9, + "resolve": 91.1, + "identity": 88.3, + "actuate": 200.3, + "settle_after": 1087.4, + "other": 39.7 + } + } + ], + "success": true, + "terminal_outcome": null, + "visited_states": [], + "loop_iterations": [], + "program_transition_evidence": [], + "business_decision_evidence": [], + "program_exception_evidence": [], + "attended_program_transition_evidence": [], + "halt": null, + "rung_counts": { + "structural": 15 + }, + "render_scale": null, + "heal_count": 0, + "model_calls": 0, + "external_network_calls": "none", + "est_model_cost_usd": 0.0, + "total_ms": 113164.27279217169, + "identity_applicable_steps": 15, + "identity_armed_steps": 15, + "identity_unarmed": [], + "screenshots_may_leave_box": false, + "approval": { + "schema_version": "openadapt.approval-mode-item/v1", + "mode": "problems_only", + "channel": "desktop_run_it_list_with_header", + "switch_id": "switch-lifecycle-proof-0c985b8bb0fd-1792535879", + "switch_record_sha256": "sha256:646a2d9143579b4abc926c14a41ff5ba14a980a5a937dad38bf6af950b06f2c3", + "item_checks": [ + { + "code": "inputs_supplied", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "channel", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "inputs_strict", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "not_a_retry", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "record_key_not_recent", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "deployment_config", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "switch_lease", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "not_resumed", + "passed": true, + "detail": "ok", + "step_id": null + } + ], + "pre_checks": [ + { + "code": "switch_on", + "passed": true, + "detail": "ok", + "step_id": "step_040" + }, + { + "code": "signed_in_user", + "passed": true, + "detail": "ok", + "step_id": "step_040" + }, + { + "code": "right_record", + "passed": true, + "detail": "ok", + "step_id": "step_040" + }, + { + "code": "same_screens", + "passed": true, + "detail": "ok", + "step_id": "step_040" + }, + { + "code": "record_check_ready", + "passed": true, + "detail": "ok", + "step_id": "step_040" + } + ], + "post_checks": [ + { + "code": "verified", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "whole_run_clean", + "passed": true, + "detail": "ok", + "step_id": null + } + ], + "saves_without_person": 1, + "gated_step_id": null, + "decision": "no_person", + "decision_reason": null, + "needs_person": false, + "counts_toward_problems": false, + "switch_off_reason": null, + "switch_log_recorded": true, + "approvals": [] + }, + "redactions": [ + { + "pointer": "/execution_entry_url", + "reason": "url_param:token_main" + } + ] +} \ No newline at end of file diff --git a/packages/flow/benchmark/lifecycle_proof/results/proof-15/batch/r3-ines-carvalho/report.json b/packages/flow/benchmark/lifecycle_proof/results/proof-15/batch/r3-ines-carvalho/report.json new file mode 100644 index 000000000..87e9e9288 --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/proof-15/batch/r3-ines-carvalho/report.json @@ -0,0 +1,3638 @@ +{ + "workflow_name": "openemr-create-synthetic-patient", + "started_at": "2026-10-20T22:42:03.576963+00:00", + "execution_profile": "regulated", + "execution_outcome": "VERIFIED", + "production_eligible": true, + "execution_completed": true, + "outcome_envelope": { + "version": "openadapt.execution-outcome/v1", + "outcome": "VERIFIED", + "profile": "regulated", + "production_eligible": true, + "execution_completed": true, + "required_contracts": { + "authorization": 1, + "identity": 15, + "postcondition": 32, + "effect": 12 + }, + "passed_contracts": { + "authorization": 1, + "identity": 15, + "postcondition": 32, + "effect": 12 + }, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "postcondition_evidence": [ + { + "result_index": 0, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 0, + "step_contract_sha256": "229c3c9ec053ef29cf51bfea8e2b894f8bd0f5ac6ae8e86359ff4ac804a6e412", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "401187c13f64c38950e30ea4262ce2a935630e218bcd61a7d073cf991b7d9d52", + "verdict": "passed" + }, + { + "result_index": 0, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 0, + "step_contract_sha256": "229c3c9ec053ef29cf51bfea8e2b894f8bd0f5ac6ae8e86359ff4ac804a6e412", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "8c20f460859d7e96ddd1262caac7b0dcb62cf686efdee3f4e29fdd71c42596b7", + "verdict": "passed" + }, + { + "result_index": 1, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 1, + "step_contract_sha256": "ed6d8f4e51d357034dbb251bbbfb449f36db5616cb859e9fe77eade11e4c242f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "6d2bdc9553c6f5ceb6523f7ef6b422f7adf3c430a269ac860fe57d3424c57e5e", + "verdict": "passed" + }, + { + "result_index": 2, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 2, + "step_contract_sha256": "535b3af532c6b62630cb42d7ec12cf9a45067082a8e6c568568c9f1ea9294557", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "a3303142996bd058638ab541923a04b4fd4db7779b2a5cd1437c1b09f0f719c1", + "verdict": "passed" + }, + { + "result_index": 3, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 3, + "step_contract_sha256": "af6a582512adef1ab2655799bacb2f9c4f8d5c5d1fc093f8bbda3cf3993b13e3", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "d66343de1fb0f9486c8f490c22883a16d57fd0751c6a9af72ca033bd8226666e", + "verdict": "passed" + }, + { + "result_index": 4, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 4, + "step_contract_sha256": "db027061d3124e5b4bfb8d015a1d04a768ee71009aa12c2ca1ea395cee19c72c", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "d7676eca4e18055dccf69cfe02735b0f54f8fbb3b5adeeedbb5f77e724dcb405", + "verdict": "passed" + }, + { + "result_index": 5, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 5, + "step_contract_sha256": "0d1e7e53976a613a963b69d8659af906c19bb1f1e1f5e4faf98bd2b9c271e186", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "8cc322d346b34042845d05725697f3df24fcc7355a63368bc211e06afeaf04f1", + "verdict": "passed" + }, + { + "result_index": 6, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 6, + "step_contract_sha256": "10173be5ada082e37361f383f8c1cb702f6c8165fca5edd74cd06e225cf56d52", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "ba495991f7f4029c350243a6c4853dfa96a21f76478227ead0b58cd578d724d0", + "verdict": "passed" + }, + { + "result_index": 6, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 6, + "step_contract_sha256": "10173be5ada082e37361f383f8c1cb702f6c8165fca5edd74cd06e225cf56d52", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "33e2e8251b8960cc9d0dea8b0c610f66c8ab5532d4e9c610f826550d1969b319", + "verdict": "passed" + }, + { + "result_index": 7, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 7, + "step_contract_sha256": "7bdece9442af62928750cddf1b954dc0211e8137999c2dcb5123495557a64aff", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "21b21cc72a141d168d1f486ee9d5e686e9343d19479226fd0493c0e44acfb88f", + "verdict": "passed" + }, + { + "result_index": 8, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 8, + "step_contract_sha256": "924d89b47b94ae64b988b910c68fbe6afb3ae43cfcbd642271d83f6c8305bf58", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "c46e0fb995659cc26a2e96712dc2fe28e5855d930c2ef34a660c4a6f29a90ad4", + "verdict": "passed" + }, + { + "result_index": 9, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 9, + "step_contract_sha256": "210300a3b19d838675c64a43e28c5d05a65f6af0275a5c5cff2b81dd414a6ed1", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "6c79001d3f898490d8aaf4aa98e5009a3c3b35a0f3f00b52cd6588c3935ba634", + "verdict": "passed" + }, + { + "result_index": 11, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 11, + "step_contract_sha256": "f2f9caf11689c7abc85708df15b3d9c60d7907bc68262424d19d766bc5cb38bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "4dffb3e101368cd79a407a52df4ef3d4985827a932283d2d7a5bdbdf7b1a017a", + "verdict": "passed" + }, + { + "result_index": 11, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 11, + "step_contract_sha256": "f2f9caf11689c7abc85708df15b3d9c60d7907bc68262424d19d766bc5cb38bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "9a70e83e890372735f62c8c14072c5d5566e802712ca186eab31717fc09d5fb6", + "verdict": "passed" + }, + { + "result_index": 13, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 13, + "step_contract_sha256": "a1ec6bec55348170c3141f790e6d33909fc02034c50320f28a98afa025aa26bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "f4cdf9296fc00bafdca1f10cad96a713a1a77f13992fd8c8305ce33ac20725e6", + "verdict": "passed" + }, + { + "result_index": 14, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 14, + "step_contract_sha256": "38b8933e8bc3047d51fa72be99a9626f39910af3338152d64deff466e2381201", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "bcf795f882b3ea8db403894d208d48ca144950ddd28ef79ac99b0790d425cedf", + "verdict": "passed" + }, + { + "result_index": 15, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 15, + "step_contract_sha256": "314dfd0de9aeb5703e85cea70684f9e9ceded68be65bf724ce8c3e56baf000ff", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "1f34178539962ade7f7e3d3ea5542627f621ab125d433d667be815d366089958", + "verdict": "passed" + }, + { + "result_index": 16, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 16, + "step_contract_sha256": "2822b83d6e7e089b86920bbf4bb3b3bf62bd2594454242ba5ad76df41303aa00", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "82517d98410bde6259a7bc2b633a5efb475f2aaef11453ff7e58e9d89a4ca225", + "verdict": "passed" + }, + { + "result_index": 17, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 17, + "step_contract_sha256": "72ddbbc8bcee54e91b36253fa1b82c9a571a115ee086c31ad32982ae30dee59c", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "ff86f0b85d1718d49a97846817a769342e9113be9ea4297b9daaddb21688bdab", + "verdict": "passed" + }, + { + "result_index": 18, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 18, + "step_contract_sha256": "60f4dc2405e90e851af7a536a90c1e7551e66fa1f07e83002b690e6419ea2e68", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "c7730849ecdd8a488d8a3c19f19607f494f54b95fa4d17cc148fbae7b0ee3ea6", + "verdict": "passed" + }, + { + "result_index": 19, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 19, + "step_contract_sha256": "62c301c5e4731945d06e2fefce787cee0408990894a74bcde540841b96bda992", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "8d69a409f2da5411f6a1ffb89cbb6922ea4bd4e53cad88c07d91e2eb815bfbed", + "verdict": "passed" + }, + { + "result_index": 20, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 20, + "step_contract_sha256": "ec1b3c559fd1a1537e3041731aeedac080f3e53f7a0993099f27e83a4f4b9e8f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "36c6e797959d8ab804c4b41b750c0673063647cf6a1867bf7d9fbcfb82e35704", + "verdict": "passed" + }, + { + "result_index": 21, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 21, + "step_contract_sha256": "7586311fe4153a125c44cd9b9172e027a52a93df18f39907ace63d88920a3435", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "10e30a58326e2002cb8f578099f6e941c16a9c27325b9f9b81aa4876b4bc1e9c", + "verdict": "passed" + }, + { + "result_index": 22, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 22, + "step_contract_sha256": "5f8f28bb7f94a3fd80c95ac23ebc2144e5cb5fd558d83f1c7c3e7e54f8d5b989", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "0a0db9c0ae0c5ee7e7c832f7271d9fc56c20eca5233ac5adb9de41b3198a716f", + "verdict": "passed" + }, + { + "result_index": 23, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 23, + "step_contract_sha256": "d17ab75a87ee445f4616d61244bc33776696341c175099dda31e07f3524b18ce", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "7fe199b71066a71474ad1e5d16f5b3ba3591f67ded03ac5795aed0ea97606ec2", + "verdict": "passed" + }, + { + "result_index": 24, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 24, + "step_contract_sha256": "18959802e73a694c58d99b47a2bc3dba43ae047201f89d82776858349e7282cd", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "40a861211b6660e7cd12ae97a783522d35b7dac6e67b87a606b6c7631d967c03", + "verdict": "passed" + }, + { + "result_index": 25, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 25, + "step_contract_sha256": "b08f16f538d9547def1826013afffbb26478d83b2546d4ffa74e23a2860fc0e4", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "f1d929f76799835ffa2c67c42b7c0cb0fa02f6a5b960043e23ba455e75d4b61f", + "verdict": "passed" + }, + { + "result_index": 26, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 26, + "step_contract_sha256": "6115b2756620c9752efc3546a78ce18a4d5cecfca20beec7003a4529f9e2ae6f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "5bb10f94d82e26d0a55df0caa8140ab7f2a6bccdf74f10ed3fb1de08f946734b", + "verdict": "passed" + }, + { + "result_index": 27, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 27, + "step_contract_sha256": "84bb4b45b2b3c4739ff15089ac8b5d81eab784c8cb8515366b50672b26d94693", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "8afe0db69640d10aedd282fd0fb2932604f07364e1997040212f2ad66ae7b0c8", + "verdict": "passed" + }, + { + "result_index": 27, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 27, + "step_contract_sha256": "84bb4b45b2b3c4739ff15089ac8b5d81eab784c8cb8515366b50672b26d94693", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "7cb99120bcbba08a678c92d9ed380fecdf9ff40b208b603730b13fa1f088cebb", + "verdict": "passed" + }, + { + "result_index": 28, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 28, + "step_contract_sha256": "f1798bf8e82aa7907be82cb2276c5ab48f861213983faa26078b195f823c6a7e", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "5039384bb50435098e823e2de5fe3128495bf982d38319bb8552212679eeddc0", + "verdict": "passed" + }, + { + "result_index": 28, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 28, + "step_contract_sha256": "f1798bf8e82aa7907be82cb2276c5ab48f861213983faa26078b195f823c6a7e", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "f377120063182c856629a042d08e439f20a26fd6e41041fbd102c93c96f5cd5e", + "verdict": "passed" + } + ], + "evidence_classes": [ + "authorization", + "effect_tier_1", + "identity", + "postcondition" + ], + "model_calls": 0, + "external_network_calls": "none", + "compensation_actions": 0 + }, + "readback": { + "minimum": "separate_session", + "checked_how": "system_of_record", + "label": "Checked in your system's records", + "below_minimum": false, + "saves": [ + { + "step_id": "step_040", + "checked_how": "system_of_record", + "flow_tier": 1 + } + ] + }, + "transaction_outcome": "VERIFIED", + "transaction_billable": true, + "transaction_platform_fault": false, + "effect_journal": [ + { + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "consequential": true, + "intended_effect_contract_hashes": [], + "attempt_state": "delivered", + "observed_effect": "unknown", + "effect_verified": null, + "approved_unverified": false, + "verification_performed": false, + "observed_at": null, + "collateral_reconciliation_actions": 0 + }, + { + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "consequential": true, + "intended_effect_contract_hashes": [ + "sha256:4e62a81ba54524e87b8f1f9110ce5ff8b187487440ac50e524a1495d5eab17db", + "sha256:9a94fca82ba36b86cb72ae8988f1f16de424954172fbdb66761ac3de89232711", + "sha256:f1e312b601310bc7d1eb450c419b335d08222f026b1b863cc550ea65204f66bc", + "sha256:a67fdbc8b61ac085413cae3ccadaf849f34a794a55c9cbf1bd7306e274d66734", + "sha256:e2edc11ff5a6611407cb831879c797ec74791b21f3154a3e8614b13534e950dc", + "sha256:b2579045fee4a56bba3e07ad3af220443679a2c68ae9fcc1e1b8cafb7b230479", + "sha256:d88b0ae54a95f9a38052388dd1afd725ba77209b25b8f6e11626902d8a216c70", + "sha256:117d6795803ff2fc8d1bc72e4fea05143f1ca46f4749cf919aa579787b843a76", + "sha256:916eb47fd6b8d7ea8685b2138414b862ec8b5ecc48092042bbca75382fab51bd", + "sha256:d40109eb9c134b6043a415e7d56650ed11e34bcd5c18ff179f9a77c5f29624c1", + "sha256:e5df47a0ff94595db645d6ea0958cb23c0221837ffb4ee1fa220adbd8c0b4b9d", + "sha256:c28585d05ba1774b13cbd450a648754fcc1be02f052cfdfd5fd8571defde224e" + ], + "attempt_state": "delivered", + "observed_effect": "present", + "effect_verified": true, + "approved_unverified": false, + "verification_performed": true, + "observed_at": null, + "collateral_reconciliation_actions": 0 + } + ], + "change_ledger": [ + { + "position": 28, + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "attempt_state": "delivered", + "status": "unknown", + "effects": [], + "may_need_undo": true, + "undo_id": null + }, + { + "position": 29, + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "attempt_state": "delivered", + "status": "confirmed", + "effects": [ + { + "kind": "record_written", + "description": "record_written", + "contract_hash": "sha256:4e62a81ba54524e87b8f1f9110ce5ff8b187487440ac50e524a1495d5eab17db", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "exact_new_set", + "description": "exact_new_set", + "contract_hash": "sha256:9a94fca82ba36b86cb72ae8988f1f16de424954172fbdb66761ac3de89232711", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:f1e312b601310bc7d1eb450c419b335d08222f026b1b863cc550ea65204f66bc", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:a67fdbc8b61ac085413cae3ccadaf849f34a794a55c9cbf1bd7306e274d66734", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:e2edc11ff5a6611407cb831879c797ec74791b21f3154a3e8614b13534e950dc", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:b2579045fee4a56bba3e07ad3af220443679a2c68ae9fcc1e1b8cafb7b230479", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:d88b0ae54a95f9a38052388dd1afd725ba77209b25b8f6e11626902d8a216c70", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:117d6795803ff2fc8d1bc72e4fea05143f1ca46f4749cf919aa579787b843a76", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:916eb47fd6b8d7ea8685b2138414b862ec8b5ecc48092042bbca75382fab51bd", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:d40109eb9c134b6043a415e7d56650ed11e34bcd5c18ff179f9a77c5f29624c1", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:e5df47a0ff94595db645d6ea0958cb23c0221837ffb4ee1fa220adbd8c0b4b9d", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:c28585d05ba1774b13cbd450a648754fcc1be02f052cfdfd5fd8571defde224e", + "status": "confirmed", + "observed_effect": "present" + } + ], + "may_need_undo": true, + "undo_id": null + } + ], + "idempotency_key": null, + "idempotent_replay": false, + "canceled": false, + "execution_target_kind": "web", + "recorded_surface": null, + "surface_override": false, + "execution_origin": "http://127.0.0.1:9401", + "execution_entry_url": "http://127.0.0.1:9401/interface/main/tabs/main.php?token_main=<redacted>", + "bundle_content_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "source_recording_sha256": "243fb7853b228a2e0fd93c51c1d43e7b84fff567f1aac917bdcd91a54d044894", + "parameter_schema_sha256": "2a19e2c3ea6e0644cfe9a842aea8c53e036d18bed254b100cf23c88ea090d603", + "governed_authorization_id": "ac8db76d5e8e43a2a6bdeb854caffa75", + "governed_approval_source": "local-cli-explicit-flag", + "governed_authorization_created_at": "2026-10-20T22:42:03.563567+00:00", + "governed_policy_name": "clinical-write", + "governed_policy_contract_sha256": "f35a6a94b3f2787165f071ce8571de07095169b9632d394e9df719b35da52c0f", + "governed_minimum_effect_tier": 1, + "governed_qualified_effect_requirements": [ + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 0, + "effect_contract_hash": "sha256:f64985856097097954250be6523fa260daf9fc5db495671c2548ead9a388577b", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 1, + "effect_contract_hash": "sha256:709f0a4ad813f47658bb934bd1ea8c4c4c20b9c108b13d0a316e193d03dbddb8", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 2, + "effect_contract_hash": "sha256:206d1d6fc27df6f24c02bb6b6f4419e0612e7935ec7e744fc8cc446f54558385", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 3, + "effect_contract_hash": "sha256:8f295459bdd868daf117ca9f77dd948cdc2c8c034a65184cb5418ccfab7f60e7", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 4, + "effect_contract_hash": "sha256:52c6884d06d82c4ccc14600150f2890bcd25d92cb7eb26bc53ef54033075ba3c", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 5, + "effect_contract_hash": "sha256:7732675a6e6123c0c3f51512496f695fa4ce503ab989993c520fb8a469bbdc3d", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 6, + "effect_contract_hash": "sha256:598fb97e12d3c0b537f0453e7fdaad453b969e249e888424e67fcd85a06741f0", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 7, + "effect_contract_hash": "sha256:ba109cf90077d7b20a37c2848fa7bee8ea0039747a5ae47465617b2ea1039a2b", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 8, + "effect_contract_hash": "sha256:f9365eda04aba1960fc26c35d252cdadafcec9ad9f9c433b626af6f137189707", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 9, + "effect_contract_hash": "sha256:b311b51ece1670a60f793b29aa3d28d40da196ffbcd26f2fdd620e380dedf97a", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 10, + "effect_contract_hash": "sha256:a33cf54165b96ce6d48014e6e68bac94cdc8f9c9176bae6f5c955123d20683c2", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 11, + "effect_contract_hash": "sha256:d2516eb0f6aa365b812e84fd754127d053d8e0b1a4b349a0b8ce71936bcec199", + "minimum_tier": 1 + } + ], + "governed_runtime_inputs_digest": "fa1e91945ad3bf425a78b060073eeb79652851d117a7b4bc36ca5f04b06c905b", + "run_id_sha256": "5b3308d6cb845586374eda4dc0ffa1254e224ec59347789dd0deb6c47f541c87", + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_run_id_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_session_sha256": null, + "observed_environment_digest": null, + "observed_environment_binding_sha256": null, + "qualification_environment_observer_id": null, + "qualification_environment_observer_contract_sha256": null, + "governed_authorized_effect_contracts": {}, + "required_identity_step_ids": [ + "step_000", + "step_003", + "step_006", + "step_009", + "step_012", + "step_016", + "step_018", + "step_021", + "step_024", + "step_027", + "step_030", + "step_033", + "step_036", + "step_039", + "step_040" + ], + "approved_unverified_effect_step_ids": [], + "params": { + "title": "Mrs.", + "fname": "Ines", + "lname": "Carvalho", + "DOB": "1949-12-11", + "sex": "Female", + "street": "9 LANTERN COURT", + "city": "EXAMPLETON", + "state_label": "Massachusetts", + "postal_code": "02139", + "phone_home": "555-0131", + "email": "ines.carvalho@example.invalid", + "country_code": "USA" + }, + "results": [ + { + "step_id": "step_000", + "intent": "click 'Unassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 434, + 282 + ], + "confidence": 1.0, + "elapsed_ms": 56.532083079218864, + "structural_handle": { + "point": [ + 434, + 282 + ], + "confidence": 1.0, + "region": [ + 380, + 267, + 108, + 31 + ], + "target_fingerprint": "9a83edd0afe237c06a37c17a650329a27124990147570057fb013f96a5f214ff", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"title\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-a079e738ae0642ab8e10639ac77e0bae", + "operation": "dom_click", + "native": false, + "target_fingerprint": "9a83edd0afe237c06a37c17a650329a27124990147570057fb013f96a5f214ff", + "delivered_at": "2026-10-20T22:42:04.473853+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_000_before.png", + "after_png": "steps/step_000_after.png", + "elapsed_ms": 720.920333173126, + "timings": { + "screenshot": 109.5, + "artifact_write": 2.1, + "settle_before": 31.6, + "postcondition": 23.0, + "resolve": 121.7, + "identity": 130.1, + "actuate": 165.0, + "settle_after": 135.6, + "other": 2.4 + } + }, + { + "step_id": "step_001", + "intent": "type <title>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_001_before.png", + "after_png": "steps/step_001_after.png", + "elapsed_ms": 340.099667198956, + "timings": { + "screenshot": 106.2, + "artifact_write": 2.6, + "settle_before": 3.4, + "postcondition": 29.0, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 108.3, + "actuate": 89.5, + "other": 1.1 + } + }, + { + "step_id": "step_003", + "intent": "click 'First Name'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 445, + 317 + ], + "confidence": 1.0, + "elapsed_ms": 53.437374997884035, + "structural_handle": { + "point": [ + 445, + 317 + ], + "confidence": 1.0, + "region": [ + 380, + 302, + 129, + 31 + ], + "target_fingerprint": "705c2de649be8853f8e2c1cf880bde3e978fb486f9c63df2c94e5ad3f438dfb6", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"fname\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-86e6538cb8654329a4628ff82ca189e0", + "operation": "dom_click", + "native": false, + "target_fingerprint": "705c2de649be8853f8e2c1cf880bde3e978fb486f9c63df2c94e5ad3f438dfb6", + "delivered_at": "2026-10-20T22:42:06.555775+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_003_before.png", + "after_png": "steps/step_003_after.png", + "elapsed_ms": 594.3560004234314, + "timings": { + "screenshot": 105.7, + "artifact_write": 2.0, + "settle_before": 3.3, + "postcondition": 13.7, + "resolve": 104.0, + "identity": 94.2, + "actuate": 134.6, + "settle_after": 135.8, + "other": 1.0 + } + }, + { + "step_id": "step_005", + "intent": "type <fname>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_005_before.png", + "after_png": "steps/step_005_after.png", + "elapsed_ms": 345.7119590602815, + "timings": { + "screenshot": 106.1, + "artifact_write": 1.3, + "settle_before": 3.2, + "postcondition": 32.1, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 133.3, + "actuate": 68.6, + "other": 1.0 + } + }, + { + "step_id": "step_006", + "intent": "click 'Last Name'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 671, + 317 + ], + "confidence": 1.0, + "elapsed_ms": 51.55287543311715, + "structural_handle": { + "point": [ + 671, + 317 + ], + "confidence": 1.0, + "region": [ + 589, + 302, + 164, + 31 + ], + "target_fingerprint": "d3f3d6a5f7c21434d555004f015ab20746cb81229fa36b1559eb1e7f3b77f653", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"lname\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-9ce2a12f76cb49ddbd0d764026836140", + "operation": "dom_click", + "native": false, + "target_fingerprint": "d3f3d6a5f7c21434d555004f015ab20746cb81229fa36b1559eb1e7f3b77f653", + "delivered_at": "2026-10-20T22:42:09.455520+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_006_before.png", + "after_png": "steps/step_006_after.png", + "elapsed_ms": 584.6684169955552, + "timings": { + "screenshot": 99.4, + "artifact_write": 3.5, + "settle_before": 3.3, + "postcondition": 16.7, + "resolve": 108.3, + "identity": 94.6, + "actuate": 130.2, + "settle_after": 127.6, + "other": 1.1 + } + }, + { + "step_id": "step_008", + "intent": "type <lname>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_008_before.png", + "after_png": "steps/step_008_after.png", + "elapsed_ms": 341.77016699686646, + "timings": { + "screenshot": 100.1, + "artifact_write": 1.6, + "settle_before": 3.5, + "postcondition": 32.0, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 135.2, + "actuate": 68.4, + "other": 1.1 + } + }, + { + "step_id": "step_009", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 427, + 430 + ], + "confidence": 1.0, + "elapsed_ms": 64.26354078575969, + "structural_handle": { + "point": [ + 427, + 430 + ], + "confidence": 1.0, + "region": [ + 380, + 415, + 94, + 31 + ], + "target_fingerprint": "83ac31a5ede6b65a3c83e84c4411c6a909ce2c4ca8587afd1c768959fb90f0e8", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"DOB\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-2ef63bdcf0b141b7a65a4ec08bfc7b75", + "operation": "dom_click", + "native": false, + "target_fingerprint": "83ac31a5ede6b65a3c83e84c4411c6a909ce2c4ca8587afd1c768959fb90f0e8", + "delivered_at": "2026-10-20T22:42:13.222161+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_009_before.png", + "after_png": "steps/step_009_after.png", + "elapsed_ms": 1769.4628327153623, + "timings": { + "screenshot": 110.2, + "artifact_write": 2.0, + "settle_before": 31.0, + "postcondition": 48.1, + "resolve": 120.1, + "identity": 90.9, + "actuate": 153.1, + "settle_after": 231.7, + "ocr": 980.8, + "other": 1.6 + } + }, + { + "step_id": "step_011", + "intent": "type <DOB>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_011_before.png", + "after_png": "steps/step_011_after.png", + "elapsed_ms": 340.101083740592, + "timings": { + "screenshot": 102.3, + "artifact_write": 2.3, + "settle_before": 3.6, + "postcondition": 28.9, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 129.1, + "actuate": 72.9, + "other": 1.0 + } + }, + { + "step_id": "step_012", + "intent": "click 'Unassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 973, + 430 + ], + "confidence": 1.0, + "elapsed_ms": 59.75091690197587, + "structural_handle": { + "point": [ + 973, + 430 + ], + "confidence": 1.0, + "region": [ + 919, + 415, + 108, + 31 + ], + "target_fingerprint": "1f575a05e33e058a6de7d1992301ba59af48ed7164c05b535f483778b41670bd", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"sex\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-bb625cf57f5b40668a7063159a706aa2", + "operation": "dom_click", + "native": false, + "target_fingerprint": "1f575a05e33e058a6de7d1992301ba59af48ed7164c05b535f483778b41670bd", + "delivered_at": "2026-10-20T22:42:18.839095+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_012_before.png", + "after_png": "steps/step_012_after.png", + "elapsed_ms": 582.1094173006713, + "timings": { + "screenshot": 93.0, + "artifact_write": 2.0, + "settle_before": 3.4, + "postcondition": 21.6, + "resolve": 111.4, + "identity": 96.4, + "actuate": 124.2, + "settle_after": 129.1, + "other": 1.1 + } + }, + { + "step_id": "step_013", + "intent": "type <sex>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_013_before.png", + "after_png": "steps/step_013_after.png", + "elapsed_ms": 324.2304576560855, + "timings": { + "screenshot": 102.4, + "artifact_write": 1.2, + "settle_before": 3.3, + "postcondition": 28.5, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 104.1, + "actuate": 83.7, + "other": 1.0 + } + }, + { + "step_id": "step_015", + "intent": "scroll by (0, 300)", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_015_before.png", + "after_png": "steps/step_015_after.png", + "elapsed_ms": 440.7999999821186, + "timings": { + "screenshot": 162.6, + "artifact_write": 1.3, + "settle_before": 3.6, + "postcondition": 0.0, + "resolve": 102.8, + "identity": 9.4, + "settle_after": 99.2, + "actuate": 60.9, + "other": 1.1 + } + }, + { + "step_id": "step_016", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 634, + 506 + ], + "confidence": 1.0, + "elapsed_ms": 44.10512512549758, + "structural_handle": { + "point": [ + 634, + 506 + ], + "confidence": 1.0, + "region": [ + 91, + 487, + 1087, + 38 + ], + "target_fingerprint": "44776b52c3167c0f2bafc9c0c6d04659535081b55483d1de770a50782d9fc030", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "pixel", + "coverage": 1.0, + "expected": "recorded identifier crop", + "observed": "live identifier crop matches after alignment (worst window 0.036)", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": { + "recorded_crop_sha256": "457eccee597076f6e0d2b6fdd6b1fdd148dfc0eb72501442413c2020efc4ce15", + "live_crop_sha256": "14a873e4bbcb5868c0ad4ca733fbbaf8beee79ab5958cf519c11a2a85115d2a5", + "recorded_crop_inventory_ref": "private/identity-crops/457eccee597076f6e0d2b6fdd6b1fdd148dfc0eb72501442413c2020efc4ce15.png", + "live_crop_inventory_ref": "private/identity-crops/14a873e4bbcb5868c0ad4ca733fbbaf8beee79ab5958cf519c11a2a85115d2a5.png", + "evaluator_contract_sha256": "277ca2432781bdf72113a5225ccd2954f214cfc31b18e2b19fdec02f01e5dce7" + }, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-fd9dbf4354f745539b8988bcdf35500d", + "operation": "dom_click", + "native": false, + "target_fingerprint": "44776b52c3167c0f2bafc9c0c6d04659535081b55483d1de770a50782d9fc030", + "delivered_at": "2026-10-20T22:42:27.106422+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_016_before.png", + "after_png": "steps/step_016_after.png", + "elapsed_ms": 1072.298124898225, + "timings": { + "screenshot": 107.6, + "artifact_write": 1.8, + "settle_before": 3.3, + "postcondition": 108.8, + "resolve": 83.6, + "identity": 136.3, + "actuate": 157.0, + "settle_after": 463.4, + "other": 10.4 + } + }, + { + "step_id": "step_017", + "intent": "scroll by (0, 600)", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_017_before.png", + "after_png": "steps/step_017_after.png", + "elapsed_ms": 460.28404170647264, + "timings": { + "screenshot": 164.3, + "artifact_write": 1.4, + "settle_before": 3.4, + "postcondition": 0.0, + "resolve": 121.5, + "identity": 14.7, + "settle_after": 90.0, + "actuate": 63.8, + "other": 1.1 + } + }, + { + "step_id": "step_018", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 480, + 160 + ], + "confidence": 1.0, + "elapsed_ms": 57.47158406302333, + "structural_handle": { + "point": [ + 480, + 160 + ], + "confidence": 1.0, + "region": [ + 380, + 145, + 199, + 31 + ], + "target_fingerprint": "190968fef66c4896671c57b401c220fab03c4b015c77d48c46639b456bdc618b", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"street\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-2bb75f310f9a428fa305737dc95a34df", + "operation": "dom_click", + "native": false, + "target_fingerprint": "190968fef66c4896671c57b401c220fab03c4b015c77d48c46639b456bdc618b", + "delivered_at": "2026-10-20T22:42:34.204371+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_018_before.png", + "after_png": "steps/step_018_after.png", + "elapsed_ms": 607.0878338068724, + "timings": { + "screenshot": 99.2, + "artifact_write": 2.2, + "settle_before": 3.9, + "postcondition": 34.1, + "resolve": 113.2, + "identity": 89.7, + "actuate": 130.0, + "settle_after": 133.5, + "other": 1.1 + } + }, + { + "step_id": "step_020", + "intent": "type <street>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_020_before.png", + "after_png": "steps/step_020_after.png", + "elapsed_ms": 342.8385001607239, + "timings": { + "screenshot": 99.6, + "artifact_write": 1.2, + "settle_before": 3.5, + "postcondition": 30.8, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 132.0, + "actuate": 74.6, + "other": 1.1 + } + }, + { + "step_id": "step_021", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 445, + 197 + ], + "confidence": 1.0, + "elapsed_ms": 58.120917063206434, + "structural_handle": { + "point": [ + 445, + 197 + ], + "confidence": 1.0, + "region": [ + 380, + 182, + 129, + 31 + ], + "target_fingerprint": "7e72bca4beb1c72d56df6c9797ca540219a9da1dc1d2955b69030a13929a3fd6", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"city\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-3b2d5cbad6544f20882ff6344e6126d3", + "operation": "dom_click", + "native": false, + "target_fingerprint": "7e72bca4beb1c72d56df6c9797ca540219a9da1dc1d2955b69030a13929a3fd6", + "delivered_at": "2026-10-20T22:42:41.570837+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_021_before.png", + "after_png": "steps/step_021_after.png", + "elapsed_ms": 602.0099171437323, + "timings": { + "screenshot": 98.7, + "artifact_write": 2.3, + "settle_before": 3.9, + "postcondition": 13.4, + "resolve": 112.1, + "identity": 98.2, + "actuate": 140.2, + "settle_after": 132.2, + "other": 1.0 + } + }, + { + "step_id": "step_023", + "intent": "type <city>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_023_before.png", + "after_png": "steps/step_023_after.png", + "elapsed_ms": 335.34591691568494, + "timings": { + "screenshot": 101.5, + "artifact_write": 1.4, + "settle_before": 3.6, + "postcondition": 30.0, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 127.5, + "actuate": 69.9, + "other": 1.4 + } + }, + { + "step_id": "step_024", + "intent": "click 'Jnassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1017, + 197 + ], + "confidence": 1.0, + "elapsed_ms": 54.50116563588381, + "structural_handle": { + "point": [ + 1017, + 197 + ], + "confidence": 1.0, + "region": [ + 919, + 182, + 197, + 31 + ], + "target_fingerprint": "a7a1eed9b674dfbe4c45210ddaf411a70d38922ba064271fdcb8660447d3cb9c", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"state\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-e3e03346244740b48922eb4b4b2ab2c2", + "operation": "dom_click", + "native": false, + "target_fingerprint": "a7a1eed9b674dfbe4c45210ddaf411a70d38922ba064271fdcb8660447d3cb9c", + "delivered_at": "2026-10-20T22:42:49.702954+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_024_before.png", + "after_png": "steps/step_024_after.png", + "elapsed_ms": 581.5620408393443, + "timings": { + "screenshot": 99.8, + "artifact_write": 2.1, + "settle_before": 4.3, + "postcondition": 15.3, + "resolve": 111.3, + "identity": 86.0, + "actuate": 132.9, + "settle_after": 128.5, + "other": 1.3 + } + }, + { + "step_id": "step_025", + "intent": "type <state_label>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_025_before.png", + "after_png": "steps/step_025_after.png", + "elapsed_ms": 358.3574998192489, + "timings": { + "screenshot": 107.3, + "artifact_write": 1.4, + "settle_before": 4.2, + "postcondition": 30.2, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 125.5, + "actuate": 88.4, + "other": 1.2 + } + }, + { + "step_id": "step_027", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 420, + 236 + ], + "confidence": 1.0, + "elapsed_ms": 56.10741674900055, + "structural_handle": { + "point": [ + 420, + 236 + ], + "confidence": 1.0, + "region": [ + 380, + 221, + 80, + 31 + ], + "target_fingerprint": "04285fd6fbb8723a1ba15824dad221ea7814688a6ddbc2226088fffbeb0a6c14", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"postal_code\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-125413da3f56412c8e4ba104f86a4222", + "operation": "dom_click", + "native": false, + "target_fingerprint": "04285fd6fbb8723a1ba15824dad221ea7814688a6ddbc2226088fffbeb0a6c14", + "delivered_at": "2026-10-20T22:42:58.719626+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_027_before.png", + "after_png": "steps/step_027_after.png", + "elapsed_ms": 592.6789999939501, + "timings": { + "screenshot": 95.9, + "artifact_write": 2.9, + "settle_before": 3.5, + "postcondition": 12.1, + "resolve": 106.8, + "identity": 94.8, + "actuate": 147.5, + "settle_after": 127.9, + "other": 1.1 + } + }, + { + "step_id": "step_029", + "intent": "type <postal_code>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_029_before.png", + "after_png": "steps/step_029_after.png", + "elapsed_ms": 361.782374791801, + "timings": { + "screenshot": 97.6, + "artifact_write": 1.5, + "settle_before": 29.5, + "postcondition": 33.9, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 130.5, + "actuate": 67.7, + "other": 1.1 + } + }, + { + "step_id": "step_030", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 462, + 349 + ], + "confidence": 1.0, + "elapsed_ms": 57.301833759993315, + "structural_handle": { + "point": [ + 462, + 349 + ], + "confidence": 1.0, + "region": [ + 380, + 334, + 164, + 31 + ], + "target_fingerprint": "58a900a217c066482b19a0272a71f918d9a3661c66abfac7087c63a0b12846c0", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"phone_home\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-beeac4ff94a14163acbd8582167f29d8", + "operation": "dom_click", + "native": false, + "target_fingerprint": "58a900a217c066482b19a0272a71f918d9a3661c66abfac7087c63a0b12846c0", + "delivered_at": "2026-10-20T22:43:08.619088+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_030_before.png", + "after_png": "steps/step_030_after.png", + "elapsed_ms": 615.1470830664039, + "timings": { + "screenshot": 99.3, + "artifact_write": 3.2, + "settle_before": 3.4, + "postcondition": 14.2, + "resolve": 110.6, + "identity": 92.8, + "actuate": 163.2, + "settle_after": 127.3, + "other": 1.2 + } + }, + { + "step_id": "step_032", + "intent": "type <phone_home>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_032_before.png", + "after_png": "steps/step_032_after.png", + "elapsed_ms": 365.6767075881362, + "timings": { + "screenshot": 106.0, + "artifact_write": 1.5, + "settle_before": 30.6, + "postcondition": 28.8, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 127.8, + "actuate": 69.9, + "other": 1.1 + } + }, + { + "step_id": "step_033", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1036, + 384 + ], + "confidence": 1.0, + "elapsed_ms": 61.789083294570446, + "structural_handle": { + "point": [ + 1036, + 384 + ], + "confidence": 1.0, + "region": [ + 919, + 369, + 234, + 31 + ], + "target_fingerprint": "8ea64723dda3195b89695ad5ede8b2bdf50b936e5b5e05f3e759869bb4c302e4", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"email\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-21776c6fa6584dc7bffd08c36458dfb6", + "operation": "dom_click", + "native": false, + "target_fingerprint": "8ea64723dda3195b89695ad5ede8b2bdf50b936e5b5e05f3e759869bb4c302e4", + "delivered_at": "2026-10-20T22:43:19.218494+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_033_before.png", + "after_png": "steps/step_033_after.png", + "elapsed_ms": 570.9761660546064, + "timings": { + "screenshot": 95.0, + "artifact_write": 2.7, + "settle_before": 3.4, + "postcondition": 14.7, + "resolve": 117.5, + "identity": 90.6, + "actuate": 123.7, + "settle_after": 122.2, + "other": 1.2 + } + }, + { + "step_id": "step_035", + "intent": "type <email>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_035_before.png", + "after_png": "steps/step_035_after.png", + "elapsed_ms": 341.85054199770093, + "timings": { + "screenshot": 87.3, + "artifact_write": 1.3, + "settle_before": 3.3, + "postcondition": 28.9, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 138.7, + "actuate": 81.2, + "other": 1.1 + } + }, + { + "step_id": "step_036", + "intent": "click 'Jnassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1017, + 236 + ], + "confidence": 1.0, + "elapsed_ms": 50.31724972650409, + "structural_handle": { + "point": [ + 1017, + 236 + ], + "confidence": 1.0, + "region": [ + 919, + 221, + 197, + 31 + ], + "target_fingerprint": "996199dfc0a89f56ebe9c10b08a63abd8e1ff5c780ce6db016c810f15a921be9", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"country_code\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-b69b3316a2e341fd9cd35773782d2fc5", + "operation": "dom_click", + "native": false, + "target_fingerprint": "996199dfc0a89f56ebe9c10b08a63abd8e1ff5c780ce6db016c810f15a921be9", + "delivered_at": "2026-10-20T22:43:30.668132+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_036_before.png", + "after_png": "steps/step_036_after.png", + "elapsed_ms": 567.9441248066723, + "timings": { + "screenshot": 103.9, + "artifact_write": 1.8, + "settle_before": 3.3, + "postcondition": 12.7, + "resolve": 102.2, + "identity": 92.0, + "actuate": 122.8, + "settle_after": 128.3, + "other": 1.0 + } + }, + { + "step_id": "step_037", + "intent": "type <country_code>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_037_before.png", + "after_png": "steps/step_037_after.png", + "elapsed_ms": 320.41216688230634, + "timings": { + "screenshot": 104.4, + "artifact_write": 1.1, + "settle_before": 3.4, + "postcondition": 26.8, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 106.8, + "actuate": 76.9, + "other": 1.0 + } + }, + { + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 285, + 774 + ], + "confidence": 1.0, + "elapsed_ms": 44.7437078692019, + "structural_handle": { + "point": [ + 285, + 774 + ], + "confidence": 1.0, + "region": [ + 189, + 755, + 191, + 39 + ], + "target_fingerprint": "ed19b9b2e9bcd02b49761c17fa53913d029cc44289fc245e20c50b1cb89df562", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"open_duplicate_check\",\"target_kind\":\"action\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-cbf545bd5937478093b80007e7d63aa4", + "operation": "dom_click", + "native": false, + "target_fingerprint": "ed19b9b2e9bcd02b49761c17fa53913d029cc44289fc245e20c50b1cb89df562", + "delivered_at": "2026-10-20T22:43:42.433994+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_039_before.png", + "after_png": "steps/step_039_after.png", + "elapsed_ms": 1126.2630419805646, + "timings": { + "screenshot": 109.6, + "artifact_write": 1.9, + "settle_before": 3.8, + "postcondition": 60.7, + "resolve": 90.8, + "identity": 97.0, + "actuate": 161.2, + "settle_after": 575.5, + "other": 25.8 + } + }, + { + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "ok": true, + "risk": "irreversible", + "risk_explanation": "operator-qualified override: irreversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 600, + 280 + ], + "confidence": 1.0, + "elapsed_ms": 40.59691680595279, + "structural_handle": { + "point": [ + 600, + 280 + ], + "confidence": 1.0, + "region": [ + 488, + 261, + 225, + 38 + ], + "target_fingerprint": "0e33d11ed513a0849fc0e1ecaeb1e6bdf5f075ced04d7bcf0ef8f43d32ae3c1b", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Confirm Create New Patient\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": true, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [ + "[rest] record_written: CONFIRMED — exactly 1 record(s) match the target selector", + "[rest] exact_new_set: CONFIRMED — the action added exactly the 1 declared record(s) to the scoped read set, and nothing else", + "[rest] field_equals: CONFIRMED — field 'title' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'fname' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'DOB' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'sex' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'street' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'city' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'state' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'postal_code' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'phone_home' equals the expected value", + "[rest] field_equals: CONFIRMED — field 'country_code' equals the expected value" + ], + "effect_evidence": [ + { + "effect_contract_hash": "sha256:4e62a81ba54524e87b8f1f9110ce5ff8b187487440ac50e524a1495d5eab17db", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:9a94fca82ba36b86cb72ae8988f1f16de424954172fbdb66761ac3de89232711", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:f1e312b601310bc7d1eb450c419b335d08222f026b1b863cc550ea65204f66bc", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:a67fdbc8b61ac085413cae3ccadaf849f34a794a55c9cbf1bd7306e274d66734", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:e2edc11ff5a6611407cb831879c797ec74791b21f3154a3e8614b13534e950dc", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:b2579045fee4a56bba3e07ad3af220443679a2c68ae9fcc1e1b8cafb7b230479", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:d88b0ae54a95f9a38052388dd1afd725ba77209b25b8f6e11626902d8a216c70", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:117d6795803ff2fc8d1bc72e4fea05143f1ca46f4749cf919aa579787b843a76", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:916eb47fd6b8d7ea8685b2138414b862ec8b5ecc48092042bbca75382fab51bd", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:d40109eb9c134b6043a415e7d56650ed11e34bcd5c18ff179f9a77c5f29624c1", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:e5df47a0ff94595db645d6ea0958cb23c0221837ffb4ee1fa220adbd8c0b4b9d", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:c28585d05ba1774b13cbd450a648754fcc1be02f052cfdfd5fd8571defde224e", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + } + ], + "server_responses": [ + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + }, + { + "method": "POST", + "status": 200, + "content_type": "text/html", + "check_level": "same_screen" + } + ], + "effect_field_checks": [ + { + "field": "title", + "expected": "Mrs.", + "observed": "Mrs.", + "matched": true, + "verification_tier": 1 + }, + { + "field": "fname", + "expected": "Ines", + "observed": "Ines", + "matched": true, + "verification_tier": 1 + }, + { + "field": "DOB", + "expected": "1949-12-11", + "observed": "1949-12-11", + "matched": true, + "verification_tier": 1 + }, + { + "field": "sex", + "expected": "Female", + "observed": "Female", + "matched": true, + "verification_tier": 1 + }, + { + "field": "street", + "expected": "9 LANTERN COURT", + "observed": "9 LANTERN COURT", + "matched": true, + "verification_tier": 1 + }, + { + "field": "city", + "expected": "EXAMPLETON", + "observed": "EXAMPLETON", + "matched": true, + "verification_tier": 1 + }, + { + "field": "state", + "expected": "MA", + "observed": "MA", + "matched": true, + "verification_tier": 1 + }, + { + "field": "postal_code", + "expected": "02139", + "observed": "02139", + "matched": true, + "verification_tier": 1 + }, + { + "field": "phone_home", + "expected": "555-0131", + "observed": "555-0131", + "matched": true, + "verification_tier": 1 + }, + { + "field": "country_code", + "expected": "USA", + "observed": "USA", + "matched": true, + "verification_tier": 1 + } + ], + "failure_category": null, + "effect_contract_hashes": [ + "sha256:4e62a81ba54524e87b8f1f9110ce5ff8b187487440ac50e524a1495d5eab17db", + "sha256:9a94fca82ba36b86cb72ae8988f1f16de424954172fbdb66761ac3de89232711", + "sha256:f1e312b601310bc7d1eb450c419b335d08222f026b1b863cc550ea65204f66bc", + "sha256:a67fdbc8b61ac085413cae3ccadaf849f34a794a55c9cbf1bd7306e274d66734", + "sha256:e2edc11ff5a6611407cb831879c797ec74791b21f3154a3e8614b13534e950dc", + "sha256:b2579045fee4a56bba3e07ad3af220443679a2c68ae9fcc1e1b8cafb7b230479", + "sha256:d88b0ae54a95f9a38052388dd1afd725ba77209b25b8f6e11626902d8a216c70", + "sha256:117d6795803ff2fc8d1bc72e4fea05143f1ca46f4749cf919aa579787b843a76", + "sha256:916eb47fd6b8d7ea8685b2138414b862ec8b5ecc48092042bbca75382fab51bd", + "sha256:d40109eb9c134b6043a415e7d56650ed11e34bcd5c18ff179f9a77c5f29624c1", + "sha256:e5df47a0ff94595db645d6ea0958cb23c0221837ffb4ee1fa220adbd8c0b4b9d", + "sha256:c28585d05ba1774b13cbd450a648754fcc1be02f052cfdfd5fd8571defde224e" + ], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-d3d31331141047d394f8997c20cfaa4f", + "operation": "dom_click", + "native": false, + "target_fingerprint": "0e33d11ed513a0849fc0e1ecaeb1e6bdf5f075ced04d7bcf0ef8f43d32ae3c1b", + "delivered_at": "2026-10-20T22:43:49.235166+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_040_before.png", + "after_png": "steps/step_040_after.png", + "elapsed_ms": 1620.9069159813225, + "timings": { + "screenshot": 101.4, + "artifact_write": 1.9, + "settle_before": 3.2, + "postcondition": 81.0, + "resolve": 85.0, + "identity": 83.6, + "actuate": 198.4, + "settle_after": 1012.9, + "other": 53.6 + } + } + ], + "success": true, + "terminal_outcome": null, + "visited_states": [], + "loop_iterations": [], + "program_transition_evidence": [], + "business_decision_evidence": [], + "program_exception_evidence": [], + "attended_program_transition_evidence": [], + "halt": null, + "rung_counts": { + "structural": 15 + }, + "render_scale": null, + "heal_count": 0, + "model_calls": 0, + "external_network_calls": "none", + "est_model_cost_usd": 0.0, + "total_ms": 114546.15129111335, + "identity_applicable_steps": 15, + "identity_armed_steps": 15, + "identity_unarmed": [], + "screenshots_may_leave_box": false, + "approval": { + "schema_version": "openadapt.approval-mode-item/v1", + "mode": "problems_only", + "channel": "desktop_run_it_list_with_header", + "switch_id": "switch-lifecycle-proof-0c985b8bb0fd-1792535879", + "switch_record_sha256": "sha256:646a2d9143579b4abc926c14a41ff5ba14a980a5a937dad38bf6af950b06f2c3", + "item_checks": [ + { + "code": "inputs_supplied", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "channel", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "inputs_strict", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "not_a_retry", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "record_key_not_recent", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "deployment_config", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "switch_lease", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "not_resumed", + "passed": true, + "detail": "ok", + "step_id": null + } + ], + "pre_checks": [ + { + "code": "switch_on", + "passed": true, + "detail": "ok", + "step_id": "step_040" + }, + { + "code": "signed_in_user", + "passed": true, + "detail": "ok", + "step_id": "step_040" + }, + { + "code": "right_record", + "passed": true, + "detail": "ok", + "step_id": "step_040" + }, + { + "code": "same_screens", + "passed": true, + "detail": "ok", + "step_id": "step_040" + }, + { + "code": "record_check_ready", + "passed": true, + "detail": "ok", + "step_id": "step_040" + } + ], + "post_checks": [ + { + "code": "verified", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "whole_run_clean", + "passed": true, + "detail": "ok", + "step_id": null + } + ], + "saves_without_person": 1, + "gated_step_id": null, + "decision": "no_person", + "decision_reason": null, + "needs_person": false, + "counts_toward_problems": false, + "switch_off_reason": null, + "switch_log_recorded": true, + "approvals": [] + }, + "redactions": [ + { + "pointer": "/execution_entry_url", + "reason": "url_param:token_main" + } + ] +} \ No newline at end of file diff --git a/packages/flow/benchmark/lifecycle_proof/results/proof-15/continue/r7-arlo-whitcombe/report.json b/packages/flow/benchmark/lifecycle_proof/results/proof-15/continue/r7-arlo-whitcombe/report.json new file mode 100644 index 000000000..33477a110 --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/proof-15/continue/r7-arlo-whitcombe/report.json @@ -0,0 +1,3266 @@ +{ + "workflow_name": "openemr-create-synthetic-patient", + "started_at": "2026-10-20T22:48:54.521800+00:00", + "execution_profile": "regulated", + "execution_outcome": "HALTED", + "production_eligible": false, + "execution_completed": false, + "outcome_envelope": { + "version": "openadapt.execution-outcome/v1", + "outcome": "HALTED", + "profile": "regulated", + "production_eligible": false, + "execution_completed": false, + "required_contracts": { + "authorization": 1, + "identity": 15, + "postcondition": 32, + "effect": 12 + }, + "passed_contracts": { + "authorization": 1, + "identity": 14, + "postcondition": 30, + "effect": 0 + }, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "postcondition_evidence": [ + { + "result_index": 0, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 0, + "step_contract_sha256": "229c3c9ec053ef29cf51bfea8e2b894f8bd0f5ac6ae8e86359ff4ac804a6e412", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "401187c13f64c38950e30ea4262ce2a935630e218bcd61a7d073cf991b7d9d52", + "verdict": "passed" + }, + { + "result_index": 0, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 0, + "step_contract_sha256": "229c3c9ec053ef29cf51bfea8e2b894f8bd0f5ac6ae8e86359ff4ac804a6e412", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "8c20f460859d7e96ddd1262caac7b0dcb62cf686efdee3f4e29fdd71c42596b7", + "verdict": "passed" + }, + { + "result_index": 1, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 1, + "step_contract_sha256": "ed6d8f4e51d357034dbb251bbbfb449f36db5616cb859e9fe77eade11e4c242f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "6d2bdc9553c6f5ceb6523f7ef6b422f7adf3c430a269ac860fe57d3424c57e5e", + "verdict": "passed" + }, + { + "result_index": 2, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 2, + "step_contract_sha256": "535b3af532c6b62630cb42d7ec12cf9a45067082a8e6c568568c9f1ea9294557", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "a3303142996bd058638ab541923a04b4fd4db7779b2a5cd1437c1b09f0f719c1", + "verdict": "passed" + }, + { + "result_index": 3, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 3, + "step_contract_sha256": "af6a582512adef1ab2655799bacb2f9c4f8d5c5d1fc093f8bbda3cf3993b13e3", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "d66343de1fb0f9486c8f490c22883a16d57fd0751c6a9af72ca033bd8226666e", + "verdict": "passed" + }, + { + "result_index": 4, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 4, + "step_contract_sha256": "db027061d3124e5b4bfb8d015a1d04a768ee71009aa12c2ca1ea395cee19c72c", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "d7676eca4e18055dccf69cfe02735b0f54f8fbb3b5adeeedbb5f77e724dcb405", + "verdict": "passed" + }, + { + "result_index": 5, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 5, + "step_contract_sha256": "0d1e7e53976a613a963b69d8659af906c19bb1f1e1f5e4faf98bd2b9c271e186", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "8cc322d346b34042845d05725697f3df24fcc7355a63368bc211e06afeaf04f1", + "verdict": "passed" + }, + { + "result_index": 6, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 6, + "step_contract_sha256": "10173be5ada082e37361f383f8c1cb702f6c8165fca5edd74cd06e225cf56d52", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "ba495991f7f4029c350243a6c4853dfa96a21f76478227ead0b58cd578d724d0", + "verdict": "passed" + }, + { + "result_index": 6, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 6, + "step_contract_sha256": "10173be5ada082e37361f383f8c1cb702f6c8165fca5edd74cd06e225cf56d52", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "33e2e8251b8960cc9d0dea8b0c610f66c8ab5532d4e9c610f826550d1969b319", + "verdict": "passed" + }, + { + "result_index": 7, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 7, + "step_contract_sha256": "7bdece9442af62928750cddf1b954dc0211e8137999c2dcb5123495557a64aff", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "21b21cc72a141d168d1f486ee9d5e686e9343d19479226fd0493c0e44acfb88f", + "verdict": "passed" + }, + { + "result_index": 8, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 8, + "step_contract_sha256": "924d89b47b94ae64b988b910c68fbe6afb3ae43cfcbd642271d83f6c8305bf58", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "c46e0fb995659cc26a2e96712dc2fe28e5855d930c2ef34a660c4a6f29a90ad4", + "verdict": "passed" + }, + { + "result_index": 9, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 9, + "step_contract_sha256": "210300a3b19d838675c64a43e28c5d05a65f6af0275a5c5cff2b81dd414a6ed1", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "6c79001d3f898490d8aaf4aa98e5009a3c3b35a0f3f00b52cd6588c3935ba634", + "verdict": "passed" + }, + { + "result_index": 11, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 11, + "step_contract_sha256": "f2f9caf11689c7abc85708df15b3d9c60d7907bc68262424d19d766bc5cb38bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "4dffb3e101368cd79a407a52df4ef3d4985827a932283d2d7a5bdbdf7b1a017a", + "verdict": "passed" + }, + { + "result_index": 11, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 11, + "step_contract_sha256": "f2f9caf11689c7abc85708df15b3d9c60d7907bc68262424d19d766bc5cb38bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "9a70e83e890372735f62c8c14072c5d5566e802712ca186eab31717fc09d5fb6", + "verdict": "passed" + }, + { + "result_index": 13, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 13, + "step_contract_sha256": "a1ec6bec55348170c3141f790e6d33909fc02034c50320f28a98afa025aa26bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "f4cdf9296fc00bafdca1f10cad96a713a1a77f13992fd8c8305ce33ac20725e6", + "verdict": "passed" + }, + { + "result_index": 14, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 14, + "step_contract_sha256": "38b8933e8bc3047d51fa72be99a9626f39910af3338152d64deff466e2381201", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "bcf795f882b3ea8db403894d208d48ca144950ddd28ef79ac99b0790d425cedf", + "verdict": "passed" + }, + { + "result_index": 15, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 15, + "step_contract_sha256": "314dfd0de9aeb5703e85cea70684f9e9ceded68be65bf724ce8c3e56baf000ff", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "1f34178539962ade7f7e3d3ea5542627f621ab125d433d667be815d366089958", + "verdict": "passed" + }, + { + "result_index": 16, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 16, + "step_contract_sha256": "2822b83d6e7e089b86920bbf4bb3b3bf62bd2594454242ba5ad76df41303aa00", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "82517d98410bde6259a7bc2b633a5efb475f2aaef11453ff7e58e9d89a4ca225", + "verdict": "passed" + }, + { + "result_index": 17, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 17, + "step_contract_sha256": "72ddbbc8bcee54e91b36253fa1b82c9a571a115ee086c31ad32982ae30dee59c", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "ff86f0b85d1718d49a97846817a769342e9113be9ea4297b9daaddb21688bdab", + "verdict": "passed" + }, + { + "result_index": 18, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 18, + "step_contract_sha256": "60f4dc2405e90e851af7a536a90c1e7551e66fa1f07e83002b690e6419ea2e68", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "c7730849ecdd8a488d8a3c19f19607f494f54b95fa4d17cc148fbae7b0ee3ea6", + "verdict": "passed" + }, + { + "result_index": 19, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 19, + "step_contract_sha256": "62c301c5e4731945d06e2fefce787cee0408990894a74bcde540841b96bda992", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "8d69a409f2da5411f6a1ffb89cbb6922ea4bd4e53cad88c07d91e2eb815bfbed", + "verdict": "passed" + }, + { + "result_index": 20, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 20, + "step_contract_sha256": "ec1b3c559fd1a1537e3041731aeedac080f3e53f7a0993099f27e83a4f4b9e8f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "36c6e797959d8ab804c4b41b750c0673063647cf6a1867bf7d9fbcfb82e35704", + "verdict": "passed" + }, + { + "result_index": 21, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 21, + "step_contract_sha256": "7586311fe4153a125c44cd9b9172e027a52a93df18f39907ace63d88920a3435", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "10e30a58326e2002cb8f578099f6e941c16a9c27325b9f9b81aa4876b4bc1e9c", + "verdict": "passed" + }, + { + "result_index": 22, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 22, + "step_contract_sha256": "5f8f28bb7f94a3fd80c95ac23ebc2144e5cb5fd558d83f1c7c3e7e54f8d5b989", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "0a0db9c0ae0c5ee7e7c832f7271d9fc56c20eca5233ac5adb9de41b3198a716f", + "verdict": "passed" + }, + { + "result_index": 23, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 23, + "step_contract_sha256": "d17ab75a87ee445f4616d61244bc33776696341c175099dda31e07f3524b18ce", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "7fe199b71066a71474ad1e5d16f5b3ba3591f67ded03ac5795aed0ea97606ec2", + "verdict": "passed" + }, + { + "result_index": 24, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 24, + "step_contract_sha256": "18959802e73a694c58d99b47a2bc3dba43ae047201f89d82776858349e7282cd", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "40a861211b6660e7cd12ae97a783522d35b7dac6e67b87a606b6c7631d967c03", + "verdict": "passed" + }, + { + "result_index": 25, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 25, + "step_contract_sha256": "b08f16f538d9547def1826013afffbb26478d83b2546d4ffa74e23a2860fc0e4", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "f1d929f76799835ffa2c67c42b7c0cb0fa02f6a5b960043e23ba455e75d4b61f", + "verdict": "passed" + }, + { + "result_index": 26, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 26, + "step_contract_sha256": "6115b2756620c9752efc3546a78ce18a4d5cecfca20beec7003a4529f9e2ae6f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "5bb10f94d82e26d0a55df0caa8140ab7f2a6bccdf74f10ed3fb1de08f946734b", + "verdict": "passed" + }, + { + "result_index": 27, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 27, + "step_contract_sha256": "84bb4b45b2b3c4739ff15089ac8b5d81eab784c8cb8515366b50672b26d94693", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "8afe0db69640d10aedd282fd0fb2932604f07364e1997040212f2ad66ae7b0c8", + "verdict": "passed" + }, + { + "result_index": 27, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 27, + "step_contract_sha256": "84bb4b45b2b3c4739ff15089ac8b5d81eab784c8cb8515366b50672b26d94693", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "7cb99120bcbba08a678c92d9ed380fecdf9ff40b208b603730b13fa1f088cebb", + "verdict": "passed" + }, + { + "result_index": 28, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 28, + "step_contract_sha256": "f1798bf8e82aa7907be82cb2276c5ab48f861213983faa26078b195f823c6a7e", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "5039384bb50435098e823e2de5fe3128495bf982d38319bb8552212679eeddc0", + "verdict": "unverifiable" + }, + { + "result_index": 28, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 28, + "step_contract_sha256": "f1798bf8e82aa7907be82cb2276c5ab48f861213983faa26078b195f823c6a7e", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "f377120063182c856629a042d08e439f20a26fd6e41041fbd102c93c96f5cd5e", + "verdict": "unverifiable" + } + ], + "evidence_classes": [ + "authorization", + "identity", + "postcondition" + ], + "model_calls": 0, + "external_network_calls": "none", + "compensation_actions": 0 + }, + "readback": null, + "transaction_outcome": "REJECTED_POLICY", + "transaction_billable": false, + "transaction_platform_fault": false, + "effect_journal": [ + { + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "consequential": true, + "intended_effect_contract_hashes": [], + "attempt_state": "delivered", + "observed_effect": "unknown", + "effect_verified": null, + "approved_unverified": false, + "verification_performed": false, + "observed_at": null, + "collateral_reconciliation_actions": 0 + }, + { + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "consequential": true, + "intended_effect_contract_hashes": [], + "attempt_state": "not_actuated", + "observed_effect": "unknown", + "effect_verified": null, + "approved_unverified": false, + "verification_performed": false, + "observed_at": null, + "collateral_reconciliation_actions": 0 + } + ], + "change_ledger": [ + { + "position": 28, + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "attempt_state": "delivered", + "status": "unknown", + "effects": [], + "may_need_undo": true, + "undo_id": null + } + ], + "idempotency_key": null, + "idempotent_replay": false, + "canceled": false, + "execution_target_kind": "web", + "recorded_surface": null, + "surface_override": false, + "execution_origin": "http://127.0.0.1:9401", + "execution_entry_url": "http://127.0.0.1:9401/interface/main/tabs/main.php?token_main=<redacted>", + "bundle_content_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "source_recording_sha256": "243fb7853b228a2e0fd93c51c1d43e7b84fff567f1aac917bdcd91a54d044894", + "parameter_schema_sha256": "2a19e2c3ea6e0644cfe9a842aea8c53e036d18bed254b100cf23c88ea090d603", + "governed_authorization_id": "8d3dbda4318b464b92b25e7788ad9650", + "governed_approval_source": "local-cli-explicit-flag", + "governed_authorization_created_at": "2026-10-20T22:48:54.510626+00:00", + "governed_policy_name": "clinical-write", + "governed_policy_contract_sha256": "f35a6a94b3f2787165f071ce8571de07095169b9632d394e9df719b35da52c0f", + "governed_minimum_effect_tier": 1, + "governed_qualified_effect_requirements": [ + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 0, + "effect_contract_hash": "sha256:f64985856097097954250be6523fa260daf9fc5db495671c2548ead9a388577b", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 1, + "effect_contract_hash": "sha256:709f0a4ad813f47658bb934bd1ea8c4c4c20b9c108b13d0a316e193d03dbddb8", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 2, + "effect_contract_hash": "sha256:206d1d6fc27df6f24c02bb6b6f4419e0612e7935ec7e744fc8cc446f54558385", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 3, + "effect_contract_hash": "sha256:8f295459bdd868daf117ca9f77dd948cdc2c8c034a65184cb5418ccfab7f60e7", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 4, + "effect_contract_hash": "sha256:52c6884d06d82c4ccc14600150f2890bcd25d92cb7eb26bc53ef54033075ba3c", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 5, + "effect_contract_hash": "sha256:7732675a6e6123c0c3f51512496f695fa4ce503ab989993c520fb8a469bbdc3d", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 6, + "effect_contract_hash": "sha256:598fb97e12d3c0b537f0453e7fdaad453b969e249e888424e67fcd85a06741f0", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 7, + "effect_contract_hash": "sha256:ba109cf90077d7b20a37c2848fa7bee8ea0039747a5ae47465617b2ea1039a2b", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 8, + "effect_contract_hash": "sha256:f9365eda04aba1960fc26c35d252cdadafcec9ad9f9c433b626af6f137189707", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 9, + "effect_contract_hash": "sha256:b311b51ece1670a60f793b29aa3d28d40da196ffbcd26f2fdd620e380dedf97a", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 10, + "effect_contract_hash": "sha256:a33cf54165b96ce6d48014e6e68bac94cdc8f9c9176bae6f5c955123d20683c2", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 11, + "effect_contract_hash": "sha256:d2516eb0f6aa365b812e84fd754127d053d8e0b1a4b349a0b8ce71936bcec199", + "minimum_tier": 1 + } + ], + "governed_runtime_inputs_digest": "fc7d13f0bea57825abccbcc718d8d062b9e6fce427eb3ddcd093a5e609e9d4d5", + "run_id_sha256": "b74c937fd4f6e47f94bd472bf5e2e4558bba42f9fb2dd7d3f3c84e972a37cb48", + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_run_id_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_session_sha256": null, + "observed_environment_digest": null, + "observed_environment_binding_sha256": null, + "qualification_environment_observer_id": null, + "qualification_environment_observer_contract_sha256": null, + "governed_authorized_effect_contracts": {}, + "required_identity_step_ids": [ + "step_000", + "step_003", + "step_006", + "step_009", + "step_012", + "step_016", + "step_018", + "step_021", + "step_024", + "step_027", + "step_030", + "step_033", + "step_036", + "step_039", + "step_040" + ], + "approved_unverified_effect_step_ids": [], + "params": { + "title": "Mr.", + "fname": "Arlo", + "lname": "Whitcombe", + "DOB": "1966-05-30", + "sex": "Male", + "street": "88 BEACON TERRACE", + "city": "EXAMPLETON", + "state_label": "Massachusetts", + "postal_code": "02139", + "phone_home": "555-0152", + "email": "arlo.whitcombe@example.invalid", + "country_code": "USA" + }, + "results": [ + { + "step_id": "step_000", + "intent": "click 'Unassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 434, + 282 + ], + "confidence": 1.0, + "elapsed_ms": 57.36458254978061, + "structural_handle": { + "point": [ + 434, + 282 + ], + "confidence": 1.0, + "region": [ + 380, + 267, + 108, + 31 + ], + "target_fingerprint": "f5fb00d2ca902b4776e2e963c3bba904acdfe8397a0036dbe2b83b871e8f12e2", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"title\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-4f3e9c0cd6bc424e8961e04cf0134a5e", + "operation": "dom_click", + "native": false, + "target_fingerprint": "f5fb00d2ca902b4776e2e963c3bba904acdfe8397a0036dbe2b83b871e8f12e2", + "delivered_at": "2026-10-20T22:48:55.344681+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_000_before.png", + "after_png": "steps/step_000_after.png", + "elapsed_ms": 697.4182086996734, + "timings": { + "screenshot": 113.2, + "artifact_write": 2.8, + "settle_before": 30.4, + "postcondition": 24.9, + "resolve": 112.6, + "identity": 138.3, + "actuate": 147.5, + "settle_after": 125.2, + "other": 2.7 + } + }, + { + "step_id": "step_001", + "intent": "type <title>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_001_before.png", + "after_png": "steps/step_001_after.png", + "elapsed_ms": 352.5275415740907, + "timings": { + "screenshot": 102.2, + "artifact_write": 1.5, + "settle_before": 3.3, + "postcondition": 29.6, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 126.9, + "actuate": 87.9, + "other": 1.0 + } + }, + { + "step_id": "step_003", + "intent": "click 'First Name'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 445, + 317 + ], + "confidence": 1.0, + "elapsed_ms": 52.39837523549795, + "structural_handle": { + "point": [ + 445, + 317 + ], + "confidence": 1.0, + "region": [ + 380, + 302, + 129, + 31 + ], + "target_fingerprint": "31edf6c269223cd837bd54278fb89bb8a61743c34cb91207572c80bd2eb837f6", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"fname\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-e67958a89b5844659e9e457f0c61e2f9", + "operation": "dom_click", + "native": false, + "target_fingerprint": "31edf6c269223cd837bd54278fb89bb8a61743c34cb91207572c80bd2eb837f6", + "delivered_at": "2026-10-20T22:48:57.478332+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_003_before.png", + "after_png": "steps/step_003_after.png", + "elapsed_ms": 601.7331671901047, + "timings": { + "screenshot": 92.0, + "artifact_write": 3.0, + "settle_before": 3.4, + "postcondition": 13.5, + "resolve": 102.4, + "identity": 94.7, + "actuate": 152.8, + "settle_after": 138.9, + "other": 1.1 + } + }, + { + "step_id": "step_005", + "intent": "type <fname>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_005_before.png", + "after_png": "steps/step_005_after.png", + "elapsed_ms": 351.1395831592381, + "timings": { + "screenshot": 109.3, + "artifact_write": 1.8, + "settle_before": 3.1, + "postcondition": 35.6, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 130.6, + "actuate": 69.7, + "other": 1.1 + } + }, + { + "step_id": "step_006", + "intent": "click 'Last Name'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 671, + 317 + ], + "confidence": 1.0, + "elapsed_ms": 52.32770927250385, + "structural_handle": { + "point": [ + 671, + 317 + ], + "confidence": 1.0, + "region": [ + 589, + 302, + 164, + 31 + ], + "target_fingerprint": "d9f280fda3604b632b9b5a050c536251c35f91bac906dff8e99dce6b2e0b5c95", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"lname\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-1f49a54d92824091ae179969411ac9a8", + "operation": "dom_click", + "native": false, + "target_fingerprint": "d9f280fda3604b632b9b5a050c536251c35f91bac906dff8e99dce6b2e0b5c95", + "delivered_at": "2026-10-20T22:49:00.376657+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_006_before.png", + "after_png": "steps/step_006_after.png", + "elapsed_ms": 581.3157078810036, + "timings": { + "screenshot": 98.5, + "artifact_write": 3.8, + "settle_before": 3.6, + "postcondition": 14.5, + "resolve": 103.9, + "identity": 94.1, + "actuate": 132.9, + "settle_after": 129.1, + "other": 1.1 + } + }, + { + "step_id": "step_008", + "intent": "type <lname>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_008_before.png", + "after_png": "steps/step_008_after.png", + "elapsed_ms": 348.3480839058757, + "timings": { + "screenshot": 111.6, + "artifact_write": 2.5, + "settle_before": 3.5, + "postcondition": 30.1, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 128.2, + "actuate": 71.3, + "other": 1.1 + } + }, + { + "step_id": "step_009", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 427, + 430 + ], + "confidence": 1.0, + "elapsed_ms": 56.861833203583956, + "structural_handle": { + "point": [ + 427, + 430 + ], + "confidence": 1.0, + "region": [ + 380, + 415, + 94, + 31 + ], + "target_fingerprint": "3f795634ecd07af7409e38b1aa59f4e37eb374238d1db020e3a88366c41cd04f", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"DOB\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-440aa3ba1fbd4e9196db0704eae6f5e8", + "operation": "dom_click", + "native": false, + "target_fingerprint": "3f795634ecd07af7409e38b1aa59f4e37eb374238d1db020e3a88366c41cd04f", + "delivered_at": "2026-10-20T22:49:04.144137+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_009_before.png", + "after_png": "steps/step_009_after.png", + "elapsed_ms": 1588.9240419492126, + "timings": { + "screenshot": 92.2, + "artifact_write": 1.9, + "settle_before": 26.2, + "postcondition": 44.4, + "resolve": 106.4, + "identity": 97.2, + "actuate": 163.0, + "settle_after": 233.5, + "ocr": 822.9, + "other": 1.4 + } + }, + { + "step_id": "step_011", + "intent": "type <DOB>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_011_before.png", + "after_png": "steps/step_011_after.png", + "elapsed_ms": 356.95079201832414, + "timings": { + "screenshot": 102.3, + "artifact_write": 2.8, + "settle_before": 4.2, + "postcondition": 28.3, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 128.4, + "actuate": 89.6, + "other": 1.2 + } + }, + { + "step_id": "step_012", + "intent": "click 'Unassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 973, + 430 + ], + "confidence": 1.0, + "elapsed_ms": 55.06341718137264, + "structural_handle": { + "point": [ + 973, + 430 + ], + "confidence": 1.0, + "region": [ + 919, + 415, + 108, + 31 + ], + "target_fingerprint": "140fe1c625f45590c0fe994cd6df9ff3fd81451e33acedd872536cf79e7376ab", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"sex\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-ddc93fad824842478c4db90bf727cfdc", + "operation": "dom_click", + "native": false, + "target_fingerprint": "140fe1c625f45590c0fe994cd6df9ff3fd81451e33acedd872536cf79e7376ab", + "delivered_at": "2026-10-20T22:49:09.644496+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_012_before.png", + "after_png": "steps/step_012_after.png", + "elapsed_ms": 614.0975002199411, + "timings": { + "screenshot": 108.1, + "artifact_write": 5.3, + "settle_before": 3.2, + "postcondition": 20.6, + "resolve": 105.7, + "identity": 91.0, + "actuate": 148.6, + "settle_after": 130.4, + "other": 1.2 + } + }, + { + "step_id": "step_013", + "intent": "type <sex>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_013_before.png", + "after_png": "steps/step_013_after.png", + "elapsed_ms": 345.69920785725117, + "timings": { + "screenshot": 100.6, + "artifact_write": 1.3, + "settle_before": 3.2, + "postcondition": 27.5, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 126.7, + "actuate": 85.4, + "other": 1.0 + } + }, + { + "step_id": "step_015", + "intent": "scroll by (0, 300)", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_015_before.png", + "after_png": "steps/step_015_after.png", + "elapsed_ms": 429.1808339767158, + "timings": { + "screenshot": 158.3, + "artifact_write": 1.3, + "settle_before": 3.2, + "postcondition": 0.0, + "resolve": 102.1, + "identity": 9.7, + "settle_after": 97.1, + "actuate": 56.5, + "other": 1.0 + } + }, + { + "step_id": "step_016", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 634, + 506 + ], + "confidence": 1.0, + "elapsed_ms": 198.61337495967746, + "structural_handle": { + "point": [ + 634, + 506 + ], + "confidence": 1.0, + "region": [ + 91, + 487, + 1087, + 38 + ], + "target_fingerprint": "4defe9257c37b76a9ae01535b4b13576760693fbdd80a028fdb763c2f0c5675e", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "pixel", + "coverage": 1.0, + "expected": "recorded identifier crop", + "observed": "live identifier crop matches after alignment (worst window 0.036)", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": { + "recorded_crop_sha256": "457eccee597076f6e0d2b6fdd6b1fdd148dfc0eb72501442413c2020efc4ce15", + "live_crop_sha256": "14a873e4bbcb5868c0ad4ca733fbbaf8beee79ab5958cf519c11a2a85115d2a5", + "recorded_crop_inventory_ref": "private/identity-crops/457eccee597076f6e0d2b6fdd6b1fdd148dfc0eb72501442413c2020efc4ce15.png", + "live_crop_inventory_ref": "private/identity-crops/14a873e4bbcb5868c0ad4ca733fbbaf8beee79ab5958cf519c11a2a85115d2a5.png", + "evaluator_contract_sha256": "277ca2432781bdf72113a5225ccd2954f214cfc31b18e2b19fdec02f01e5dce7" + }, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-b6ffe14c2bfc48f5b335735479d58d57", + "operation": "dom_click", + "native": false, + "target_fingerprint": "4defe9257c37b76a9ae01535b4b13576760693fbdd80a028fdb763c2f0c5675e", + "delivered_at": "2026-10-20T22:49:18.162501+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_016_before.png", + "after_png": "steps/step_016_after.png", + "elapsed_ms": 1223.049791995436, + "timings": { + "screenshot": 96.8, + "artifact_write": 25.1, + "settle_before": 3.7, + "postcondition": 112.9, + "resolve": 238.1, + "identity": 96.3, + "actuate": 169.0, + "settle_after": 463.8, + "other": 17.3 + } + }, + { + "step_id": "step_017", + "intent": "scroll by (0, 600)", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_017_before.png", + "after_png": "steps/step_017_after.png", + "elapsed_ms": 467.80895814299583, + "timings": { + "screenshot": 180.9, + "artifact_write": 1.7, + "settle_before": 3.7, + "postcondition": 0.0, + "resolve": 124.4, + "identity": 17.0, + "settle_after": 73.7, + "actuate": 65.4, + "other": 1.1 + } + }, + { + "step_id": "step_018", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 480, + 160 + ], + "confidence": 1.0, + "elapsed_ms": 54.964291863143444, + "structural_handle": { + "point": [ + 480, + 160 + ], + "confidence": 1.0, + "region": [ + 380, + 145, + 199, + 31 + ], + "target_fingerprint": "e8e69d042ef0eebb36cc0cd83873d95731851f5114112e443f4d508969f8b802", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"street\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-31b5eee77a8443e5975fcdd9f8b6dee3", + "operation": "dom_click", + "native": false, + "target_fingerprint": "e8e69d042ef0eebb36cc0cd83873d95731851f5114112e443f4d508969f8b802", + "delivered_at": "2026-10-20T22:49:25.259304+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_018_before.png", + "after_png": "steps/step_018_after.png", + "elapsed_ms": 625.4295422695577, + "timings": { + "screenshot": 102.5, + "artifact_write": 1.9, + "settle_before": 3.8, + "postcondition": 34.9, + "resolve": 106.2, + "identity": 93.7, + "actuate": 149.8, + "settle_after": 131.6, + "other": 1.1 + } + }, + { + "step_id": "step_020", + "intent": "type <street>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_020_before.png", + "after_png": "steps/step_020_after.png", + "elapsed_ms": 334.8535420373082, + "timings": { + "screenshot": 93.5, + "artifact_write": 1.2, + "settle_before": 3.6, + "postcondition": 29.8, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 132.8, + "actuate": 72.8, + "other": 1.2 + } + }, + { + "step_id": "step_021", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 445, + 197 + ], + "confidence": 1.0, + "elapsed_ms": 56.316334288567305, + "structural_handle": { + "point": [ + 445, + 197 + ], + "confidence": 1.0, + "region": [ + 380, + 182, + 129, + 31 + ], + "target_fingerprint": "e486be12631751cb6ce93d515fe85b8dfc0b254067e1df6bb03b39d56e932f71", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"city\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-df9239e02f5e480891e072fde5f9a929", + "operation": "dom_click", + "native": false, + "target_fingerprint": "e486be12631751cb6ce93d515fe85b8dfc0b254067e1df6bb03b39d56e932f71", + "delivered_at": "2026-10-20T22:49:32.592679+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_021_before.png", + "after_png": "steps/step_021_after.png", + "elapsed_ms": 599.7870829887688, + "timings": { + "screenshot": 97.0, + "artifact_write": 2.2, + "settle_before": 3.6, + "postcondition": 14.7, + "resolve": 107.2, + "identity": 98.2, + "actuate": 144.5, + "settle_after": 131.4, + "other": 1.0 + } + }, + { + "step_id": "step_023", + "intent": "type <city>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_023_before.png", + "after_png": "steps/step_023_after.png", + "elapsed_ms": 333.41254061087966, + "timings": { + "screenshot": 93.5, + "artifact_write": 1.4, + "settle_before": 3.7, + "postcondition": 29.1, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 134.6, + "actuate": 70.1, + "other": 1.0 + } + }, + { + "step_id": "step_024", + "intent": "click 'Jnassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1017, + 197 + ], + "confidence": 1.0, + "elapsed_ms": 55.24041736498475, + "structural_handle": { + "point": [ + 1017, + 197 + ], + "confidence": 1.0, + "region": [ + 919, + 182, + 197, + 31 + ], + "target_fingerprint": "740af1a0e989c988787b4eb894d0aa013760ef0fe73005eb7bcacec855a19296", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"state\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-2668d495b1c441cd8eb6f223ffa32ed1", + "operation": "dom_click", + "native": false, + "target_fingerprint": "740af1a0e989c988787b4eb894d0aa013760ef0fe73005eb7bcacec855a19296", + "delivered_at": "2026-10-20T22:49:40.709654+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_024_before.png", + "after_png": "steps/step_024_after.png", + "elapsed_ms": 602.6218747720122, + "timings": { + "screenshot": 101.6, + "artifact_write": 1.9, + "settle_before": 3.4, + "postcondition": 15.9, + "resolve": 111.0, + "identity": 90.2, + "actuate": 149.4, + "settle_after": 128.1, + "other": 1.2 + } + }, + { + "step_id": "step_025", + "intent": "type <state_label>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_025_before.png", + "after_png": "steps/step_025_after.png", + "elapsed_ms": 348.9741669036448, + "timings": { + "screenshot": 91.9, + "artifact_write": 1.2, + "settle_before": 3.9, + "postcondition": 29.1, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 127.9, + "actuate": 93.6, + "other": 1.3 + } + }, + { + "step_id": "step_027", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 420, + 236 + ], + "confidence": 1.0, + "elapsed_ms": 55.1467090845108, + "structural_handle": { + "point": [ + 420, + 236 + ], + "confidence": 1.0, + "region": [ + 380, + 221, + 80, + 31 + ], + "target_fingerprint": "515fe6cff6de5c4bac2ae0ae931a84c906a81409005f1aef87c572cbb0a908e8", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"postal_code\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-a8194d591019488b8d6ea651b63db9f7", + "operation": "dom_click", + "native": false, + "target_fingerprint": "515fe6cff6de5c4bac2ae0ae931a84c906a81409005f1aef87c572cbb0a908e8", + "delivered_at": "2026-10-20T22:49:49.641679+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_027_before.png", + "after_png": "steps/step_027_after.png", + "elapsed_ms": 574.8335001990199, + "timings": { + "screenshot": 88.7, + "artifact_write": 1.9, + "settle_before": 3.2, + "postcondition": 12.7, + "resolve": 110.0, + "identity": 90.2, + "actuate": 133.7, + "settle_after": 133.2, + "other": 1.1 + } + }, + { + "step_id": "step_029", + "intent": "type <postal_code>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_029_before.png", + "after_png": "steps/step_029_after.png", + "elapsed_ms": 463.2205408997834, + "timings": { + "screenshot": 110.4, + "artifact_write": 2.9, + "settle_before": 30.3, + "postcondition": 119.6, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 131.3, + "actuate": 67.6, + "other": 1.2 + } + }, + { + "step_id": "step_030", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 462, + 349 + ], + "confidence": 1.0, + "elapsed_ms": 55.23979105055332, + "structural_handle": { + "point": [ + 462, + 349 + ], + "confidence": 1.0, + "region": [ + 380, + 334, + 164, + 31 + ], + "target_fingerprint": "ccb8ca18259e2ca8920a8a78e326b9d1065f401746a0f5b2821cf280d830b34b", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"phone_home\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-33982a0ae5f344ab984fd465fe84b487", + "operation": "dom_click", + "native": false, + "target_fingerprint": "ccb8ca18259e2ca8920a8a78e326b9d1065f401746a0f5b2821cf280d830b34b", + "delivered_at": "2026-10-20T22:49:59.458120+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_030_before.png", + "after_png": "steps/step_030_after.png", + "elapsed_ms": 589.5981672219932, + "timings": { + "screenshot": 104.5, + "artifact_write": 2.1, + "settle_before": 3.4, + "postcondition": 15.9, + "resolve": 111.4, + "identity": 88.7, + "actuate": 133.3, + "settle_after": 129.2, + "other": 1.1 + } + }, + { + "step_id": "step_032", + "intent": "type <phone_home>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_032_before.png", + "after_png": "steps/step_032_after.png", + "elapsed_ms": 377.10520904511213, + "timings": { + "screenshot": 103.9, + "artifact_write": 1.2, + "settle_before": 30.0, + "postcondition": 36.3, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 133.8, + "actuate": 70.9, + "other": 1.0 + } + }, + { + "step_id": "step_033", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1036, + 384 + ], + "confidence": 1.0, + "elapsed_ms": 59.89766726270318, + "structural_handle": { + "point": [ + 1036, + 384 + ], + "confidence": 1.0, + "region": [ + 919, + 369, + 234, + 31 + ], + "target_fingerprint": "677df9ab7a51c7e380781bc96ff63a40b431e7d72b861a4122efd1ddbb3dd942", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"email\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-34088c3c8e2f47fcaf494bef009c5ec7", + "operation": "dom_click", + "native": false, + "target_fingerprint": "677df9ab7a51c7e380781bc96ff63a40b431e7d72b861a4122efd1ddbb3dd942", + "delivered_at": "2026-10-20T22:50:10.073983+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_033_before.png", + "after_png": "steps/step_033_after.png", + "elapsed_ms": 614.9592502042651, + "timings": { + "screenshot": 96.1, + "artifact_write": 2.3, + "settle_before": 3.9, + "postcondition": 15.1, + "resolve": 109.6, + "identity": 101.3, + "actuate": 155.0, + "settle_after": 130.3, + "other": 1.4 + } + }, + { + "step_id": "step_035", + "intent": "type <email>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_035_before.png", + "after_png": "steps/step_035_after.png", + "elapsed_ms": 330.52529115229845, + "timings": { + "screenshot": 87.7, + "artifact_write": 1.3, + "settle_before": 3.3, + "postcondition": 30.4, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 129.7, + "actuate": 76.9, + "other": 1.2 + } + }, + { + "step_id": "step_036", + "intent": "click 'Jnassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1017, + 236 + ], + "confidence": 1.0, + "elapsed_ms": 59.83166676014662, + "structural_handle": { + "point": [ + 1017, + 236 + ], + "confidence": 1.0, + "region": [ + 919, + 221, + 197, + 31 + ], + "target_fingerprint": "db2ca1c271ae8c99603bccaa56251354716d3eca2ed6dde8b59409cb6bdd7fa0", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"country_code\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-877dd3237a884d42970cd26f3f43fe49", + "operation": "dom_click", + "native": false, + "target_fingerprint": "db2ca1c271ae8c99603bccaa56251354716d3eca2ed6dde8b59409cb6bdd7fa0", + "delivered_at": "2026-10-20T22:50:21.440653+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_036_before.png", + "after_png": "steps/step_036_after.png", + "elapsed_ms": 628.8261660374701, + "timings": { + "screenshot": 91.1, + "artifact_write": 1.9, + "settle_before": 3.8, + "postcondition": 12.7, + "resolve": 120.4, + "identity": 102.2, + "actuate": 160.1, + "settle_after": 135.6, + "other": 1.0 + } + }, + { + "step_id": "step_037", + "intent": "type <country_code>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_037_before.png", + "after_png": "steps/step_037_after.png", + "elapsed_ms": 344.97245913371444, + "timings": { + "screenshot": 113.8, + "artifact_write": 1.2, + "settle_before": 3.5, + "postcondition": 29.4, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 110.0, + "actuate": 86.0, + "other": 1.1 + } + }, + { + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 285, + 774 + ], + "confidence": 1.0, + "elapsed_ms": 49.192207865417004, + "structural_handle": { + "point": [ + 285, + 774 + ], + "confidence": 1.0, + "region": [ + 189, + 755, + 191, + 39 + ], + "target_fingerprint": "f5e18238d4c02047e693f6cd07404622a42693151d1598374e8970d2147d0221", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"open_duplicate_check\",\"target_kind\":\"action\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-f51341ac92ac4f589de066b593170717", + "operation": "dom_click", + "native": false, + "target_fingerprint": "f5e18238d4c02047e693f6cd07404622a42693151d1598374e8970d2147d0221", + "delivered_at": "2026-10-20T22:50:33.673037+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_039_before.png", + "after_png": "steps/step_039_after.png", + "elapsed_ms": 1615.2939163148403, + "timings": { + "screenshot": 99.5, + "artifact_write": 2.0, + "settle_before": 3.9, + "postcondition": 58.5, + "resolve": 94.3, + "identity": 100.8, + "actuate": 170.3, + "settle_after": 583.9, + "ocr": 475.2, + "other": 26.8 + } + }, + { + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "ok": false, + "risk": "irreversible", + "risk_explanation": "operator-qualified override: irreversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 600, + 280 + ], + "confidence": 1.0, + "elapsed_ms": 56.525124702602625, + "structural_handle": { + "point": [ + 600, + 280 + ], + "confidence": 1.0, + "region": [ + 526, + 261, + 149, + 38 + ], + "target_fingerprint": "3f4fa55b5e5aa6745777d67dcd8eced2f4be0c5adc86593714ce6ea271eb50fc", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "mismatch", + "mode": "structured", + "coverage": 0.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Save new patient\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": true, + "effect_results": [], + "effect_evidence": [], + "failure_category": "governed_refusal", + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": false, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": { + "stage": "identity_verification", + "code": "identity_conflict", + "detector_input_sha256": "7da9a5d4f8671d05d194f8faad9695001da367e3a20a60767ac9b6636195087d" + }, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's — expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Save new patient\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}' (coverage 0.00) — refusing to act; run aborted", + "before_png": "steps/step_040_before.png", + "after_png": "steps/step_040_after.png", + "elapsed_ms": 188.42366663739085, + "timings": { + "screenshot": 97.1, + "artifact_write": 2.9, + "settle_before": 4.0, + "postcondition": 0.0, + "resolve": 56.5, + "identity": 12.1, + "other": 15.7 + } + } + ], + "success": false, + "terminal_outcome": null, + "visited_states": [], + "loop_iterations": [], + "program_transition_evidence": [], + "business_decision_evidence": [], + "program_exception_evidence": [], + "attended_program_transition_evidence": [], + "halt": { + "state_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "reason": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's — expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Save new patient\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}' (coverage 0.00) — refusing to act; run aborted", + "outcome": "halt", + "observed_texts": [ + "x", + "Calendar Finder Fle", + "demogra", + "Q", + "1-0of 0", + "Calendarx", + "Me", + "Preferred", + "Birth", + "External", + "Previous", + "Hits", + "Name", + "DOB", + "Sex", + "ID", + "Names", + "Address:", + "No matches were", + "City:", + "found.", + "Add", + "Postal Code:", + "County:", + "Save new patient", + "Cancel", + "Emergency", + "Home Phone", + "Mobile Phone", + "le.invalid", + "Trusted Emal", + "Additional Add", + "wInactive", + "NONE", + "Choices", + "Employer", + "Stats", + "Misc", + "Related", + "Search", + "Create New Patient" + ], + "completed_intents": [ + "click 'Unassigned'", + "type <title>", + "click 'First Name'", + "type <fname>", + "click 'Last Name'", + "type <lname>", + "click recorded visual target", + "type <DOB>", + "click 'Unassigned'", + "type <sex>", + "scroll by (0, 300)", + "click recorded visual target", + "scroll by (0, 600)", + "click recorded visual target", + "type <street>", + "click recorded visual target", + "type <city>", + "click 'Jnassigned'", + "type <state_label>", + "click recorded visual target", + "type <postal_code>", + "click recorded visual target", + "type <phone_home>", + "click recorded visual target", + "type <email>", + "click 'Jnassigned'", + "type <country_code>", + "click 'Create New Patient'" + ] + }, + "rung_counts": { + "structural": 14 + }, + "render_scale": null, + "heal_count": 0, + "model_calls": 0, + "external_network_calls": "none", + "est_model_cost_usd": 0.0, + "total_ms": 114207.88558293134, + "identity_applicable_steps": 15, + "identity_armed_steps": 15, + "identity_unarmed": [], + "screenshots_may_leave_box": false, + "approval": { + "schema_version": "openadapt.approval-mode-item/v1", + "mode": "problems_only", + "channel": "desktop_run_it_list_with_header", + "switch_id": "switch-lifecycle-proof-0c985b8bb0fd-1792536529", + "switch_record_sha256": "sha256:19e39821ab2810062d884a673f5af2b4cb333f5897880000ec3ddca1c8d86bcb", + "item_checks": [ + { + "code": "inputs_supplied", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "channel", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "inputs_strict", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "not_a_retry", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "record_key_not_recent", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "deployment_config", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "switch_lease", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "not_resumed", + "passed": true, + "detail": "ok", + "step_id": null + } + ], + "pre_checks": [], + "post_checks": [ + { + "code": "verified", + "passed": false, + "detail": "not_verified", + "step_id": null + }, + { + "code": "whole_run_clean", + "passed": true, + "detail": "ok", + "step_id": null + } + ], + "saves_without_person": 0, + "gated_step_id": null, + "decision": "stop_before_saving", + "decision_reason": "right_record", + "needs_person": true, + "counts_toward_problems": true, + "switch_off_reason": null, + "switch_log_recorded": true, + "approvals": [] + }, + "redactions": [ + { + "pointer": "/execution_entry_url", + "reason": "url_param:token_main" + } + ] +} \ No newline at end of file diff --git a/packages/flow/benchmark/lifecycle_proof/results/proof-15/continue/r8-priya-raman/report.json b/packages/flow/benchmark/lifecycle_proof/results/proof-15/continue/r8-priya-raman/report.json new file mode 100644 index 000000000..24c875c4b --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/proof-15/continue/r8-priya-raman/report.json @@ -0,0 +1,3266 @@ +{ + "workflow_name": "openemr-create-synthetic-patient", + "started_at": "2026-10-20T22:50:54.689656+00:00", + "execution_profile": "regulated", + "execution_outcome": "HALTED", + "production_eligible": false, + "execution_completed": false, + "outcome_envelope": { + "version": "openadapt.execution-outcome/v1", + "outcome": "HALTED", + "profile": "regulated", + "production_eligible": false, + "execution_completed": false, + "required_contracts": { + "authorization": 1, + "identity": 15, + "postcondition": 32, + "effect": 12 + }, + "passed_contracts": { + "authorization": 1, + "identity": 14, + "postcondition": 30, + "effect": 0 + }, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "postcondition_evidence": [ + { + "result_index": 0, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 0, + "step_contract_sha256": "229c3c9ec053ef29cf51bfea8e2b894f8bd0f5ac6ae8e86359ff4ac804a6e412", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "401187c13f64c38950e30ea4262ce2a935630e218bcd61a7d073cf991b7d9d52", + "verdict": "passed" + }, + { + "result_index": 0, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 0, + "step_contract_sha256": "229c3c9ec053ef29cf51bfea8e2b894f8bd0f5ac6ae8e86359ff4ac804a6e412", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "8c20f460859d7e96ddd1262caac7b0dcb62cf686efdee3f4e29fdd71c42596b7", + "verdict": "passed" + }, + { + "result_index": 1, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 1, + "step_contract_sha256": "ed6d8f4e51d357034dbb251bbbfb449f36db5616cb859e9fe77eade11e4c242f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "6d2bdc9553c6f5ceb6523f7ef6b422f7adf3c430a269ac860fe57d3424c57e5e", + "verdict": "passed" + }, + { + "result_index": 2, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 2, + "step_contract_sha256": "535b3af532c6b62630cb42d7ec12cf9a45067082a8e6c568568c9f1ea9294557", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "a3303142996bd058638ab541923a04b4fd4db7779b2a5cd1437c1b09f0f719c1", + "verdict": "passed" + }, + { + "result_index": 3, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 3, + "step_contract_sha256": "af6a582512adef1ab2655799bacb2f9c4f8d5c5d1fc093f8bbda3cf3993b13e3", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "d66343de1fb0f9486c8f490c22883a16d57fd0751c6a9af72ca033bd8226666e", + "verdict": "passed" + }, + { + "result_index": 4, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 4, + "step_contract_sha256": "db027061d3124e5b4bfb8d015a1d04a768ee71009aa12c2ca1ea395cee19c72c", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "d7676eca4e18055dccf69cfe02735b0f54f8fbb3b5adeeedbb5f77e724dcb405", + "verdict": "passed" + }, + { + "result_index": 5, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 5, + "step_contract_sha256": "0d1e7e53976a613a963b69d8659af906c19bb1f1e1f5e4faf98bd2b9c271e186", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "8cc322d346b34042845d05725697f3df24fcc7355a63368bc211e06afeaf04f1", + "verdict": "passed" + }, + { + "result_index": 6, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 6, + "step_contract_sha256": "10173be5ada082e37361f383f8c1cb702f6c8165fca5edd74cd06e225cf56d52", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "ba495991f7f4029c350243a6c4853dfa96a21f76478227ead0b58cd578d724d0", + "verdict": "passed" + }, + { + "result_index": 6, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 6, + "step_contract_sha256": "10173be5ada082e37361f383f8c1cb702f6c8165fca5edd74cd06e225cf56d52", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "33e2e8251b8960cc9d0dea8b0c610f66c8ab5532d4e9c610f826550d1969b319", + "verdict": "passed" + }, + { + "result_index": 7, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 7, + "step_contract_sha256": "7bdece9442af62928750cddf1b954dc0211e8137999c2dcb5123495557a64aff", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "21b21cc72a141d168d1f486ee9d5e686e9343d19479226fd0493c0e44acfb88f", + "verdict": "passed" + }, + { + "result_index": 8, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 8, + "step_contract_sha256": "924d89b47b94ae64b988b910c68fbe6afb3ae43cfcbd642271d83f6c8305bf58", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "c46e0fb995659cc26a2e96712dc2fe28e5855d930c2ef34a660c4a6f29a90ad4", + "verdict": "passed" + }, + { + "result_index": 9, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 9, + "step_contract_sha256": "210300a3b19d838675c64a43e28c5d05a65f6af0275a5c5cff2b81dd414a6ed1", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "6c79001d3f898490d8aaf4aa98e5009a3c3b35a0f3f00b52cd6588c3935ba634", + "verdict": "passed" + }, + { + "result_index": 11, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 11, + "step_contract_sha256": "f2f9caf11689c7abc85708df15b3d9c60d7907bc68262424d19d766bc5cb38bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "4dffb3e101368cd79a407a52df4ef3d4985827a932283d2d7a5bdbdf7b1a017a", + "verdict": "passed" + }, + { + "result_index": 11, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 11, + "step_contract_sha256": "f2f9caf11689c7abc85708df15b3d9c60d7907bc68262424d19d766bc5cb38bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "9a70e83e890372735f62c8c14072c5d5566e802712ca186eab31717fc09d5fb6", + "verdict": "passed" + }, + { + "result_index": 13, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 13, + "step_contract_sha256": "a1ec6bec55348170c3141f790e6d33909fc02034c50320f28a98afa025aa26bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "f4cdf9296fc00bafdca1f10cad96a713a1a77f13992fd8c8305ce33ac20725e6", + "verdict": "passed" + }, + { + "result_index": 14, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 14, + "step_contract_sha256": "38b8933e8bc3047d51fa72be99a9626f39910af3338152d64deff466e2381201", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "bcf795f882b3ea8db403894d208d48ca144950ddd28ef79ac99b0790d425cedf", + "verdict": "passed" + }, + { + "result_index": 15, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 15, + "step_contract_sha256": "314dfd0de9aeb5703e85cea70684f9e9ceded68be65bf724ce8c3e56baf000ff", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "1f34178539962ade7f7e3d3ea5542627f621ab125d433d667be815d366089958", + "verdict": "passed" + }, + { + "result_index": 16, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 16, + "step_contract_sha256": "2822b83d6e7e089b86920bbf4bb3b3bf62bd2594454242ba5ad76df41303aa00", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "82517d98410bde6259a7bc2b633a5efb475f2aaef11453ff7e58e9d89a4ca225", + "verdict": "passed" + }, + { + "result_index": 17, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 17, + "step_contract_sha256": "72ddbbc8bcee54e91b36253fa1b82c9a571a115ee086c31ad32982ae30dee59c", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "ff86f0b85d1718d49a97846817a769342e9113be9ea4297b9daaddb21688bdab", + "verdict": "passed" + }, + { + "result_index": 18, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 18, + "step_contract_sha256": "60f4dc2405e90e851af7a536a90c1e7551e66fa1f07e83002b690e6419ea2e68", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "c7730849ecdd8a488d8a3c19f19607f494f54b95fa4d17cc148fbae7b0ee3ea6", + "verdict": "passed" + }, + { + "result_index": 19, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 19, + "step_contract_sha256": "62c301c5e4731945d06e2fefce787cee0408990894a74bcde540841b96bda992", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "8d69a409f2da5411f6a1ffb89cbb6922ea4bd4e53cad88c07d91e2eb815bfbed", + "verdict": "passed" + }, + { + "result_index": 20, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 20, + "step_contract_sha256": "ec1b3c559fd1a1537e3041731aeedac080f3e53f7a0993099f27e83a4f4b9e8f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "36c6e797959d8ab804c4b41b750c0673063647cf6a1867bf7d9fbcfb82e35704", + "verdict": "passed" + }, + { + "result_index": 21, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 21, + "step_contract_sha256": "7586311fe4153a125c44cd9b9172e027a52a93df18f39907ace63d88920a3435", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "10e30a58326e2002cb8f578099f6e941c16a9c27325b9f9b81aa4876b4bc1e9c", + "verdict": "passed" + }, + { + "result_index": 22, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 22, + "step_contract_sha256": "5f8f28bb7f94a3fd80c95ac23ebc2144e5cb5fd558d83f1c7c3e7e54f8d5b989", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "0a0db9c0ae0c5ee7e7c832f7271d9fc56c20eca5233ac5adb9de41b3198a716f", + "verdict": "passed" + }, + { + "result_index": 23, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 23, + "step_contract_sha256": "d17ab75a87ee445f4616d61244bc33776696341c175099dda31e07f3524b18ce", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "7fe199b71066a71474ad1e5d16f5b3ba3591f67ded03ac5795aed0ea97606ec2", + "verdict": "passed" + }, + { + "result_index": 24, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 24, + "step_contract_sha256": "18959802e73a694c58d99b47a2bc3dba43ae047201f89d82776858349e7282cd", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "40a861211b6660e7cd12ae97a783522d35b7dac6e67b87a606b6c7631d967c03", + "verdict": "passed" + }, + { + "result_index": 25, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 25, + "step_contract_sha256": "b08f16f538d9547def1826013afffbb26478d83b2546d4ffa74e23a2860fc0e4", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "f1d929f76799835ffa2c67c42b7c0cb0fa02f6a5b960043e23ba455e75d4b61f", + "verdict": "passed" + }, + { + "result_index": 26, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 26, + "step_contract_sha256": "6115b2756620c9752efc3546a78ce18a4d5cecfca20beec7003a4529f9e2ae6f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "5bb10f94d82e26d0a55df0caa8140ab7f2a6bccdf74f10ed3fb1de08f946734b", + "verdict": "passed" + }, + { + "result_index": 27, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 27, + "step_contract_sha256": "84bb4b45b2b3c4739ff15089ac8b5d81eab784c8cb8515366b50672b26d94693", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "8afe0db69640d10aedd282fd0fb2932604f07364e1997040212f2ad66ae7b0c8", + "verdict": "passed" + }, + { + "result_index": 27, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 27, + "step_contract_sha256": "84bb4b45b2b3c4739ff15089ac8b5d81eab784c8cb8515366b50672b26d94693", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "7cb99120bcbba08a678c92d9ed380fecdf9ff40b208b603730b13fa1f088cebb", + "verdict": "passed" + }, + { + "result_index": 28, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 28, + "step_contract_sha256": "f1798bf8e82aa7907be82cb2276c5ab48f861213983faa26078b195f823c6a7e", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "5039384bb50435098e823e2de5fe3128495bf982d38319bb8552212679eeddc0", + "verdict": "unverifiable" + }, + { + "result_index": 28, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 28, + "step_contract_sha256": "f1798bf8e82aa7907be82cb2276c5ab48f861213983faa26078b195f823c6a7e", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "f377120063182c856629a042d08e439f20a26fd6e41041fbd102c93c96f5cd5e", + "verdict": "unverifiable" + } + ], + "evidence_classes": [ + "authorization", + "identity", + "postcondition" + ], + "model_calls": 0, + "external_network_calls": "none", + "compensation_actions": 0 + }, + "readback": null, + "transaction_outcome": "REJECTED_POLICY", + "transaction_billable": false, + "transaction_platform_fault": false, + "effect_journal": [ + { + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "consequential": true, + "intended_effect_contract_hashes": [], + "attempt_state": "delivered", + "observed_effect": "unknown", + "effect_verified": null, + "approved_unverified": false, + "verification_performed": false, + "observed_at": null, + "collateral_reconciliation_actions": 0 + }, + { + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "consequential": true, + "intended_effect_contract_hashes": [], + "attempt_state": "not_actuated", + "observed_effect": "unknown", + "effect_verified": null, + "approved_unverified": false, + "verification_performed": false, + "observed_at": null, + "collateral_reconciliation_actions": 0 + } + ], + "change_ledger": [ + { + "position": 28, + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "attempt_state": "delivered", + "status": "unknown", + "effects": [], + "may_need_undo": true, + "undo_id": null + } + ], + "idempotency_key": null, + "idempotent_replay": false, + "canceled": false, + "execution_target_kind": "web", + "recorded_surface": null, + "surface_override": false, + "execution_origin": "http://127.0.0.1:9401", + "execution_entry_url": "http://127.0.0.1:9401/interface/main/tabs/main.php?token_main=<redacted>", + "bundle_content_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "source_recording_sha256": "243fb7853b228a2e0fd93c51c1d43e7b84fff567f1aac917bdcd91a54d044894", + "parameter_schema_sha256": "2a19e2c3ea6e0644cfe9a842aea8c53e036d18bed254b100cf23c88ea090d603", + "governed_authorization_id": "2efb00b060af4583a12b7bc5c1e96bda", + "governed_approval_source": "local-cli-explicit-flag", + "governed_authorization_created_at": "2026-10-20T22:50:54.677327+00:00", + "governed_policy_name": "clinical-write", + "governed_policy_contract_sha256": "f35a6a94b3f2787165f071ce8571de07095169b9632d394e9df719b35da52c0f", + "governed_minimum_effect_tier": 1, + "governed_qualified_effect_requirements": [ + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 0, + "effect_contract_hash": "sha256:f64985856097097954250be6523fa260daf9fc5db495671c2548ead9a388577b", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 1, + "effect_contract_hash": "sha256:709f0a4ad813f47658bb934bd1ea8c4c4c20b9c108b13d0a316e193d03dbddb8", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 2, + "effect_contract_hash": "sha256:206d1d6fc27df6f24c02bb6b6f4419e0612e7935ec7e744fc8cc446f54558385", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 3, + "effect_contract_hash": "sha256:8f295459bdd868daf117ca9f77dd948cdc2c8c034a65184cb5418ccfab7f60e7", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 4, + "effect_contract_hash": "sha256:52c6884d06d82c4ccc14600150f2890bcd25d92cb7eb26bc53ef54033075ba3c", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 5, + "effect_contract_hash": "sha256:7732675a6e6123c0c3f51512496f695fa4ce503ab989993c520fb8a469bbdc3d", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 6, + "effect_contract_hash": "sha256:598fb97e12d3c0b537f0453e7fdaad453b969e249e888424e67fcd85a06741f0", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 7, + "effect_contract_hash": "sha256:ba109cf90077d7b20a37c2848fa7bee8ea0039747a5ae47465617b2ea1039a2b", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 8, + "effect_contract_hash": "sha256:f9365eda04aba1960fc26c35d252cdadafcec9ad9f9c433b626af6f137189707", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 9, + "effect_contract_hash": "sha256:b311b51ece1670a60f793b29aa3d28d40da196ffbcd26f2fdd620e380dedf97a", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 10, + "effect_contract_hash": "sha256:a33cf54165b96ce6d48014e6e68bac94cdc8f9c9176bae6f5c955123d20683c2", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 11, + "effect_contract_hash": "sha256:d2516eb0f6aa365b812e84fd754127d053d8e0b1a4b349a0b8ce71936bcec199", + "minimum_tier": 1 + } + ], + "governed_runtime_inputs_digest": "b7be13a56871ba7b35f321b2d9ddcc94f421e80d975ebb4c1b1aceb567121cfb", + "run_id_sha256": "7fc585b6a8bbd71e3d202147d9d0a2be6e3dd7e9c28f2cc00129c90945ad1469", + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_run_id_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_session_sha256": null, + "observed_environment_digest": null, + "observed_environment_binding_sha256": null, + "qualification_environment_observer_id": null, + "qualification_environment_observer_contract_sha256": null, + "governed_authorized_effect_contracts": {}, + "required_identity_step_ids": [ + "step_000", + "step_003", + "step_006", + "step_009", + "step_012", + "step_016", + "step_018", + "step_021", + "step_024", + "step_027", + "step_030", + "step_033", + "step_036", + "step_039", + "step_040" + ], + "approved_unverified_effect_step_ids": [], + "params": { + "title": "Ms.", + "fname": "Priya", + "lname": "Raman", + "DOB": "1975-10-14", + "sex": "Female", + "street": "15 STATION AVENUE", + "city": "EXAMPLETON", + "state_label": "Massachusetts", + "postal_code": "02139", + "phone_home": "555-0167", + "email": "priya.raman@example.invalid", + "country_code": "USA" + }, + "results": [ + { + "step_id": "step_000", + "intent": "click 'Unassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 434, + 282 + ], + "confidence": 1.0, + "elapsed_ms": 61.24320765957236, + "structural_handle": { + "point": [ + 434, + 282 + ], + "confidence": 1.0, + "region": [ + 380, + 267, + 108, + 31 + ], + "target_fingerprint": "1b8fb4a254ffb935dbed5ec2fd60ae5712d7c4dfd5e671c54acaffbe1330a8b2", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"title\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-6372bcf5e1174af4883dc966fb02ef40", + "operation": "dom_click", + "native": false, + "target_fingerprint": "1b8fb4a254ffb935dbed5ec2fd60ae5712d7c4dfd5e671c54acaffbe1330a8b2", + "delivered_at": "2026-10-20T22:50:55.520444+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_000_before.png", + "after_png": "steps/step_000_after.png", + "elapsed_ms": 706.048000138253, + "timings": { + "screenshot": 103.8, + "artifact_write": 2.3, + "settle_before": 31.5, + "postcondition": 21.7, + "resolve": 117.4, + "identity": 140.2, + "actuate": 158.0, + "settle_after": 128.6, + "other": 2.5 + } + }, + { + "step_id": "step_001", + "intent": "type <title>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_001_before.png", + "after_png": "steps/step_001_after.png", + "elapsed_ms": 337.0437496341765, + "timings": { + "screenshot": 98.2, + "artifact_write": 1.2, + "settle_before": 3.2, + "postcondition": 28.7, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 111.7, + "actuate": 93.0, + "other": 1.0 + } + }, + { + "step_id": "step_003", + "intent": "click 'First Name'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 445, + 317 + ], + "confidence": 1.0, + "elapsed_ms": 54.05741697177291, + "structural_handle": { + "point": [ + 445, + 317 + ], + "confidence": 1.0, + "region": [ + 380, + 302, + 129, + 31 + ], + "target_fingerprint": "292215e07a772a52b86d3402ac124d225e887fc9e68cdefee0354f4da0a2301a", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"fname\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-54afb8f5545647e7adb28ebfcf23864f", + "operation": "dom_click", + "native": false, + "target_fingerprint": "292215e07a772a52b86d3402ac124d225e887fc9e68cdefee0354f4da0a2301a", + "delivered_at": "2026-10-20T22:50:57.602021+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_003_before.png", + "after_png": "steps/step_003_after.png", + "elapsed_ms": 587.3344163410366, + "timings": { + "screenshot": 104.0, + "artifact_write": 2.4, + "settle_before": 3.1, + "postcondition": 12.3, + "resolve": 106.1, + "identity": 94.1, + "actuate": 131.7, + "settle_after": 132.5, + "other": 1.1 + } + }, + { + "step_id": "step_005", + "intent": "type <fname>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_005_before.png", + "after_png": "steps/step_005_after.png", + "elapsed_ms": 340.1216249912977, + "timings": { + "screenshot": 96.7, + "artifact_write": 2.6, + "settle_before": 4.7, + "postcondition": 29.9, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 133.4, + "actuate": 71.6, + "other": 1.2 + } + }, + { + "step_id": "step_006", + "intent": "click 'Last Name'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 671, + 317 + ], + "confidence": 1.0, + "elapsed_ms": 60.43545808643103, + "structural_handle": { + "point": [ + 671, + 317 + ], + "confidence": 1.0, + "region": [ + 589, + 302, + 164, + 31 + ], + "target_fingerprint": "a14b22fd158d62e94d1cd0ed578439aa7904fa9095565ff79f276a0a3f2875cb", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"lname\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-f56e6ece921e4f4dadad29a42a4729ef", + "operation": "dom_click", + "native": false, + "target_fingerprint": "a14b22fd158d62e94d1cd0ed578439aa7904fa9095565ff79f276a0a3f2875cb", + "delivered_at": "2026-10-20T22:51:00.518307+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_006_before.png", + "after_png": "steps/step_006_after.png", + "elapsed_ms": 601.5945412218571, + "timings": { + "screenshot": 101.8, + "artifact_write": 1.9, + "settle_before": 3.3, + "postcondition": 13.4, + "resolve": 113.3, + "identity": 110.4, + "actuate": 124.6, + "settle_after": 131.8, + "other": 1.1 + } + }, + { + "step_id": "step_008", + "intent": "type <lname>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_008_before.png", + "after_png": "steps/step_008_after.png", + "elapsed_ms": 337.0757498778403, + "timings": { + "screenshot": 96.3, + "artifact_write": 1.3, + "settle_before": 3.2, + "postcondition": 30.7, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 132.3, + "actuate": 72.2, + "other": 1.1 + } + }, + { + "step_id": "step_009", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 427, + 430 + ], + "confidence": 1.0, + "elapsed_ms": 54.23683300614357, + "structural_handle": { + "point": [ + 427, + 430 + ], + "confidence": 1.0, + "region": [ + 380, + 415, + 94, + 31 + ], + "target_fingerprint": "bcb57549752762b2ec82e41adcf154635696a76a9c2f1c5e93f0e55bed617364", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"DOB\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-402e24e1fdf14392885d9a599bb209e8", + "operation": "dom_click", + "native": false, + "target_fingerprint": "bcb57549752762b2ec82e41adcf154635696a76a9c2f1c5e93f0e55bed617364", + "delivered_at": "2026-10-20T22:51:04.235648+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_009_before.png", + "after_png": "steps/step_009_after.png", + "elapsed_ms": 1679.8627921380103, + "timings": { + "screenshot": 104.4, + "artifact_write": 2.3, + "settle_before": 30.2, + "postcondition": 45.5, + "resolve": 105.8, + "identity": 93.6, + "actuate": 133.7, + "settle_after": 230.5, + "ocr": 932.8, + "other": 1.1 + } + }, + { + "step_id": "step_011", + "intent": "type <DOB>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_011_before.png", + "after_png": "steps/step_011_after.png", + "elapsed_ms": 346.26108268275857, + "timings": { + "screenshot": 102.8, + "artifact_write": 1.6, + "settle_before": 3.5, + "postcondition": 32.3, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 130.7, + "actuate": 73.8, + "other": 1.6 + } + }, + { + "step_id": "step_012", + "intent": "click 'Unassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 973, + 430 + ], + "confidence": 1.0, + "elapsed_ms": 57.87720810621977, + "structural_handle": { + "point": [ + 973, + 430 + ], + "confidence": 1.0, + "region": [ + 919, + 415, + 108, + 31 + ], + "target_fingerprint": "8b837df4e3813c1537202f3bd75a236eceed78973c5a9ec11b709d19662de01f", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"sex\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-70fd921d4df847ef8c5a6c6318525dfc", + "operation": "dom_click", + "native": false, + "target_fingerprint": "8b837df4e3813c1537202f3bd75a236eceed78973c5a9ec11b709d19662de01f", + "delivered_at": "2026-10-20T22:51:09.802261+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_012_before.png", + "after_png": "steps/step_012_after.png", + "elapsed_ms": 596.4433746412396, + "timings": { + "screenshot": 96.8, + "artifact_write": 1.9, + "settle_before": 3.5, + "postcondition": 19.2, + "resolve": 108.2, + "identity": 94.5, + "actuate": 144.9, + "settle_after": 126.5, + "other": 1.0 + } + }, + { + "step_id": "step_013", + "intent": "type <sex>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_013_before.png", + "after_png": "steps/step_013_after.png", + "elapsed_ms": 330.13820787891746, + "timings": { + "screenshot": 102.1, + "artifact_write": 1.0, + "settle_before": 3.2, + "postcondition": 26.4, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 105.3, + "actuate": 90.9, + "other": 1.1 + } + }, + { + "step_id": "step_015", + "intent": "scroll by (0, 300)", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_015_before.png", + "after_png": "steps/step_015_after.png", + "elapsed_ms": 439.5797080360353, + "timings": { + "screenshot": 163.9, + "artifact_write": 1.6, + "settle_before": 3.1, + "postcondition": 0.0, + "resolve": 100.5, + "identity": 9.7, + "settle_after": 96.8, + "actuate": 62.9, + "other": 1.0 + } + }, + { + "step_id": "step_016", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 634, + 506 + ], + "confidence": 1.0, + "elapsed_ms": 34.33708427473903, + "structural_handle": { + "point": [ + 634, + 506 + ], + "confidence": 1.0, + "region": [ + 91, + 487, + 1087, + 38 + ], + "target_fingerprint": "a4e72e48e6da96c78bfabeb805ef7835b50cb843c20b1513f7879ca49f86fa09", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "pixel", + "coverage": 1.0, + "expected": "recorded identifier crop", + "observed": "live identifier crop matches after alignment (worst window 0.036)", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": { + "recorded_crop_sha256": "457eccee597076f6e0d2b6fdd6b1fdd148dfc0eb72501442413c2020efc4ce15", + "live_crop_sha256": "14a873e4bbcb5868c0ad4ca733fbbaf8beee79ab5958cf519c11a2a85115d2a5", + "recorded_crop_inventory_ref": "private/identity-crops/457eccee597076f6e0d2b6fdd6b1fdd148dfc0eb72501442413c2020efc4ce15.png", + "live_crop_inventory_ref": "private/identity-crops/14a873e4bbcb5868c0ad4ca733fbbaf8beee79ab5958cf519c11a2a85115d2a5.png", + "evaluator_contract_sha256": "277ca2432781bdf72113a5225ccd2954f214cfc31b18e2b19fdec02f01e5dce7" + }, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-18d86607b898443297a364035d2fecc8", + "operation": "dom_click", + "native": false, + "target_fingerprint": "a4e72e48e6da96c78bfabeb805ef7835b50cb843c20b1513f7879ca49f86fa09", + "delivered_at": "2026-10-20T22:51:17.937265+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_016_before.png", + "after_png": "steps/step_016_after.png", + "elapsed_ms": 1019.7950419969857, + "timings": { + "screenshot": 85.5, + "artifact_write": 2.3, + "settle_before": 3.5, + "postcondition": 106.2, + "resolve": 67.5, + "identity": 90.1, + "actuate": 168.8, + "settle_after": 485.8, + "other": 10.1 + } + }, + { + "step_id": "step_017", + "intent": "scroll by (0, 600)", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_017_before.png", + "after_png": "steps/step_017_after.png", + "elapsed_ms": 496.1461666971445, + "timings": { + "screenshot": 173.8, + "artifact_write": 1.1, + "settle_before": 3.5, + "postcondition": 0.0, + "resolve": 137.4, + "identity": 17.2, + "settle_after": 95.4, + "actuate": 66.6, + "other": 1.2 + } + }, + { + "step_id": "step_018", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 480, + 160 + ], + "confidence": 1.0, + "elapsed_ms": 60.895499773323536, + "structural_handle": { + "point": [ + 480, + 160 + ], + "confidence": 1.0, + "region": [ + 380, + 145, + 199, + 31 + ], + "target_fingerprint": "1f1695af1a905767917bc4c1afb079212759a66f940e3bf87d9e1d286ceadff5", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"street\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-ccd698e25cab4d00ac4f7685e2c45812", + "operation": "dom_click", + "native": false, + "target_fingerprint": "1f1695af1a905767917bc4c1afb079212759a66f940e3bf87d9e1d286ceadff5", + "delivered_at": "2026-10-20T22:51:24.934737+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_018_before.png", + "after_png": "steps/step_018_after.png", + "elapsed_ms": 638.8671253807843, + "timings": { + "screenshot": 99.3, + "artifact_write": 2.1, + "settle_before": 3.8, + "postcondition": 35.2, + "resolve": 126.3, + "identity": 96.0, + "actuate": 142.1, + "settle_after": 131.2, + "other": 3.1 + } + }, + { + "step_id": "step_020", + "intent": "type <street>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_020_before.png", + "after_png": "steps/step_020_after.png", + "elapsed_ms": 342.5347078591585, + "timings": { + "screenshot": 106.0, + "artifact_write": 1.3, + "settle_before": 3.9, + "postcondition": 29.5, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 127.2, + "actuate": 73.6, + "other": 1.1 + } + }, + { + "step_id": "step_021", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 445, + 197 + ], + "confidence": 1.0, + "elapsed_ms": 56.36037513613701, + "structural_handle": { + "point": [ + 445, + 197 + ], + "confidence": 1.0, + "region": [ + 380, + 182, + 129, + 31 + ], + "target_fingerprint": "156057d723cccfb8c1b634452468966569f7c08ab4fafddae3440f0382ca344a", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"city\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-30aaafa37fc54458b348390db64574f0", + "operation": "dom_click", + "native": false, + "target_fingerprint": "156057d723cccfb8c1b634452468966569f7c08ab4fafddae3440f0382ca344a", + "delivered_at": "2026-10-20T22:51:32.283321+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_021_before.png", + "after_png": "steps/step_021_after.png", + "elapsed_ms": 609.6726669929922, + "timings": { + "screenshot": 96.7, + "artifact_write": 2.5, + "settle_before": 4.0, + "postcondition": 13.8, + "resolve": 107.2, + "identity": 99.5, + "actuate": 157.4, + "settle_after": 127.4, + "other": 1.1 + } + }, + { + "step_id": "step_023", + "intent": "type <city>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_023_before.png", + "after_png": "steps/step_023_after.png", + "elapsed_ms": 368.0497920140624, + "timings": { + "screenshot": 92.9, + "artifact_write": 1.2, + "settle_before": 3.5, + "postcondition": 63.7, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 132.7, + "actuate": 72.9, + "other": 1.1 + } + }, + { + "step_id": "step_024", + "intent": "click 'Jnassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1017, + 197 + ], + "confidence": 1.0, + "elapsed_ms": 57.07316705957055, + "structural_handle": { + "point": [ + 1017, + 197 + ], + "confidence": 1.0, + "region": [ + 919, + 182, + 197, + 31 + ], + "target_fingerprint": "bae8984896b213061f64ace38261b4fc71d345ec934911fad5ec2fe9bfc80557", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"state\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-0849c23fe04844dab5f7b6bc19fe4db6", + "operation": "dom_click", + "native": false, + "target_fingerprint": "bae8984896b213061f64ace38261b4fc71d345ec934911fad5ec2fe9bfc80557", + "delivered_at": "2026-10-20T22:51:40.718510+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_024_before.png", + "after_png": "steps/step_024_after.png", + "elapsed_ms": 639.462792314589, + "timings": { + "screenshot": 100.1, + "artifact_write": 1.8, + "settle_before": 3.4, + "postcondition": 18.0, + "resolve": 114.3, + "identity": 106.6, + "actuate": 161.6, + "settle_after": 131.2, + "other": 2.5 + } + }, + { + "step_id": "step_025", + "intent": "type <state_label>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_025_before.png", + "after_png": "steps/step_025_after.png", + "elapsed_ms": 327.46054232120514, + "timings": { + "screenshot": 88.1, + "artifact_write": 1.1, + "settle_before": 3.5, + "postcondition": 26.6, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 108.5, + "actuate": 98.5, + "other": 1.1 + } + }, + { + "step_id": "step_027", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 420, + 236 + ], + "confidence": 1.0, + "elapsed_ms": 56.573042180389166, + "structural_handle": { + "point": [ + 420, + 236 + ], + "confidence": 1.0, + "region": [ + 380, + 221, + 80, + 31 + ], + "target_fingerprint": "748a5eeeab018b05ebf0bdd5baed1d2f6099bd13defbb9d351d6af957acbfe8f", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"postal_code\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-5f8e36871c854bcf9a549280982a8ac8", + "operation": "dom_click", + "native": false, + "target_fingerprint": "748a5eeeab018b05ebf0bdd5baed1d2f6099bd13defbb9d351d6af957acbfe8f", + "delivered_at": "2026-10-20T22:51:49.800270+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_027_before.png", + "after_png": "steps/step_027_after.png", + "elapsed_ms": 603.4032087773085, + "timings": { + "screenshot": 102.6, + "artifact_write": 2.2, + "settle_before": 4.1, + "postcondition": 12.0, + "resolve": 109.6, + "identity": 92.6, + "actuate": 146.9, + "settle_after": 131.9, + "other": 1.5 + } + }, + { + "step_id": "step_029", + "intent": "type <postal_code>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_029_before.png", + "after_png": "steps/step_029_after.png", + "elapsed_ms": 384.48416674509645, + "timings": { + "screenshot": 97.2, + "artifact_write": 1.3, + "settle_before": 51.2, + "postcondition": 35.6, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 127.4, + "actuate": 70.8, + "other": 1.0 + } + }, + { + "step_id": "step_030", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 462, + 349 + ], + "confidence": 1.0, + "elapsed_ms": 56.74120783805847, + "structural_handle": { + "point": [ + 462, + 349 + ], + "confidence": 1.0, + "region": [ + 380, + 334, + 164, + 31 + ], + "target_fingerprint": "be4d841c78d4b678a9a1a1cbc6274301c3ae3aba11059716f896b7202c655e78", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"phone_home\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-bc804afea001442588e127d7d1f7dd6e", + "operation": "dom_click", + "native": false, + "target_fingerprint": "be4d841c78d4b678a9a1a1cbc6274301c3ae3aba11059716f896b7202c655e78", + "delivered_at": "2026-10-20T22:51:59.699628+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_030_before.png", + "after_png": "steps/step_030_after.png", + "elapsed_ms": 577.2622087970376, + "timings": { + "screenshot": 83.8, + "artifact_write": 1.8, + "settle_before": 3.4, + "postcondition": 13.9, + "resolve": 108.5, + "identity": 93.9, + "actuate": 146.8, + "settle_after": 124.0, + "other": 1.1 + } + }, + { + "step_id": "step_032", + "intent": "type <phone_home>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_032_before.png", + "after_png": "steps/step_032_after.png", + "elapsed_ms": 379.8830001614988, + "timings": { + "screenshot": 113.0, + "artifact_write": 1.5, + "settle_before": 30.6, + "postcondition": 34.7, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 123.5, + "actuate": 75.4, + "other": 1.1 + } + }, + { + "step_id": "step_033", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1036, + 384 + ], + "confidence": 1.0, + "elapsed_ms": 61.25270761549473, + "structural_handle": { + "point": [ + 1036, + 384 + ], + "confidence": 1.0, + "region": [ + 919, + 369, + 234, + 31 + ], + "target_fingerprint": "dac89196b910edd05002dfa13ee04f0ed37073925eb1f93d69c9e97217b36599", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"email\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-bbecdd5d0b064c0fa9752d4276bbcf69", + "operation": "dom_click", + "native": false, + "target_fingerprint": "dac89196b910edd05002dfa13ee04f0ed37073925eb1f93d69c9e97217b36599", + "delivered_at": "2026-10-20T22:52:10.216894+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_033_before.png", + "after_png": "steps/step_033_after.png", + "elapsed_ms": 627.172667067498, + "timings": { + "screenshot": 92.2, + "artifact_write": 1.9, + "settle_before": 4.0, + "postcondition": 14.8, + "resolve": 119.3, + "identity": 109.8, + "actuate": 154.2, + "settle_after": 129.8, + "other": 1.2 + } + }, + { + "step_id": "step_035", + "intent": "type <email>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_035_before.png", + "after_png": "steps/step_035_after.png", + "elapsed_ms": 313.40637477114797, + "timings": { + "screenshot": 94.9, + "artifact_write": 1.3, + "settle_before": 3.6, + "postcondition": 28.8, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 107.5, + "actuate": 76.3, + "other": 1.1 + } + }, + { + "step_id": "step_036", + "intent": "click 'Jnassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1017, + 236 + ], + "confidence": 1.0, + "elapsed_ms": 57.13970819488168, + "structural_handle": { + "point": [ + 1017, + 236 + ], + "confidence": 1.0, + "region": [ + 919, + 221, + 197, + 31 + ], + "target_fingerprint": "ab0d13a37990b192285d47f8e09a8b84849afcc92c1096cb115baff733ef918d", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"country_code\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-92247d741b9a4ab29147c69dfc840e28", + "operation": "dom_click", + "native": false, + "target_fingerprint": "ab0d13a37990b192285d47f8e09a8b84849afcc92c1096cb115baff733ef918d", + "delivered_at": "2026-10-20T22:52:21.450338+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_036_before.png", + "after_png": "steps/step_036_after.png", + "elapsed_ms": 604.6675411053002, + "timings": { + "screenshot": 100.0, + "artifact_write": 2.0, + "settle_before": 3.5, + "postcondition": 13.3, + "resolve": 115.5, + "identity": 86.4, + "actuate": 149.1, + "settle_after": 133.7, + "other": 1.1 + } + }, + { + "step_id": "step_037", + "intent": "type <country_code>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_037_before.png", + "after_png": "steps/step_037_after.png", + "elapsed_ms": 304.042040836066, + "timings": { + "screenshot": 82.1, + "artifact_write": 1.1, + "settle_before": 3.3, + "postcondition": 26.5, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 105.6, + "actuate": 84.3, + "other": 1.1 + } + }, + { + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 285, + 774 + ], + "confidence": 1.0, + "elapsed_ms": 52.89858300238848, + "structural_handle": { + "point": [ + 285, + 774 + ], + "confidence": 1.0, + "region": [ + 189, + 755, + 191, + 39 + ], + "target_fingerprint": "d23b4c94eb46e2f135e467a7bc67a4ea22259fd292a28cd9c88c1a6c603e0aae", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"open_duplicate_check\",\"target_kind\":\"action\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-21efd640139c43dd844907e66e1c6863", + "operation": "dom_click", + "native": false, + "target_fingerprint": "d23b4c94eb46e2f135e467a7bc67a4ea22259fd292a28cd9c88c1a6c603e0aae", + "delivered_at": "2026-10-20T22:52:33.433050+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_039_before.png", + "after_png": "steps/step_039_after.png", + "elapsed_ms": 1598.3034172095358, + "timings": { + "screenshot": 93.0, + "artifact_write": 2.0, + "settle_before": 4.1, + "postcondition": 62.2, + "resolve": 99.2, + "identity": 99.8, + "actuate": 168.6, + "settle_after": 583.5, + "ocr": 459.7, + "other": 26.1 + } + }, + { + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "ok": false, + "risk": "irreversible", + "risk_explanation": "operator-qualified override: irreversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 600, + 280 + ], + "confidence": 1.0, + "elapsed_ms": 50.74875010177493, + "structural_handle": { + "point": [ + 600, + 280 + ], + "confidence": 1.0, + "region": [ + 526, + 261, + 149, + 38 + ], + "target_fingerprint": "5e70607cfd19591da29c99477dee123a202096271d812832a19d4852ada6258d", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "mismatch", + "mode": "structured", + "coverage": 0.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Save new patient\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": true, + "effect_results": [], + "effect_evidence": [], + "failure_category": "governed_refusal", + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": false, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": { + "stage": "identity_verification", + "code": "identity_conflict", + "detector_input_sha256": "b0a126d2aadc00023d12f7c0034212b213480ef75ccc7b06ab03b307a44cfc58" + }, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's — expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Save new patient\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}' (coverage 0.00) — refusing to act; run aborted", + "before_png": "steps/step_040_before.png", + "after_png": "steps/step_040_after.png", + "elapsed_ms": 175.36058276891708, + "timings": { + "screenshot": 94.1, + "artifact_write": 1.5, + "settle_before": 3.4, + "postcondition": 0.0, + "resolve": 50.8, + "identity": 10.4, + "other": 15.1 + } + } + ], + "success": false, + "terminal_outcome": null, + "visited_states": [], + "loop_iterations": [], + "program_transition_evidence": [], + "business_decision_evidence": [], + "program_exception_evidence": [], + "attended_program_transition_evidence": [], + "halt": { + "state_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "reason": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's — expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Save new patient\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}' (coverage 0.00) — refusing to act; run aborted", + "outcome": "halt", + "observed_texts": [ + "x", + "Calendar Finder Fle", + "demogra", + "Q", + "1-0of 0", + "Calendarx", + "Me", + "Preferred", + "Birth", + "External", + "Previous", + "Hits", + "Name", + "DOB", + "Sex", + "ID", + "Names", + "Address:", + "No matches were", + "City:", + "found.", + "Add", + "Postal Code:", + "County:", + "Save new patient", + "Cancel", + "Emergency", + "Home Phone", + "Mobile Phone", + "nvalid", + "Trusted Emal", + "Additional Add", + "wInactive", + "NONE", + "Choices", + "Employer", + "Stats", + "Misc", + "Related", + "Search", + "Create New Patient" + ], + "completed_intents": [ + "click 'Unassigned'", + "type <title>", + "click 'First Name'", + "type <fname>", + "click 'Last Name'", + "type <lname>", + "click recorded visual target", + "type <DOB>", + "click 'Unassigned'", + "type <sex>", + "scroll by (0, 300)", + "click recorded visual target", + "scroll by (0, 600)", + "click recorded visual target", + "type <street>", + "click recorded visual target", + "type <city>", + "click 'Jnassigned'", + "type <state_label>", + "click recorded visual target", + "type <postal_code>", + "click recorded visual target", + "type <phone_home>", + "click recorded visual target", + "type <email>", + "click 'Jnassigned'", + "type <country_code>", + "click 'Create New Patient'" + ] + }, + "rung_counts": { + "structural": 14 + }, + "render_scale": null, + "heal_count": 0, + "model_calls": 0, + "external_network_calls": "none", + "est_model_cost_usd": 0.0, + "total_ms": 113661.45537467673, + "identity_applicable_steps": 15, + "identity_armed_steps": 15, + "identity_unarmed": [], + "screenshots_may_leave_box": false, + "approval": { + "schema_version": "openadapt.approval-mode-item/v1", + "mode": "problems_only", + "channel": "desktop_run_it_list_with_header", + "switch_id": "switch-lifecycle-proof-0c985b8bb0fd-1792536529", + "switch_record_sha256": "sha256:19e39821ab2810062d884a673f5af2b4cb333f5897880000ec3ddca1c8d86bcb", + "item_checks": [ + { + "code": "inputs_supplied", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "channel", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "inputs_strict", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "not_a_retry", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "record_key_not_recent", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "deployment_config", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "switch_lease", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "not_resumed", + "passed": true, + "detail": "ok", + "step_id": null + } + ], + "pre_checks": [], + "post_checks": [ + { + "code": "verified", + "passed": false, + "detail": "not_verified", + "step_id": null + }, + { + "code": "whole_run_clean", + "passed": true, + "detail": "ok", + "step_id": null + } + ], + "saves_without_person": 0, + "gated_step_id": null, + "decision": "stop_before_saving", + "decision_reason": "right_record", + "needs_person": true, + "counts_toward_problems": true, + "switch_off_reason": null, + "switch_log_recorded": true, + "approvals": [] + }, + "redactions": [ + { + "pointer": "/execution_entry_url", + "reason": "url_param:token_main" + } + ] +} \ No newline at end of file diff --git a/packages/flow/benchmark/lifecycle_proof/results/proof-15/crash/r4-theo-lindqvist/report.json b/packages/flow/benchmark/lifecycle_proof/results/proof-15/crash/r4-theo-lindqvist/report.json new file mode 100644 index 000000000..0718ee384 --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/proof-15/crash/r4-theo-lindqvist/report.json @@ -0,0 +1,3065 @@ +{ + "workflow_name": "openemr-create-synthetic-patient", + "started_at": "2026-10-20T22:44:10.328177+00:00", + "execution_profile": "regulated", + "execution_outcome": "VERIFIED", + "production_eligible": true, + "execution_completed": true, + "outcome_envelope": { + "version": "openadapt.execution-outcome/v1", + "outcome": "VERIFIED", + "profile": "regulated", + "production_eligible": true, + "execution_completed": true, + "required_contracts": { + "authorization": 1, + "identity": 15, + "postcondition": 32, + "effect": 12 + }, + "passed_contracts": { + "authorization": 1, + "identity": 15, + "postcondition": 32, + "effect": 12 + }, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "postcondition_evidence": [ + { + "result_index": 0, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 0, + "step_contract_sha256": "229c3c9ec053ef29cf51bfea8e2b894f8bd0f5ac6ae8e86359ff4ac804a6e412", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "401187c13f64c38950e30ea4262ce2a935630e218bcd61a7d073cf991b7d9d52", + "verdict": "passed" + }, + { + "result_index": 0, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 0, + "step_contract_sha256": "229c3c9ec053ef29cf51bfea8e2b894f8bd0f5ac6ae8e86359ff4ac804a6e412", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "8c20f460859d7e96ddd1262caac7b0dcb62cf686efdee3f4e29fdd71c42596b7", + "verdict": "passed" + }, + { + "result_index": 1, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 1, + "step_contract_sha256": "ed6d8f4e51d357034dbb251bbbfb449f36db5616cb859e9fe77eade11e4c242f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "6d2bdc9553c6f5ceb6523f7ef6b422f7adf3c430a269ac860fe57d3424c57e5e", + "verdict": "passed" + }, + { + "result_index": 2, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 2, + "step_contract_sha256": "535b3af532c6b62630cb42d7ec12cf9a45067082a8e6c568568c9f1ea9294557", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "a3303142996bd058638ab541923a04b4fd4db7779b2a5cd1437c1b09f0f719c1", + "verdict": "passed" + }, + { + "result_index": 3, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 3, + "step_contract_sha256": "af6a582512adef1ab2655799bacb2f9c4f8d5c5d1fc093f8bbda3cf3993b13e3", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "d66343de1fb0f9486c8f490c22883a16d57fd0751c6a9af72ca033bd8226666e", + "verdict": "passed" + }, + { + "result_index": 4, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 4, + "step_contract_sha256": "db027061d3124e5b4bfb8d015a1d04a768ee71009aa12c2ca1ea395cee19c72c", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "d7676eca4e18055dccf69cfe02735b0f54f8fbb3b5adeeedbb5f77e724dcb405", + "verdict": "passed" + }, + { + "result_index": 5, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 5, + "step_contract_sha256": "0d1e7e53976a613a963b69d8659af906c19bb1f1e1f5e4faf98bd2b9c271e186", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "8cc322d346b34042845d05725697f3df24fcc7355a63368bc211e06afeaf04f1", + "verdict": "passed" + }, + { + "result_index": 6, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 6, + "step_contract_sha256": "10173be5ada082e37361f383f8c1cb702f6c8165fca5edd74cd06e225cf56d52", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "ba495991f7f4029c350243a6c4853dfa96a21f76478227ead0b58cd578d724d0", + "verdict": "passed" + }, + { + "result_index": 6, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 6, + "step_contract_sha256": "10173be5ada082e37361f383f8c1cb702f6c8165fca5edd74cd06e225cf56d52", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "33e2e8251b8960cc9d0dea8b0c610f66c8ab5532d4e9c610f826550d1969b319", + "verdict": "passed" + }, + { + "result_index": 7, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 7, + "step_contract_sha256": "7bdece9442af62928750cddf1b954dc0211e8137999c2dcb5123495557a64aff", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "21b21cc72a141d168d1f486ee9d5e686e9343d19479226fd0493c0e44acfb88f", + "verdict": "passed" + }, + { + "result_index": 8, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 8, + "step_contract_sha256": "924d89b47b94ae64b988b910c68fbe6afb3ae43cfcbd642271d83f6c8305bf58", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "c46e0fb995659cc26a2e96712dc2fe28e5855d930c2ef34a660c4a6f29a90ad4", + "verdict": "passed" + }, + { + "result_index": 9, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 9, + "step_contract_sha256": "210300a3b19d838675c64a43e28c5d05a65f6af0275a5c5cff2b81dd414a6ed1", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "6c79001d3f898490d8aaf4aa98e5009a3c3b35a0f3f00b52cd6588c3935ba634", + "verdict": "passed" + }, + { + "result_index": 11, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 11, + "step_contract_sha256": "f2f9caf11689c7abc85708df15b3d9c60d7907bc68262424d19d766bc5cb38bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "4dffb3e101368cd79a407a52df4ef3d4985827a932283d2d7a5bdbdf7b1a017a", + "verdict": "passed" + }, + { + "result_index": 11, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 11, + "step_contract_sha256": "f2f9caf11689c7abc85708df15b3d9c60d7907bc68262424d19d766bc5cb38bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "9a70e83e890372735f62c8c14072c5d5566e802712ca186eab31717fc09d5fb6", + "verdict": "passed" + }, + { + "result_index": 13, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 13, + "step_contract_sha256": "a1ec6bec55348170c3141f790e6d33909fc02034c50320f28a98afa025aa26bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "f4cdf9296fc00bafdca1f10cad96a713a1a77f13992fd8c8305ce33ac20725e6", + "verdict": "passed" + }, + { + "result_index": 14, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 14, + "step_contract_sha256": "38b8933e8bc3047d51fa72be99a9626f39910af3338152d64deff466e2381201", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "bcf795f882b3ea8db403894d208d48ca144950ddd28ef79ac99b0790d425cedf", + "verdict": "passed" + }, + { + "result_index": 15, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 15, + "step_contract_sha256": "314dfd0de9aeb5703e85cea70684f9e9ceded68be65bf724ce8c3e56baf000ff", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "1f34178539962ade7f7e3d3ea5542627f621ab125d433d667be815d366089958", + "verdict": "passed" + }, + { + "result_index": 16, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 16, + "step_contract_sha256": "2822b83d6e7e089b86920bbf4bb3b3bf62bd2594454242ba5ad76df41303aa00", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "82517d98410bde6259a7bc2b633a5efb475f2aaef11453ff7e58e9d89a4ca225", + "verdict": "passed" + }, + { + "result_index": 17, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 17, + "step_contract_sha256": "72ddbbc8bcee54e91b36253fa1b82c9a571a115ee086c31ad32982ae30dee59c", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "ff86f0b85d1718d49a97846817a769342e9113be9ea4297b9daaddb21688bdab", + "verdict": "passed" + }, + { + "result_index": 18, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 18, + "step_contract_sha256": "60f4dc2405e90e851af7a536a90c1e7551e66fa1f07e83002b690e6419ea2e68", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "c7730849ecdd8a488d8a3c19f19607f494f54b95fa4d17cc148fbae7b0ee3ea6", + "verdict": "passed" + }, + { + "result_index": 19, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 19, + "step_contract_sha256": "62c301c5e4731945d06e2fefce787cee0408990894a74bcde540841b96bda992", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "8d69a409f2da5411f6a1ffb89cbb6922ea4bd4e53cad88c07d91e2eb815bfbed", + "verdict": "passed" + }, + { + "result_index": 20, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 20, + "step_contract_sha256": "ec1b3c559fd1a1537e3041731aeedac080f3e53f7a0993099f27e83a4f4b9e8f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "36c6e797959d8ab804c4b41b750c0673063647cf6a1867bf7d9fbcfb82e35704", + "verdict": "passed" + }, + { + "result_index": 21, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 21, + "step_contract_sha256": "7586311fe4153a125c44cd9b9172e027a52a93df18f39907ace63d88920a3435", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "10e30a58326e2002cb8f578099f6e941c16a9c27325b9f9b81aa4876b4bc1e9c", + "verdict": "passed" + }, + { + "result_index": 22, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 22, + "step_contract_sha256": "5f8f28bb7f94a3fd80c95ac23ebc2144e5cb5fd558d83f1c7c3e7e54f8d5b989", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "0a0db9c0ae0c5ee7e7c832f7271d9fc56c20eca5233ac5adb9de41b3198a716f", + "verdict": "passed" + }, + { + "result_index": 23, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 23, + "step_contract_sha256": "d17ab75a87ee445f4616d61244bc33776696341c175099dda31e07f3524b18ce", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "7fe199b71066a71474ad1e5d16f5b3ba3591f67ded03ac5795aed0ea97606ec2", + "verdict": "passed" + }, + { + "result_index": 24, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 24, + "step_contract_sha256": "18959802e73a694c58d99b47a2bc3dba43ae047201f89d82776858349e7282cd", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "40a861211b6660e7cd12ae97a783522d35b7dac6e67b87a606b6c7631d967c03", + "verdict": "passed" + }, + { + "result_index": 25, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 25, + "step_contract_sha256": "b08f16f538d9547def1826013afffbb26478d83b2546d4ffa74e23a2860fc0e4", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "f1d929f76799835ffa2c67c42b7c0cb0fa02f6a5b960043e23ba455e75d4b61f", + "verdict": "passed" + }, + { + "result_index": 26, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 26, + "step_contract_sha256": "6115b2756620c9752efc3546a78ce18a4d5cecfca20beec7003a4529f9e2ae6f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "5bb10f94d82e26d0a55df0caa8140ab7f2a6bccdf74f10ed3fb1de08f946734b", + "verdict": "passed" + }, + { + "result_index": 27, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 27, + "step_contract_sha256": "84bb4b45b2b3c4739ff15089ac8b5d81eab784c8cb8515366b50672b26d94693", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "8afe0db69640d10aedd282fd0fb2932604f07364e1997040212f2ad66ae7b0c8", + "verdict": "passed" + }, + { + "result_index": 27, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 27, + "step_contract_sha256": "84bb4b45b2b3c4739ff15089ac8b5d81eab784c8cb8515366b50672b26d94693", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "7cb99120bcbba08a678c92d9ed380fecdf9ff40b208b603730b13fa1f088cebb", + "verdict": "passed" + }, + { + "result_index": 28, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 28, + "step_contract_sha256": "f1798bf8e82aa7907be82cb2276c5ab48f861213983faa26078b195f823c6a7e", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "5039384bb50435098e823e2de5fe3128495bf982d38319bb8552212679eeddc0", + "verdict": "passed" + }, + { + "result_index": 28, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 28, + "step_contract_sha256": "f1798bf8e82aa7907be82cb2276c5ab48f861213983faa26078b195f823c6a7e", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "f377120063182c856629a042d08e439f20a26fd6e41041fbd102c93c96f5cd5e", + "verdict": "passed" + } + ], + "evidence_classes": [ + "authorization", + "effect_tier_1", + "identity", + "postcondition" + ], + "model_calls": 0, + "external_network_calls": "none", + "compensation_actions": 0 + }, + "readback": { + "minimum": "separate_session", + "checked_how": "system_of_record", + "label": "Checked in your system's records", + "below_minimum": false, + "saves": [ + { + "step_id": "step_040", + "checked_how": "system_of_record", + "flow_tier": 1 + } + ] + }, + "transaction_outcome": "VERIFIED", + "transaction_billable": true, + "transaction_platform_fault": false, + "effect_journal": [ + { + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "consequential": true, + "intended_effect_contract_hashes": [], + "attempt_state": "delivered", + "observed_effect": "unknown", + "effect_verified": null, + "approved_unverified": false, + "verification_performed": false, + "observed_at": null, + "collateral_reconciliation_actions": 0 + }, + { + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "consequential": true, + "intended_effect_contract_hashes": [ + "sha256:87ec6d9097d6289c5e91b5c843583b61444ec889ee1145063bf1da578e9043b2", + "sha256:3d3826c0d04a4193b9b27f4a933b8c09c66f8aaf8819e5c4e215966651057925", + "sha256:10f6c17e3b60609d4c3bbd31e48fa4323fe9e022d706319b80f2c67fa9e8bc8a", + "sha256:09b6ca711f20b9945e87dfaaacc563a38d85d669259ce73d27729d93c6dd2f3d", + "sha256:4cbec588f3f843bbbcdb2c5312d70c40f981c6977cbe317a789b049257b50917", + "sha256:b2d796d63e535a6db130edeae9026776ba6f78fcff14172ee721de6a455c754f", + "sha256:8d71e3f608f119330286dc92fd1418187435e1b45fa7fa6d5f4414217ac6cbdd", + "sha256:b92356871e6706bf61bf7fba76ea43fbf12c45d12dd3cafabb8859ec31d69e72", + "sha256:f231f89bb4b3254efe14aa646ab0a23aba69de439998e1c8e7cb0135f09d1c7d", + "sha256:39e58667c20cc0e582ef846ad89b8be93364aeaf640d7dea223b0d50afd5a325", + "sha256:5b6e3341fea0361b793913cbfb797c75bfa620b79db269d6c67dd208d5555c70", + "sha256:30a8c712dabe33c2b223f68274b198f198533916b0abe9decd8d87d8ebcd02f3" + ], + "attempt_state": "delivered", + "observed_effect": "present", + "effect_verified": true, + "approved_unverified": false, + "verification_performed": true, + "observed_at": null, + "collateral_reconciliation_actions": 0 + } + ], + "change_ledger": [ + { + "position": 28, + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "attempt_state": "delivered", + "status": "unknown", + "effects": [], + "may_need_undo": true, + "undo_id": null + }, + { + "position": 29, + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "attempt_state": "delivered", + "status": "confirmed", + "effects": [ + { + "kind": "record_written", + "description": "record_written", + "contract_hash": "sha256:87ec6d9097d6289c5e91b5c843583b61444ec889ee1145063bf1da578e9043b2", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "exact_new_set", + "description": "exact_new_set", + "contract_hash": "sha256:3d3826c0d04a4193b9b27f4a933b8c09c66f8aaf8819e5c4e215966651057925", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:10f6c17e3b60609d4c3bbd31e48fa4323fe9e022d706319b80f2c67fa9e8bc8a", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:09b6ca711f20b9945e87dfaaacc563a38d85d669259ce73d27729d93c6dd2f3d", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:4cbec588f3f843bbbcdb2c5312d70c40f981c6977cbe317a789b049257b50917", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:b2d796d63e535a6db130edeae9026776ba6f78fcff14172ee721de6a455c754f", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:8d71e3f608f119330286dc92fd1418187435e1b45fa7fa6d5f4414217ac6cbdd", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:b92356871e6706bf61bf7fba76ea43fbf12c45d12dd3cafabb8859ec31d69e72", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:f231f89bb4b3254efe14aa646ab0a23aba69de439998e1c8e7cb0135f09d1c7d", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:39e58667c20cc0e582ef846ad89b8be93364aeaf640d7dea223b0d50afd5a325", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:5b6e3341fea0361b793913cbfb797c75bfa620b79db269d6c67dd208d5555c70", + "status": "confirmed", + "observed_effect": "present" + }, + { + "kind": "field_equals", + "description": "field_equals", + "contract_hash": "sha256:30a8c712dabe33c2b223f68274b198f198533916b0abe9decd8d87d8ebcd02f3", + "status": "confirmed", + "observed_effect": "present" + } + ], + "may_need_undo": true, + "undo_id": null + } + ], + "idempotency_key": null, + "idempotent_replay": false, + "canceled": false, + "execution_target_kind": null, + "recorded_surface": null, + "surface_override": false, + "execution_origin": null, + "execution_entry_url": null, + "bundle_content_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "source_recording_sha256": "243fb7853b228a2e0fd93c51c1d43e7b84fff567f1aac917bdcd91a54d044894", + "parameter_schema_sha256": "2a19e2c3ea6e0644cfe9a842aea8c53e036d18bed254b100cf23c88ea090d603", + "governed_authorization_id": "0166458cc37e4ab0a054cc129fcce114", + "governed_approval_source": "local-cli-explicit-flag", + "governed_authorization_created_at": "2026-10-20T22:44:10.105103+00:00", + "governed_policy_name": "clinical-write", + "governed_policy_contract_sha256": "f35a6a94b3f2787165f071ce8571de07095169b9632d394e9df719b35da52c0f", + "governed_minimum_effect_tier": 1, + "governed_qualified_effect_requirements": [ + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 0, + "effect_contract_hash": "sha256:f64985856097097954250be6523fa260daf9fc5db495671c2548ead9a388577b", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 1, + "effect_contract_hash": "sha256:709f0a4ad813f47658bb934bd1ea8c4c4c20b9c108b13d0a316e193d03dbddb8", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 2, + "effect_contract_hash": "sha256:206d1d6fc27df6f24c02bb6b6f4419e0612e7935ec7e744fc8cc446f54558385", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 3, + "effect_contract_hash": "sha256:8f295459bdd868daf117ca9f77dd948cdc2c8c034a65184cb5418ccfab7f60e7", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 4, + "effect_contract_hash": "sha256:52c6884d06d82c4ccc14600150f2890bcd25d92cb7eb26bc53ef54033075ba3c", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 5, + "effect_contract_hash": "sha256:7732675a6e6123c0c3f51512496f695fa4ce503ab989993c520fb8a469bbdc3d", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 6, + "effect_contract_hash": "sha256:598fb97e12d3c0b537f0453e7fdaad453b969e249e888424e67fcd85a06741f0", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 7, + "effect_contract_hash": "sha256:ba109cf90077d7b20a37c2848fa7bee8ea0039747a5ae47465617b2ea1039a2b", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 8, + "effect_contract_hash": "sha256:f9365eda04aba1960fc26c35d252cdadafcec9ad9f9c433b626af6f137189707", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 9, + "effect_contract_hash": "sha256:b311b51ece1670a60f793b29aa3d28d40da196ffbcd26f2fdd620e380dedf97a", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 10, + "effect_contract_hash": "sha256:a33cf54165b96ce6d48014e6e68bac94cdc8f9c9176bae6f5c955123d20683c2", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 11, + "effect_contract_hash": "sha256:d2516eb0f6aa365b812e84fd754127d053d8e0b1a4b349a0b8ce71936bcec199", + "minimum_tier": 1 + } + ], + "governed_runtime_inputs_digest": "2b040a61dbc7eb3a54608bca458b3a419a457f3d03341cd3fca9667994bdb2e6", + "run_id_sha256": "3f67586b4612707f5a343bff5616b78b401e97a1270235d8b853305263bae97c", + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_run_id_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_session_sha256": null, + "observed_environment_digest": null, + "observed_environment_binding_sha256": null, + "qualification_environment_observer_id": null, + "qualification_environment_observer_contract_sha256": null, + "governed_authorized_effect_contracts": {}, + "required_identity_step_ids": [ + "step_000", + "step_003", + "step_006", + "step_009", + "step_012", + "step_016", + "step_018", + "step_021", + "step_024", + "step_027", + "step_030", + "step_033", + "step_036", + "step_039", + "step_040" + ], + "approved_unverified_effect_step_ids": [], + "params": { + "title": "Mr.", + "fname": "Theo", + "lname": "Lindqvist", + "DOB": "1983-07-26", + "sex": "Male", + "street": "63 FERRY STREET", + "city": "EXAMPLETON", + "state_label": "Massachusetts", + "postal_code": "02139", + "phone_home": "555-0136", + "email": "theo.lindqvist@example.invalid", + "country_code": "USA" + }, + "results": [ + { + "step_id": "step_000", + "intent": "click 'Unassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 434, + 282 + ], + "confidence": 1.0, + "elapsed_ms": 59.34533290565014, + "structural_handle": { + "point": [ + 434, + 282 + ], + "confidence": 1.0, + "region": [ + 380, + 267, + 108, + 31 + ], + "target_fingerprint": "bb7f4b3dcc6c06849dd31e414ee611c5ea0f3f6f561e8ec353dcdf3aa174e00e", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"title\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-758cda1489c5405d88dab19003026e5d", + "operation": "dom_click", + "native": false, + "target_fingerprint": "bb7f4b3dcc6c06849dd31e414ee611c5ea0f3f6f561e8ec353dcdf3aa174e00e", + "delivered_at": "2026-10-20T22:44:11.169734+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_000_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_001", + "intent": "type <title>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_001_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_003", + "intent": "click 'First Name'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 445, + 317 + ], + "confidence": 1.0, + "elapsed_ms": 84.44645814597607, + "structural_handle": { + "point": [ + 445, + 317 + ], + "confidence": 1.0, + "region": [ + 380, + 302, + 129, + 31 + ], + "target_fingerprint": "32fdfe6c7b55c500fbd0f113025180eee24a64f967ddb679f07226a936cb0c54", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"fname\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-679b22ad72e0415a9dce0305d7df8e87", + "operation": "dom_click", + "native": false, + "target_fingerprint": "32fdfe6c7b55c500fbd0f113025180eee24a64f967ddb679f07226a936cb0c54", + "delivered_at": "2026-10-20T22:44:13.319618+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_003_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_005", + "intent": "type <fname>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_005_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_006", + "intent": "click 'Last Name'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 671, + 317 + ], + "confidence": 1.0, + "elapsed_ms": 52.421709056943655, + "structural_handle": { + "point": [ + 671, + 317 + ], + "confidence": 1.0, + "region": [ + 589, + 302, + 164, + 31 + ], + "target_fingerprint": "3454f5ac5a7ecc9d7542cc2efce0a057111bdefa26dacaf350e5cd5b88297b03", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"lname\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-1a1a876f0c6e41d1a0d0e39573c79000", + "operation": "dom_click", + "native": false, + "target_fingerprint": "3454f5ac5a7ecc9d7542cc2efce0a057111bdefa26dacaf350e5cd5b88297b03", + "delivered_at": "2026-10-20T22:44:16.019003+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_006_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_008", + "intent": "type <lname>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_008_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_009", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 427, + 430 + ], + "confidence": 1.0, + "elapsed_ms": 63.560208305716515, + "structural_handle": { + "point": [ + 427, + 430 + ], + "confidence": 1.0, + "region": [ + 380, + 415, + 94, + 31 + ], + "target_fingerprint": "946562bd5ab043df7bbe004a9f698c86b49d6082af379c3dcb8b414b2fc00eb9", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"DOB\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-fc636b1dbd5c482da6bdb940b6c36f84", + "operation": "dom_click", + "native": false, + "target_fingerprint": "946562bd5ab043df7bbe004a9f698c86b49d6082af379c3dcb8b414b2fc00eb9", + "delivered_at": "2026-10-20T22:44:19.653545+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_009_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_011", + "intent": "type <DOB>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_011_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_012", + "intent": "click 'Unassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 973, + 430 + ], + "confidence": 1.0, + "elapsed_ms": 65.22583309561014, + "structural_handle": { + "point": [ + 973, + 430 + ], + "confidence": 1.0, + "region": [ + 919, + 415, + 108, + 31 + ], + "target_fingerprint": "785140edcdca5f275e997128d9018ef7860e8845d8f9cbead119e3296d41ce4f", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"sex\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-8dbf438eedf041668a8e0924825873f9", + "operation": "dom_click", + "native": false, + "target_fingerprint": "785140edcdca5f275e997128d9018ef7860e8845d8f9cbead119e3296d41ce4f", + "delivered_at": "2026-10-20T22:44:25.386241+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_012_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_013", + "intent": "type <sex>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_013_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_015", + "intent": "scroll by (0, 300)", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_015_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_016", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 634, + 506 + ], + "confidence": 1.0, + "elapsed_ms": 35.38237512111664, + "structural_handle": { + "point": [ + 634, + 506 + ], + "confidence": 1.0, + "region": [ + 91, + 487, + 1087, + 38 + ], + "target_fingerprint": "e27deac706fc6cbf8a4fcf157000f04b979ca627d928f354283ed7ba6a876dc4", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "pixel", + "coverage": 1.0, + "expected": "recorded identifier crop", + "observed": "live identifier crop matches after alignment (worst window 0.036)", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": { + "recorded_crop_sha256": "457eccee597076f6e0d2b6fdd6b1fdd148dfc0eb72501442413c2020efc4ce15", + "live_crop_sha256": "14a873e4bbcb5868c0ad4ca733fbbaf8beee79ab5958cf519c11a2a85115d2a5", + "recorded_crop_inventory_ref": "private/identity-crops/457eccee597076f6e0d2b6fdd6b1fdd148dfc0eb72501442413c2020efc4ce15.png", + "live_crop_inventory_ref": "private/identity-crops/14a873e4bbcb5868c0ad4ca733fbbaf8beee79ab5958cf519c11a2a85115d2a5.png", + "evaluator_contract_sha256": "277ca2432781bdf72113a5225ccd2954f214cfc31b18e2b19fdec02f01e5dce7" + }, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-92a885711b674f5695ceb6ae53c906e7", + "operation": "dom_click", + "native": false, + "target_fingerprint": "e27deac706fc6cbf8a4fcf157000f04b979ca627d928f354283ed7ba6a876dc4", + "delivered_at": "2026-10-20T22:44:33.387339+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_016_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_017", + "intent": "scroll by (0, 600)", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_017_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_018", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 480, + 160 + ], + "confidence": 1.0, + "elapsed_ms": 53.373999893665314, + "structural_handle": { + "point": [ + 480, + 160 + ], + "confidence": 1.0, + "region": [ + 380, + 145, + 199, + 31 + ], + "target_fingerprint": "2dc94cc92158ec664bdd1f6d6327acc6d7f33c61600454ae3c432e28e2e636d8", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"street\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-0032a7f7406041c7a1b0e60a312db911", + "operation": "dom_click", + "native": false, + "target_fingerprint": "2dc94cc92158ec664bdd1f6d6327acc6d7f33c61600454ae3c432e28e2e636d8", + "delivered_at": "2026-10-20T22:44:40.434110+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_018_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_020", + "intent": "type <street>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_020_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_021", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 445, + 197 + ], + "confidence": 1.0, + "elapsed_ms": 61.38262525200844, + "structural_handle": { + "point": [ + 445, + 197 + ], + "confidence": 1.0, + "region": [ + 380, + 182, + 129, + 31 + ], + "target_fingerprint": "f9cb0e0e6a315b52c2abed3cd0ca9e76d0343897b53238545ea7c2e8696352df", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"city\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-d9939da432d24fbba565d4c63b88ecf7", + "operation": "dom_click", + "native": false, + "target_fingerprint": "f9cb0e0e6a315b52c2abed3cd0ca9e76d0343897b53238545ea7c2e8696352df", + "delivered_at": "2026-10-20T22:44:47.885323+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_021_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_023", + "intent": "type <city>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_023_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_024", + "intent": "click 'Jnassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1017, + 197 + ], + "confidence": 1.0, + "elapsed_ms": 60.09420799091458, + "structural_handle": { + "point": [ + 1017, + 197 + ], + "confidence": 1.0, + "region": [ + 919, + 182, + 197, + 31 + ], + "target_fingerprint": "f54e3ef80eaa2731d83325b06974099493fd0174c2787f89235ac417ee8de5eb", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"state\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-03340d7364e3465fb2cfb9d2a3a2096c", + "operation": "dom_click", + "native": false, + "target_fingerprint": "f54e3ef80eaa2731d83325b06974099493fd0174c2787f89235ac417ee8de5eb", + "delivered_at": "2026-10-20T22:44:55.968572+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_024_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_025", + "intent": "type <state_label>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_025_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_027", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 420, + 236 + ], + "confidence": 1.0, + "elapsed_ms": 55.594957899302244, + "structural_handle": { + "point": [ + 420, + 236 + ], + "confidence": 1.0, + "region": [ + 380, + 221, + 80, + 31 + ], + "target_fingerprint": "4c128a0be475074f21de002d8d22514c9c20305c3312980d3d4ee774ac95ba7a", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"postal_code\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-a6c370cace0a4c38b9e8c07bc66e34f1", + "operation": "dom_click", + "native": false, + "target_fingerprint": "4c128a0be475074f21de002d8d22514c9c20305c3312980d3d4ee774ac95ba7a", + "delivered_at": "2026-10-20T22:45:04.852584+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_027_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_029", + "intent": "type <postal_code>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_029_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_030", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 462, + 349 + ], + "confidence": 1.0, + "elapsed_ms": 58.583375066518784, + "structural_handle": { + "point": [ + 462, + 349 + ], + "confidence": 1.0, + "region": [ + 380, + 334, + 164, + 31 + ], + "target_fingerprint": "a3a9202acd659f9fd853209d61dbe985e8d130d8f90d1f07a39668f0341e57f8", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"phone_home\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-36db040373bb40eaa48efd9595cc829a", + "operation": "dom_click", + "native": false, + "target_fingerprint": "a3a9202acd659f9fd853209d61dbe985e8d130d8f90d1f07a39668f0341e57f8", + "delivered_at": "2026-10-20T22:45:14.566327+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_030_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_032", + "intent": "type <phone_home>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_032_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_033", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1036, + 384 + ], + "confidence": 1.0, + "elapsed_ms": 56.336875073611736, + "structural_handle": { + "point": [ + 1036, + 384 + ], + "confidence": 1.0, + "region": [ + 919, + 369, + 234, + 31 + ], + "target_fingerprint": "ac3bc80255ca4879d2585bbce05204b2e4c4999b443b871ef8d3a6079900ae7d", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"email\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-8f105fe7c3f54315bd6bb499cb73f92d", + "operation": "dom_click", + "native": false, + "target_fingerprint": "ac3bc80255ca4879d2585bbce05204b2e4c4999b443b871ef8d3a6079900ae7d", + "delivered_at": "2026-10-20T22:45:25.365738+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_033_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_035", + "intent": "type <email>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_035_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_036", + "intent": "click 'Jnassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1017, + 236 + ], + "confidence": 1.0, + "elapsed_ms": 56.28025019541383, + "structural_handle": { + "point": [ + 1017, + 236 + ], + "confidence": 1.0, + "region": [ + 919, + 221, + 197, + 31 + ], + "target_fingerprint": "e5bb45474544893ae751ad31990f41eed6ca0183b865eab57de989c9b2c9f401", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"country_code\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-973a5845602a407887fe7a33f6f24087", + "operation": "dom_click", + "native": false, + "target_fingerprint": "e5bb45474544893ae751ad31990f41eed6ca0183b865eab57de989c9b2c9f401", + "delivered_at": "2026-10-20T22:45:36.717130+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_036_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_037", + "intent": "type <country_code>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_037_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 285, + 774 + ], + "confidence": 1.0, + "elapsed_ms": 52.33875010162592, + "structural_handle": { + "point": [ + 285, + 774 + ], + "confidence": 1.0, + "region": [ + 189, + 755, + 191, + 39 + ], + "target_fingerprint": "cdf0fba231e5f94cc413098ce7cff7eccf3c1dfdff95e9778c585066421665b0", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"open_duplicate_check\",\"target_kind\":\"action\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-1196f8f49dfd4e09b76e06a4c5e35e95", + "operation": "dom_click", + "native": false, + "target_fingerprint": "cdf0fba231e5f94cc413098ce7cff7eccf3c1dfdff95e9778c585066421665b0", + "delivered_at": "2026-10-20T22:45:49.068537+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_039_before.png", + "after_png": null, + "elapsed_ms": 0.0 + }, + { + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "ok": true, + "risk": "irreversible", + "risk_explanation": "operator-qualified override: irreversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 600, + 280 + ], + "confidence": 1.0, + "elapsed_ms": 54.42425003275275, + "structural_handle": { + "point": [ + 600, + 280 + ], + "confidence": 1.0, + "region": [ + 488, + 261, + 225, + 38 + ], + "target_fingerprint": "4f64f64390c80da25eb6c3ca57b7818236454e26125df7d361a039eff924c4a6", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Confirm Create New Patient\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": true, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [ + { + "effect_contract_hash": "sha256:87ec6d9097d6289c5e91b5c843583b61444ec889ee1145063bf1da578e9043b2", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:3d3826c0d04a4193b9b27f4a933b8c09c66f8aaf8819e5c4e215966651057925", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:10f6c17e3b60609d4c3bbd31e48fa4323fe9e022d706319b80f2c67fa9e8bc8a", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:09b6ca711f20b9945e87dfaaacc563a38d85d669259ce73d27729d93c6dd2f3d", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:4cbec588f3f843bbbcdb2c5312d70c40f981c6977cbe317a789b049257b50917", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:b2d796d63e535a6db130edeae9026776ba6f78fcff14172ee721de6a455c754f", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:8d71e3f608f119330286dc92fd1418187435e1b45fa7fa6d5f4414217ac6cbdd", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:b92356871e6706bf61bf7fba76ea43fbf12c45d12dd3cafabb8859ec31d69e72", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:f231f89bb4b3254efe14aa646ab0a23aba69de439998e1c8e7cb0135f09d1c7d", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:39e58667c20cc0e582ef846ad89b8be93364aeaf640d7dea223b0d50afd5a325", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:5b6e3341fea0361b793913cbfb797c75bfa620b79db269d6c67dd208d5555c70", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + }, + { + "effect_contract_hash": "sha256:30a8c712dabe33c2b223f68274b198f198533916b0abe9decd8d87d8ebcd02f3", + "substrate": "rest", + "verifier_identity": "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2", + "verification_tier": 1, + "initial_verdict": "confirmed", + "final_verdict": "confirmed", + "reconciliation_completed": false, + "reconciliation_actions": 0, + "observed_effect": "present", + "endpoint_scope": "loopback" + } + ], + "failure_category": null, + "effect_contract_hashes": [ + "sha256:87ec6d9097d6289c5e91b5c843583b61444ec889ee1145063bf1da578e9043b2", + "sha256:3d3826c0d04a4193b9b27f4a933b8c09c66f8aaf8819e5c4e215966651057925", + "sha256:10f6c17e3b60609d4c3bbd31e48fa4323fe9e022d706319b80f2c67fa9e8bc8a", + "sha256:09b6ca711f20b9945e87dfaaacc563a38d85d669259ce73d27729d93c6dd2f3d", + "sha256:4cbec588f3f843bbbcdb2c5312d70c40f981c6977cbe317a789b049257b50917", + "sha256:b2d796d63e535a6db130edeae9026776ba6f78fcff14172ee721de6a455c754f", + "sha256:8d71e3f608f119330286dc92fd1418187435e1b45fa7fa6d5f4414217ac6cbdd", + "sha256:b92356871e6706bf61bf7fba76ea43fbf12c45d12dd3cafabb8859ec31d69e72", + "sha256:f231f89bb4b3254efe14aa646ab0a23aba69de439998e1c8e7cb0135f09d1c7d", + "sha256:39e58667c20cc0e582ef846ad89b8be93364aeaf640d7dea223b0d50afd5a325", + "sha256:5b6e3341fea0361b793913cbfb797c75bfa620b79db269d6c67dd208d5555c70", + "sha256:30a8c712dabe33c2b223f68274b198f198533916b0abe9decd8d87d8ebcd02f3" + ], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-e0bb1b718977422fbf391732d69fb6d7", + "operation": "dom_click", + "native": false, + "target_fingerprint": "4f64f64390c80da25eb6c3ca57b7818236454e26125df7d361a039eff924c4a6", + "delivered_at": "2026-10-20T22:45:56.483184+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_040_before.png", + "after_png": null, + "elapsed_ms": 0.0 + } + ], + "success": true, + "terminal_outcome": null, + "visited_states": [], + "loop_iterations": [], + "program_transition_evidence": [], + "business_decision_evidence": [], + "program_exception_evidence": [], + "attended_program_transition_evidence": [], + "halt": null, + "rung_counts": { + "structural": 15 + }, + "render_scale": null, + "heal_count": 0, + "model_calls": 0, + "external_network_calls": "none", + "est_model_cost_usd": 0.0, + "total_ms": 0.23424997925758362, + "identity_applicable_steps": 15, + "identity_armed_steps": 15, + "identity_unarmed": [], + "screenshots_may_leave_box": false +} \ No newline at end of file diff --git a/packages/flow/benchmark/lifecycle_proof/results/proof-15/drift/r5-grace-adeyemi/report.json b/packages/flow/benchmark/lifecycle_proof/results/proof-15/drift/r5-grace-adeyemi/report.json new file mode 100644 index 000000000..624ffed2b --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/proof-15/drift/r5-grace-adeyemi/report.json @@ -0,0 +1,3286 @@ +{ + "workflow_name": "openemr-create-synthetic-patient", + "started_at": "2026-10-20T22:46:54.181393+00:00", + "execution_profile": "regulated", + "execution_outcome": "HALTED", + "production_eligible": false, + "execution_completed": false, + "outcome_envelope": { + "version": "openadapt.execution-outcome/v1", + "outcome": "HALTED", + "profile": "regulated", + "production_eligible": false, + "execution_completed": false, + "required_contracts": { + "authorization": 1, + "identity": 15, + "postcondition": 32, + "effect": 12 + }, + "passed_contracts": { + "authorization": 1, + "identity": 14, + "postcondition": 30, + "effect": 0 + }, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "postcondition_evidence": [ + { + "result_index": 0, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 0, + "step_contract_sha256": "229c3c9ec053ef29cf51bfea8e2b894f8bd0f5ac6ae8e86359ff4ac804a6e412", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "401187c13f64c38950e30ea4262ce2a935630e218bcd61a7d073cf991b7d9d52", + "verdict": "passed" + }, + { + "result_index": 0, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 0, + "step_contract_sha256": "229c3c9ec053ef29cf51bfea8e2b894f8bd0f5ac6ae8e86359ff4ac804a6e412", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "8c20f460859d7e96ddd1262caac7b0dcb62cf686efdee3f4e29fdd71c42596b7", + "verdict": "passed" + }, + { + "result_index": 1, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 1, + "step_contract_sha256": "ed6d8f4e51d357034dbb251bbbfb449f36db5616cb859e9fe77eade11e4c242f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "6d2bdc9553c6f5ceb6523f7ef6b422f7adf3c430a269ac860fe57d3424c57e5e", + "verdict": "passed" + }, + { + "result_index": 2, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 2, + "step_contract_sha256": "535b3af532c6b62630cb42d7ec12cf9a45067082a8e6c568568c9f1ea9294557", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "a3303142996bd058638ab541923a04b4fd4db7779b2a5cd1437c1b09f0f719c1", + "verdict": "passed" + }, + { + "result_index": 3, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 3, + "step_contract_sha256": "af6a582512adef1ab2655799bacb2f9c4f8d5c5d1fc093f8bbda3cf3993b13e3", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "d66343de1fb0f9486c8f490c22883a16d57fd0751c6a9af72ca033bd8226666e", + "verdict": "passed" + }, + { + "result_index": 4, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 4, + "step_contract_sha256": "db027061d3124e5b4bfb8d015a1d04a768ee71009aa12c2ca1ea395cee19c72c", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "d7676eca4e18055dccf69cfe02735b0f54f8fbb3b5adeeedbb5f77e724dcb405", + "verdict": "passed" + }, + { + "result_index": 5, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 5, + "step_contract_sha256": "0d1e7e53976a613a963b69d8659af906c19bb1f1e1f5e4faf98bd2b9c271e186", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "8cc322d346b34042845d05725697f3df24fcc7355a63368bc211e06afeaf04f1", + "verdict": "passed" + }, + { + "result_index": 6, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 6, + "step_contract_sha256": "10173be5ada082e37361f383f8c1cb702f6c8165fca5edd74cd06e225cf56d52", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "ba495991f7f4029c350243a6c4853dfa96a21f76478227ead0b58cd578d724d0", + "verdict": "passed" + }, + { + "result_index": 6, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 6, + "step_contract_sha256": "10173be5ada082e37361f383f8c1cb702f6c8165fca5edd74cd06e225cf56d52", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "33e2e8251b8960cc9d0dea8b0c610f66c8ab5532d4e9c610f826550d1969b319", + "verdict": "passed" + }, + { + "result_index": 7, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 7, + "step_contract_sha256": "7bdece9442af62928750cddf1b954dc0211e8137999c2dcb5123495557a64aff", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "21b21cc72a141d168d1f486ee9d5e686e9343d19479226fd0493c0e44acfb88f", + "verdict": "passed" + }, + { + "result_index": 8, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 8, + "step_contract_sha256": "924d89b47b94ae64b988b910c68fbe6afb3ae43cfcbd642271d83f6c8305bf58", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "c46e0fb995659cc26a2e96712dc2fe28e5855d930c2ef34a660c4a6f29a90ad4", + "verdict": "passed" + }, + { + "result_index": 9, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 9, + "step_contract_sha256": "210300a3b19d838675c64a43e28c5d05a65f6af0275a5c5cff2b81dd414a6ed1", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "6c79001d3f898490d8aaf4aa98e5009a3c3b35a0f3f00b52cd6588c3935ba634", + "verdict": "passed" + }, + { + "result_index": 11, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 11, + "step_contract_sha256": "f2f9caf11689c7abc85708df15b3d9c60d7907bc68262424d19d766bc5cb38bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "4dffb3e101368cd79a407a52df4ef3d4985827a932283d2d7a5bdbdf7b1a017a", + "verdict": "passed" + }, + { + "result_index": 11, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 11, + "step_contract_sha256": "f2f9caf11689c7abc85708df15b3d9c60d7907bc68262424d19d766bc5cb38bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "9a70e83e890372735f62c8c14072c5d5566e802712ca186eab31717fc09d5fb6", + "verdict": "passed" + }, + { + "result_index": 13, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 13, + "step_contract_sha256": "a1ec6bec55348170c3141f790e6d33909fc02034c50320f28a98afa025aa26bf", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "f4cdf9296fc00bafdca1f10cad96a713a1a77f13992fd8c8305ce33ac20725e6", + "verdict": "passed" + }, + { + "result_index": 14, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 14, + "step_contract_sha256": "38b8933e8bc3047d51fa72be99a9626f39910af3338152d64deff466e2381201", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "bcf795f882b3ea8db403894d208d48ca144950ddd28ef79ac99b0790d425cedf", + "verdict": "passed" + }, + { + "result_index": 15, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 15, + "step_contract_sha256": "314dfd0de9aeb5703e85cea70684f9e9ceded68be65bf724ce8c3e56baf000ff", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "1f34178539962ade7f7e3d3ea5542627f621ab125d433d667be815d366089958", + "verdict": "passed" + }, + { + "result_index": 16, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 16, + "step_contract_sha256": "2822b83d6e7e089b86920bbf4bb3b3bf62bd2594454242ba5ad76df41303aa00", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "82517d98410bde6259a7bc2b633a5efb475f2aaef11453ff7e58e9d89a4ca225", + "verdict": "passed" + }, + { + "result_index": 17, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 17, + "step_contract_sha256": "72ddbbc8bcee54e91b36253fa1b82c9a571a115ee086c31ad32982ae30dee59c", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "ff86f0b85d1718d49a97846817a769342e9113be9ea4297b9daaddb21688bdab", + "verdict": "passed" + }, + { + "result_index": 18, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 18, + "step_contract_sha256": "60f4dc2405e90e851af7a536a90c1e7551e66fa1f07e83002b690e6419ea2e68", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "c7730849ecdd8a488d8a3c19f19607f494f54b95fa4d17cc148fbae7b0ee3ea6", + "verdict": "passed" + }, + { + "result_index": 19, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 19, + "step_contract_sha256": "62c301c5e4731945d06e2fefce787cee0408990894a74bcde540841b96bda992", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "8d69a409f2da5411f6a1ffb89cbb6922ea4bd4e53cad88c07d91e2eb815bfbed", + "verdict": "passed" + }, + { + "result_index": 20, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 20, + "step_contract_sha256": "ec1b3c559fd1a1537e3041731aeedac080f3e53f7a0993099f27e83a4f4b9e8f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "36c6e797959d8ab804c4b41b750c0673063647cf6a1867bf7d9fbcfb82e35704", + "verdict": "passed" + }, + { + "result_index": 21, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 21, + "step_contract_sha256": "7586311fe4153a125c44cd9b9172e027a52a93df18f39907ace63d88920a3435", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "10e30a58326e2002cb8f578099f6e941c16a9c27325b9f9b81aa4876b4bc1e9c", + "verdict": "passed" + }, + { + "result_index": 22, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 22, + "step_contract_sha256": "5f8f28bb7f94a3fd80c95ac23ebc2144e5cb5fd558d83f1c7c3e7e54f8d5b989", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "0a0db9c0ae0c5ee7e7c832f7271d9fc56c20eca5233ac5adb9de41b3198a716f", + "verdict": "passed" + }, + { + "result_index": 23, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 23, + "step_contract_sha256": "d17ab75a87ee445f4616d61244bc33776696341c175099dda31e07f3524b18ce", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "7fe199b71066a71474ad1e5d16f5b3ba3591f67ded03ac5795aed0ea97606ec2", + "verdict": "passed" + }, + { + "result_index": 24, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 24, + "step_contract_sha256": "18959802e73a694c58d99b47a2bc3dba43ae047201f89d82776858349e7282cd", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "40a861211b6660e7cd12ae97a783522d35b7dac6e67b87a606b6c7631d967c03", + "verdict": "passed" + }, + { + "result_index": 25, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 25, + "step_contract_sha256": "b08f16f538d9547def1826013afffbb26478d83b2546d4ffa74e23a2860fc0e4", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "f1d929f76799835ffa2c67c42b7c0cb0fa02f6a5b960043e23ba455e75d4b61f", + "verdict": "passed" + }, + { + "result_index": 26, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 26, + "step_contract_sha256": "6115b2756620c9752efc3546a78ce18a4d5cecfca20beec7003a4529f9e2ae6f", + "action_kind": "type", + "actuation_path": "gui", + "contract_kind": "intrinsic_input_readback", + "contract_index": 0, + "contract_sha256": "5bb10f94d82e26d0a55df0caa8140ab7f2a6bccdf74f10ed3fb1de08f946734b", + "verdict": "passed" + }, + { + "result_index": 27, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 27, + "step_contract_sha256": "84bb4b45b2b3c4739ff15089ac8b5d81eab784c8cb8515366b50672b26d94693", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "8afe0db69640d10aedd282fd0fb2932604f07364e1997040212f2ad66ae7b0c8", + "verdict": "passed" + }, + { + "result_index": 27, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 27, + "step_contract_sha256": "84bb4b45b2b3c4739ff15089ac8b5d81eab784c8cb8515366b50672b26d94693", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "7cb99120bcbba08a678c92d9ed380fecdf9ff40b208b603730b13fa1f088cebb", + "verdict": "passed" + }, + { + "result_index": 28, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 28, + "step_contract_sha256": "f1798bf8e82aa7907be82cb2276c5ab48f861213983faa26078b195f823c6a7e", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 0, + "contract_sha256": "5039384bb50435098e823e2de5fe3128495bf982d38319bb8552212679eeddc0", + "verdict": "unverifiable" + }, + { + "result_index": 28, + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "step_index": 28, + "step_contract_sha256": "f1798bf8e82aa7907be82cb2276c5ab48f861213983faa26078b195f823c6a7e", + "action_kind": "click", + "actuation_path": "gui", + "contract_kind": "explicit_predicate", + "contract_index": 1, + "contract_sha256": "f377120063182c856629a042d08e439f20a26fd6e41041fbd102c93c96f5cd5e", + "verdict": "unverifiable" + } + ], + "evidence_classes": [ + "authorization", + "identity", + "postcondition" + ], + "model_calls": 0, + "external_network_calls": "none", + "compensation_actions": 0 + }, + "readback": null, + "transaction_outcome": "REJECTED_POLICY", + "transaction_billable": false, + "transaction_platform_fault": false, + "effect_journal": [ + { + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "consequential": true, + "intended_effect_contract_hashes": [], + "attempt_state": "delivered", + "observed_effect": "unknown", + "effect_verified": null, + "approved_unverified": false, + "verification_performed": false, + "observed_at": null, + "collateral_reconciliation_actions": 0 + }, + { + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "consequential": true, + "intended_effect_contract_hashes": [], + "attempt_state": "not_actuated", + "observed_effect": "unknown", + "effect_verified": null, + "approved_unverified": false, + "verification_performed": false, + "observed_at": null, + "collateral_reconciliation_actions": 0 + } + ], + "change_ledger": [ + { + "position": 28, + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "attempt_state": "delivered", + "status": "unknown", + "effects": [], + "may_need_undo": true, + "undo_id": null + } + ], + "idempotency_key": null, + "idempotent_replay": false, + "canceled": false, + "execution_target_kind": "web", + "recorded_surface": null, + "surface_override": false, + "execution_origin": "http://127.0.0.1:9401", + "execution_entry_url": "http://127.0.0.1:9401/interface/main/tabs/main.php?token_main=<redacted>", + "bundle_content_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", + "workflow_contract_sha256": "da8aa4f14801d1398bf74b57a3252a889d020dd3e62ebcd02cfc8629062c7839", + "source_recording_sha256": "243fb7853b228a2e0fd93c51c1d43e7b84fff567f1aac917bdcd91a54d044894", + "parameter_schema_sha256": "2a19e2c3ea6e0644cfe9a842aea8c53e036d18bed254b100cf23c88ea090d603", + "governed_authorization_id": "f5ff6bf838bc4a65896e3357a9790d51", + "governed_approval_source": "local-cli-explicit-flag", + "governed_authorization_created_at": "2026-10-20T22:46:54.168607+00:00", + "governed_policy_name": "clinical-write", + "governed_policy_contract_sha256": "f35a6a94b3f2787165f071ce8571de07095169b9632d394e9df719b35da52c0f", + "governed_minimum_effect_tier": 1, + "governed_qualified_effect_requirements": [ + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 0, + "effect_contract_hash": "sha256:f64985856097097954250be6523fa260daf9fc5db495671c2548ead9a388577b", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 1, + "effect_contract_hash": "sha256:709f0a4ad813f47658bb934bd1ea8c4c4c20b9c108b13d0a316e193d03dbddb8", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 2, + "effect_contract_hash": "sha256:206d1d6fc27df6f24c02bb6b6f4419e0612e7935ec7e744fc8cc446f54558385", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 3, + "effect_contract_hash": "sha256:8f295459bdd868daf117ca9f77dd948cdc2c8c034a65184cb5418ccfab7f60e7", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 4, + "effect_contract_hash": "sha256:52c6884d06d82c4ccc14600150f2890bcd25d92cb7eb26bc53ef54033075ba3c", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 5, + "effect_contract_hash": "sha256:7732675a6e6123c0c3f51512496f695fa4ce503ab989993c520fb8a469bbdc3d", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 6, + "effect_contract_hash": "sha256:598fb97e12d3c0b537f0453e7fdaad453b969e249e888424e67fcd85a06741f0", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 7, + "effect_contract_hash": "sha256:ba109cf90077d7b20a37c2848fa7bee8ea0039747a5ae47465617b2ea1039a2b", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 8, + "effect_contract_hash": "sha256:f9365eda04aba1960fc26c35d252cdadafcec9ad9f9c433b626af6f137189707", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 9, + "effect_contract_hash": "sha256:b311b51ece1670a60f793b29aa3d28d40da196ffbcd26f2fdd620e380dedf97a", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 10, + "effect_contract_hash": "sha256:a33cf54165b96ce6d48014e6e68bac94cdc8f9c9176bae6f5c955123d20683c2", + "minimum_tier": 1 + }, + { + "step_id": "step_040", + "actuation_path": "gui", + "effect_index": 11, + "effect_contract_hash": "sha256:d2516eb0f6aa365b812e84fd754127d053d8e0b1a4b349a0b8ce71936bcec199", + "minimum_tier": 1 + } + ], + "governed_runtime_inputs_digest": "3ea2379e43ae96c8eac68d49a375043070458e210595c15b41cccbeb34bcd414", + "run_id_sha256": "e56a60149e1fbed4509a683577eb768cab2d0a957a66896e7590c0702058c768", + "governed_qualification_project_id": null, + "governed_qualification_project_revision": null, + "governed_qualification_project_contract_sha256": null, + "governed_qualification_campaign_id_sha256": null, + "governed_qualification_case_id_sha256": null, + "governed_qualification_case_input_sha256": null, + "governed_qualification_run_id_sha256": null, + "governed_qualification_case_kind": null, + "governed_qualification_case_action_paths": {}, + "governed_qualification_fault_driver_id": null, + "governed_qualification_fault_driver_contract_sha256": null, + "governed_qualification_fault_driver_key_id": null, + "governed_qualification_fault_step_id_sha256": null, + "qualification_evidence_only": false, + "qualification_fault_mutations": [], + "observed_application_sha256": null, + "observed_application_version_sha256": null, + "observed_session_sha256": null, + "observed_environment_digest": null, + "observed_environment_binding_sha256": null, + "qualification_environment_observer_id": null, + "qualification_environment_observer_contract_sha256": null, + "governed_authorized_effect_contracts": {}, + "required_identity_step_ids": [ + "step_000", + "step_003", + "step_006", + "step_009", + "step_012", + "step_016", + "step_018", + "step_021", + "step_024", + "step_027", + "step_030", + "step_033", + "step_036", + "step_039", + "step_040" + ], + "approved_unverified_effect_step_ids": [], + "params": { + "title": "Ms.", + "fname": "Grace", + "lname": "Adeyemi", + "DOB": "1990-02-08", + "sex": "Female", + "street": "402 CEDAR ROW", + "city": "EXAMPLETON", + "state_label": "Massachusetts", + "postal_code": "02139", + "phone_home": "555-0145", + "email": "grace.adeyemi@example.invalid", + "country_code": "USA" + }, + "results": [ + { + "step_id": "step_000", + "intent": "click 'Unassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 434, + 282 + ], + "confidence": 1.0, + "elapsed_ms": 58.76658298075199, + "structural_handle": { + "point": [ + 434, + 282 + ], + "confidence": 1.0, + "region": [ + 380, + 267, + 108, + 31 + ], + "target_fingerprint": "6e4fbdab08e0254fdff045275e7183a9362e4e7fac838adfa1017e776333e97b", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"title\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-27104275646d4152ab8cc3698349d737", + "operation": "dom_click", + "native": false, + "target_fingerprint": "6e4fbdab08e0254fdff045275e7183a9362e4e7fac838adfa1017e776333e97b", + "delivered_at": "2026-10-20T22:46:55.024567+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_000_before.png", + "after_png": "steps/step_000_after.png", + "elapsed_ms": 722.4587500095367, + "timings": { + "screenshot": 115.2, + "artifact_write": 2.9, + "settle_before": 30.3, + "postcondition": 24.3, + "resolve": 115.3, + "identity": 140.1, + "actuate": 160.7, + "settle_after": 130.8, + "other": 2.9 + } + }, + { + "step_id": "step_001", + "intent": "type <title>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_001_before.png", + "after_png": "steps/step_001_after.png", + "elapsed_ms": 339.4448342733085, + "timings": { + "screenshot": 105.6, + "artifact_write": 1.3, + "settle_before": 3.3, + "postcondition": 30.0, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 106.6, + "actuate": 91.6, + "other": 1.0 + } + }, + { + "step_id": "step_003", + "intent": "click 'First Name'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 445, + 317 + ], + "confidence": 1.0, + "elapsed_ms": 56.40425020828843, + "structural_handle": { + "point": [ + 445, + 317 + ], + "confidence": 1.0, + "region": [ + 380, + 302, + 129, + 31 + ], + "target_fingerprint": "ab5872ca210c3d1a253c53eba6e9c8eac1eb68eace4bdbb1a03818262ffc399b", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"fname\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-faf81d1956fe4dff8e66f5b94b5b72e8", + "operation": "dom_click", + "native": false, + "target_fingerprint": "ab5872ca210c3d1a253c53eba6e9c8eac1eb68eace4bdbb1a03818262ffc399b", + "delivered_at": "2026-10-20T22:46:57.156553+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_003_before.png", + "after_png": "steps/step_003_after.png", + "elapsed_ms": 622.5045002065599, + "timings": { + "screenshot": 107.7, + "artifact_write": 1.9, + "settle_before": 3.3, + "postcondition": 12.9, + "resolve": 114.1, + "identity": 105.6, + "actuate": 146.9, + "settle_after": 129.0, + "other": 1.2 + } + }, + { + "step_id": "step_005", + "intent": "type <fname>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_005_before.png", + "after_png": "steps/step_005_after.png", + "elapsed_ms": 339.10562517121434, + "timings": { + "screenshot": 99.6, + "artifact_write": 1.4, + "settle_before": 3.5, + "postcondition": 30.1, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 131.6, + "actuate": 71.9, + "other": 1.0 + } + }, + { + "step_id": "step_006", + "intent": "click 'Last Name'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 671, + 317 + ], + "confidence": 1.0, + "elapsed_ms": 64.06583311036229, + "structural_handle": { + "point": [ + 671, + 317 + ], + "confidence": 1.0, + "region": [ + 589, + 302, + 164, + 31 + ], + "target_fingerprint": "70f8c021118350132463e187262d11b2a43988746f066d8708e3c41b46d01109", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"lname\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-ed3a1a33c5bf4406af836d6ac9f14d0e", + "operation": "dom_click", + "native": false, + "target_fingerprint": "70f8c021118350132463e187262d11b2a43988746f066d8708e3c41b46d01109", + "delivered_at": "2026-10-20T22:47:00.073886+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_006_before.png", + "after_png": "steps/step_006_after.png", + "elapsed_ms": 631.1868750490248, + "timings": { + "screenshot": 115.7, + "artifact_write": 2.3, + "settle_before": 3.2, + "postcondition": 15.6, + "resolve": 119.9, + "identity": 89.2, + "actuate": 157.1, + "settle_after": 127.1, + "other": 1.1 + } + }, + { + "step_id": "step_008", + "intent": "type <lname>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_008_before.png", + "after_png": "steps/step_008_after.png", + "elapsed_ms": 333.79912469536066, + "timings": { + "screenshot": 95.0, + "artifact_write": 1.3, + "settle_before": 3.4, + "postcondition": 34.5, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 127.7, + "actuate": 70.7, + "other": 1.1 + } + }, + { + "step_id": "step_009", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 427, + 430 + ], + "confidence": 1.0, + "elapsed_ms": 61.22516700997949, + "structural_handle": { + "point": [ + 427, + 430 + ], + "confidence": 1.0, + "region": [ + 380, + 415, + 94, + 31 + ], + "target_fingerprint": "aa05de593e9d7d2d9dd065d8f6a79ff1a335a3b78244db9eff9e812ec9036f30", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"DOB\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-569928fbe7a449c5bf0e32218ed6cf6c", + "operation": "dom_click", + "native": false, + "target_fingerprint": "aa05de593e9d7d2d9dd065d8f6a79ff1a335a3b78244db9eff9e812ec9036f30", + "delivered_at": "2026-10-20T22:47:03.789188+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_009_before.png", + "after_png": "steps/step_009_after.png", + "elapsed_ms": 1566.4431252516806, + "timings": { + "screenshot": 109.4, + "artifact_write": 1.9, + "settle_before": 30.2, + "postcondition": 43.8, + "resolve": 112.6, + "identity": 93.6, + "actuate": 125.2, + "settle_after": 236.3, + "ocr": 812.3, + "other": 1.0 + } + }, + { + "step_id": "step_011", + "intent": "type <DOB>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_011_before.png", + "after_png": "steps/step_011_after.png", + "elapsed_ms": 331.7099171690643, + "timings": { + "screenshot": 108.6, + "artifact_write": 1.2, + "settle_before": 3.5, + "postcondition": 35.8, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 107.3, + "actuate": 74.1, + "other": 1.2 + } + }, + { + "step_id": "step_012", + "intent": "click 'Unassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 973, + 430 + ], + "confidence": 1.0, + "elapsed_ms": 56.708207819610834, + "structural_handle": { + "point": [ + 973, + 430 + ], + "confidence": 1.0, + "region": [ + 919, + 415, + 108, + 31 + ], + "target_fingerprint": "5b7a9643446d86cc85dc06828886792b3d0c33921a93b8149b05d0b894d2b0bc", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"sex\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-2e53150459d848b9a5ca3f015f9b36c6", + "operation": "dom_click", + "native": false, + "target_fingerprint": "5b7a9643446d86cc85dc06828886792b3d0c33921a93b8149b05d0b894d2b0bc", + "delivered_at": "2026-10-20T22:47:09.223301+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_012_before.png", + "after_png": "steps/step_012_after.png", + "elapsed_ms": 589.4604590721428, + "timings": { + "screenshot": 98.4, + "artifact_write": 2.1, + "settle_before": 4.3, + "postcondition": 18.3, + "resolve": 110.7, + "identity": 90.8, + "actuate": 128.8, + "settle_after": 134.9, + "other": 1.1 + } + }, + { + "step_id": "step_013", + "intent": "type <sex>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_013_before.png", + "after_png": "steps/step_013_after.png", + "elapsed_ms": 351.4375831000507, + "timings": { + "screenshot": 104.5, + "artifact_write": 1.2, + "settle_before": 3.7, + "postcondition": 30.0, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 126.4, + "actuate": 84.5, + "other": 1.1 + } + }, + { + "step_id": "step_015", + "intent": "scroll by (0, 300)", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_015_before.png", + "after_png": "steps/step_015_after.png", + "elapsed_ms": 446.24187517911196, + "timings": { + "screenshot": 171.5, + "artifact_write": 1.4, + "settle_before": 3.4, + "postcondition": 0.0, + "resolve": 102.3, + "identity": 9.2, + "settle_after": 100.9, + "actuate": 56.5, + "other": 1.1 + } + }, + { + "step_id": "step_016", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 634, + 506 + ], + "confidence": 1.0, + "elapsed_ms": 42.74954181164503, + "structural_handle": { + "point": [ + 634, + 506 + ], + "confidence": 1.0, + "region": [ + 91, + 487, + 1087, + 38 + ], + "target_fingerprint": "f4c6b130224c3759672f3728d6223f9a9d4d29290b899c83256c8bcaecf9ac8e", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "pixel", + "coverage": 1.0, + "expected": "recorded identifier crop", + "observed": "live identifier crop matches after alignment (worst window 0.036)", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": { + "recorded_crop_sha256": "457eccee597076f6e0d2b6fdd6b1fdd148dfc0eb72501442413c2020efc4ce15", + "live_crop_sha256": "14a873e4bbcb5868c0ad4ca733fbbaf8beee79ab5958cf519c11a2a85115d2a5", + "recorded_crop_inventory_ref": "private/identity-crops/457eccee597076f6e0d2b6fdd6b1fdd148dfc0eb72501442413c2020efc4ce15.png", + "live_crop_inventory_ref": "private/identity-crops/14a873e4bbcb5868c0ad4ca733fbbaf8beee79ab5958cf519c11a2a85115d2a5.png", + "evaluator_contract_sha256": "277ca2432781bdf72113a5225ccd2954f214cfc31b18e2b19fdec02f01e5dce7" + }, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-13ea12c7e91f4cd5ac4c0837b20af933", + "operation": "dom_click", + "native": false, + "target_fingerprint": "f4c6b130224c3759672f3728d6223f9a9d4d29290b899c83256c8bcaecf9ac8e", + "delivered_at": "2026-10-20T22:47:17.474338+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_016_before.png", + "after_png": "steps/step_016_after.png", + "elapsed_ms": 1056.7864160984755, + "timings": { + "screenshot": 103.3, + "artifact_write": 2.8, + "settle_before": 3.2, + "postcondition": 109.7, + "resolve": 81.7, + "identity": 101.8, + "actuate": 159.7, + "settle_after": 484.0, + "other": 10.5 + } + }, + { + "step_id": "step_017", + "intent": "scroll by (0, 600)", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_017_before.png", + "after_png": "steps/step_017_after.png", + "elapsed_ms": 486.1050830222666, + "timings": { + "screenshot": 182.8, + "artifact_write": 1.3, + "settle_before": 3.7, + "postcondition": 0.0, + "resolve": 128.0, + "identity": 14.4, + "settle_after": 94.0, + "actuate": 60.6, + "other": 1.2 + } + }, + { + "step_id": "step_018", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 480, + 160 + ], + "confidence": 1.0, + "elapsed_ms": 52.324125077575445, + "structural_handle": { + "point": [ + 480, + 160 + ], + "confidence": 1.0, + "region": [ + 380, + 145, + 199, + 31 + ], + "target_fingerprint": "56b3c8f306987473b9cc87be559feaecf37944e1a23bd3413cfe1711d58cecc4", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"street\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-379548883fe94029a67d405854872df6", + "operation": "dom_click", + "native": false, + "target_fingerprint": "56b3c8f306987473b9cc87be559feaecf37944e1a23bd3413cfe1711d58cecc4", + "delivered_at": "2026-10-20T22:47:24.521044+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_018_before.png", + "after_png": "steps/step_018_after.png", + "elapsed_ms": 610.12216610834, + "timings": { + "screenshot": 110.4, + "artifact_write": 1.9, + "settle_before": 3.4, + "postcondition": 34.4, + "resolve": 104.7, + "identity": 92.8, + "actuate": 135.8, + "settle_after": 125.8, + "other": 1.0 + } + }, + { + "step_id": "step_020", + "intent": "type <street>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_020_before.png", + "after_png": "steps/step_020_after.png", + "elapsed_ms": 339.8805418983102, + "timings": { + "screenshot": 102.4, + "artifact_write": 1.4, + "settle_before": 4.0, + "postcondition": 31.0, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 128.4, + "actuate": 71.8, + "other": 1.0 + } + }, + { + "step_id": "step_021", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 445, + 197 + ], + "confidence": 1.0, + "elapsed_ms": 56.35333387181163, + "structural_handle": { + "point": [ + 445, + 197 + ], + "confidence": 1.0, + "region": [ + 380, + 182, + 129, + 31 + ], + "target_fingerprint": "b05d71cfd0ab26f55ea293ae348d7d97bb28c9e33f4637bc6c814a8db6feff0b", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"city\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-e06f4b9a4fbb48beb5b302545a10e120", + "operation": "dom_click", + "native": false, + "target_fingerprint": "b05d71cfd0ab26f55ea293ae348d7d97bb28c9e33f4637bc6c814a8db6feff0b", + "delivered_at": "2026-10-20T22:47:31.889084+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_021_before.png", + "after_png": "steps/step_021_after.png", + "elapsed_ms": 603.0356669798493, + "timings": { + "screenshot": 98.4, + "artifact_write": 2.0, + "settle_before": 3.5, + "postcondition": 14.7, + "resolve": 107.9, + "identity": 97.8, + "actuate": 145.4, + "settle_after": 132.2, + "other": 1.1 + } + }, + { + "step_id": "step_023", + "intent": "type <city>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_023_before.png", + "after_png": "steps/step_023_after.png", + "elapsed_ms": 345.1600829139352, + "timings": { + "screenshot": 109.1, + "artifact_write": 1.4, + "settle_before": 3.6, + "postcondition": 31.2, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 127.2, + "actuate": 71.6, + "other": 1.1 + } + }, + { + "step_id": "step_024", + "intent": "click 'Jnassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1017, + 197 + ], + "confidence": 1.0, + "elapsed_ms": 63.789417035877705, + "structural_handle": { + "point": [ + 1017, + 197 + ], + "confidence": 1.0, + "region": [ + 919, + 182, + 197, + 31 + ], + "target_fingerprint": "1c8d8af44a2baf33e6d1550b512c2ca8b360e2e2f763e611f9a50a4082f81453", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"state\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-2db5e8b35e534b198fc5b73592f035b0", + "operation": "dom_click", + "native": false, + "target_fingerprint": "1c8d8af44a2baf33e6d1550b512c2ca8b360e2e2f763e611f9a50a4082f81453", + "delivered_at": "2026-10-20T22:47:40.054010+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_024_before.png", + "after_png": "steps/step_024_after.png", + "elapsed_ms": 602.1816250868142, + "timings": { + "screenshot": 104.2, + "artifact_write": 1.9, + "settle_before": 3.3, + "postcondition": 13.5, + "resolve": 119.6, + "identity": 89.0, + "actuate": 140.4, + "settle_after": 128.9, + "other": 1.3 + } + }, + { + "step_id": "step_025", + "intent": "type <state_label>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_025_before.png", + "after_png": "steps/step_025_after.png", + "elapsed_ms": 350.10849963873625, + "timings": { + "screenshot": 95.7, + "artifact_write": 1.4, + "settle_before": 3.7, + "postcondition": 28.7, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 130.9, + "actuate": 88.4, + "other": 1.2 + } + }, + { + "step_id": "step_027", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 420, + 236 + ], + "confidence": 1.0, + "elapsed_ms": 59.093541000038385, + "structural_handle": { + "point": [ + 420, + 236 + ], + "confidence": 1.0, + "region": [ + 380, + 221, + 80, + 31 + ], + "target_fingerprint": "1d9163ab16bab49af0ca042113c3b1a2e08bd74dc7918717c6c998028acbef9b", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"postal_code\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-854801d028584cd2bc64f960459140ca", + "operation": "dom_click", + "native": false, + "target_fingerprint": "1d9163ab16bab49af0ca042113c3b1a2e08bd74dc7918717c6c998028acbef9b", + "delivered_at": "2026-10-20T22:47:49.020357+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_027_before.png", + "after_png": "steps/step_027_after.png", + "elapsed_ms": 612.4302502721548, + "timings": { + "screenshot": 96.2, + "artifact_write": 1.9, + "settle_before": 3.6, + "postcondition": 11.9, + "resolve": 115.3, + "identity": 92.4, + "actuate": 159.3, + "settle_after": 130.8, + "other": 1.1 + } + }, + { + "step_id": "step_029", + "intent": "type <postal_code>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_029_before.png", + "after_png": "steps/step_029_after.png", + "elapsed_ms": 378.49062541499734, + "timings": { + "screenshot": 113.4, + "artifact_write": 1.6, + "settle_before": 29.1, + "postcondition": 34.7, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 129.3, + "actuate": 69.2, + "other": 1.2 + } + }, + { + "step_id": "step_030", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 462, + 349 + ], + "confidence": 1.0, + "elapsed_ms": 58.794124983251095, + "structural_handle": { + "point": [ + 462, + 349 + ], + "confidence": 1.0, + "region": [ + 380, + 334, + 164, + 31 + ], + "target_fingerprint": "b02708289b4bbb2ef85b3d68220efb8a6927fcfce184769145184f80f9bba1a7", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"phone_home\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-1ceb2a41de284888b77223829b4221e0", + "operation": "dom_click", + "native": false, + "target_fingerprint": "b02708289b4bbb2ef85b3d68220efb8a6927fcfce184769145184f80f9bba1a7", + "delivered_at": "2026-10-20T22:47:58.802995+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_030_before.png", + "after_png": "steps/step_030_after.png", + "elapsed_ms": 585.869959089905, + "timings": { + "screenshot": 101.5, + "artifact_write": 1.9, + "settle_before": 3.3, + "postcondition": 15.7, + "resolve": 113.9, + "identity": 90.0, + "actuate": 128.8, + "settle_after": 129.6, + "other": 1.1 + } + }, + { + "step_id": "step_032", + "intent": "type <phone_home>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_032_before.png", + "after_png": "steps/step_032_after.png", + "elapsed_ms": 351.57062485814095, + "timings": { + "screenshot": 95.3, + "artifact_write": 1.3, + "settle_before": 27.4, + "postcondition": 29.8, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 125.9, + "actuate": 70.8, + "other": 1.2 + } + }, + { + "step_id": "step_033", + "intent": "click recorded visual target", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1036, + 384 + ], + "confidence": 1.0, + "elapsed_ms": 62.02104175463319, + "structural_handle": { + "point": [ + 1036, + 384 + ], + "confidence": 1.0, + "region": [ + 919, + 369, + 234, + 31 + ], + "target_fingerprint": "2bbc489c696c129d8195c07c439647ee4d4453c2fd28f829ceb780c1bf390c97", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"email\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-abf87f647e5c4256ba9f32f013b1a445", + "operation": "dom_click", + "native": false, + "target_fingerprint": "2bbc489c696c129d8195c07c439647ee4d4453c2fd28f829ceb780c1bf390c97", + "delivered_at": "2026-10-20T22:48:09.421192+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_033_before.png", + "after_png": "steps/step_033_after.png", + "elapsed_ms": 621.6684579849243, + "timings": { + "screenshot": 101.1, + "artifact_write": 2.1, + "settle_before": 3.4, + "postcondition": 15.9, + "resolve": 118.3, + "identity": 89.9, + "actuate": 158.5, + "settle_after": 131.4, + "other": 1.1 + } + }, + { + "step_id": "step_035", + "intent": "type <email>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_035_before.png", + "after_png": "steps/step_035_after.png", + "elapsed_ms": 330.8882499113679, + "timings": { + "screenshot": 87.5, + "artifact_write": 1.3, + "settle_before": 3.4, + "postcondition": 30.1, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 128.1, + "actuate": 79.6, + "other": 1.0 + } + }, + { + "step_id": "step_036", + "intent": "click 'Jnassigned'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 1017, + 236 + ], + "confidence": 1.0, + "elapsed_ms": 54.78475010022521, + "structural_handle": { + "point": [ + 1017, + 236 + ], + "confidence": 1.0, + "region": [ + 919, + 221, + 197, + 31 + ], + "target_fingerprint": "07ebedceb02064c2567199945a66021912401f06acbb909c65cea366872f6d78", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"country_code\",\"target_kind\":\"field\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-973b88c59283477685c0f9cca9834cb5", + "operation": "dom_click", + "native": false, + "target_fingerprint": "07ebedceb02064c2567199945a66021912401f06acbb909c65cea366872f6d78", + "delivered_at": "2026-10-20T22:48:20.788337+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_036_before.png", + "after_png": "steps/step_036_after.png", + "elapsed_ms": 588.4914579801261, + "timings": { + "screenshot": 104.3, + "artifact_write": 2.0, + "settle_before": 3.6, + "postcondition": 13.5, + "resolve": 109.9, + "identity": 90.0, + "actuate": 132.2, + "settle_after": 131.9, + "other": 1.1 + } + }, + { + "step_id": "step_037", + "intent": "type <country_code>", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": null, + "drag_end_resolution": null, + "identity": null, + "submit_binding_verified": null, + "input_verified": true, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_037_before.png", + "after_png": "steps/step_037_after.png", + "elapsed_ms": 331.98987506330013, + "timings": { + "screenshot": 102.9, + "artifact_write": 1.4, + "settle_before": 3.6, + "postcondition": 28.9, + "resolve": 0.0, + "identity": 0.0, + "settle_after": 108.8, + "actuate": 85.3, + "other": 1.0 + } + }, + { + "step_id": "step_039", + "intent": "click 'Create New Patient'", + "ok": true, + "risk": "reversible", + "risk_explanation": "operator-qualified override: reversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 285, + 774 + ], + "confidence": 1.0, + "elapsed_ms": 47.765208408236504, + "structural_handle": { + "point": [ + 285, + 774 + ], + "confidence": 1.0, + "region": [ + 189, + 755, + 191, + 39 + ], + "target_fingerprint": "7f07e661d1ba66bc80f97273242bf3674ecadaf96819d5ac332b3a5f017b8cfb", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "verified", + "mode": "structured", + "coverage": 1.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"target_id\":\"open_duplicate_check\",\"target_kind\":\"action\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": true, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": false, + "effect_results": [], + "effect_evidence": [], + "failure_category": null, + "effect_contract_hashes": [], + "actuation": "dom", + "program_scope": [], + "delivery_receipt": { + "status": "delivered", + "receipt_id": "playwright-776ba5065d5f4eeb8b335f0b053240b0", + "operation": "dom_click", + "native": false, + "target_fingerprint": "7f07e661d1ba66bc80f97273242bf3674ecadaf96819d5ac332b3a5f017b8cfb", + "delivered_at": "2026-10-20T22:48:33.021780+00:00", + "outcome_verified": false + }, + "delivery_attempted": true, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": null, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": null, + "before_png": "steps/step_039_before.png", + "after_png": "steps/step_039_after.png", + "elapsed_ms": 1631.7322081886232, + "timings": { + "screenshot": 108.3, + "artifact_write": 2.1, + "settle_before": 3.7, + "postcondition": 55.4, + "resolve": 91.4, + "identity": 85.6, + "actuate": 172.1, + "settle_after": 586.4, + "ocr": 500.2, + "other": 26.7 + } + }, + { + "step_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "ok": false, + "risk": "irreversible", + "risk_explanation": "operator-qualified override: irreversible", + "risk_review_required": false, + "skipped": false, + "api_fallback": null, + "exception_handled": false, + "resolution": { + "rung": "structural", + "point": [ + 600, + 280 + ], + "confidence": 1.0, + "elapsed_ms": 53.29174967482686, + "structural_handle": { + "point": [ + 600, + 280 + ], + "confidence": 1.0, + "region": [ + 526, + 261, + 149, + 38 + ], + "target_fingerprint": "9fe4e968e0c52a48b5d525f3dadde07ea44376478c9a262871ccfbaffd21db8c", + "candidate_count": 1, + "supported_operations": [ + "dom_click", + "dom_double_click", + "dom_drag" + ] + } + }, + "drag_end_resolution": null, + "identity": { + "status": "mismatch", + "mode": "structured", + "coverage": 0.0, + "expected": "<structured identity template>", + "observed": "{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Save new patient\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}", + "param": null, + "signal_evidence": [], + "quorum_required": null, + "quorum_verified": null, + "pixel_evidence": null, + "abstain_reason": null, + "known_id_evidence": null, + "known_id_halt": null, + "hover": null, + "looks": [], + "look_halt": null + }, + "submit_binding_verified": null, + "input_verified": null, + "input_retried": false, + "postconditions_ok": null, + "interstitial_actions": [], + "effect_verified": null, + "effect_approved_unverified": false, + "safety_halt": true, + "effect_results": [], + "effect_evidence": [], + "failure_category": "governed_refusal", + "effect_contract_hashes": [], + "actuation": null, + "program_scope": [], + "delivery_receipt": null, + "delivery_attempted": false, + "fresh_actuation_events": [], + "delivery_uncertainty": null, + "safety_refusal_evidence": { + "stage": "identity_verification", + "code": "identity_conflict", + "detector_input_sha256": "19b31ad24d62e3d1c8cfd19900abd1cec4bc7aa85565d4fc0e53520d4135930c" + }, + "starting_state_settled": true, + "postcondition_drift_rescues": [], + "drift_oracle_calls": 0, + "postcondition_page_scale": null, + "field_read": null, + "identity_reobserved": false, + "identity_first_read": null, + "identity_first_frame_png": null, + "heal": null, + "error": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's — expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Save new patient\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}' (coverage 0.00) — refusing to act; run aborted", + "before_png": "steps/step_040_before.png", + "after_png": "steps/step_040_after.png", + "elapsed_ms": 177.71225003525615, + "timings": { + "screenshot": 92.0, + "artifact_write": 3.1, + "settle_before": 3.5, + "postcondition": 0.0, + "resolve": 53.3, + "identity": 10.8, + "other": 15.0 + } + } + ], + "success": false, + "terminal_outcome": null, + "visited_states": [], + "loop_iterations": [], + "program_transition_evidence": [], + "business_decision_evidence": [], + "program_exception_evidence": [], + "attended_program_transition_evidence": [], + "halt": { + "state_id": "step_040", + "intent": "click 'Confirm Create New Patient'", + "reason": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's — expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Save new patient\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}' (coverage 0.00) — refusing to act; run aborted", + "outcome": "halt", + "observed_texts": [ + "x", + "Calendar Finder Fle", + "demogra", + "Q", + "1-0of 0", + "Calendarx", + "Me", + "Preferred", + "Birth", + "External", + "Previous", + "Hits", + "Name", + "DOB", + "Sex", + "ID", + "Names", + "Address:", + "No matches were", + "City:", + "found.", + "Add", + "Postal Code:", + "County:", + "Save new patient", + "Cancel", + "Emergency", + "Home Phone", + "Mobile Phone", + "le.invalid", + "Trusted Emal", + "Additional Add", + "wInactive", + "NONE", + "Choices", + "Employer", + "Stats", + "Misc", + "Related", + "Search", + "Create New Patient" + ], + "completed_intents": [ + "click 'Unassigned'", + "type <title>", + "click 'First Name'", + "type <fname>", + "click 'Last Name'", + "type <lname>", + "click recorded visual target", + "type <DOB>", + "click 'Unassigned'", + "type <sex>", + "scroll by (0, 300)", + "click recorded visual target", + "scroll by (0, 600)", + "click recorded visual target", + "type <street>", + "click recorded visual target", + "type <city>", + "click 'Jnassigned'", + "type <state_label>", + "click recorded visual target", + "type <postal_code>", + "click recorded visual target", + "type <phone_home>", + "click recorded visual target", + "type <email>", + "click 'Jnassigned'", + "type <country_code>", + "click 'Create New Patient'" + ] + }, + "rung_counts": { + "structural": 14 + }, + "render_scale": null, + "heal_count": 0, + "model_calls": 0, + "external_network_calls": "none", + "est_model_cost_usd": 0.0, + "total_ms": 113986.06225010008, + "identity_applicable_steps": 15, + "identity_armed_steps": 15, + "identity_unarmed": [], + "screenshots_may_leave_box": false, + "approval": { + "schema_version": "openadapt.approval-mode-item/v1", + "mode": "problems_only", + "channel": "desktop_run_it_list_with_header", + "switch_id": "switch-lifecycle-proof-0c985b8bb0fd-1792535879", + "switch_record_sha256": "sha256:646a2d9143579b4abc926c14a41ff5ba14a980a5a937dad38bf6af950b06f2c3", + "item_checks": [ + { + "code": "inputs_supplied", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "channel", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "inputs_strict", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "not_a_retry", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "record_key_not_recent", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "deployment_config", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "switch_lease", + "passed": true, + "detail": "ok", + "step_id": null + }, + { + "code": "not_resumed", + "passed": true, + "detail": "ok", + "step_id": null + } + ], + "pre_checks": [], + "post_checks": [ + { + "code": "verified", + "passed": false, + "detail": "not_verified", + "step_id": null + }, + { + "code": "whole_run_clean", + "passed": true, + "detail": "ok", + "step_id": null + } + ], + "saves_without_person": 0, + "gated_step_id": null, + "decision": "stop_before_saving", + "decision_reason": "right_record", + "needs_person": true, + "counts_toward_problems": true, + "switch_off_reason": null, + "switch_log_recorded": true, + "approvals": [] + }, + "self_repair": { + "status": "not_repairable", + "reason": "the run ended REJECTED_POLICY; self-repair handles only a halt before any effect", + "halted_run_dir": null, + "halted_step_id": null, + "agent_id": "lifecycle-proof-label-agent", + "agent_dialect": "anthropic", + "attempts": 0, + "model_calls": 0, + "est_model_cost_usd": 0.0, + "candidate_id": null, + "prior_bundle_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", + "patched_bundle_digest": null, + "approved_by": null, + "approval_route": null, + "steps": [], + "standard_change": null, + "readmitted_bundle_digest": null, + "lineage_hop": null + }, + "redactions": [ + { + "pointer": "/execution_entry_url", + "reason": "url_param:token_main" + } + ] +} \ No newline at end of file diff --git a/packages/flow/benchmark/lifecycle_proof/results/proof-15/drift/r5-grace-adeyemi/self-repair/self-repair.json b/packages/flow/benchmark/lifecycle_proof/results/proof-15/drift/r5-grace-adeyemi/self-repair/self-repair.json new file mode 100644 index 000000000..443f888c8 --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/proof-15/drift/r5-grace-adeyemi/self-repair/self-repair.json @@ -0,0 +1,20 @@ +{ + "status": "not_repairable", + "reason": "the run ended REJECTED_POLICY; self-repair handles only a halt before any effect", + "halted_run_dir": null, + "halted_step_id": null, + "agent_id": "lifecycle-proof-label-agent", + "agent_dialect": "anthropic", + "attempts": 0, + "model_calls": 0, + "est_model_cost_usd": 0.0, + "candidate_id": null, + "prior_bundle_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", + "patched_bundle_digest": null, + "approved_by": null, + "approval_route": null, + "steps": [], + "standard_change": null, + "readmitted_bundle_digest": null, + "lineage_hop": null +} \ No newline at end of file diff --git a/packages/flow/benchmark/lifecycle_proof/results/proof-15/ledger.jsonl b/packages/flow/benchmark/lifecycle_proof/results/proof-15/ledger.jsonl new file mode 100644 index 000000000..4eac9e5fe --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/proof-15/ledger.jsonl @@ -0,0 +1,59 @@ +{"at": 1792535084.0755992, "kind": "phase.start", "phase": "admit"} +{"at": 1792535088.4799192, "certification_invalidated": true, "encrypted": true, "encrypted_digest": "ec87be520a03662a423d15e8a778058c46588bcd1225bcaf4471f34032776874", "kind": "admit.encrypt", "source_digest": "ec096afa2b614326b00ec3155f256041c19d86f3998761ce9d772cfd911460b6"} +{"at": 1792535229.179073, "kind": "admit.qualify.log", "line": "{\"case_id\": \"representative\", \"trial\": 1, \"expected\": \"VERIFIED\", \"execution_outcome\": \"VERIFIED\", \"transaction_outcome\": \"VERIFIED\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": true, \"model_calls\": 0, \"total_ms\": 110629.55450033769, \"failed_step_id\": null, \"failed_erro"} +{"at": 1792535348.224777, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-ambiguity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 110470.15216713771, \"failed_step_id\": \"step_04"} +{"at": 1792535467.904861, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-wrong-identity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"REJECTED_POLICY\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 111084.64349992573, \"failed_step_id\": \"step_04"} +{"at": 1792535585.238364, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-stale-identity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 108867.19437502325, \"failed_step_id\": \"st"} +{"at": 1792535699.782596, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-weak-effect\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 106066.22429192066, \"failed_step_id\": \"step_"} +{"at": 1792535818.012747, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-missing-effect\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 109981.55745863914, \"failed_step_id\": \"st"} +{"at": 1792535825.793545, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"representative\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792535834.413027, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-ambiguity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792535842.133976, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-wrong-identity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792535850.166133, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-stale-identity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792535857.844256, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-weak-effect\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792535865.645108, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-missing-effect\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792535865.64561, "kind": "admit.qualify.log", "line": "pixels-only pass (informational): 0/6 (0%) trials behaved as required with structure lookups disabled; most common failure: StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"at": 1792535865.840055, "kind": "admit.qualify.log", "line": "qualified lookups: structure on a local surface"} +{"at": 1792535866.0460548, "kind": "admit.qualify.log", "line": "PASS: qualification for 'openemr-create-synthetic-patient'\n identity coverage 1/1; effect coverage 1/1; cases 6/6"} +{"at": 1792535866.046196, "kind": "admit.qualify.log", "line": "qualification-result/v1 1de1451974ad4acf: passed=True silent_incorrect_success=0 over_halt=0 executor_model_calls=0 verifier_model_calls=0"} +{"at": 1792535872.859791, "kind": "admit.qualify.log", "line": "no admission envelope: the qualification-admission/v1 envelope needs at least 3 trials per case; this campaign ran 1"} +{"at": 1792535879.6183171, "certified": true, "digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", "kind": "admit.qualify", "passed": true, "rows": [{"case_id": "representative", "expected": "VERIFIED", "transaction_outcome": "VERIFIED", "trial": 1}, {"case_id": "fault-ambiguity", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-wrong-identity", "expected": "HALTED", "transaction_outcome": "REJECTED_POLICY", "trial": 1}, {"case_id": "fault-stale-identity", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-weak-effect", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-missing-effect", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}], "seconds": 795.5} +{"at": 1792535879.61905, "kind": "admit", "pinned_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", "seconds": 795.5} +{"at": 1792535879.621863, "kind": "phase.end", "person_touches": 0, "phase": "admit"} +{"at": 1792535879.6220071, "kind": "phase.start", "phase": "switch"} +{"at": 1792535879.9228659, "bundle": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-0c985b8bb0fd-1792535879"} +{"at": 1792535879.922967, "kind": "phase.end", "person_touches": 0, "phase": "switch"} +{"at": 1792535879.9230149, "kind": "phase.start", "phase": "batch"} +{"at": 1792536000.050167, "deferred": true, "inline_reason": null, "item": "r1-nadia-brennan", "kind": "batch.item", "returned_s": 120.1} +{"at": 1792536118.4936051, "deferred": true, "inline_reason": null, "item": "r2-marcus-feld", "kind": "batch.item", "returned_s": 118.4} +{"at": 1792536238.5607822, "deferred": true, "inline_reason": null, "item": "r3-ines-carvalho", "kind": "batch.item", "returned_s": 120.1} +{"at": 1792536243.33048, "charts": 1, "item": "r1-nadia-brennan", "kind": "oracle"} +{"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "at": 1792536243.33073, "bundle_content_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", "charts": 1, "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "item": "r1-nadia-brennan", "kind": "batch.result", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"} +{"at": 1792536243.436345, "charts": 1, "item": "r2-marcus-feld", "kind": "oracle"} +{"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "at": 1792536243.436641, "bundle_content_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", "charts": 1, "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "item": "r2-marcus-feld", "kind": "batch.result", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"} +{"at": 1792536243.53842, "charts": 1, "item": "r3-ines-carvalho", "kind": "oracle"} +{"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "at": 1792536243.5387468, "bundle_content_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", "charts": 1, "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "item": "r3-ines-carvalho", "kind": "batch.result", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"} +{"at": 1792536243.5390122, "kind": "phase.end", "person_touches": 0, "phase": "batch"} +{"at": 1792536243.5390642, "kind": "phase.start", "phase": "crash"} +{"at": 1792536367.132523, "charts": 1, "item": "r4-theo-lindqvist", "kind": "oracle"} +{"at": 1792536367.2018838, "charts": 1, "deferred_check_held": true, "delivery_uncertainty": true, "item": "r4-theo-lindqvist", "kind": "crash.killed", "pause_category": "readback_pending"} +{"action": "resume", "at": 1792536367.349849, "item": "r4-theo-lindqvist", "kind": "person"} +{"at": 1792536406.4447029, "charts": 1, "item": "r4-theo-lindqvist", "kind": "oracle"} +{"approval": null, "at": 1792536406.445002, "bundle_content_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", "charts": 1, "charts_at_kill": 1, "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "item": "r4-theo-lindqvist", "kind": "crash.resumed", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"} +{"at": 1792536406.445827, "kind": "phase.end", "person_touches": 1, "phase": "crash"} +{"at": 1792536406.44592, "kind": "phase.start", "phase": "drift"} +{"at": 1792536406.547147, "change": {"Confirm Create New Patient": "Save new patient"}, "kind": "drift.app_change"} +{"at": 1792536529.22145, "charts": 0, "item": "r5-grace-adeyemi", "kind": "oracle"} +{"approved_by": null, "at": 1792536529.221791, "charts": 0, "halted_step": null, "item": "r5-grace-adeyemi", "kind": "drift.result", "lineage_hop": null, "readmitted_digest": null, "reason": "the run ended REJECTED_POLICY; self-repair handles only a halt before any effect", "resumed": {"approval": {"decision": "stop_before_saving", "decision_reason": "right_record", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's \u2014 expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_c", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "seconds": 120.0, "stages": [], "status": "not_repairable"} +{"at": 1792536529.222944, "kind": "phase.end", "person_touches": 1, "phase": "drift"} +{"at": 1792536529.223048, "kind": "phase.start", "phase": "switch"} +{"at": 1792536529.4900951, "bundle": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-0c985b8bb0fd-1792536529"} +{"at": 1792536529.490269, "kind": "phase.end", "person_touches": 1, "phase": "switch"} +{"at": 1792536529.4903371, "kind": "phase.start", "phase": "continue"} +{"at": 1792536649.653669, "deferred": false, "inline_reason": null, "item": "r7-arlo-whitcombe", "kind": "continue.item", "returned_s": 120.2} +{"at": 1792536769.5474298, "deferred": false, "inline_reason": null, "item": "r8-priya-raman", "kind": "continue.item", "returned_s": 119.9} +{"at": 1792536769.773473, "charts": 0, "item": "r7-arlo-whitcombe", "kind": "oracle"} +{"approval": {"decision": "stop_before_saving", "decision_reason": "right_record", "mode": "problems_only", "needs_person": true}, "at": 1792536769.773709, "bundle_content_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", "charts": 0, "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's \u2014 expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_c", "item": "r7-arlo-whitcombe", "kind": "continue.result", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "REJECTED_POLICY"} +{"at": 1792536769.89837, "charts": 0, "item": "r8-priya-raman", "kind": "oracle"} +{"approval": {"decision": "stop_before_saving", "decision_reason": "right_record", "mode": "problems_only", "needs_person": true}, "at": 1792536769.89871, "bundle_content_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", "charts": 0, "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's \u2014 expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_c", "item": "r8-priya-raman", "kind": "continue.result", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "REJECTED_POLICY"} +{"at": 1792536769.900745, "kind": "phase.end", "person_touches": 1, "phase": "continue"} diff --git a/packages/flow/benchmark/lifecycle_proof/results/proof-15/switch/log-1792535879.jsonl b/packages/flow/benchmark/lifecycle_proof/results/proof-15/switch/log-1792535879.jsonl new file mode 100644 index 000000000..6e1772b0d --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/proof-15/switch/log-1792535879.jsonl @@ -0,0 +1,9 @@ +{"at":"2026-10-20T22:37:59.922337+00:00","counts_toward_problems":null,"decision":null,"kind":"opened","prev_sha256":"sha256:0000000000000000000000000000000000000000000000000000000000000000","reason":null,"run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":1,"sha256":"sha256:b02f5a6c48623afcd32c6aa5f9eabc18f7c8f3e7cfd1bb1ef31e70ca4db62730","switch_id":"switch-lifecycle-proof-0c985b8bb0fd-1792535879","switch_record_sha256":"sha256:646a2d9143579b4abc926c14a41ff5ba14a980a5a937dad38bf6af950b06f2c3"} +{"at":"2026-10-20T22:39:51.013271+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:b02f5a6c48623afcd32c6aa5f9eabc18f7c8f3e7cfd1bb1ef31e70ca4db62730","reason":null,"run_ref":"447b95a5ed746f18606ae46eb9af915d415d3d227959f6fee2222fc2abc12773","schema_version":"openadapt.approval-mode-log-event/v1","seq":2,"sha256":"sha256:86fab0bfe28732a91a59f4f5295cdb89961472c16cf4faf49a34a09adc809fdb","switch_id":"switch-lifecycle-proof-0c985b8bb0fd-1792535879","switch_record_sha256":null} +{"at":"2026-10-20T22:40:04.774773+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:86fab0bfe28732a91a59f4f5295cdb89961472c16cf4faf49a34a09adc809fdb","reason":null,"run_ref":"447b95a5ed746f18606ae46eb9af915d415d3d227959f6fee2222fc2abc12773","schema_version":"openadapt.approval-mode-log-event/v1","seq":3,"sha256":"sha256:1e41d7a90ca87472f0ebadabb5d1fe7268fc31c4bbe8cdb4a23e08695f9fb2e3","switch_id":"switch-lifecycle-proof-0c985b8bb0fd-1792535879","switch_record_sha256":null} +{"at":"2026-10-20T22:41:49.091727+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:1e41d7a90ca87472f0ebadabb5d1fe7268fc31c4bbe8cdb4a23e08695f9fb2e3","reason":null,"run_ref":"70ed79c019d6b3ec1ea9b18dc4ffed4ec5e9693bb397bfa06fb40bef6f5059f1","schema_version":"openadapt.approval-mode-log-event/v1","seq":4,"sha256":"sha256:d7202964ddfdd147d92376300d83316250d93a4315e0680cb3d82e6266542d22","switch_id":"switch-lifecycle-proof-0c985b8bb0fd-1792535879","switch_record_sha256":null} +{"at":"2026-10-20T22:42:03.453510+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:d7202964ddfdd147d92376300d83316250d93a4315e0680cb3d82e6266542d22","reason":null,"run_ref":"70ed79c019d6b3ec1ea9b18dc4ffed4ec5e9693bb397bfa06fb40bef6f5059f1","schema_version":"openadapt.approval-mode-log-event/v1","seq":5,"sha256":"sha256:822573d2803fa9a2de149f25a91bf63de0b29d28faf1c5ec9955b20014612d18","switch_id":"switch-lifecycle-proof-0c985b8bb0fd-1792535879","switch_record_sha256":null} +{"at":"2026-10-20T22:43:49.145831+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:822573d2803fa9a2de149f25a91bf63de0b29d28faf1c5ec9955b20014612d18","reason":null,"run_ref":"5b3308d6cb845586374eda4dc0ffa1254e224ec59347789dd0deb6c47f541c87","schema_version":"openadapt.approval-mode-log-event/v1","seq":6,"sha256":"sha256:dc9c392f44bd02e83fce75827259c8eaeb11da3db269397a27342b307b2b1556","switch_id":"switch-lifecycle-proof-0c985b8bb0fd-1792535879","switch_record_sha256":null} +{"at":"2026-10-20T22:44:03.083034+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:dc9c392f44bd02e83fce75827259c8eaeb11da3db269397a27342b307b2b1556","reason":null,"run_ref":"5b3308d6cb845586374eda4dc0ffa1254e224ec59347789dd0deb6c47f541c87","schema_version":"openadapt.approval-mode-log-event/v1","seq":7,"sha256":"sha256:d185dcad309d59f921127902063a880a4e43661ad3568ec80fb2ec153a829328","switch_id":"switch-lifecycle-proof-0c985b8bb0fd-1792535879","switch_record_sha256":null} +{"at":"2026-10-20T22:45:56.394890+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:d185dcad309d59f921127902063a880a4e43661ad3568ec80fb2ec153a829328","reason":null,"run_ref":"3f67586b4612707f5a343bff5616b78b401e97a1270235d8b853305263bae97c","schema_version":"openadapt.approval-mode-log-event/v1","seq":8,"sha256":"sha256:b64bb2bf7cc33ab43f1547a9d6fdf0a5f3018ebba11b5968a84bebe39cddab28","switch_id":"switch-lifecycle-proof-0c985b8bb0fd-1792535879","switch_record_sha256":null} +{"at":"2026-10-20T22:48:48.984827+00:00","counts_toward_problems":true,"decision":"stop_before_saving","kind":"item_finished","prev_sha256":"sha256:b64bb2bf7cc33ab43f1547a9d6fdf0a5f3018ebba11b5968a84bebe39cddab28","reason":"right_record","run_ref":"e56a60149e1fbed4509a683577eb768cab2d0a957a66896e7590c0702058c768","schema_version":"openadapt.approval-mode-log-event/v1","seq":9,"sha256":"sha256:864c5901fe9d79e63698376d8d926ffaf036f470f609f068467392b823423e8e","switch_id":"switch-lifecycle-proof-0c985b8bb0fd-1792535879","switch_record_sha256":null} diff --git a/packages/flow/benchmark/lifecycle_proof/results/proof-15/switch/log-1792536529.jsonl b/packages/flow/benchmark/lifecycle_proof/results/proof-15/switch/log-1792536529.jsonl new file mode 100644 index 000000000..139278acd --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/proof-15/switch/log-1792536529.jsonl @@ -0,0 +1,3 @@ +{"at":"2026-10-20T22:48:49.489413+00:00","counts_toward_problems":null,"decision":null,"kind":"opened","prev_sha256":"sha256:0000000000000000000000000000000000000000000000000000000000000000","reason":null,"run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":1,"sha256":"sha256:73d2f43662cdc515a768e4d1ee0e33e4a794f3ea0c985f621975f7b2a7bf3ef0","switch_id":"switch-lifecycle-proof-0c985b8bb0fd-1792536529","switch_record_sha256":"sha256:19e39821ab2810062d884a673f5af2b4cb333f5897880000ec3ddca1c8d86bcb"} +{"at":"2026-10-20T22:50:49.578004+00:00","counts_toward_problems":true,"decision":"stop_before_saving","kind":"item_finished","prev_sha256":"sha256:73d2f43662cdc515a768e4d1ee0e33e4a794f3ea0c985f621975f7b2a7bf3ef0","reason":"right_record","run_ref":"b74c937fd4f6e47f94bd472bf5e2e4558bba42f9fb2dd7d3f3c84e972a37cb48","schema_version":"openadapt.approval-mode-log-event/v1","seq":2,"sha256":"sha256:c0a1949e6e8cd173072cc644e7f3202ef6b68fe721a31b028533877bf8ff18aa","switch_id":"switch-lifecycle-proof-0c985b8bb0fd-1792536529","switch_record_sha256":null} +{"at":"2026-10-20T22:52:49.473648+00:00","counts_toward_problems":true,"decision":"stop_before_saving","kind":"item_finished","prev_sha256":"sha256:c0a1949e6e8cd173072cc644e7f3202ef6b68fe721a31b028533877bf8ff18aa","reason":"right_record","run_ref":"7fc585b6a8bbd71e3d202147d9d0a2be6e3dd7e9c28f2cc00129c90945ad1469","schema_version":"openadapt.approval-mode-log-event/v1","seq":3,"sha256":"sha256:ecc5e81ab6d7144d1a4daa662415be1f5bec6029c14755e460c70fcd5a289846","switch_id":"switch-lifecycle-proof-0c985b8bb0fd-1792536529","switch_record_sha256":null} diff --git a/packages/flow/benchmark/lifecycle_proof/results/proof-15/switch/switch.json b/packages/flow/benchmark/lifecycle_proof/results/proof-15/switch/switch.json new file mode 100644 index 000000000..3b86c4838 --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/results/proof-15/switch/switch.json @@ -0,0 +1,42 @@ +{ + "log": "/Users/abrichr/oa/scratch/compose-proof/runs/proof-15/switch/log-1792536529.jsonl", + "record": { + "allowed_interstitials": {}, + "bundle_content_digest": "0c985b8bb0fd4886f7fa371fbd12c5fd8082bcd5e9ac71e4dfaedf8c77d73a93", + "channel": "desktop_run_it_list_with_header", + "dedicated_user_ref": "hmac-sha256:416c28d5858aff6dc46c5f2e1f00ead21c20ceaa4a64e3d4a1b8330b23f89f7e", + "environment_digest": "sha256:2dc00aa5bd8d4cb971fc11d724d7bae63aaa300f8cfe636298f68d5500913df5", + "org_id": "org-lifecycle-proof", + "profile": "regulated", + "rung_floor": { + "step_000": "structural", + "step_003": "structural", + "step_006": "structural", + "step_009": "structural", + "step_012": "structural", + "step_016": "structural", + "step_018": "structural", + "step_021": "structural", + "step_024": "structural", + "step_027": "structural", + "step_030": "structural", + "step_033": "structural", + "step_036": "structural", + "step_039": "structural", + "step_040": "structural" + }, + "runner_id": "lifecycle-proof-runner-1", + "schema_version": "openadapt.approval-mode-switch/v1", + "switch_id": "switch-lifecycle-proof-0c985b8bb0fd-1792536529", + "thresholds": { + "problems_in_a_row": 3, + "problems_in_window": 5, + "problems_window": 20, + "status_max_age_s": 900 + }, + "verifier_identities": [ + "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2" + ], + "workflow_id": "workflow-openemr-referral" + } +} diff --git a/packages/flow/benchmark/lifecycle_proof/run.py b/packages/flow/benchmark/lifecycle_proof/run.py new file mode 100644 index 000000000..bbcbcc2f9 --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/run.py @@ -0,0 +1,1115 @@ +"""One production configuration, its whole lifecycle, on the real local OpenEMR. + +The configuration (docs/COMPATIBILITY.md): + +- the **Regulated** profile, governed authorization from the run gate on the + certified, sealed, pinned bundle (``--pin-digest`` semantics: the gate pins + the admitted digest and accepts a repaired version only through signed + lineage); +- durable runs with an encrypted checkpoint store; +- the API tier where admissible (the referral's API step is refused by its + own proposal on OpenEMR, so its GUI save runs and the report says why); +- pipelined read-back (one window), the deferred record check held in the + durable pause; +- self-repair on, every fix re-qualified on a test copy and re-admitted with + signed lineage; +- ``problems_only`` approval: a person sees only problems. + +Phases (each writes its evidence under ``--out``): + +1. ``admit``: seal the certified referral bundle, qualify the sealed copy on + this fixture (the six cases, certified under clinical-write), check the + Regulated run gate, and open the problems-only switch record. +2. ``batch``: new referrals, each item starting while the previous item's + record check is still running. +3. ``crash``: an item is killed while its record check runs; the resume + re-runs only the check; the oracle counts one chart. +4. ``drift``: the vendor relabels the save button; the item stops before + saving; self-repair proposes the fix, a person approves it once, the fix + is re-qualified on the test copy and re-admitted with lineage, and the + item resumes and saves once. +5. ``continue``: more referrals on the repaired version, pinned to the + original digest through the lineage. + +The person is scripted (``ScriptedPerson``) and counted: every approval it +gives is in the ledger. The repair agent is a rule-based stand-in that calls +no model (``LabelAgent``); ``--repair-agent module:factory`` swaps in another. +The oracle reads the database directly and counts charts per referral. + + LIFECYCLE_PROOF_STATE=... PYTHONPATH=.:../types \\ + python -m benchmark.lifecycle_proof.run all --out <dir> --keys <dir> + +``--keys`` is a directory outside the repository for the bundle key, the +checkpoint key, the local status key and the admission key. Nothing secret is +written under ``--out``. +""" + +from __future__ import annotations + +import argparse +import json +import os +import secrets +import shutil +import signal +import subprocess +import sys +import threading +import time +from pathlib import Path +from typing import Any, Optional + +HERE = Path(__file__).resolve().parent +FLOW = HERE.parents[1] +VERIFY_YAML = HERE / "verify.yaml" +DEFAULT_SOURCE = ( + Path.home() / "oa/scratch/qualify-referral/certified-referrals-qual10/bundle" +) +POLICY = "clinical-write" +RUNNER_ID = "lifecycle-proof-runner-1" +DEDICATED_USER = "openadapt_actor" +STATUS_KEY_ID = "lifecycle-proof-status-1" + +#: Synthetic referrals (benchmark/openemr_api_tier/common.py), unique emails. +BATCH = ("r1-nadia-brennan", "r2-marcus-feld", "r3-ines-carvalho") +CRASH = "r4-theo-lindqvist" +DRIFT = "r5-grace-adeyemi" +CONTINUE = ("r7-arlo-whitcombe", "r8-priya-raman") + + +# -- small helpers ----------------------------------------------------------------- + + +def _write(path: Path, value: Any) -> None: + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(json.dumps(value, indent=2, sort_keys=True, default=str) + "\n") + + +def _read(path: Path) -> Any: + return json.loads(path.read_text()) + + +class Ledger: + """Append-only record of every phase, item, oracle read and person touch.""" + + def __init__(self, out: Path) -> None: + self.path = out / "ledger.jsonl" + self.path.parent.mkdir(parents=True, exist_ok=True) + self._lock = threading.Lock() + + def add(self, kind: str, **fields: Any) -> None: + row = {"at": time.time(), "kind": kind, **fields} + with self._lock, self.path.open("a") as handle: + handle.write(json.dumps(row, sort_keys=True, default=str) + "\n") + print(json.dumps(row, default=str), flush=True) + + +def _keys(keys: Path) -> dict[str, Any]: + """Keys kept outside the repository, created once.""" + + keys.mkdir(parents=True, exist_ok=True, mode=0o700) + secret = keys / "secrets.json" + if not secret.exists(): + secret.write_text( + json.dumps( + { + "bundle_key": secrets.token_urlsafe(32), + "checkpoint_key": secrets.token_urlsafe(32), + "user_hmac_key": secrets.token_hex(32), + } + ) + ) + secret.chmod(0o600) + values = _read(secret) + from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey + from cryptography.hazmat.primitives.serialization import ( + Encoding, + NoEncryption, + PrivateFormat, + PublicFormat, + load_pem_private_key, + ) + + status_pem = keys / "status-key.pem" + if not status_pem.exists(): + status_pem.write_bytes( + Ed25519PrivateKey.generate().private_bytes( + Encoding.PEM, PrivateFormat.PKCS8, NoEncryption() + ) + ) + status_pem.chmod(0o600) + status = load_pem_private_key(status_pem.read_bytes(), password=None) + import base64 + + public = base64.b64encode( + status.public_key().public_bytes(Encoding.Raw, PublicFormat.Raw) + ).decode("ascii") + # Durable resume opens the bundle and the checkpoints with one key + # (OPENADAPT_BUNDLE_KEY), as `openadapt-flow resume` does. + values["checkpoint_key"] = values["bundle_key"] + return { + **values, + "status_private": status, + "status_keys": {STATUS_KEY_ID: public}, + "admission_key_dir": keys / "admission", + } + + +def _env(app: Any, keys: dict[str, Any]) -> None: + app.point_hooks_here() + os.environ["OPENADAPT_BUNDLE_KEY"] = keys["bundle_key"] + os.environ["OPENADAPT_NO_LAUNCHER_CHECK"] = "1" + + +def referral_params(key: str) -> dict[str, str]: + from benchmark.openemr_api_tier.common import REFERRALS, spec_for + + ref = {r.key: r for r in REFERRALS}[key] + return {k: str(v) for k, v in spec_for(ref).params().items()} + + +def _config_and_hooks() -> tuple[Any, Any, dict[str, Any]]: + from openadapt_flow.qualify.campaign import _default_hooks, lookup_plan + from openadapt_flow.qualify.config import load_verify_config + + config = load_verify_config(VERIFY_YAML) + surface, structure = lookup_plan(config) + lookup = {"use_structural": structure, "deployment_surface": surface} + return config, _default_hooks(config, None), lookup + + +# -- the person and the stand-in for Cloud's switch status ----------------------------- + + +class ScriptedPerson: + """Answers every waiting approval request, and counts each answer.""" + + APPROVE = dict( + decision="approve", + decided_by="human", + route="desktop_run_it", + approver_id="lifecycle-proof-operator", + auth_method="cloud_aal2", + ) + + def __init__(self, ledger: Ledger) -> None: + self.ledger = ledger + self.stores: list[Any] = [] + self.seen: set[str] = set() + self.touches = 0 + + def watch(self, store: Any) -> None: + self.stores.append(store) + + def sleep(self, seconds: float) -> None: + time.sleep(min(seconds, 0.5)) + from openadapt_flow.approval_mode.item_approval import make_answer + + for store in list(self.stores): + for request in store.requests(): + if request.request_id in self.seen: + continue + self.seen.add(request.request_id) + store.write_answer(make_answer(request, **self.APPROVE)) + self.touches += 1 + self.ledger.add( + "person", + action="approve", + request_id=request.request_id, + store=str(store.root) if hasattr(store, "root") else "", + ) + + +class LocalStatusAuthority: + """Stands in for Cloud's status route: signs ``on`` for the open switch.""" + + def __init__(self, private_key: Any) -> None: + self.private_key = private_key + + def __call__(self, request: Any) -> Any: + from openadapt_flow.approval_mode.switch import sign_status + + return sign_status( + { + "switch_id": request.switch_id, + "switch_record_sha256": request.switch_record_sha256, + "runner_id": request.runner_id, + "nonce": request.nonce, + "runner_event_seq": request.runner_event_seq, + "runner_event_sha256": request.runner_event_sha256, + "state": "on", + "off_reason": None, + "issued_at": time.strftime("%Y-%m-%dT%H:%M:%S+00:00", time.gmtime()), + "key_id": STATUS_KEY_ID, + }, + self.private_key, + ) + + +class OpenEMRSignedInUser: + """P2 for OpenEMR: the signed-in user's login, from the app's own session. + + OpenEMR shows only the display name, and only at wide windows. Its tab + shell holds the login in ``app_view_model.application_data.user()``. + This check reads that login from the live page; the frame is not used. + """ + + kind = "login_id" + + def __init__(self, page: Any, expected: str) -> None: + self._page = page + self._expected = expected + + def reference(self, key: bytes) -> str: + from openadapt_flow.approval_mode.gate import dedicated_user_reference + + return dedicated_user_reference(self._expected, key) + + def check(self, frame_png: bytes) -> str: + try: + login = self._page.evaluate( + "() => app_view_model.application_data.user().username()" + ) + except Exception: # noqa: BLE001 - an unreadable session is not a match + return "unreadable" + if not isinstance(login, str) or not login: + return "unreadable" + return "match" if login == self._expected else "mismatch" + + +class LabelAgent: + """A rule-based stand-in for the repair model; it calls no model. + + It reads the live screen and proposes the button whose words look like a + save (``save``, ``create``, ``confirm``) nearest to where the recorded + control was. Self-repair's probes, the person and re-qualification decide + whether the fix is right. + """ + + dialect = "anthropic" + agent_id = "lifecycle-proof-label-agent" + requires_model_key = False + WORDS = ("save", "create", "confirm") + + def propose(self, request: Any) -> Any: + from openadapt_flow import vision + from openadapt_flow.repair.self_repair import RepairProposal + + lines = vision.ocr(request.live_png) + rx, ry = request.recorded_click_point + best = None + for line in lines or []: + text = str(getattr(line, "text", "") or "") + words = text.casefold().split() + if not any(w in words for w in self.WORDS): + continue + if request.recorded_label and text.strip() == request.recorded_label: + continue + x, y, w, h = line.region + cx, cy = x + w // 2, y + h // 2 + distance = (cx - rx) ** 2 + (cy - ry) ** 2 + if best is None or distance < best[0]: + best = (distance, cx, cy, text) + if best is None: + return None + _distance, cx, cy, text = best + return RepairProposal( + action={"action": "left_click", "coordinate": [int(cx), int(cy)]}, + model_calls=0, + note=f"the recorded control is gone; '{text}' reads as the save", + ) + + +# -- one item -------------------------------------------------------------------------- + + +class Item: + """One referral under the configuration, in this process.""" + + def __init__( + self, + ctx: dict[str, Any], + key: str, + run_dir: Path, + *, + pipeline: Any = None, + verifier_wrapper: Any = None, + params: Optional[dict[str, str]] = None, + is_retry: bool = False, + ) -> None: + self.ctx = ctx + self.key = key + self.run_dir = run_dir + # A soak item brings its own values; the proof's referrals are named. + self.params = dict(params) if params is not None else referral_params(key) + self.pipeline = pipeline + self.verifier_wrapper = verifier_wrapper + self.is_retry = is_retry + + def approval_gate(self, bundle: Path, page: Any) -> Any: + from openadapt_flow.approval_mode.gate import ApprovalGate + from openadapt_flow.approval_mode.item_approval import ItemApprovalStore + from openadapt_flow.approval_mode.model import ( + DESKTOP_LIST_WITH_HEADER, + ItemContext, + ) + + ctx = self.ctx + store = ItemApprovalStore(self.run_dir) + ctx["person"].watch(store) + + return ApprovalGate( + "problems_only", + record=ctx["switch_record"], + log=ctx["switch_log"], + pinned_status_keys=ctx["keys"]["status_keys"], + fetch_status=LocalStatusAuthority(ctx["keys"]["status_private"]), + environment_digest=lambda: ctx["environment_digest"], + runner_id=RUNNER_ID, + signed_in_user=OpenEMRSignedInUser(page, DEDICATED_USER), + dedicated_user_key=bytes.fromhex(ctx["keys"]["user_hmac_key"]), + item=ItemContext( + channel=DESKTOP_LIST_WITH_HEADER, + header_maps_every_input=True, + rows_well_formed=True, + values_pass_types=True, + is_retry=self.is_retry, + allow_repeat=False, + record_key_seen_recently=False, + caller_supplied_configuration=False, + holds_switch_lease=True, + ), + approval_store=store, + approval_wait_s=600.0, + sleep=ctx["person"].sleep, + policy_name=POLICY, + ) + + def authorization(self, workflow: Any, bundle: Path, verifier: Any) -> Any: + from openadapt_flow.deployment import DeploymentConfig, PolicySection + from openadapt_flow.execution_profiles import ( + ExecutionProfile, + execution_profile_contract, + ) + from openadapt_flow.repair.readmission import lineage_check + from openadapt_flow.run_gate import ( + build_runtime_authorization, + evaluate_run_gate, + ) + + gate = evaluate_run_gate( + workflow, + bundle_dir=bundle, + deployment=DeploymentConfig(policy=PolicySection(policy=POLICY)), + effect_verifier=verifier, + profile_contract=execution_profile_contract(ExecutionProfile.REGULATED), + effective_durable=True, + effective_require_settled=True, + pinned_content_digest=self.ctx["pinned_digest"], + pinned_lineage=lineage_check( + self.ctx["store"], key_dir=self.ctx["keys"]["admission_key_dir"] + ), + ) + _write( + self.run_dir.parent / f"{self.run_dir.name}-gate.json", + { + "passed": gate.passed, + "failed": [ + {"gate": g.gate, "detail": g.detail} + for g in gate.gates + if not g.passed + ], + "manifest": next( + (g.detail for g in gate.gates if g.gate == "manifest"), None + ), + }, + ) + if not gate.passed: + raise RuntimeError("run gate refused: " + gate.render()[-600:]) + return build_runtime_authorization(workflow, gate, params=self.params) + + def replayer_kwargs(self, workflow: Any) -> dict[str, Any]: + return dict( + durable=True, + checkpoint_key=self.ctx["keys"]["checkpoint_key"], + require_settled=True, + pixel_verify_enabled=any( + s.anchor is not None and s.anchor.identifier_crop + for s in workflow.steps + ), + **self.ctx["lookup"], + ) + + def verifier(self) -> Any: + verifier = self.ctx["hooks"].make_verifier(self.params) + return self.verifier_wrapper(verifier) if self.verifier_wrapper else verifier + + def run(self, bundle: Path) -> Any: + from openadapt_flow.ir import Workflow + from openadapt_flow.runtime import Replayer + + workflow = Workflow.load(bundle) + backend, close = self.ctx["hooks"].open_session() + try: + verifier = self.verifier() + replayer = Replayer( + backend, + effect_verifier=verifier, + governed_authorization=self.authorization(workflow, bundle, verifier), + approval_gate=self.approval_gate(bundle, backend.page), + readback_pipeline=self.pipeline, + **self.replayer_kwargs(workflow), + ) + return replayer.run( + workflow.model_copy(deep=True), + params=dict(self.params), + bundle_dir=bundle, + run_dir=self.run_dir, + execution_target_kind="web", + execution_origin=self.ctx["config"].app.origin, + execution_entry_url=backend.page.url, + run_id=f"lifecycle-proof-{self.key}-{int(time.time())}", + ) + finally: + if self.pipeline is None: + close() + else: + self.ctx.setdefault("closers", []).append(close) + + +def _summary(report: Any) -> dict[str, Any]: + save = report.results[-1] if report.results else None + return { + "execution_outcome": report.execution_outcome, + "transaction_outcome": report.transaction_outcome, + "execution_profile": report.execution_profile, + "success": report.success, + "model_calls": report.model_calls, + "bundle_content_digest": report.bundle_content_digest, + "approval": ( + report.approval.model_dump( + mode="json", + include={"mode", "decision", "decision_reason", "needs_person"}, + ) + if getattr(report, "approval", None) is not None + else None + ), + "save_step": save.step_id if save else None, + "save_effect_verified": save.effect_verified if save else None, + "save_api_fallback": save.api_fallback if save else None, + "readback": [ + r for r in (save.effect_results if save else []) if "[pipelined]" in r + ][:2], + "halt": report.halt.reason[:300] if report.halt else None, + } + + +# -- the phases ------------------------------------------------------------------------ + + +def _context(out: Path, keys_dir: Path, ledger: Ledger) -> dict[str, Any]: + from benchmark.lifecycle_proof.fixture import ProofApp + + app = ProofApp() + keys = _keys(keys_dir) + _env(app, keys) + config, hooks, lookup = _config_and_hooks() + ctx: dict[str, Any] = { + "app": app, + "keys": keys, + "config": config, + "hooks": hooks, + "lookup": lookup, + "ledger": ledger, + "person": ScriptedPerson(ledger), + "store": out / "repair-store", + "out": out, + } + admission = out / "admission" / "admission.json" + if admission.exists(): + from openadapt_flow.approval_mode.switch import SwitchLog, SwitchRecord + + doc = _read(admission) + ctx["pinned_digest"] = doc["pinned_digest"] + ctx["bundle"] = Path(doc["bundle"]) + ctx["environment_digest"] = doc["environment_digest"] + switch = out / "switch" / "switch.json" + if switch.exists(): + from openadapt_flow.approval_mode.switch import SwitchLog, SwitchRecord + + state = _read(switch) + ctx["switch_record"] = SwitchRecord.model_validate(state["record"]) + ctx["switch_log"] = SwitchLog(Path(state["log"])) + current = out / "current-bundle.json" + if current.exists(): + ctx["bundle"] = Path(_read(current)["bundle"]) + return ctx + + +def phase_admit(ctx: dict[str, Any], source: Path, trials: int) -> None: + from openadapt_flow.ir import Workflow + from openadapt_flow.qualify.campaign import qualify + + out, ledger = ctx["out"], ctx["ledger"] + t0 = time.time() + adm = out / "admission" + adm.mkdir(parents=True, exist_ok=True) + sealed = adm / "encrypted" + if not sealed.exists(): + # Encrypted at rest for the Regulated profile: workflow.json and every + # template are encrypted with the bundle key. A whole-bundle sealed set + # (``openadapt-flow seal``) can't run with an approval gate yet, since + # the approval requests the person sees are written for the approval + # surface to read; see this directory's README. A benchmark harness's + # notes next to the program (``benchmark-contract.json``) stay out. + from openadapt_flow.bundle_sealing import _invalidate_prior_certification + + shutil.copytree( + source, sealed, ignore=shutil.ignore_patterns("benchmark-contract.json") + ) + workflow = Workflow.load(sealed) + invalidated = _invalidate_prior_certification( + workflow, reason="encrypted at rest for the Regulated profile" + ) + workflow.save(sealed, encrypt=True, key=ctx["keys"]["bundle_key"]) + encrypted = Workflow.load(sealed, key=ctx["keys"]["bundle_key"]) + ledger.add( + "admit.encrypt", + source_digest=Workflow.load(source).manifest.content_digest, + encrypted_digest=encrypted.manifest.content_digest, + encrypted=encrypted.encrypted, + certification_invalidated=invalidated, + ) + ctx["app"].fx.reset() + qual = qualify( + sealed, + ctx["config"], + out=adm / "qualification", + trials=trials, + certify=POLICY, + hooks=ctx["hooks"], + log=lambda line: ledger.add("admit.qualify.log", line=line[:300]), + ) + bundle = Path(qual.bundle_dir) + workflow = Workflow.load(bundle) + digest = workflow.manifest.content_digest + ledger.add( + "admit.qualify", + passed=qual.passed, + certified=qual.certified, + digest=digest, + rows=[ + { + k: r.get(k) + for k in ("case_id", "trial", "expected", "transaction_outcome") + } + for r in qual.rows + ], + seconds=round(time.time() - t0, 1), + ) + if not (qual.passed and qual.certified): + raise SystemExit("qualification did not certify the sealed bundle") + environment = qual.environment_digest or "" + if not environment.startswith("sha256:"): + environment = "sha256:" + environment + _write( + adm / "admission.json", + { + "pinned_digest": digest, + "bundle": str(bundle), + "qualification_dir": str(adm / "qualification"), + "policy": POLICY, + "profile": "regulated", + "environment_digest": environment, + "qualification_trials": trials, + "qualification_result": qual.result, + }, + ) + ctx.update(pinned_digest=digest, bundle=bundle, environment_digest=environment) + ledger.add("admit", pinned_digest=digest, seconds=round(time.time() - t0, 1)) + + +def _passing_screen_facts(qualification_dir: Path) -> tuple[dict, dict]: + """The rung floor and dialog dismissals of the passing cases. + + What Cloud records on a switch: per step, the weakest resolution rung a + VERIFIED representative case used, and the dialogs it dismissed. + """ + + from openadapt_flow.approval_mode.switch import RUNG_ORDER + from openadapt_flow.ir import RunReport + + floor: dict[str, str] = {} + dialogs: dict[str, set[str]] = {} + pattern = "cases/representative/trial-*/run/report.json" + for path in sorted(qualification_dir.glob(pattern)): + report = RunReport.model_validate_json(path.read_text()) + if report.execution_outcome != "VERIFIED": + continue + for result in report.results: + for resolution in (result.resolution, result.drag_end_resolution): + if resolution is None or resolution.rung == "grounder": + continue + prior = floor.get(result.step_id) + if prior is None or RUNG_ORDER.index( + resolution.rung + ) > RUNG_ORDER.index(prior): + floor[result.step_id] = resolution.rung + for action in result.interstitial_actions: + dialogs.setdefault(result.step_id, set()).add(action.interstitial) + return floor, {k: tuple(sorted(v)) for k, v in dialogs.items()} + + +def phase_switch(ctx: dict[str, Any]) -> None: + """Open the problems-only switch record for the admitted bundle.""" + + from openadapt_flow.approval_mode.gate import dedicated_user_reference + from openadapt_flow.approval_mode.switch import SwitchLog, SwitchRecord + from openadapt_flow.qualify.result import verifier_identity_of + + out = ctx["out"] + doc = _read(out / "admission" / "admission.json") + current = out / "current-bundle.json" + if current.exists(): + # A re-admitted repair: the switch Cloud issues for the new version, + # from the passing cases of its own re-qualification. + doc = {**doc, **_read(current)} + digest = doc["digest"] + else: + digest = doc["pinned_digest"] + floor, dialogs = _passing_screen_facts(Path(doc["qualification_dir"])) + verifier = ctx["hooks"].make_verifier({}) + opened = int(time.time()) + record = SwitchRecord( + switch_id=f"switch-lifecycle-proof-{digest[:12]}-{opened}", + org_id="org-lifecycle-proof", + workflow_id="workflow-openemr-referral", + runner_id=RUNNER_ID, + bundle_content_digest=digest, + environment_digest=doc["environment_digest"], + verifier_identities=( + verifier_identity_of(ctx["config"].verifier.verifier, verifier), + ), + dedicated_user_ref=dedicated_user_reference( + DEDICATED_USER, bytes.fromhex(ctx["keys"]["user_hmac_key"]) + ), + rung_floor=floor, + allowed_interstitials=dialogs, + ) + log_path = out / "switch" / f"log-{opened}.jsonl" + log = SwitchLog.open_new(log_path, record) + _write( + out / "switch" / "switch.json", + {"record": record.model_dump(mode="json"), "log": str(log_path)}, + ) + ctx.update(switch_record=record, switch_log=log) + ctx["ledger"].add( + "switch.open", + switch_id=record.switch_id, + bundle=digest, + rung_floor=floor, + dialogs=dialogs, + ) + + +def _oracle(ctx: dict[str, Any], key: str) -> int: + email = referral_params(key)["email"] + count = ctx["app"].charts_for(email) + ctx["ledger"].add("oracle", item=key, charts=count) + return count + + +def phase_batch(ctx: dict[str, Any], keys: tuple[str, ...], name: str) -> list[Any]: + from openadapt_flow.runtime.readback_pipeline import ReadbackPipeline + + out, ledger = ctx["out"], ctx["ledger"] + base, attempt = out / name, 1 + while base.exists(): + attempt += 1 + base = out / f"{name}-{attempt}" + pipeline = ReadbackPipeline() + handoffs = [] + reports = [] + try: + for key in keys: + item = Item(ctx, key, base / key, pipeline=pipeline) + t0 = time.time() + report = item.run(ctx["bundle"]) + handoff = pipeline.take() + ledger.add( + f"{name}.item", + item=key, + returned_s=round(time.time() - t0, 1), + deferred=handoff is not None, + inline_reason=pipeline.inline_reason, + ) + if handoff is not None: + handoffs.append((key, handoff)) + reports.append((key, report)) + for key, handoff in handoffs: + handoff.settled.result(timeout=600) + finally: + pipeline.close() + for close in ctx.pop("closers", []): + close() + results = [] + for key, report in reports: + summary = _summary(report) + summary["charts"] = _oracle(ctx, key) + ledger.add(f"{name}.result", item=key, **summary) + results.append(summary) + return results + + +def _slow_check(verifier: Any, marker: Path) -> Any: + """The same record check, made slow, so the kill lands inside its window. + + The verifier object itself is kept: a wrapper would change its identity, + and the problems-only gate refuses a record check that isn't the one its + switch record names. + """ + + check = verifier.verify + + def verify(*args: Any, **kwargs: Any) -> Any: + marker.write_text(str(time.time())) + time.sleep(120) + return check(*args, **kwargs) + + verifier.verify = verify + return verifier + + +def phase_crash(ctx: dict[str, Any], keys_dir: Path) -> dict[str, Any]: + """Run one item in a child process and kill it inside the read-back.""" + + out, ledger = ctx["out"], ctx["ledger"] + # A durable run path is claimed once, so a second attempt needs its own. + base, attempt = out / "crash", 1 + while base.exists(): + attempt += 1 + base = out / f"crash-{attempt}" + run_dir = base / CRASH + marker = base / "readback-started" + marker.parent.mkdir(parents=True) + child = subprocess.Popen( + [ + sys.executable, + "-m", + "benchmark.lifecycle_proof.run", + "_crash_child", + "--out", + str(out), + "--keys", + str(keys_dir), + ], + cwd=str(FLOW), + env={**os.environ, "LIFECYCLE_PROOF_CRASH_DIR": str(base)}, + ) + deadline = time.time() + 900 + while not marker.exists() and child.poll() is None and time.time() < deadline: + time.sleep(0.5) + if not marker.exists(): + child.kill() + raise SystemExit("the crash item never reached its record check") + time.sleep(1.0) + os.kill(child.pid, signal.SIGKILL) + child.wait() + charts_at_kill = _oracle(ctx, CRASH) + from openadapt_flow.runtime.durable import CheckpointStore + + store = CheckpointStore(run_dir, key=ctx["keys"]["checkpoint_key"]) + pending = store.read_pending() + ledger.add( + "crash.killed", + item=CRASH, + charts=charts_at_kill, + pause_category=pending.category if pending else None, + deferred_check_held=bool(pending and pending.deferred_readback), + delivery_uncertainty=bool(pending and pending.delivery_uncertainty), + ) + report = _resume(ctx, CRASH, run_dir) + summary = _summary(report) + summary["charts"] = _oracle(ctx, CRASH) + summary["charts_at_kill"] = charts_at_kill + ledger.add("crash.resumed", item=CRASH, **summary) + return summary + + +def _resume( + ctx: dict[str, Any], + key: str, + run_dir: Path, + params: Optional[dict[str, str]] = None, +) -> Any: + from openadapt_flow.runtime import Replayer + from openadapt_flow.runtime.durable import CheckpointStore, resume + from openadapt_flow.runtime.durable.approval import issue_resume_approval + from openadapt_flow.runtime.durable.program_checkpoint import bundle_version + + store = CheckpointStore(run_dir, key=ctx["keys"]["checkpoint_key"]) + manifest, pending = store.read_manifest(), store.read_pending() + assert manifest is not None and pending is not None + # Resuming a stopped item is a problem a person decides. + approval = issue_resume_approval( + pending, + approver="lifecycle-proof-operator", + resolution="the runner stopped while the record check ran", + bundle_version=bundle_version(Path(manifest.bundle_dir)), + run_id=manifest.run_id, + workflow_name=manifest.workflow_name, + run_dir=run_dir, + ) + ctx["person"].touches += 1 + ctx["ledger"].add("person", action="resume", item=key) + item = Item(ctx, key, run_dir, params=params) + backend, close = ctx["hooks"].open_session() + try: + replayer = Replayer( + backend, + effect_verifier=item.verifier(), + **item.replayer_kwargs(_load(Path(manifest.bundle_dir))), + ) + return resume( + run_dir, replayer, approval=approval, key=ctx["keys"]["checkpoint_key"] + ) + finally: + close() + + +def _load(bundle: Path) -> Any: + from openadapt_flow.ir import Workflow + + return Workflow.load(bundle) + + +def _crash_child(ctx: dict[str, Any]) -> None: + from openadapt_flow.runtime.readback_pipeline import ReadbackPipeline + + base = Path(os.environ["LIFECYCLE_PROOF_CRASH_DIR"]) + marker = base / "readback-started" + pipeline = ReadbackPipeline() + item = Item( + ctx, + CRASH, + base / CRASH, + pipeline=pipeline, + verifier_wrapper=lambda v: _slow_check(v, marker), + ) + item.run(ctx["bundle"]) + time.sleep(600) # the parent kills this process inside the check + + +class ProofTarget: + """Self-repair's target: the item's first run under the configuration.""" + + def __init__(self, ctx: dict[str, Any], item: Item) -> None: + from openadapt_flow.repair.self_repair import ReplayTarget + + self.ctx, self.item = ctx, item + self._base = ReplayTarget( + self._open, + effect_verifier=item.verifier(), + policy=POLICY, + profile="regulated", + params=item.params, + execution_origin=ctx["config"].app.origin, + replayer_kwargs=item.replayer_kwargs(_load(ctx["bundle"])), + ) + self.effect_verifier = self._base.effect_verifier + + def _open(self, fault: Optional[str]) -> Any: + from openadapt_flow.repair.self_repair import AppSession + + backend, close = self.ctx["hooks"].open_session() + return AppSession(backend=backend, close=close) + + def open(self, fault: Optional[str] = None) -> Any: + return self._open(fault) + + def execute( + self, + workflow, + bundle_dir, + session, + run_dir, + *, + approval_gate=None, + gui_only=False, + ): # type: ignore[no-untyped-def] + if approval_gate is None and not gui_only: + # The item's own first run: the problems-only gate and the pin. + from openadapt_flow.runtime import Replayer + + item = Item( + self.ctx, self.item.key, Path(run_dir), params=self.item.params + ) + verifier = item.verifier() + replayer = Replayer( + session.backend, + effect_verifier=verifier, + governed_authorization=item.authorization( + workflow, bundle_dir, verifier + ), + approval_gate=item.approval_gate(bundle_dir, session.backend.page), + **item.replayer_kwargs(workflow), + ) + return replayer.run( + workflow.model_copy(deep=True), + params=dict(item.params), + bundle_dir=bundle_dir, + run_dir=run_dir, + execution_target_kind="web", + execution_origin=self.ctx["config"].app.origin, + execution_entry_url=session.backend.page.url, + ) + return self._base.execute( + workflow, + bundle_dir, + session, + run_dir, + approval_gate=approval_gate, + gui_only=gui_only, + ) + + +def _requalification(ctx: dict[str, Any], trials: int) -> Any: + """Re-qualify on the test copy: the same fixture, its data put back after.""" + + from openadapt_flow.qualify.campaign import qualify + from openadapt_flow.repair.readmission import Requalification + + app = ctx["app"] + + def run(*args: Any, **kwargs: Any) -> Any: + dump = app.dump() + ctx["ledger"].add("drift.requalify.start", candidate=str(args[0])) + try: + return qualify(*args, **kwargs) + finally: + app.restore(dump) + ctx["ledger"].add("drift.requalify.end") + + return Requalification( + config=ctx["config"], hooks=ctx["hooks"], trials=trials, run=run + ) + + +def phase_drift(ctx: dict[str, Any], trials: int, agent: Any) -> dict[str, Any]: + from openadapt_flow.repair.self_repair import ScreenAccess, SelfRepair + + out, ledger = ctx["out"], ctx["ledger"] + change = ctx["app"].relabel_save() + ledger.add("drift.app_change", change=change) + run_dir = out / "drift" / DRIFT + item = Item(ctx, DRIFT, run_dir) + repair = SelfRepair( + agent, + ProofTarget(ctx, item), + store=ctx["store"], + screen_access=ScreenAccess(enabled_by="lifecycle-proof (synthetic data only)"), + approval_wait_s=600.0, + requalification=_requalification(ctx, trials), + admission_key_dir=ctx["keys"]["admission_key_dir"], + sleep=ctx["person"].sleep, + ) + from openadapt_flow.approval_mode.item_approval import ItemApprovalStore + + ctx["person"].watch(ItemApprovalStore(run_dir)) + t0 = time.time() + result = repair.run(ctx["bundle"], run_dir) + evidence = result.evidence + summary = { + "status": result.status, + "reason": evidence.reason, + "halted_step": evidence.halted_step_id, + "readmitted_digest": evidence.readmitted_bundle_digest, + "lineage_hop": evidence.lineage_hop, + "approved_by": evidence.approved_by, + "stages": [(s.stage, s.passed, s.detail[:200]) for s in evidence.steps], + "resumed": _summary(result.report) if result.report is not None else None, + "seconds": round(time.time() - t0, 1), + } + summary["charts"] = _oracle(ctx, DRIFT) + ledger.add("drift.result", item=DRIFT, **summary) + if evidence.readmitted_bundle_digest: + bundle = ctx["store"] / "bundles" / evidence.readmitted_bundle_digest + requalified = sorted((run_dir / "self-repair").glob("requalify-*")) + _write( + out / "current-bundle.json", + { + "bundle": str(bundle), + "digest": evidence.readmitted_bundle_digest, + "qualification_dir": str(requalified[-1]) if requalified else "", + }, + ) + ctx["bundle"] = bundle + return summary + + +def main(argv: Optional[list[str]] = None) -> int: + parser = argparse.ArgumentParser(description=__doc__.splitlines()[0]) + parser.add_argument( + "phase", + choices=( + "up", + "admit", + "switch", + "batch", + "crash", + "drift", + "continue", + "all", + "_crash_child", + ), + ) + parser.add_argument("--out", type=Path, required=True) + parser.add_argument("--keys", type=Path, required=True) + parser.add_argument("--source", type=Path, default=DEFAULT_SOURCE) + parser.add_argument("--trials", type=int, default=1) + parser.add_argument("--repair-agent", default=None) + args = parser.parse_args(argv) + + out = args.out.resolve() + ledger = Ledger(out) + if args.phase == "up": + from benchmark.lifecycle_proof.fixture import ProofApp + + app = ProofApp() + how = app.bring_up(say=lambda m: ledger.add("up", line=m)) + ledger.add("up.done", how=how) + return 0 + ctx = _context(out, args.keys, ledger) + if args.phase == "_crash_child": + _crash_child(ctx) + return 0 + agent: Any = LabelAgent() + if args.repair_agent: + from openadapt_flow.cli_self_repair import load_agent + + agent = load_agent(args.repair_agent) + phases = ( + [args.phase] + if args.phase != "all" + else ["admit", "switch", "batch", "crash", "drift", "switch", "continue"] + ) + for phase in phases: + ledger.add("phase.start", phase=phase) + if phase == "admit": + phase_admit(ctx, args.source, args.trials) + elif phase == "switch": + phase_switch(ctx) + elif phase == "batch": + phase_batch(ctx, BATCH, "batch") + elif phase == "crash": + phase_crash(ctx, args.keys) + elif phase == "drift": + phase_drift(ctx, args.trials, agent) + elif phase == "continue": + phase_batch(ctx, CONTINUE, "continue") + ledger.add("phase.end", phase=phase, person_touches=ctx["person"].touches) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/packages/flow/benchmark/lifecycle_proof/verify.yaml b/packages/flow/benchmark/lifecycle_proof/verify.yaml new file mode 100644 index 000000000..40d01a25a --- /dev/null +++ b/packages/flow/benchmark/lifecycle_proof/verify.yaml @@ -0,0 +1,65 @@ +# Qualify the OpenEMR patient-registration workflow on the local fixture. +# +# PYTHONPATH=. openadapt-flow qualify path/to/bundle \ +# --verify benchmark/openemr_local/verify.yaml --out runs/openemr-qual \ +# --certify clinical-write +# +# Made-up patients only. See docs/QUALIFY_A_WORKFLOW.md. +schema_version: openadapt.verify/v1 +environment_id: openemr-local-fixture-7c96c8eefe46 +minimum_effect_strength: independent_system_of_record + +app: + target: web + name: OpenEMR (local fixture, made-up patients) + url: ${OPENEMR_UI_URL:-http://127.0.0.1:9301} + version: openemr@7c96c8eefe46 (benchmark/openemr_local lock) + # OpenEMR's sign-in opens the form through its tab shell, and the fixture + # resets by restoring a database snapshot; both are small functions. + session: benchmark.openemr_local.qualify_hooks:open_session + reset: + python: benchmark.openemr_local.qualify_hooks:reset + +# Read the patient back through OpenEMR's REST API with a separate, +# read-only OAuth client. This is the existing RestRecordVerifier. +verifier: + kind: rest + base_url: ${OPENEMR_API_URL:-https://127.0.0.1:9300} + records_path: /apis/default/api/patient?_limit=1000 + records_key: data + session: benchmark.openemr_local.qualify_hooks:oracle_session + +# What the save writes; expands to the effect contract list (one +# record_written plus a field_equals per field). A bare value is a parameter. +record: + name: patient + match: [email, lname] + duplicate_key: email # OpenEMR has no idempotency column; one chart per email + # The save adds exactly this chart and nothing else (problems_only needs it). + exact_new_set: true + identity_field: uuid + fields: + email: email + lname: lname + title: title + fname: fname + DOB: DOB + sex: sex + street: street + city: city + # The form shows the state's label and the record stores its code. This + # program is admitted for Massachusetts referrals; any other state fails closed. + state: {param: state_label, map: {Massachusetts: MA}} + postal_code: postal_code + phone_home: phone_home + country_code: country_code + +save_step: auto + +inputs: + source: recorded + +campaign: + id: openemr-local-patient-registration-v2 + trials: 3 + policy: clinical-write diff --git a/packages/flow/docs/PILOT_MEASUREMENT.md b/packages/flow/docs/PILOT_MEASUREMENT.md new file mode 100644 index 000000000..6b6bd7eb6 --- /dev/null +++ b/packages/flow/docs/PILOT_MEASUREMENT.md @@ -0,0 +1,140 @@ +# Pilot measurement protocol + +Internal. This is how we measure a pilot at a customer site, and how the lifecycle +soak (`benchmark/lifecycle`) records the same numbers on our own fixture. It is not +customer-facing copy. + +## The question + +Does OpenAdapt remove work for the people who own the workflow? Stopping safely is +necessary but not enough. A pilot succeeds when the operators spend fewer minutes +per verified item than they spend doing the work by hand, over weeks, including +every pause, approval, reconciliation and repair. + +## The headline number + +**Verified completed items per operator-minute**, on one production configuration, +over the whole pilot. + +- **Verified completed item.** An item whose final state an independent check + confirms, and that no person had to enter or fix by hand. The check is the + customer's own system of record (a read-only query, a report, or a sampled audit), + never OpenAdapt's own verdict. +- **Operator minutes.** Every minute a person spends because of the automation: + - approvals the approval mode asks for; + - stops: reading the reason, looking at the record, deciding; + - reconciliations: a save may have landed, and a person checks; + - resumes after a durable pause; + - repair reviews and re-admissions after an app change; + - items the person finishes or redoes by hand. +- **The baseline.** The same people's minutes per item by hand, measured on the same + item types before the pilot starts (see below). + +Report it at two scopes: run only, and including setup (teach, compile, qualify, +admit). Report beside it, never folded in: + +| Number | Definition | +| --- | --- | +| False stops per 100 items | Stops on items whose data was right and where nothing was wrong in the app. | +| Operator minutes per stop | All minutes charged to stopped items, divided by the number of stopped items. | +| Silent wrongs | Items OpenAdapt called done that the independent check found wrong. The target is zero. Every one is investigated. | +| Maintenance minutes per app change | Minutes from the first stop an app release caused until the program verifies items again: stops, repair review, re-qualification attended time, re-admission. | +| Time to running again | Wall time from an app change to the next verified item. Most of it is machine time (re-qualification); report it separately from operator minutes. | +| Onboarding hours | Teach, compile review, qualification review and admission, per workflow. | + +## Before the pilot + +1. **Pick one configuration and freeze it.** Write down the profile, the approval + mode, durability, read-back, the repair route and the pinned bundle digest. A + configuration change during the pilot starts a new measurement period. +2. **Measure the manual baseline.** For 20 to 30 items of each item type, record + how long the operator takes by hand: from opening the source document to the + saved record, including any lookup (duplicate search, eligibility). Use screen + time from Desktop's recorder or a stopwatch log, not estimates. Keep the + per-item times, not only the mean. +3. **Agree on the independent check.** Name the query or report that decides + whether an item is right, who runs it, and how often. For a sampled audit, + agree the sample size up front. +4. **Agree on what counts as an exception.** Duplicates, missing data and items + the business returns to the sender are right stops, not false stops. List the + exception types with the customer before day one. + +## During the pilot + +Record every operator touch with a timestamp at both ends: when the request +reached the person and when they answered. Desktop and the decision portal record +the request and answer times for approvals and stops. For the rest (a +reconciliation done in the app, a hand entry), the operator logs start and end in +the exception inbox. + +Use measured times, not the cost model, wherever a timestamp exists. The time a +request waits in the queue is not operator time; the time the person works on it +is. When only the answer time exists, charge the cost model's per-touch number and +mark the row as estimated. + +Weekly, record: + +- items received, items verified, items stopped (by reason), items done by hand; +- operator minutes, by touch kind; +- app releases or configuration changes, with the date; +- the independent check's result for the week. + +## After an app change + +App releases are where maintenance shows up. For each release that stops items: + +1. Note the date and what changed (release notes, or what the stop showed). +2. Count the items that stopped before the program ran again. +3. Record each recovery step and who did it: + - the stop review; + - the repair proposal and its review (for a relabeled control, the relabel + repair proves only the label changed; see `openadapt_flow/repair/relabel.py`); + - re-qualification on the test copy (machine time); + - the re-admission (a person's approval; under a production qualification + admission, the qualification authority's signature); + - the first verified item afterwards. +4. Charge the operator minutes and the wall time separately. + +Under a qualified or managed run, self-repair stays refused by design +(`docs/COMPATIBILITY.md`). The path back is re-qualification plus a fresh admission +from the authority. Measure how long that takes end to end; that wait is a real +cost of the configuration. + +## Over weeks + +The pilot lasts long enough to see at least one app release, and preferably four +weeks or more. Plot, per week: + +- verified items per operator-minute (run only); +- false stops per 100 items; +- maintenance minutes. + +A configuration that removes work shows a headline above the manual baseline that +holds after the first release, with maintenance minutes small next to the minutes +saved. + +## How the soak records the same numbers + +`benchmark/lifecycle` is a synthetic customer on the local OpenEMR fixture. + +- `workload.py` writes the item stream and its ground truth (exception types and + the right outcome of each) before the run. +- `apps.py` applies every event: other clerks, forced logouts, slow and failed + saves, and app changes (`--drift KIND@SEQ`, for example `relabel_save@26`). +- `oracle.py` judges every item by a direct SQL read of the database, never by + the product's verdict. +- `operator.py` answers every request from the ground truth and a look at the app. + Each answer is charged from `cost_model.py`, which is versioned. No real operator + timings exist yet, so every charge is an assumption, and the report shows x0.5 + and x2 bands. +- `metrics.py` computes the headline (`headline` in `results.json`) and its parts + from `ledger.jsonl` only. `python -m benchmark.lifecycle.report <run dir>` + recomputes them. +- `production_arm.py` runs the production configuration (Regulated, + `problems_only`, durable, pipelined read-back, repair on) per item, with + `recovery: "relabel"` for the relabel repair path. + +At a customer, replace the oracle with the agreed independent check, the scripted +operator with the real operators and their measured times, and the seeded stream +with the real queue. Keep the ledger format, so the same `metrics.py` computes the +same numbers. diff --git a/packages/flow/openadapt_flow/repair/relabel.py b/packages/flow/openadapt_flow/repair/relabel.py new file mode 100644 index 000000000..1b30bb033 --- /dev/null +++ b/packages/flow/openadapt_flow/repair/relabel.py @@ -0,0 +1,488 @@ +"""Repair a control the vendor relabeled, with proof that only its label changed. + +When an app release renames a button (for example "Confirm Create New Patient" +becomes "Save new patient"), the run stops before the save: the ladder finds +the same control, but its structured identity no longer matches the recorded +one. Self-repair never repairs a failed identity check, because in general it +can't tell a renamed control from a different control. This module handles +the one case where it can. + +The recorded structured identity is a salted hash, so the recorded label is +not readable from it. But the bundle keeps the recorded label in plaintext +(the step's intent and its anchor's OCR text). :func:`propose` rebuilds the +recorded identity from the observed one with only the label swapped back, and +checks it against the recorded hash. A match proves that the control id, the +form and the control kind are all unchanged, and that only the label differs. + +Everything else is refused: + +- the halted step acted, or any step before it delivered input to a save or + showed an effect (a step that may have written is never retried); +- the identity check failed on anything but the structured tier, or names a + record field (a parameter) rather than a control; +- the ladder found the target below the structural rung (a structural + handle always names exactly one control); +- the rebuilt identity doesn't match the recorded hash under any recorded + label. + +A proposal is never applied on its own. :func:`build` writes a candidate +bundle with the new label in the step's identity template, intent and OCR +text, and nothing else changed. :func:`readmit` then re-qualifies the +candidate on a test copy with the parent's own campaign, asks a person once +(the review shows the old and new label and the re-qualification), and signs +the lineage that lets a pin to the parent accept the certified copy +(:mod:`openadapt_flow.repair.readmission`). Any failure leaves the parent +pinned and saves nothing. + +A production qualification admission and a managed dispatch are signed +outside this machine, so their runs stay refused (docs/COMPATIBILITY.md). +""" + +from __future__ import annotations + +import json +import shutil +import time +from dataclasses import dataclass, field +from pathlib import Path +from typing import Any, Callable, Optional + +from openadapt_flow.ir import RunReport, Step, Workflow + +#: Only a control: an identity naming a record field is never relabeled. +_CONTROL_KINDS = frozenset({"action"}) +#: The identity key that holds the visible label. +_LABEL_KEY = "label" + + +class RelabelRefused(RuntimeError): + """The relabel repair can't go ahead; nothing was changed or saved.""" + + +@dataclass(frozen=True) +class RelabelProposal: + """A control whose label changed, and the proof that nothing else did.""" + + step_id: str + old_label: str + new_label: str + #: The observed structured identity, as the run read it (no record values: + #: only the control's id, kind, form path and label). + observed_identity: str + #: Every key of the identity except the label, unchanged by proof. + unchanged: dict[str, str] + + def summary(self) -> str: + return ( + f"{self.step_id}: the control now reads {self.new_label!r} instead of " + f"{self.old_label!r}; its id, kind and form are unchanged (the " + "recorded identity hash matches with only the label swapped back)" + ) + + +@dataclass +class RelabelReview: + """What the person sees before approving a relabel repair.""" + + proposal: RelabelProposal + parent_digest: str + certified_digest: str + requalification: dict[str, Any] + + +@dataclass +class RelabelResult: + """The outcome of :func:`readmit`.""" + + status: str # "readmitted" | "declined" | "refused" + reason: str = "" + bundle_dir: Optional[Path] = None + digest: Optional[str] = None + lineage: Optional[dict[str, Any]] = None + approved_by: Optional[str] = None + #: Machine and person seconds, by stage, for the operator-time ledger. + timings: dict[str, float] = field(default_factory=dict) + + +# -- propose --------------------------------------------------------------------------- + + +def _quoted(text: str) -> Optional[str]: + start, end = text.find("'"), text.rfind("'") + if 0 <= start < end: + return text[start + 1 : end] + return None + + +def _recorded_labels(step: Step) -> list[str]: + """Every plaintext label the bundle recorded for this step, in order.""" + + anchor = step.anchor + found: list[str] = [] + for label in ( + anchor.ocr_text if anchor is not None else None, + _quoted(step.intent or ""), + ( + anchor.structural.name + if anchor is not None and anchor.structural is not None + else None + ), + ): + if label and label not in found: + found.append(label) + return found + + +def _certifying_policy(workflow: Workflow) -> Any: + """The policy the bundle is certified under, as the approval gate reads it. + + A step the certified qualification classified as not saving (a button + that opens a duplicate check, say) counts as a save without it. + """ + + provenance = workflow.manifest.provenance if workflow.manifest else None + if provenance is None or not provenance.certified or not provenance.policy_name: + return None + from openadapt_flow.policy import load_policy + + try: + return load_policy(provenance.policy_name) + except Exception: # noqa: BLE001 - an unknown policy proves nothing + return None + + +def propose(report: RunReport, workflow: Workflow) -> "RelabelProposal | str": + """A relabel proposal for this halt, or why it isn't one.""" + + from openadapt_flow.run_gate import is_consequential + from openadapt_flow.runtime.identity_template import verify_structured_template + + steps = {step.id: step for step in workflow.steps} + policy = _certifying_policy(workflow) + for result in report.results: + step = steps.get(result.step_id) + if step is None: + continue + if result.delivery_attempted and is_consequential( + step, workflow, certifying_policy=policy + ): + return f"input reached {step.id}, a step that saves; never repaired" + for item in result.effect_evidence: + if item.observed_effect not in (None, "absent"): + return f"{step.id} has an observed effect; never repaired" + if report.halt is None: + return "the run did not halt at a step" + halted = next( + (r for r in reversed(report.results) if not r.ok and not r.skipped), None + ) + if halted is None or halted.step_id != report.halt.state_id: + return "the report's halt does not name a failed step" + step = steps.get(halted.step_id) + if step is None or step.anchor is None: + return "the halted step has no on-screen target" + if halted.delivery_attempted is not False: + return f"input may have reached {step.id}; only a step that never acted is repaired" + identity = halted.identity + if identity is None or identity.status != "mismatch": + return f"{step.id} did not stop on its identity check" + if identity.mode != "structured" or identity.param is not None: + return f"{step.id}'s identity check failed outside the structured tier" + resolution = halted.resolution + handle = resolution.structural_handle if resolution is not None else None + if resolution is None or resolution.rung != "structural" or handle is None: + return f"{step.id}'s target was not found on the structural rung" + template = step.anchor.identity_template + if template is None or not template.structured: + return f"{step.id} has no recorded structured identity to compare" + if template.structured_params: + return f"{step.id}'s identity carries a record value; never relabeled" + observed = identity.observed or "" + try: + live = json.loads(observed) + except ValueError: + return f"{step.id}'s observed identity is not a structured control" + if ( + not isinstance(live, dict) + or not all(isinstance(v, str) for v in live.values()) + or str(live.get("target_kind", "")) not in _CONTROL_KINDS + or not live.get(_LABEL_KEY) + ): + return f"{step.id}'s observed identity is not a labeled control" + new_label = live[_LABEL_KEY] + encoded = json.dumps(new_label) + if observed.count(encoded) != 1: + return f"{step.id}'s observed label can't be isolated" + for old_label in _recorded_labels(step): + if old_label == new_label: + continue + rebuilt = observed.replace(encoded, json.dumps(old_label)) + check = verify_structured_template(template, rebuilt) + if check is not None and check.status == "verified": + return RelabelProposal( + step_id=step.id, + old_label=old_label, + new_label=new_label, + observed_identity=observed, + unchanged={k: v for k, v in live.items() if k != _LABEL_KEY}, + ) + return ( + f"{step.id}'s control changed more than its label (no recorded label " + "matches the recorded identity)" + ) + + +# -- build ----------------------------------------------------------------------------- + + +def _relabeled_template(template: Any, observed: str) -> Any: + from openadapt_flow.runtime.identity_template import build_identity_template + + fresh = build_identity_template( + None, structured_identity=observed, salt_hex=template.salt + ) + assert fresh is not None and fresh.structured + signals = { + k: v + for k, v in (template.signal_hashes or {}).items() + if not k.startswith("structured|") + } + signals.update( + { + k: v + for k, v in (fresh.signal_hashes or {}).items() + if k.startswith("structured|") + } + ) + return template.model_copy( + update={"structured": fresh.structured, "signal_hashes": signals} + ) + + +def build( + bundle_dir: Path | str, + proposal: RelabelProposal, + out_dir: Path | str, + *, + key: Optional[str] = None, +) -> Path: + """Write the candidate bundle: the new label, and nothing else changed. + + The candidate is uncertified; only :func:`readmit` can certify and admit + it. + """ + + from openadapt_flow.repair.self_repair import _uncertify_patch + + bundle_dir, out_dir = Path(bundle_dir), Path(out_dir) + workflow = Workflow.load(bundle_dir, key=key) if key else Workflow.load(bundle_dir) + patched = workflow.model_copy(deep=True) + steps = list(patched.steps) + index = next((i for i, s in enumerate(steps) if s.id == proposal.step_id), None) + if index is None: + raise RelabelRefused(f"the bundle has no step {proposal.step_id}") + step = steps[index] + anchor = step.anchor + if anchor is None or anchor.identity_template is None: + raise RelabelRefused(f"{step.id} has no identity template") + new_anchor = anchor.model_copy( + update={ + "identity_template": _relabeled_template( + anchor.identity_template, proposal.observed_identity + ), + "ocr_text": ( + proposal.new_label + if anchor.ocr_text == proposal.old_label + else anchor.ocr_text + ), + } + ) + steps[index] = step.model_copy( + update={ + "anchor": new_anchor, + "intent": (step.intent or "").replace( + f"'{proposal.old_label}'", f"'{proposal.new_label}'" + ), + } + ) + patched.steps = steps + _uncertify_patch(patched) + if out_dir.exists(): + shutil.rmtree(out_dir) + shutil.copytree( + bundle_dir, out_dir, ignore=shutil.ignore_patterns("repair", "manifest.json") + ) + patched.save(out_dir, encrypt=bool(workflow.encrypted), key=key) + return out_dir + + +# -- re-qualify, a person's one approval, signed lineage ------------------------------ + + +def _rows(result: Any) -> list[dict[str, Any]]: + return [ + {k: row.get(k) for k in ("case_id", "trial", "expected", "transaction_outcome")} + for row in (getattr(result, "rows", None) or []) + if isinstance(row, dict) + ] + + +def _campaigns(rows: list[dict[str, Any]]) -> tuple[Any, Any]: + """The re-qualification's cases as the store's replay and fault campaigns.""" + + from openadapt_flow.repair.candidate import CampaignCaseResult, CampaignResult + + def campaign(kind: str, picked: list[dict[str, Any]]) -> Any: + cases = [ + CampaignCaseResult( + label=f"{r.get('case_id')}#{r.get('trial')}"[:128], + kind=str(r.get("case_id") or "case")[:64], + passed=True, + detail=f"{r.get('transaction_outcome')} as expected"[:512], + ) + for r in picked + ] + return CampaignResult( + campaign=kind, # type: ignore[arg-type] + passed=bool(cases), + total=len(cases), + failed=0, + cases=cases, + ) + + replay = [r for r in rows if r.get("case_id") == "representative"] + fault = [r for r in rows if r.get("case_id") != "representative"] + return campaign("replay", replay), campaign("fault", fault) + + +def readmit( + *, + parent_bundle: Path | str, + candidate_bundle: Path | str, + proposal: RelabelProposal, + store: Any, + requalification: Any, + ask_person: Callable[[RelabelReview], tuple[str, str]], + work_dir: Path | str, + evidence_run_dir: Optional[Path | str] = None, + key_dir: Optional[Path] = None, + clock: Callable[[], float] = time.monotonic, +) -> RelabelResult: + """Re-qualify the candidate, ask a person once, and sign the lineage. + + ``ask_person(review)`` returns ``(decision, approver_id)``, where decision + is ``"approve"`` or ``"decline"``. It is asked only after the candidate + passed its parent's whole campaign on the test copy. ``store`` is the + :class:`~openadapt_flow.repair.lifecycle.RepairStore` that holds both + bundles and the lineage record. + """ + + import dataclasses + + from openadapt_flow.repair.candidate import Actor + from openadapt_flow.repair.readmission import ( + ReadmissionRefused, + Requalification, + admit, + requalify, + ) + from openadapt_flow.repair.registration import build_candidate + + automation = Actor(kind="automation", id="openadapt-relabel-repair") + work = Path(work_dir) + timings: dict[str, float] = {} + captured: dict[str, Any] = {} + inner = requalification.run + if inner is None: + from openadapt_flow.qualify.campaign import qualify as inner + + def run(*args: Any, **kwargs: Any) -> Any: + captured["result"] = inner(*args, **kwargs) + return captured["result"] + + candidate_digest = Workflow.load(candidate_bundle).manifest.content_digest # type: ignore[union-attr] + parent_digest = Workflow.load(parent_bundle).manifest.content_digest # type: ignore[union-attr] + t0 = clock() + try: + requalified = dataclasses.replace( + requalify( + parent_bundle, + candidate_bundle, + work / "requalify", + dataclasses.replace(requalification, run=run) + if isinstance(requalification, Requalification) + else requalification, + ), + candidate_digest=candidate_digest, + ) + except ReadmissionRefused as exc: + timings["requalify_s"] = round(clock() - t0, 1) + return RelabelResult(status="refused", reason=str(exc), timings=timings) + timings["requalify_s"] = round(clock() - t0, 1) + rows = _rows(captured.get("result")) + candidate = build_candidate( + parent_bundle, + requalified.bundle_dir, + source="manual", + evidence_run_dir=evidence_run_dir, + ) + if candidate.state == "rejected": + return RelabelResult( + status="refused", + reason=candidate.rejection_reason + or "the certified copy weakens the contract", + timings=timings, + ) + candidate = store.add_candidate(candidate) + review = RelabelReview( + proposal=proposal, + parent_digest=parent_digest, + certified_digest=requalified.digest, + requalification={ + "policy": requalified.policy_name, + "cases": list(requalified.case_ids), + "rows": rows, + }, + ) + t1 = clock() + decision, approver = ask_person(review) + timings["person_wait_s"] = round(clock() - t1, 1) + if decision != "approve": + store.reject( + candidate.candidate_id, + Actor(kind="human", id=approver), + "declined by a person (relabel repair)", + ) + return RelabelResult( + status="declined", reason=f"declined by {approver}", timings=timings + ) + person = Actor(kind="human", id=approver) + t2 = clock() + store.review(candidate.candidate_id, person) + replay, fault = _campaigns(rows) + for result in (replay, fault): + store.record_campaign(candidate.candidate_id, result, automation) + store.approve(candidate.candidate_id, person) + store.stage(candidate.candidate_id, automation) + try: + record = admit( + store.root, + parent_bundle=parent_bundle, + candidate_digest=candidate_digest, + candidate_id=candidate.candidate_id, + requalified=requalified, + approved_by=approver, + route="person", + key_dir=key_dir, + ) + except ReadmissionRefused as exc: + timings["readmit_s"] = round(clock() - t2, 1) + return RelabelResult(status="refused", reason=str(exc), timings=timings) + timings["readmit_s"] = round(clock() - t2, 1) + return RelabelResult( + status="readmitted", + bundle_dir=store.bundle_path(requalified.digest), + digest=requalified.digest, + lineage=record, + approved_by=approver, + timings=timings, + ) diff --git a/packages/flow/tests/test_repair_relabel.py b/packages/flow/tests/test_repair_relabel.py new file mode 100644 index 000000000..7ba030103 --- /dev/null +++ b/packages/flow/tests/test_repair_relabel.py @@ -0,0 +1,315 @@ +"""A relabeled control: proof that only its label changed, then re-admission. + +openadapt_flow/repair/relabel.py. When a vendor renames a save button, the +run stops on the structured identity check. The relabel repair proposes a fix +only when the recorded identity hash matches the observed identity with the +label swapped back, so the control id, kind and form are proven unchanged. +Every other identity stop, and any stop after input reached a save, is +refused. The candidate changes the label and nothing else, and is admitted +only after re-qualification and a person's approval, through signed lineage. + +The workflow and reports are made-up; the observed identity has the shape the +OpenEMR referral's save button showed in proof-15. +""" + +from __future__ import annotations + +import json +import shutil +from pathlib import Path +from types import SimpleNamespace +from typing import Any + +import pytest + +from openadapt_flow.ir import ( + ActionKind, + Anchor, + RunReport, + Step, + StructuralLocator, + Workflow, +) +from openadapt_flow.repair import relabel +from openadapt_flow.runtime.effects import Effect, EffectKind, ValueExpr +from openadapt_flow.runtime.identity_template import ( + build_identity_template, + verify_structured_template, +) + +OLD = "Confirm Create New Patient" +NEW = "Save new patient" + + +def _identity(label: str, **changes: str) -> str: + value = { + "form_path": "/interface/new/new_comprehensive.php", + "label": label, + "target_id": "confirm_create", + "target_kind": "action", + **changes, + } + return json.dumps(value, sort_keys=True, separators=(",", ":")) + + +def _workflow(*, open_saves: bool = False) -> Workflow: + template = build_identity_template(None, structured_identity=_identity(OLD)) + return Workflow( + name="referral", + params={"email": "a@example.invalid", "lname": "Example"}, + steps=[ + # A step before the save: typing a value, or (open_saves) a click + # the fail-closed classifier counts as a save. + Step( + id="open", + intent="click 'Next'", + action=ActionKind.CLICK, + anchor=Anchor( + template="templates/open.png", + region=(0, 0, 40, 20), + click_point=(20, 10), + ocr_text="Next", + ), + ) + if open_saves + else Step( + id="open", intent="type <lname>", action=ActionKind.TYPE, text="x" + ), + Step( + id="save", + intent=f"click '{OLD}'", + action=ActionKind.CLICK, + anchor=Anchor( + template="templates/save.png", + region=(520, 248, 160, 64), + click_point=(600, 280), + ocr_text=OLD, + structural=StructuralLocator(selector="#confirmCreate"), + identity_template=template, + ), + effects=[ + Effect( + kind=EffectKind.FIELD_EQUALS, + match={"email": ValueExpr(param="email")}, + field="lname", + value=ValueExpr(param="lname"), + risk="irreversible", + ) + ], + risk="irreversible", + identity_armed=True, + ), + ], + ) + + +def _result(step_id: str, **fields: Any) -> dict[str, Any]: + return {"step_id": step_id, "intent": step_id, **fields} + + +def _halted( + observed: str, + *, + rung: str = "structural", + mode: str = "structured", + acted: bool = False, +) -> RunReport: + open_result = _result("open", ok=True, delivery_attempted=True) + return RunReport.model_validate( + { + "workflow_name": "referral", + "started_at": "2026-10-24T00:00:00+00:00", + "success": False, + "transaction_outcome": "REJECTED_POLICY", + "results": [ + open_result, + _result( + "save", + ok=False, + delivery_attempted=acted, + resolution={ + "rung": rung, + "point": [600, 280], + "confidence": 1.0, + "elapsed_ms": 50.0, + "structural_handle": { + "point": [600, 280], + "confidence": 1.0, + "region": [526, 261, 149, 38], + "candidate_count": 1, + }, + }, + identity={ + "status": "mismatch", + "mode": mode, + "expected": "<structured identity template>", + "observed": observed, + }, + error="Identity check failed for step 'save'", + ), + ], + "halt": { + "state_id": "save", + "intent": f"click '{OLD}'", + "reason": "Identity check failed", + }, + } + ) + + +def test_a_relabeled_save_is_proposed_with_proof() -> None: + proposal = relabel.propose(_halted(_identity(NEW)), _workflow()) + assert isinstance(proposal, relabel.RelabelProposal) + assert (proposal.old_label, proposal.new_label) == (OLD, NEW) + assert proposal.unchanged["target_id"] == "confirm_create" + + +@pytest.mark.parametrize( + "observed", + [ + # another control on the same form, with the new label + _identity(NEW, target_id="cancel"), + # the same id on another form + _identity(NEW, form_path="/interface/patient_file/delete.php"), + # a record field, not a control + _identity(NEW, target_kind="field"), + ], +) +def test_a_control_that_changed_more_than_its_label_is_refused(observed: str) -> None: + assert isinstance(relabel.propose(_halted(observed), _workflow()), str) + + +def test_unstructured_or_unproven_stops_are_refused() -> None: + wf = _workflow() + assert isinstance(relabel.propose(_halted("Save new patient"), wf), str) + assert isinstance(relabel.propose(_halted(_identity(NEW), mode="context"), wf), str) + assert isinstance( + relabel.propose(_halted(_identity(NEW), rung="geometry"), wf), str + ) + + +def test_a_step_that_may_have_written_is_never_relabeled() -> None: + wf = _workflow() + # The save itself received input. + assert "save" in str(relabel.propose(_halted(_identity(NEW), acted=True), wf)) + # An earlier step that saves received input. + refused = relabel.propose(_halted(_identity(NEW)), _workflow(open_saves=True)) + assert isinstance(refused, str) and "open" in refused + + +def test_the_candidate_changes_only_the_label(tmp_path: Path) -> None: + wf = _workflow() + bundle = tmp_path / "bundle" + wf.save(bundle) + proposal = relabel.propose(_halted(_identity(NEW)), Workflow.load(bundle)) + assert isinstance(proposal, relabel.RelabelProposal) + out = relabel.build(bundle, proposal, tmp_path / "candidate") + before, after = Workflow.load(bundle), Workflow.load(out) + old, new = before.steps[1], after.steps[1] + assert new.intent == f"click '{NEW}'" and new.anchor.ocr_text == NEW + template = new.anchor.identity_template + assert verify_structured_template(template, _identity(NEW)).status == "verified" + assert verify_structured_template(template, _identity(OLD)).status == "mismatch" + # The salt and every other part of the step are unchanged. + assert template.salt == old.anchor.identity_template.salt + assert new.effects == old.effects and new.risk == old.risk + assert new.anchor.structural == old.anchor.structural + assert after.steps[0] == before.steps[0] + assert after.params == before.params + + +class _Store: + """Records the store calls readmit makes, in order.""" + + def __init__(self, root: Path) -> None: + self.root = root + self.calls: list[str] = [] + + def add_candidate(self, candidate: Any) -> Any: + self.calls.append("add") + return candidate + + def __getattr__(self, name: str) -> Any: + def call(*args: Any, **kwargs: Any) -> Any: + self.calls.append(name) + return SimpleNamespace(state="ok") + + return call + + def bundle_path(self, digest: str) -> Path: + return self.root / "bundles" / digest + + +def test_a_failed_requalification_asks_nobody(tmp_path: Path, monkeypatch) -> None: + from openadapt_flow.repair import readmission + + def failing(*args: Any, **kwargs: Any) -> Any: + raise readmission.ReadmissionRefused("the representative case halted") + + monkeypatch.setattr(readmission, "requalify", failing) + wf = _workflow() + bundle = tmp_path / "bundle" + wf.save(bundle) + proposal = relabel.propose(_halted(_identity(NEW)), wf) + assert isinstance(proposal, relabel.RelabelProposal) + candidate = relabel.build(bundle, proposal, tmp_path / "candidate") + asked: list[Any] = [] + store = _Store(tmp_path / "store") + result = relabel.readmit( + parent_bundle=bundle, + candidate_bundle=candidate, + proposal=proposal, + store=store, + requalification=readmission.Requalification(config=None), + ask_person=lambda review: asked.append(review) or ("approve", "p"), + work_dir=tmp_path / "work", + ) + assert result.status == "refused" and "halted" in result.reason + assert asked == [] and store.calls == [] + + +def test_a_declined_relabel_admits_nothing(tmp_path: Path, monkeypatch) -> None: + from openadapt_flow.repair import readmission, registration + + wf = _workflow() + bundle = tmp_path / "bundle" + wf.save(bundle) + proposal = relabel.propose(_halted(_identity(NEW)), wf) + assert isinstance(proposal, relabel.RelabelProposal) + candidate = relabel.build(bundle, proposal, tmp_path / "candidate") + certified = tmp_path / "certified" + shutil.copytree(candidate, certified) + monkeypatch.setattr( + readmission, + "requalify", + lambda *a, **k: readmission.Requalified( + bundle_dir=certified, + digest="c" * 64, + policy_name="clinical-write", + policy_contract_sha256="d" * 64, + case_ids=("representative",), + parent_report_sha256="e" * 64, + report_sha256="f" * 64, + result_sha256=None, + ), + ) + monkeypatch.setattr( + registration, + "build_candidate", + lambda *a, **k: SimpleNamespace(state="candidate", candidate_id="cand-1"), + ) + admitted: list[Any] = [] + monkeypatch.setattr(readmission, "admit", lambda *a, **k: admitted.append(k)) + store = _Store(tmp_path / "store") + result = relabel.readmit( + parent_bundle=bundle, + candidate_bundle=candidate, + proposal=proposal, + store=store, + requalification=readmission.Requalification(config=None), + ask_person=lambda review: ("decline", "operator-1"), + work_dir=tmp_path / "work", + ) + assert result.status == "declined" + assert admitted == [] and "approve" not in store.calls + assert store.calls == ["add", "reject"] From 26947f9683d6b08809f9bea03c004c326092ef89 Mon Sep 17 00:00:00 2001 From: abrichr <richard.abrich@mldsai.com> Date: Sat, 24 Oct 2026 14:35:35 -0400 Subject: [PATCH 04/16] measure: duplicate-list check, relabel repair with fresh admission, requalify run ids, stop causes (WIP) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --- packages/flow/benchmark/lifecycle/metrics.py | 49 +++++++ .../benchmark/lifecycle/production_arm.py | 124 +++++++++++++++++- packages/flow/benchmark/lifecycle/report.py | 14 ++ packages/flow/benchmark/lifecycle/run.py | 14 ++ packages/flow/benchmark/lifecycle/workload.py | 25 +++- .../flow/benchmark/lifecycle_proof/fixture.py | 4 +- packages/flow/docs/DUPLICATE_CHECK.md | 61 +++++++++ packages/flow/docs/SELF_REPAIR.md | 50 +++++++ .../backends/playwright_backend.py | 20 +++ packages/flow/openadapt_flow/ir.py | 20 +++ .../flow/openadapt_flow/repair/readmission.py | 7 + .../flow/openadapt_flow/repair/relabel.py | 79 ++++++++++- .../flow/openadapt_flow/runtime/replayer.py | 53 ++++++++ .../flow/tests/test_no_duplicate_candidate.py | 105 +++++++++++++++ .../flow/tests/test_repair_readmission.py | 41 ++++-- packages/flow/tests/test_repair_relabel.py | 74 +++++++++++ 16 files changed, 724 insertions(+), 16 deletions(-) create mode 100644 packages/flow/docs/DUPLICATE_CHECK.md create mode 100644 packages/flow/tests/test_no_duplicate_candidate.py diff --git a/packages/flow/benchmark/lifecycle/metrics.py b/packages/flow/benchmark/lifecycle/metrics.py index 5b72088d2..91201b30c 100644 --- a/packages/flow/benchmark/lifecycle/metrics.py +++ b/packages/flow/benchmark/lifecycle/metrics.py @@ -86,6 +86,24 @@ def classify(*, claimed: str, oracle: str, chart_wanted: bool, exception: str) - return "silent_wrong" if done else "flagged_wrong" +def stop_cause(row: dict[str, Any]) -> str: + """Why an item stopped, from the product's own halt text (for root causes).""" + + detail = row.get("detail") or {} + first = detail.get("first_run") or {} + halt = str( + first.get("halt") or detail.get("error") or row.get("product_status") or "" + ) + if "no_duplicate_candidate" in halt or "No matches were found" in halt: + return "duplicate check listed a chart" + if "Identity check failed" in halt: + return "identity check failed (relabeled control)" + if "Missing" in halt or "missing" in halt and "param" in halt: + return "missing value" + outcome = first.get("transaction_outcome") or "" + return f"other: {outcome} {halt[:80]}".strip() + + def wilson(k: int, n: int, z: float = 1.96) -> Optional[tuple[float, float]]: if n == 0: return None @@ -287,7 +305,38 @@ def headline() -> dict[str, Any]: "after_app_change": drift_rows, } n = len(items) + dup = [ + r + for r in items + if r["claimed"] != "done" + and stop_cause(r) == "duplicate check listed a chart" + ] + + def matched(r: dict[str, Any]) -> str: + shares = r.get("shares_with_existing") or {} + hit = [k for k in ("lname", "DOB") if shares.get(k)] + if hit: + return "+".join(hit) + return "first name only" if shares.get("fname") else "none at start" + return { + "duplicate_rule_stops": { + "items": len(dup), + "by_shared_field": dict(Counter(matched(r) for r in dup)), + "by_outcome": dict(Counter(r["outcome"] for r in dup)), + "by_exception": dict(Counter(r["exception"] for r in dup)), + "note": "fields the item shared with a chart that existed when " + "it started; charts created during the run by earlier items " + "count too", + }, + "stops_by_cause": { + outcome: dict( + Counter(stop_cause(r) for r in items if r["outcome"] == outcome) + ) + for outcome in sorted( + {r["outcome"] for r in items if r["claimed"] != "done"} + ) + }, "verified_completed": len(completed), "items": n, "false_stops_per_100_items": round(100 * len(false_stops) / n, 2) diff --git a/packages/flow/benchmark/lifecycle/production_arm.py b/packages/flow/benchmark/lifecycle/production_arm.py index 1ab140c13..1e57597d3 100644 --- a/packages/flow/benchmark/lifecycle/production_arm.py +++ b/packages/flow/benchmark/lifecycle/production_arm.py @@ -142,6 +142,10 @@ def __init__(self, options: dict[str, Any]) -> None: #: A prior run's workdir whose admission (the qualified, pinned bundle) #: this run reuses, so two runs compare on one admitted version. self.admission_from = options.get("admission_from") + #: Admit a version whose duplicate-check step reads OpenEMR's match + #: list (no_duplicate_candidate) instead of requiring "No matches + #: were found.". A program change, so it gets its own admission. + self.duplicate_check = bool(options.get("duplicate_check", False)) self.recovery = str(options.get("recovery", "none")) if self.recovery not in ("none", "relabel"): raise ValueError(f"unknown recovery {self.recovery!r}") @@ -172,6 +176,12 @@ def describe(self) -> dict[str, Any]: "approval": "problems_only (local stand-in for Cloud's switch status)", "policy": proof.POLICY, "recovery": self.recovery, + "duplicate_check": ( + "no_duplicate_candidate on step_039 (rows tr.oneresult; a row " + "with the item's last name or date of birth stops the item)" + if self.duplicate_check + else "recorded: text_present 'No matches were found.'" + ), "qualification_trials": self.trials, "model_calls": "none on any path", } @@ -196,6 +206,8 @@ def setup(self, env: Env, operator: Any) -> list[dict[str, Any]]: reused = self._reuse_admission(Path(self.admission_from), out) admit_s = float(reused.get("seconds") or 0.0) else: + if self.duplicate_check: + source = with_duplicate_list_check(source, out / "program") dump = app.dump() try: proof.phase_admit(ctx, source, self.trials) @@ -466,6 +478,38 @@ def _self_repair( summary["success"] = bool(result.report.success) return summary + def _adopt_running_release(self) -> dict[str, Any]: + """Pin the test copy's environment lock to the release now running. + + The fixture refuses to reset (and so to qualify) when OpenEMR's + source differs from its lock. After a vendor release the lock must + name the new release; this records its source proofs and which files + changed. The bundle's admission and the pin are not touched. + """ + + from benchmark.openemr_local import qualify_hooks + + fx = qualify_hooks.fixture() + app = self.ctx["app"] + locked: dict[str, str] = dict(fx.lock["source_proofs"]) + out = app._exec(app.app_container, "sha256sum " + " ".join(sorted(locked))) + observed: dict[str, str] = {} + for line in out.splitlines(): + parts = line.split(maxsplit=1) + if len(parts) == 2: + observed[parts[1].lstrip("* ")] = parts[0] + if set(observed) != set(locked): + raise RuntimeError("could not read every locked OpenEMR source file") + changed = sorted(k for k in locked if observed[k] != locked[k]) + fx.lock = {**fx.lock, "source_proofs": observed} + app.fx.lock = {**app.fx.lock, "source_proofs": observed} + path = ( + app.state_dir / f"environment.release-{len(self.recoveries) + 1}.lock.json" + ) + path.write_text(json.dumps(fx.lock, indent=2) + "\n") + os.environ["OPENEMR_FIXTURE_LOCK"] = str(path) + return {"changed": changed, "lock": path.name} + def _move_to(self, bundle: Path, digest: str, requalified: list[Path]) -> None: """Run the re-admitted version from here on, under a new switch record.""" @@ -509,6 +553,9 @@ def _try_relabel( bundle, proposal, work / "candidate", key=self.ctx["keys"]["bundle_key"] ) review_charge: dict[str, Any] = {} + # The test copy now runs the vendor's new release; re-qualification + # pins that release (the person sees the changed files on the review). + release = self._adopt_running_release() def ask_person(review: Any) -> tuple[str, str]: rows = review.requalification["rows"] @@ -519,6 +566,8 @@ def ask_person(review: Any) -> tuple[str, str]: reason=review.proposal.summary()[:300], surface="openadapt-flow repair relabel (review card)", detail={ + "fresh_admission": review.fresh_admission, + "release_changed_files": release["changed"], "probes_passed": bool(rows), "requalified_cases": len(rows), "certified_digest": review.certified_digest, @@ -549,12 +598,32 @@ def ask_person(review: Any) -> tuple[str, str]: "lineage_hop": (result.lineage or {}).get("hop"), "timings": result.timings, "review": review_charge, + "release": release, "seconds_to_readmitted": round(time.time() - t0, 1), } detail["relabel"] = record self.recoveries.append(record) - if result.status != "readmitted" or result.bundle_dir is None: + if result.status not in ("readmitted", "fresh_admission"): + return None + if result.bundle_dir is None: return None + phases_extra: list[dict[str, Any]] = [] + if result.status == "fresh_admission": + # The person's approval admits the certified copy afresh: the + # deployment re-pins to its digest (no lineage), and the person + # signs that admission (the cost model's admit charge). + self.ctx["pinned_digest"] = str(result.digest) + phases_extra.append( + { + "phase": "admit", + "wall_s": 0.0, + "attended_s": 0.0, + "model_calls": 0, + "cost_usd": 0.0, + "note": "fresh admission of the re-qualified copy: " + + result.reason[:200], + } + ) self._move_to(result.bundle_dir, str(result.digest), [work / "requalify"]) # The stopped item never wrote; it runs again on the re-admitted # version, as a retry (problems_only sends a retry to a person). @@ -566,7 +635,8 @@ def ask_person(review: Any) -> tuple[str, str]: return { "summary": summary, "success": bool(rerun.success), - "phases": [ + "phases": phases_extra + + [ { "phase": "relabel_requalify", "wall_s": result.timings.get("requalify_s", 0.0), @@ -623,6 +693,56 @@ def close(self) -> None: pass +DUPLICATE_STEP = "step_039" +NO_MATCHES = "No matches were found." + + +def with_duplicate_list_check(source: Path, out: Path) -> Path: + """The referral program with its duplicate check reading the match list. + + The recorded program stops unless OpenEMR shows "No matches were found.", + so any listed chart stops the item, even one that shares only a first + name. This version replaces that one postcondition with + ``no_duplicate_candidate``: the item continues only when the list has + loaded and no listed row carries the item's last name or date of birth. + Every other step is unchanged. The result is uncertified; admission + qualifies it afresh. + """ + + import shutil + + from openadapt_flow.ir import Postcondition, PostconditionKind, Workflow + from openadapt_flow.repair.self_repair import _uncertify_patch + + workflow = Workflow.load(source) + steps = list(workflow.steps) + index = next(i for i, step in enumerate(steps) if step.id == DUPLICATE_STEP) + step = steps[index] + expect = [ + pc + if not (pc.kind is PostconditionKind.TEXT_PRESENT and pc.text == NO_MATCHES) + else Postcondition( + kind=PostconditionKind.NO_DUPLICATE_CANDIDATE, + text=NO_MATCHES, + timeout_s=pc.timeout_s, + candidate_rows="tr.oneresult", + candidate_frame_path=("#modalframe",), + candidate_params=("lname", "DOB"), + ) + for pc in step.expect + ] + if expect == list(step.expect): + raise RuntimeError(f"{DUPLICATE_STEP} has no '{NO_MATCHES}' check to replace") + steps[index] = step.model_copy(update={"expect": expect}) + workflow.steps = steps + _uncertify_patch(workflow) + if out.exists(): + shutil.rmtree(out) + shutil.copytree(source, out, ignore=shutil.ignore_patterns("manifest.json")) + workflow.save(out) + return out + + def make(options: dict[str, Any]) -> ProductionArm: os.environ.setdefault("OPENADAPT_NO_LAUNCHER_CHECK", "1") return ProductionArm(options) diff --git a/packages/flow/benchmark/lifecycle/report.py b/packages/flow/benchmark/lifecycle/report.py index 37cf8f171..ec97995a3 100644 --- a/packages/flow/benchmark/lifecycle/report.py +++ b/packages/flow/benchmark/lifecycle/report.py @@ -94,6 +94,20 @@ def render(res: dict[str, Any]) -> str: f"{d['first_verified_seq']}, " f"{d['seconds_to_running_again']} s after the change." ) + d = h.get("duplicate_rule_stops") + if d and d["items"]: + lines.append( + f"- Duplicate-check stops: {d['items']}; field shared with an " + f"existing chart: {json.dumps(d['by_shared_field'])}; judged " + f"{json.dumps(d['by_outcome'])}; exception kinds " + f"{json.dumps(d['by_exception'])}." + ) + for outcome, causes in h.get("stops_by_cause", {}).items(): + lines.append( + f"- Stops judged `{outcome}`, by cause: " + + ", ".join(f"{c} {n}" for c, n in sorted(causes.items())) + + "." + ) lines += [ "- Cost-model bands, verified per operator-minute: " + ", ".join( diff --git a/packages/flow/benchmark/lifecycle/run.py b/packages/flow/benchmark/lifecycle/run.py index 53c49018c..c10f404b1 100644 --- a/packages/flow/benchmark/lifecycle/run.py +++ b/packages/flow/benchmark/lifecycle/run.py @@ -272,8 +272,22 @@ def record(row: dict[str, Any]) -> None: final = oracle.judge_final( t, before, oracle.snapshot(), other_clerk_ids=other_clerk_ids ) + # Context for duplicate-check stops: which identity values this item + # shares with a chart that existed when it started (ground truth, for + # the report; never shown to the arm). + shares = { + key: sum( + 1 + for r in before + if str(item.params.get(key, "")).strip().casefold() + and r.get(key, "").strip().casefold() + == str(item.params.get(key, "")).strip().casefold() + ) + for key in ("fname", "lname", "DOB") + } row = { "type": "item_result", + "shares_with_existing": shares, "seq": item.seq, "item_id": item.item_id, "day": item.day, diff --git a/packages/flow/benchmark/lifecycle/workload.py b/packages/flow/benchmark/lifecycle/workload.py index f126e2b5c..1da1b159e 100644 --- a/packages/flow/benchmark/lifecycle/workload.py +++ b/packages/flow/benchmark/lifecycle/workload.py @@ -38,6 +38,10 @@ - ``failed_save``: the save fails once (the app returns an error). Right outcome: no chart from the failed attempt; a chart after a retry, or a safe stop. +- ``common_surname``: a new patient with the last name of an existing chart + (another first name, date of birth and address). Right outcome: a new chart. +- ``shared_dob``: a new patient born on the same day as an existing chart. + Right outcome: a new chart. Day-level events (``DRIFT_SCHEDULE``) stay on from their day to the end, as a vendor release would: a theme change, a relabel of the save button, a field @@ -53,7 +57,7 @@ from .arm import WorkItem -WORKLOAD_VERSION = "lifecycle-workload/2026-10-20.2" +WORKLOAD_VERSION = "lifecycle-workload/2026-10-24.1" EXCEPTION_MIX: dict[str, float] = { "dup_existing": 0.03, @@ -69,6 +73,11 @@ "session_expiry": 0.02, "slow_save": 0.02, "failed_save": 0.015, + # Ordinary coincidences a real practice sees: a new patient who shares a + # last name, or a date of birth, with an existing chart. Not data errors: + # the right outcome is a new chart. + "common_surname": 0.06, + "shared_dob": 0.08, } #: (day, kind) — each stays on from that day to the end of the run. @@ -262,6 +271,20 @@ def generate(seed: int, n_items: int, days: int, n_existing: int = 12) -> Worklo ) params, intended = dict(person), dict(person) why = "same name as an existing chart, a different person" + elif kind == "common_surname": + other = rng.choice(existing) + person["lname"] = other["lname"] + if person["fname"] == other["fname"]: + person["fname"] = next(f for f in FIRST if f != other["fname"]) + person["email"] = ( + f"{person['fname'].lower()}.{other['lname'].lower()}.{seq}@example.invalid" + ) + params, intended = dict(person), dict(person) + why = "shares a last name with an existing chart; a different person" + elif kind == "shared_dob": + person["DOB"] = rng.choice(existing)["DOB"] + params, intended = dict(person), dict(person) + why = "born on the same day as an existing chart; a different person" elif kind == "missing_required": params.pop("DOB") intended = None diff --git a/packages/flow/benchmark/lifecycle_proof/fixture.py b/packages/flow/benchmark/lifecycle_proof/fixture.py index ac1420deb..16d83c850 100644 --- a/packages/flow/benchmark/lifecycle_proof/fixture.py +++ b/packages/flow/benchmark/lifecycle_proof/fixture.py @@ -246,7 +246,9 @@ def dump(self) -> Path: sql = self._exec_bytes( self.db_container, 'MYSQL_PWD="$MARIADB_ROOT_PASSWORD" exec mariadb-dump -uroot ' - "--single-transaction --triggers openemr", + # OpenEMR keeps the OAuth key passphrase in `keys`; restoring an + # older copy of it next to newer key files breaks every token. + "--single-transaction --triggers --ignore-table=openemr.keys openemr", timeout=600, ) path.write_bytes(sql) diff --git a/packages/flow/docs/DUPLICATE_CHECK.md b/packages/flow/docs/DUPLICATE_CHECK.md new file mode 100644 index 000000000..61e151467 --- /dev/null +++ b/packages/flow/docs/DUPLICATE_CHECK.md @@ -0,0 +1,61 @@ +# A duplicate check that reads the match list + +Many registration forms run a duplicate search before they save. OpenEMR's New +Patient form, for example, opens a list of existing charts that might be the +same person. A recorded program usually expects the empty list ("No matches +were found."), so any listed chart stops the item before the save. + +OpenEMR lists a chart that shares only a first name with the new patient. On +the lifecycle soak's synthetic worklist, most of those stops were false: the +listed chart was clearly someone else, and a person entered the item by hand. + +## The postcondition + +`no_duplicate_candidate` replaces the "empty list" check on the step that +opens the search: + +```json +{ + "kind": "no_duplicate_candidate", + "text": "No matches were found.", + "candidate_rows": "tr.oneresult", + "candidate_frame_path": ["#modalframe"], + "candidate_params": ["lname", "DOB"], + "timeout_s": 10.0 +} +``` + +It passes only when the list has loaded and names no real candidate: + +- A listed row is a **candidate** when it contains every word of this run's + value of any `candidate_params` parameter (case-insensitive). With the + example above, a chart with the same last name or the same date of birth + stops the item. A chart that shares only a first name doesn't. +- An **empty list** passes only when its "no matches" marker (`text`) is + shown, so a list that hasn't loaded yet never passes. +- It **fails closed**: an unreadable list (frame missing or ambiguous, or a + backend that can't read rows), a missing or empty parameter value, or any + candidate row all fail the step before anything is saved. + +The rule only lets an item continue past rows that share none of the identity +values. A same-name patient with a mistyped date of birth still stops, and a +person decides. The rows are read from the DOM (`element_texts` on the browser +backend), never from OCR. + +## Changing a program to use it + +The compiler doesn't propose this postcondition yet. Changing it is a program +change, so the program needs a fresh qualification and admission. The +lifecycle soak's `production_arm.with_duplicate_list_check` makes the change +on the OpenEMR referral program, and the soak admits that version afresh +(`"duplicate_check": true`). + +## Limits + +- The list must render its rows together, as OpenEMR's server-rendered list + does. A list that streams rows in one by one could pass on a partial list. +- A value is recognized only in the form the run typed it. If the app shows a + value in another form (a date as `09/09/1990` for `1990-09-09`), the check + misses that candidate and lets the item continue. Name only parameters the + list shows exactly as typed, and check this on the real list before + admitting the program. OpenEMR's list shows the date of birth as typed. diff --git a/packages/flow/docs/SELF_REPAIR.md b/packages/flow/docs/SELF_REPAIR.md index 543c3e86e..7bfa7b76e 100644 --- a/packages/flow/docs/SELF_REPAIR.md +++ b/packages/flow/docs/SELF_REPAIR.md @@ -404,6 +404,56 @@ self-repair runs without a named profile or under Demo, and the record check still runs. The Python API can run the Standard profile contract directly, as the tutorial does. +### A relabeled control: proof that only the label changed + +Self-repair never repairs a stop on a failed identity check, because a +renamed control usually can't be told from a different control. One case can +be told apart. When an app release renames a button, the ladder finds the same +control on the structural rung, and the run stops because the control's +structured identity (its id, kind, form and label) no longer matches. + +The recorded identity is a salted hash, but the bundle also keeps the recorded +label in plaintext (the step's intent and OCR text). +`openadapt_flow/repair/relabel.py` rebuilds the recorded identity from the +observed one with only the label swapped back. If that matches the recorded +hash, the id, kind and form are proven unchanged and only the label differs. +It refuses everything else: + +- a step that received input, or any earlier save that did (a step that may + have written is never retried); +- an identity check that failed outside the structured tier, or one that names + a record value rather than a control; +- a target found below the structural rung; +- an identity that doesn't match under any recorded label. + +The repair then follows the pinned-bundle path above: + +1. The candidate bundle changes only that step's identity hash, intent and + OCR text. +2. It is re-qualified with the parent's own campaign on the test copy, which + now runs the new release. Each re-qualification names its case runs + afresh, because a process refuses a run's authorization id once it has + been used, and the parent may have been qualified in the same process. +3. A person approves once, with the old and new label and the + re-qualification in front of them. +4. The certified copy runs next: + - For a control that is not part of the record check, it is re-admitted + with signed lineage, and the pin accepts it through the chain. + - A save button's identity is part of the record check, so no lineage hop + may carry it (`fixed_contract_refusal`). The person's approval is then a + fresh admission of the certified copy, and the deployment pins its new + digest. `readmit` returns `fresh_admission` and never re-pins by itself. + +The stopped item never wrote, so it runs again on the re-admitted version as a +retry; `problems_only` sends a retry to a person. Under a production +qualification admission or a managed dispatch the repair stays refused, as for +every other repair. + +On the local OpenEMR referral (proof-15's configuration), a relabeled save +button stopped every item until a person re-taught the step. The lifecycle +soak measures this path: see +[benchmark/lifecycle](../benchmark/lifecycle/README.md). + ## What is recorded | Where | What | diff --git a/packages/flow/openadapt_flow/backends/playwright_backend.py b/packages/flow/openadapt_flow/backends/playwright_backend.py index 8e95edacb..5778c218b 100644 --- a/packages/flow/openadapt_flow/backends/playwright_backend.py +++ b/packages/flow/openadapt_flow/backends/playwright_backend.py @@ -1691,6 +1691,26 @@ def focused_element_matches(self, selector: str) -> Optional[bool]: ) return result if isinstance(result, bool) else None + def element_texts( + self, selector: str, frame_path: tuple[str, ...] = () + ) -> Optional[list[str]]: + """The rendered text of every element matching ``selector``. + + Read in the frame ``frame_path`` names (outermost first). ``None`` + when the frame is missing or ambiguous, or the read fails; an empty + list means the frame is there and nothing matches. Read-only; never + raises. + """ + + try: + scope = self._resolve_scope(tuple(frame_path)) + if scope is None: + return None + texts = scope.locator(selector).all_inner_texts() + except Exception: # noqa: BLE001 - unreadable is None + return None + return [str(text) for text in texts] + def focused_select_label(self) -> Optional[str]: """The focused ``<select>``'s selected option label, or None.""" diff --git a/packages/flow/openadapt_flow/ir.py b/packages/flow/openadapt_flow/ir.py index d79a7734d..9c5591264 100644 --- a/packages/flow/openadapt_flow/ir.py +++ b/packages/flow/openadapt_flow/ir.py @@ -474,6 +474,14 @@ class PostconditionKind(str, Enum): # The focused dropdown shows the run's value of ``param`` (its selected # option's label, whitespace-squashed and case-insensitive). FIELD_VALUE = "field_value" + # An app's possible-duplicate list (rows matching ``candidate_rows`` in + # the frame ``candidate_frame_path``) has finished loading and names no + # real candidate: no listed row carries this run's value of any of + # ``candidate_params`` (for example the last name or the date of birth). + # An empty list passes only with its "no matches" marker (``text``) + # shown, so a list that has not loaded yet never passes. Unreadable rows + # fail the check. + NO_DUPLICATE_CANDIDATE = "no_duplicate_candidate" class Postcondition(BaseModel): @@ -497,6 +505,15 @@ class Postcondition(BaseModel): param: Optional[str] = Field( default=None, pattern=r"^[A-Za-z_][A-Za-z0-9_]{0,127}$" ) + #: NO_DUPLICATE_CANDIDATE: the CSS selector of one listed candidate row. + candidate_rows: Optional[str] = Field(default=None, min_length=1, max_length=256) + #: NO_DUPLICATE_CANDIDATE: the frame chain the list is in (outermost first). + candidate_frame_path: Optional[tuple[str, ...]] = Field(default=None, max_length=8) + #: NO_DUPLICATE_CANDIDATE: parameters whose value in any row makes it a + #: real candidate. + candidate_params: Optional[tuple[str, ...]] = Field( + default=None, min_length=1, max_length=8 + ) @model_serializer(mode="wrap") def _serialize_compatible(self, handler: Any) -> dict[str, Any]: @@ -508,6 +525,9 @@ def _serialize_compatible(self, handler: Any) -> dict[str, Any]: data.pop("field_selector", None) if self.param is None: data.pop("param", None) + for name in ("candidate_rows", "candidate_frame_path", "candidate_params"): + if getattr(self, name) is None: + data.pop(name, None) return data diff --git a/packages/flow/openadapt_flow/repair/readmission.py b/packages/flow/openadapt_flow/repair/readmission.py index fc5ad9cd4..dde9079d9 100644 --- a/packages/flow/openadapt_flow/repair/readmission.py +++ b/packages/flow/openadapt_flow/repair/readmission.py @@ -34,6 +34,7 @@ import hashlib import json +import uuid from dataclasses import dataclass from datetime import datetime, timezone from pathlib import Path @@ -220,6 +221,11 @@ def requalify( from openadapt_flow.qualify.campaign import qualify run = qualify + # Each case run's authorization id is its run id, and a process refuses an + # authorization id it has already consumed. The parent was qualified with + # the campaign's own run ids, possibly in this same process, so a + # re-qualification names its runs afresh. + run_id_prefix = f"requalify-{uuid.uuid4().hex[:16]}" try: result = run( Path(candidate_bundle), @@ -229,6 +235,7 @@ def requalify( trials=requalification.trials, certify=provenance.policy_name, hooks=requalification.hooks, + run_id_prefix=run_id_prefix, ) except Exception as exc: # noqa: BLE001 - every campaign failure refuses raise ReadmissionRefused( diff --git a/packages/flow/openadapt_flow/repair/relabel.py b/packages/flow/openadapt_flow/repair/relabel.py index 1b30bb033..c46f3ca5a 100644 --- a/packages/flow/openadapt_flow/repair/relabel.py +++ b/packages/flow/openadapt_flow/repair/relabel.py @@ -88,13 +88,20 @@ class RelabelReview: parent_digest: str certified_digest: str requalification: dict[str, Any] + #: Set when the relabeled control is part of the record check (a save + #: button's identity is): no lineage hop can carry it, so approving it is + #: a fresh admission of the certified copy. Says why. + fresh_admission: Optional[str] = None @dataclass class RelabelResult: """The outcome of :func:`readmit`.""" - status: str # "readmitted" | "declined" | "refused" + #: "readmitted" (lineage hop), "fresh_admission" (a person approved the + #: certified copy, which runs once the deployment pins its digest), + #: "declined" or "refused". + status: str reason: str = "" bundle_dir: Optional[Path] = None digest: Optional[str] = None @@ -416,7 +423,26 @@ def run(*args: Any, **kwargs: Any) -> Any: ) except ReadmissionRefused as exc: timings["requalify_s"] = round(clock() - t0, 1) - return RelabelResult(status="refused", reason=str(exc), timings=timings) + result = captured.get("result") + if ( + "fresh admission" not in str(exc) + or not getattr(result, "passed", False) + or not getattr(result, "certified", False) + ): + return RelabelResult(status="refused", reason=str(exc), timings=timings) + # The campaign passed and certified a copy, but the relabeled control + # is part of the fixed contract, so no lineage hop may carry it. A + # person may still admit the certified copy afresh. + return _fresh_admission( + proposal, + parent_digest, + Path(result.bundle_dir), + _rows(result), + str(exc), + ask_person, + timings, + clock, + ) timings["requalify_s"] = round(clock() - t0, 1) rows = _rows(captured.get("result")) candidate = build_candidate( @@ -486,3 +512,52 @@ def run(*args: Any, **kwargs: Any) -> Any: approved_by=approver, timings=timings, ) + + +def _fresh_admission( + proposal: RelabelProposal, + parent_digest: str, + certified_dir: Path, + rows: list[dict[str, Any]], + why: str, + ask_person: Callable[[RelabelReview], tuple[str, str]], + timings: dict[str, float], + clock: Callable[[], float], +) -> RelabelResult: + """Ask a person to admit the certified copy afresh (no lineage).""" + + certified = Workflow.load(certified_dir) + provenance = certified.manifest.provenance if certified.manifest else None + if provenance is None or not provenance.certified: + return RelabelResult( + status="refused", + reason="the re-qualified copy is not certified", + timings=timings, + ) + digest = certified.manifest.content_digest # type: ignore[union-attr] + review = RelabelReview( + proposal=proposal, + parent_digest=parent_digest, + certified_digest=digest, + requalification={ + "policy": provenance.policy_name, + "cases": sorted({str(r.get("case_id")) for r in rows}), + "rows": rows, + }, + fresh_admission=why, + ) + t1 = clock() + decision, approver = ask_person(review) + timings["person_wait_s"] = round(clock() - t1, 1) + if decision != "approve": + return RelabelResult( + status="declined", reason=f"declined by {approver}", timings=timings + ) + return RelabelResult( + status="fresh_admission", + reason=why, + bundle_dir=certified_dir, + digest=digest, + approved_by=approver, + timings=timings, + ) diff --git a/packages/flow/openadapt_flow/runtime/replayer.py b/packages/flow/openadapt_flow/runtime/replayer.py index 38756fb7c..8101bcef0 100644 --- a/packages/flow/openadapt_flow/runtime/replayer.py +++ b/packages/flow/openadapt_flow/runtime/replayer.py @@ -1881,6 +1881,9 @@ def _run_unsealed_steps( # iteration scope from the exact loop cursor below. Hashing ``params`` # inside a loop would count each row twice and reject valid runs. self._governed_base_params = dict(params) + # The run's own parameters, for postconditions that compare the screen + # with a value (a program run also tracks them per state). + self._run_params: dict[str, RuntimeParamScalar] = dict(params) # Preserve the exact caller-owned worklist object for last-common-point # authorization checks. A callback that mutates it after admission # must invalidate the authorization before any reacquired input edge. @@ -17627,6 +17630,51 @@ def _local_edit_held(self, pc: Any, start_state: dict[str, Any]) -> bool: return False return True + def _no_duplicate_candidate(self, pc: Any, frame_png: bytes) -> bool: + """The app's possible-duplicate list has loaded and names no candidate. + + A row is a candidate when its words include every word of this run's + value of any ``pc.candidate_params`` parameter (case-insensitive). + Fails closed: an unreadable list, a missing or empty parameter, or an + empty list without its "no matches" marker all fail the check. + """ + + params = ( + getattr(self, "_current_params", None) + or getattr(self, "_run_params", None) + or {} + ) + names = tuple(pc.candidate_params or ()) + if not pc.candidate_rows or not names or not pc.text: + return False + reader = getattr(self.backend, "element_texts", None) + if not callable(reader): + return False + rows = reader(pc.candidate_rows, tuple(pc.candidate_frame_path or ())) + if rows is None: + return False + + def words(value: str) -> list[str]: + return re.findall(r"[0-9a-z]+", value.casefold()) + + wanted = [] + for name in names: + value = words(runtime_param_text(params[name])) if name in params else [] + if not value: + return False + wanted.append(value) + if not rows: + # Nothing listed: only the list's own "no matches" marker shows + # the search finished. + if self._dom_text_visible(pc.text): + return True + return self.vision.text_present(frame_png, pc.text) + for row in rows: + row_words = set(words(row)) + if any(all(w in row_words for w in value) for value in wanted): + return False + return True + def _field_value_shown(self, pc: Any) -> bool: """The focused field shows this run's value of ``pc.param``. @@ -17666,6 +17714,9 @@ def _describe_postcondition(pc: Any) -> str: return "local_edit (URL, title, page count and focus unchanged)" if kind == "field_value": return f"field_value (the focused field shows {{{pc.param}}})" + if kind == "no_duplicate_candidate": + names = ", ".join(pc.candidate_params or ()) + return f"no_duplicate_candidate (no listed row has this run's {names})" if kind in ("text_present", "text_absent"): return f"{kind} {pc.text!r}" if kind in ("url_changed", "title_changed", "new_tab_opened"): @@ -17716,6 +17767,8 @@ def _postcondition_passes( return self._local_edit_held(pc, start_state or {}) if kind == "field_value": return self._field_value_shown(pc) + if kind == "no_duplicate_candidate": + return self._no_duplicate_candidate(pc, frame_png) if kind in ("url_changed", "title_changed", "new_tab_opened"): key = { "url_changed": "url", diff --git a/packages/flow/tests/test_no_duplicate_candidate.py b/packages/flow/tests/test_no_duplicate_candidate.py new file mode 100644 index 000000000..81ee161a1 --- /dev/null +++ b/packages/flow/tests/test_no_duplicate_candidate.py @@ -0,0 +1,105 @@ +"""The possible-duplicate list names no real candidate (no_duplicate_candidate). + +A registration program used to stop whenever an app's duplicate check listed +any chart. OpenEMR lists a chart that shares only a first name, so most of +those stops were false. This postcondition reads the listed rows and passes +only when the list has loaded and no row carries this run's value of any +identity parameter (here the last name or the date of birth). It never passes +on a list it can't read, on a list that hasn't loaded, or on a missing value. +""" + +from __future__ import annotations + +from typing import Any, Optional + +import pytest + +from openadapt_flow.ir import Postcondition, PostconditionKind + +PARAMS = {"lname": "Jesswood", "fname": "Rosalind", "DOB": "1990-09-09"} +MARKER = "No matches were found." + + +class _Backend: + def __init__(self, rows: Optional[list[str]], marker: bool = False) -> None: + self.rows, self.marker = rows, marker + self.read: list[Any] = [] + self.url, self.page_title, self.page_count = "http://x/", "x", 1 + + def element_texts(self, selector: str, frame_path: tuple[str, ...]) -> Any: + self.read.append((selector, frame_path)) + return self.rows + + def visible_text_present(self, text: str) -> bool: + return self.marker and text == MARKER + + +def _check(backend: _Backend, params: dict[str, str] = PARAMS) -> bool: + from openadapt_flow.runtime.replayer import Replayer + from tests.test_replayer import FakeVision + + replayer = Replayer(backend, vision=FakeVision()) + replayer._current_params = dict(params) + pc = Postcondition( + kind=PostconditionKind.NO_DUPLICATE_CANDIDATE, + text=MARKER, + candidate_rows="tr.oneresult", + candidate_frame_path=("#modalframe",), + candidate_params=("lname", "DOB"), + ) + return replayer._postcondition_passes(pc, b"", None, {}) + + +def test_a_first_name_only_hit_is_not_a_candidate() -> None: + backend = _Backend(["3\tOakwood, Rosalind\t1950-04-21\tFemale"]) + assert _check(backend) is True + assert backend.read == [("tr.oneresult", ("#modalframe",))] + + +@pytest.mark.parametrize( + "row", + [ + "5\tJesswood, Rosalind\t1990-09-09\tFemale", # the same person + "5\tJESSWOOD, Ana\t1961-01-01\tFemale", # a namesake: a person decides + "5\tOakwood, Ana\t1990-09-09\tFemale", # the same date of birth + ], +) +def test_a_real_candidate_always_stops(row: str) -> None: + assert _check(_Backend(["3\tOakwood, Rosalind\t1950-04-21\tFemale", row])) is False + + +def test_an_empty_list_passes_only_with_its_no_matches_marker() -> None: + assert _check(_Backend([], marker=True)) is True + # Not loaded yet: no rows and no marker. + assert _check(_Backend([], marker=False)) is False + + +def test_it_fails_closed() -> None: + # The list can't be read (frame missing, or no reader on this backend). + assert _check(_Backend(None, marker=True)) is False + # A value to compare with is missing. + assert _check(_Backend([], marker=True), {"lname": "Jesswood"}) is False + assert _check(_Backend([], marker=True), {**PARAMS, "DOB": " "}) is False + + +def test_unset_candidate_fields_serialize_as_before() -> None: + pc = Postcondition(kind=PostconditionKind.TEXT_PRESENT, text="Saved") + assert not {"candidate_rows", "candidate_frame_path", "candidate_params"} & set( + pc.model_dump() + ) + + +def test_a_linear_run_compares_with_its_own_parameters() -> None: + from openadapt_flow.runtime.replayer import Replayer + from tests.test_replayer import FakeVision + + # A linear (non-program) run keeps its parameters in _run_params only. + replayer = Replayer(_Backend(["3\tOakwood, Rosalind\t1950-04-21"]), vision=FakeVision()) + replayer._run_params = dict(PARAMS) + pc = Postcondition( + kind=PostconditionKind.NO_DUPLICATE_CANDIDATE, + text=MARKER, + candidate_rows="tr.oneresult", + candidate_params=("lname", "DOB"), + ) + assert replayer._postcondition_passes(pc, b"", None, {}) is True diff --git a/packages/flow/tests/test_repair_readmission.py b/packages/flow/tests/test_repair_readmission.py index bdb07dabc..698c5ae88 100644 --- a/packages/flow/tests/test_repair_readmission.py +++ b/packages/flow/tests/test_repair_readmission.py @@ -90,8 +90,17 @@ class Campaign: def __init__(self, *, passes: bool = True, field: str = "note") -> None: self.passes, self.field, self.calls = passes, field, [] - def __call__(self, candidate, config, *, out, cases, trials, certify, hooks): - self.calls.append({"cases": cases, "certify": certify, "trials": trials}) + def __call__( + self, candidate, config, *, out, cases, trials, certify, hooks, run_id_prefix + ): + self.calls.append( + { + "cases": cases, + "certify": certify, + "trials": trials, + "run_id_prefix": run_id_prefix, + } + ) if not self.passes: raise RuntimeError("the representative case halted") label = Workflow.load(candidate).steps[0].anchor.ocr_text @@ -161,14 +170,15 @@ def test_a_repair_is_requalified_and_readmitted_with_lineage(tmp_path, keys): tmp_path, store, root, keys, label="Save record", campaign=campaign ) - # The parent's own campaign: same policy, same cases. - assert campaign.calls == [ - { - "cases": list(requalified.case_ids), - "certify": "clinical-write", - "trials": 1, - } - ] + # The parent's own campaign: same policy, same cases, under fresh run ids + # (each case's authorization id is its run id, consumed once per process). + [call] = campaign.calls + assert call.pop("run_id_prefix").startswith("requalify-") + assert call == { + "cases": list(requalified.case_ids), + "certify": "clinical-write", + "trials": 1, + } assert requalified.digest != _digest(root) assert record["hop"] == 1 and record["parent_digest"] == _digest(root) assert record["policy_name"] == "clinical-write" @@ -446,3 +456,14 @@ def test_the_readmission_step_signs_lineage_after_approval(tmp_path, keys): assert ( lineage_refusal(store, _digest(root), requalified.digest, key_dir=keys) is None ) + + +def test_each_requalification_names_its_runs_afresh(tmp_path, keys): + # A process that qualified the parent refuses its run ids again, so two + # re-qualifications must never share a run-id prefix. + root = _certified(tmp_path / "root") + campaign = Campaign() + for label in ("Save record", "Store record"): + _repair(tmp_path, tmp_path / f"store-{label}", root, keys, label=label, campaign=campaign) + prefixes = [call["run_id_prefix"] for call in campaign.calls] + assert len(set(prefixes)) == 2 diff --git a/packages/flow/tests/test_repair_relabel.py b/packages/flow/tests/test_repair_relabel.py index 7ba030103..134a4dfff 100644 --- a/packages/flow/tests/test_repair_relabel.py +++ b/packages/flow/tests/test_repair_relabel.py @@ -313,3 +313,77 @@ def test_a_declined_relabel_admits_nothing(tmp_path: Path, monkeypatch) -> None: assert result.status == "declined" assert admitted == [] and "approve" not in store.calls assert store.calls == ["add", "reject"] + + +def test_a_relabeled_save_is_admitted_afresh_not_by_lineage( + tmp_path: Path, monkeypatch +) -> None: + """A save button's identity is part of the record check, so no lineage hop + can carry its relabel. Once the campaign passed, a person may admit the + certified copy afresh; nothing is admitted without that approval.""" + + from openadapt_flow.repair import readmission + from tests.test_repair_readmission import _certified + + wf = _workflow() + bundle = tmp_path / "bundle" + wf.save(bundle) + proposal = relabel.propose(_halted(_identity(NEW)), wf) + assert isinstance(proposal, relabel.RelabelProposal) + candidate = relabel.build(bundle, proposal, tmp_path / "candidate") + certified = _certified(tmp_path / "certified") + rows = [ + {"case_id": "representative", "trial": 1, "transaction_outcome": "VERIFIED"} + ] + + def requalify(parent, cand, out, requalification): + requalification.run( + cand, + None, + out=out, + cases=["representative"], + trials=1, + certify="clinical-write", + hooks=None, + run_id_prefix="requalify-x", + ) + raise readmission.ReadmissionRefused( + "the repair changes the program's record check; it needs a person's " + "fresh admission" + ) + + monkeypatch.setattr(readmission, "requalify", requalify) + campaign = lambda *a, **k: SimpleNamespace( # noqa: E731 + passed=True, certified=True, bundle_dir=certified, rows=rows + ) + reviews: list[Any] = [] + store = _Store(tmp_path / "store") + + def ask(review: Any) -> tuple[str, str]: + reviews.append(review) + return ("approve", "operator-1") + + result = relabel.readmit( + parent_bundle=bundle, + candidate_bundle=candidate, + proposal=proposal, + store=store, + requalification=readmission.Requalification(config=None, run=campaign), + ask_person=ask, + work_dir=tmp_path / "work", + ) + assert result.status == "fresh_admission" and result.bundle_dir == certified + assert result.lineage is None and store.calls == [] + [review] = reviews + assert "fresh admission" in review.fresh_admission + # Declined: nothing to admit. + declined = relabel.readmit( + parent_bundle=bundle, + candidate_bundle=candidate, + proposal=proposal, + store=store, + requalification=readmission.Requalification(config=None, run=campaign), + ask_person=lambda review: ("decline", "operator-1"), + work_dir=tmp_path / "work2", + ) + assert declined.status == "declined" and declined.bundle_dir is None From d45b673efd4d5fbc983b0d0326a8df99154ee106 Mon Sep 17 00:00:00 2001 From: abrichr <richard.abrich@mldsai.com> Date: Sat, 24 Oct 2026 19:06:34 -0400 Subject: [PATCH 05/16] measure: production-lifecycle soak evidence (before 27 items, after 55 items, recovery smoke) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --- packages/flow/benchmark/lifecycle/README.md | 23 +- packages/flow/benchmark/lifecycle/metrics.py | 2 + .../production-2026-10-24/after/REPORT.md | 67 ++++ .../after/arm-ledger.jsonl | 34 ++ .../production-2026-10-24/after/ledger.jsonl | 120 +++++++ .../production-2026-10-24/after/results.json | 336 ++++++++++++++++++ .../production-2026-10-24/after/stops.jsonl | 25 ++ .../after/switch/log-1792873972.jsonl | 37 ++ .../after/switch/log-1792878330.jsonl | 45 +++ .../after/switch/switch.json | 42 +++ .../after/workload.jsonl | 69 ++++ .../production-2026-10-24/before/REPORT.md | 61 ++++ .../before/arm-ledger.jsonl | 21 ++ .../production-2026-10-24/before/ledger.jsonl | 59 +++ .../production-2026-10-24/before/results.json | 305 ++++++++++++++++ .../production-2026-10-24/before/stops.jsonl | 27 ++ .../before/switch/log-1792868032.jsonl | 54 +++ .../before/switch/switch.json | 42 +++ .../before/workload.jsonl | 69 ++++ .../recovery-smoke/REPORT.md | 48 +++ .../recovery-smoke/arm-ledger.jsonl | 5 + .../recovery-smoke/ledger.jsonl | 14 + .../recovery-smoke/results.json | 243 +++++++++++++ .../recovery-smoke/stops.jsonl | 1 + .../switch/log-1792865787.jsonl | 2 + .../switch/log-1792866771.jsonl | 5 + .../recovery-smoke/switch/switch.json | 42 +++ .../recovery-smoke/workload.jsonl | 16 + .../flow/openadapt_flow/approval_mode/gate.py | 27 +- .../flow/openadapt_flow/repair/relabel.py | 2 +- .../flow/tests/test_approval_mode_replayer.py | 56 +++ 31 files changed, 1894 insertions(+), 5 deletions(-) create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/REPORT.md create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/arm-ledger.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/ledger.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/results.json create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/stops.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/log-1792873972.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/log-1792878330.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/switch.json create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/workload.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/REPORT.md create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/arm-ledger.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/ledger.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/results.json create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/stops.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/switch/log-1792868032.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/switch/switch.json create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/workload.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/REPORT.md create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/arm-ledger.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/ledger.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/results.json create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/stops.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/log-1792865787.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/log-1792866771.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/switch.json create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/workload.jsonl diff --git a/packages/flow/benchmark/lifecycle/README.md b/packages/flow/benchmark/lifecycle/README.md index 7b585c503..328021895 100644 --- a/packages/flow/benchmark/lifecycle/README.md +++ b/packages/flow/benchmark/lifecycle/README.md @@ -28,6 +28,26 @@ Reported beside it, never folded in: (reconcile + re-entry per silent wrong), and the all-manual baseline (every item entered by hand). +## The headline + +`results.json` (`arms.<arm>.headline`) and the top of `REPORT.md` give, per arm: + +- **verified items per operator-minute**: items the oracle judges right that + nobody entered by hand, over every charged operator minute (approvals, + stops, reconciliations, resumes, repair reviews, items done by hand and + maintenance). Shown with and without setup, and at x0.5, x1 and x2 of the + cost model; +- false stops per 100 items, and all stops per 100 items; +- operator minutes per stopped item; +- after each app change: the items it false-stopped, the operator minutes of + maintenance, and the wall time until the next verified item; +- stops by cause, and for duplicate-check stops the identity field the item + shared with an existing chart. + +`--drift KIND@SEQ` replaces the four-change schedule with your own, for +example `--drift relabel_save@26` (proof-15's change: only the save button is +relabeled). + ## Files | File | What it is | @@ -41,7 +61,8 @@ Reported beside it, never folded in: | `metrics.py` | The metric and its parts, from the ledger | | `report.py` | `results.json`, `REPORT.md` and `stops.jsonl` from the ledger | | `run.py` | The runner | -| `openadapt_arm.py` | The OpenAdapt arm | +| `openadapt_arm.py` | The OpenAdapt arm (CLI and Standard governed modes) | +| `production_arm.py` | The production configuration of `benchmark/lifecycle_proof` (Regulated, `problems_only`, durable, pipelined read-back, repair on) as an arm; `recovery: "relabel"` adds the relabel repair, `duplicate_check: true` admits the program with the match-list duplicate check | | `fake.py` | An in-memory app and two toy arms, for tests and for checking a new arm | | `results/<run>/` | Committed runs: `ledger.jsonl`, `workload.jsonl`, `results.json`, `REPORT.md`, `stops.jsonl` | diff --git a/packages/flow/benchmark/lifecycle/metrics.py b/packages/flow/benchmark/lifecycle/metrics.py index 91201b30c..58378ce18 100644 --- a/packages/flow/benchmark/lifecycle/metrics.py +++ b/packages/flow/benchmark/lifecycle/metrics.py @@ -96,6 +96,8 @@ def stop_cause(row: dict[str, Any]) -> str: ) if "no_duplicate_candidate" in halt or "No matches were found" in halt: return "duplicate check listed a chart" + if "waiting for a person to approve" in halt and "switched_off" in halt: + return "problems_only switch off; stopped unasked" if "Identity check failed" in halt: return "identity check failed (relabeled control)" if "Missing" in halt or "missing" in halt and "param" in halt: diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/REPORT.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/REPORT.md new file mode 100644 index 000000000..0cb915e3f --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/REPORT.md @@ -0,0 +1,67 @@ +# Lifecycle soak report + +Protocol `lifecycle/2026-10-20.1`, workload `lifecycle-workload/2026-10-24.1`, seed 7, 55 referrals over 10 simulated days. Engine commit `26947f9683d6`. App: openemr 8.0.0.3, synthetic data only. Cost model `lifecycle-cost/2026-10-20.1`. + +## Arm `openadapt-production-relabel` + +- **Verified items per operator-minute: 0.327** (41 verified of 55 items over 125.5 operator minutes; 0.314 with the 5.0 setup minutes). By hand: 0.333 an operator-minute. +- False stops per 100 items: 16.36; all stops per 100 items: 45.45; operator minutes per stop: 3.72. +- After the app change `relabel_save` (item 26): 7 of 30 items false-stopped, 42.5 operator minutes of maintenance (stops, repair reviews); first verified item after it: 28, 1370.3 s after the change. +- Duplicate-check stops: 18; field shared with an existing chart: {"lname": 9, "DOB": 2, "none at start": 1, "lname+DOB": 5, "first name only": 1}; judged {"false_stop": 9, "right_stop": 8, "fault_stop": 1}; exception kinds {"clean": 2, "shared_dob": 3, "concurrent_same": 2, "dup_resend": 2, "ambiguous_same_person": 1, "common_surname": 4, "dup_existing": 3, "slow_save": 1}. +- Stops judged `data_stop`, by cause: other: REJECTED_POLICY HALTED / REJECTED_POLICY 2. +- Stops judged `false_stop`, by cause: duplicate check listed a chart 9. +- Stops judged `fault_stop`, by cause: duplicate check listed a chart 1. +- Stops judged `flagged_wrong`, by cause: other: RECONCILIATION_REQUIRED System-of-record effect verification HALTED step 'step_040' (click 'Confirm Crea 2. +- Stops judged `right_stop`, by cause: duplicate check listed a chart 8, other: REJECTED_POLICY HALTED / REJECTED_POLICY 2. +- Stops judged `stopped_saved`, by cause: identity check failed (relabeled control) 1. +- Cost-model bands, verified per operator-minute: x0.5 0.653, x1 0.327, x2 0.163. + +| | x0.5 | x1 | x2 | +|---|---:|---:|---:| +| Verified completed items per operator-hour | 37.7 | 18.85 | 9.43 | +| ... if every silent wrong is later found and fixed | 37.7 | 18.85 | 9.43 | +| All-manual items per operator-hour | 40 | 20 | 10 | +| Operator work removed vs all-manual | 20.9% | 20.9% | 20.9% | +| Setup minutes | 2.5 | 5 | 10 | +| Per-item operator minutes (mean) | 1.073 | 2.145 | 4.291 | +| Maintenance minutes (all UI changes) | 3.75 | 7.5 | 15 | +| Operator hours in total | 1.087 | 2.175 | 4.35 | + +- Items: 55; verified completed without hand entry: 41; right in the end: 53; done by hand: 14. +- False stops: 9 of 37 clean items, 24.3% (95% CI 13.4-40.1%); 7 of them with a UI change in force. +- Silent wrong: 0 of 30 items claimed done, 0.0% (95% CI 0.0-11.3%) (judged by direct SQL, never the product's verdict). +- Operator requests: {"stop": 23, "reconcile": 2, "approval": 30, "repair_review": 1}; actions: {"do_by_hand": 14, "approve": 30, "skip": 10, "accept_repair": 1, "confirm_saved": 1}. +- Outcomes: {"correct": 30, "false_stop": 9, "flagged_wrong": 2, "right_stop": 10, "stopped_saved": 1, "data_stop": 2, "fault_stop": 1}. +- Wall: 9124.5 s of item time, median 118.78 s an item; host 1-minute load median 8.0, max 102.5. +- Model calls 0, list-price cost $0.0. + +Outcome by exception: + +| Exception | Outcomes | +|---|---| +| ambiguous_same_person | right_stop 1 | +| clean | correct 28, false_stop 2 | +| common_surname | false_stop 4 | +| concurrent_other | correct 1 | +| concurrent_same | right_stop 2 | +| dup_existing | right_stop 3 | +| dup_resend | right_stop 2 | +| malformed_case | stopped_saved 1 | +| malformed_dob | flagged_wrong 2 | +| missing_optional | data_stop 2 | +| missing_required | right_stop 2 | +| session_expiry | correct 1 | +| shared_dob | false_stop 3 | +| slow_save | fault_stop 1 | + +After each UI change (items until the next change): + +| Change | From item | Items | Outcomes | +|---|---:|---:|---| +| relabel_save | 26 | 30 | correct 13, data_stop 2, false_stop 7, fault_stop 1, right_stop 6, stopped_saved 1 | + +## Assumptions + +Operator seconds per touch (`lifecycle-cost/2026-10-20.1`): admit 300, approval 20, compile_review 600, interrupt 30, manual_entry 180, question 60, reconcile 120, repair_review 120, stop 90, teach_prep 300. Every request also pays the interrupt charge. Bands scale every number. + +No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds). diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/arm-ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/arm-ledger.jsonl new file mode 100644 index 000000000..d60f2ca2d --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/arm-ledger.jsonl @@ -0,0 +1,34 @@ +{"at": 1792873972.706, "bundle": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-ecfb998b8ff7-1792873972"} +{"action": "approve", "at": 1792875044.836, "item": "ref-00007", "kind": "person", "request_id": "b303ba976f6d4dd09b1ba7db4765a299"} +{"action": "approve", "at": 1792875171.958, "item": "ref-00009", "kind": "person", "request_id": "3806bd3b31d14d65936fd95007947d2f"} +{"action": "approve", "at": 1792875290.359, "item": "ref-00010", "kind": "person", "request_id": "8dc45cc7c14f4a9e8eda6cf1d0de5171"} +{"action": "approve", "at": 1792875408.729, "item": "ref-00011", "kind": "person", "request_id": "9f6316dd8e084d9eb0d4bfbc5385de6a"} +{"action": "approve", "at": 1792875764.022, "item": "ref-00013", "kind": "person", "request_id": "57a7228476a949eea6efd82c80096deb"} +{"action": "approve", "at": 1792875882.633, "item": "ref-00014", "kind": "person", "request_id": "1c24022b5ad34040a303d97cba47daf0"} +{"action": "approve", "at": 1792876000.992, "item": "ref-00015", "kind": "person", "request_id": "5b003b4811a94727b925742b9d3d7d3d"} +{"action": "approve", "at": 1792876119.981, "item": "ref-00016", "kind": "person", "request_id": "0d509b289bdb4faaa02a36d233b26ff1"} +{"action": "approve", "at": 1792876238.221, "item": "ref-00017", "kind": "person", "request_id": "d773cf0e3d2f4da5bc4afe2ac9765223"} +{"action": "approve", "at": 1792876356.72, "item": "ref-00018", "kind": "person", "request_id": "53764778ceb547be99058feccc128d18"} +{"action": "approve", "at": 1792876474.751, "item": "ref-00019", "kind": "person", "request_id": "079df42d46c64cea9e66d7a08f731162"} +{"action": "approve", "at": 1792876601.096, "item": "ref-00020", "kind": "person", "request_id": "93bd38f1e1a44726a4eed0d677f0880e"} +{"action": "approve", "at": 1792876954.734, "item": "ref-00022", "kind": "person", "request_id": "bc95c58a0178483e8602d501dff5a037"} +{"action": "approve", "at": 1792877073.152, "item": "ref-00023", "kind": "person", "request_id": "46b574fc76814ef6a1948a242e44d572"} +{"action": "approve", "at": 1792877427.578, "item": "ref-00025", "kind": "person", "request_id": "dfba91fbcde54b8db802b0ef7e02adcc"} +{"action": "approve", "at": 1792877546.587, "item": "ref-00026", "kind": "person", "request_id": "44aba42af969451f91503f2008789b83"} +{"at": 1792877568.579, "candidate": "/Users/abrichr/oa/scratch/production-lifecycle/runs/soak-after-2/arms/openadapt-production-relabel/items/ref-00026-relabel/candidate", "kind": "drift.requalify.start"} +{"at": 1792878326.425, "kind": "drift.requalify.end"} +{"at": 1792878330.91, "bundle": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-c0a61b16b9d8-1792878330"} +{"action": "approve", "at": 1792878434.742, "item": "ref-00026", "kind": "person", "request_id": "dd14459300104427a2ecf48db3c110e1"} +{"action": "approve", "at": 1792878798.136, "item": "ref-00028", "kind": "person", "request_id": "ac2d3388e120411ca12799c00a1093b4"} +{"action": "approve", "at": 1792879394.05, "item": "ref-00031", "kind": "person", "request_id": "40c749b0dc714c6c8cdd087f8e73b523"} +{"action": "approve", "at": 1792879996.368, "item": "ref-00035", "kind": "person", "request_id": "12cb8c17a3b44bc2bd271576dc0a718c"} +{"action": "approve", "at": 1792880115.489, "item": "ref-00036", "kind": "person", "request_id": "0fc398b5c1054b4db9041467807b5f45"} +{"action": "approve", "at": 1792880234.49, "item": "ref-00037", "kind": "person", "request_id": "1218b7ca60a14bcf96cd2d8f32e736cf"} +{"action": "approve", "at": 1792880597.568, "item": "ref-00039", "kind": "person", "request_id": "924587f52f5b4236a3472c7b1a26383a"} +{"action": "approve", "at": 1792881191.943, "item": "ref-00042", "kind": "person", "request_id": "0084d420a97a4ce98bb749b58cf6e451"} +{"action": "approve", "at": 1792881310.801, "item": "ref-00043", "kind": "person", "request_id": "02d155a2f42f4eb8842b0a8c28669377"} +{"action": "approve", "at": 1792881906.061, "item": "ref-00046", "kind": "person", "request_id": "6a5258b2c628486dab08affe5e91e51a"} +{"action": "approve", "at": 1792882024.999, "item": "ref-00047", "kind": "person", "request_id": "d43b78962b3e43b3b2754f94fd1aad35"} +{"action": "approve", "at": 1792882143.963, "item": "ref-00048", "kind": "person", "request_id": "c1567aea6b964d9ba9854d50249f48de"} +{"action": "approve", "at": 1792882263.811, "item": "ref-00049", "kind": "person", "request_id": "1d7a90c4d2f74553ac54dade15a08d19"} +{"action": "approve", "at": 1792882619.769, "item": "ref-00051", "kind": "person", "request_id": "227211554021479e8441f1b827199e27"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/ledger.jsonl new file mode 100644 index 000000000..ca3957d51 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/ledger.jsonl @@ -0,0 +1,120 @@ +{"app": {"api_url": "https://127.0.0.1:9400", "app": "openemr", "baseline_sha256": "015bef02fb30530e2ed64c17e8035623a39801a9008f2df307eaf53e420e98ba", "images": {"mariadb": "mariadb:11.8@sha256:efb4959ef2c835cd735dbc388eb9ad6aab0c78dd64febcd51bc17481111890c4", "openemr": "openemr/openemr:8.0.0.3@sha256:0aa4d3d52b22fa69986c087e7c99e9854d8dfd70440634eb7c8af0e08f19f3ab"}, "project": "openadapt-openemr-compose", "ui_url": "http://127.0.0.1:9401", "version": "8.0.0.3"}, "argv": null, "arm": "", "cost_model": {"admit_s": 300.0, "approval_s": 20.0, "calibration": "No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds).", "compile_review_s": 600.0, "interrupt_s": 30.0, "manual_entry_s": 180.0, "question_s": 60.0, "reconcile_s": 120.0, "repair_review_s": 120.0, "stop_s": 90.0, "teach_prep_s": 300.0, "version": "lifecycle-cost/2026-10-20.1"}, "cpus": 12, "days": 10, "engine_commit": "26947f9683d6b08809f9bea03c004c326092ef89", "host": "MacBook-Pro-5", "items": 55, "platform": "macOS-15.7.3-arm64-arm-64bit", "protocol": "lifecycle/2026-10-20.1", "seed": 7, "stop_after": null, "t": 1792873961.882, "type": "run_start", "workload": "lifecycle-workload/2026-10-24.1"} +{"arm": "openadapt-production-relabel", "arm_spec": "benchmark.lifecycle.production_arm:make", "describe": {"api_tier": "where admissible (refused on the OpenEMR referral by its own proposal; the GUI save runs)", "approval": "problems_only (local stand-in for Cloud's switch status)", "authorization": "governed run gate on the certified, encrypted bundle", "checkpoint_store": "encrypted", "configuration": "benchmark/lifecycle_proof (proof-15)", "duplicate_check": "no_duplicate_candidate on step_039 (rows tr.oneresult; a row with the item's last name or date of birth stops the item)", "durable": true, "model_calls": "none on any path", "pin": "admitted digest; repaired versions only through signed lineage", "policy": "clinical-write", "profile": "regulated", "qualification_trials": 1, "readback": "pipelined, window 1; the harness waits for each check", "recovery": "relabel", "repair": "self-repair on a halt before any effect (rule-based agent, no model)"}, "existing_ids": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], "interface": "lifecycle-arm/1", "options": {"admission_from": "/Users/abrichr/oa/scratch/production-lifecycle/runs/smoke-3b/arms/openadapt-production-relabel", "duplicate_check": true, "recovery": "relabel"}, "t": 1792873971.962, "type": "arm_start"} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "teach and compile happened before this run (the certified referral bundle); onboarding effort is measured in benchmark/onboarding_effort", "phase": "admit", "pinned_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "reused_from": {"digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "seconds": 796.3, "workdir": "/Users/abrichr/oa/scratch/production-lifecycle/runs/smoke-3b/arms/openadapt-production-relabel"}, "stage": "setup", "t": 1792873972.709, "type": "phase", "wall_s": 796.3} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "problems_only switch opened locally, as Cloud would", "phase": "switch", "stage": "setup", "t": 1792873972.709, "type": "phase", "wall_s": 0.3} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00001"}, "drift_active": [], "evidence": "items/ref-00001", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 122.74, "injected": [], "item_id": "ref-00001", "load_1m": 7.0, "load_1m_end": 7.2, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["13"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 1, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792874095.554, "type": "item_result", "wall_s": 122.27} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "14"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00002", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "enter_by_hand", "seq": 2, "surface": "openadapt-flow explain / approve / resume", "t": 1792874337.568, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00002", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00002", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 242.21, "injected": [], "item_id": "ref-00002", "load_1m": 7.2, "load_1m_end": 7.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 2, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 1}, "t": 1792874337.874, "type": "item_result", "wall_s": 241.9} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00003"}, "drift_active": [], "evidence": "items/ref-00003", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.02, "injected": [], "item_id": "ref-00003", "load_1m": 7.6, "load_1m_end": 6.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["15"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 3, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792874456.001, "type": "item_result", "wall_s": 117.61} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00004"}, "drift_active": [], "evidence": "items/ref-00004", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.22, "injected": [], "item_id": "ref-00004", "load_1m": 6.4, "load_1m_end": 6.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["16"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 4, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792874574.318, "type": "item_result", "wall_s": 117.83} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "17"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00005", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "enter_by_hand", "seq": 5, "surface": "openadapt-flow explain / approve / resume", "t": 1792874811.366, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00005", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00005", "exception": "shared_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 237.29, "injected": [], "item_id": "ref-00005", "load_1m": 6.1, "load_1m_end": 9.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 5, "shares_with_existing": {"DOB": 1, "fname": 0, "lname": 0}, "t": 1792874811.696, "type": "item_result", "wall_s": 236.96} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "19"}, "charged_s": 330.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "reconciliation_required", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "RECONCILIATION_REQUIRED"}, "item_id": "ref-00006", "kind": "reconcile", "operator": "scripted", "reason": "RECONCILIATION_REQUIRED: System-of-record effect verification HALTED step 'step_040' (click 'Confirm Create New Patient'): exact_new_set refuted against the rest system of record (the screen indicated completion but the declared outcome is contradicted or unverifiable) \u2014 declared new record {DOB=04/", "rule": "fix_wrong_chart_by_hand", "seq": 6, "surface": "openadapt-flow explain / approve / resume", "t": 1792874937.92, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "reconciliation_required", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "System-of-record effect verification HALTED step 'step_040' (click 'Confirm Create New Patient'): exact_new_set refuted against the rest system of record (the screen indicated completion but the declared outcome is contradicted or unverifiable) \u2014 declared new record {DOB=04/20/1944, city=EXAMPLETON,", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<terminal>", "success": false, "transaction_outcome": "RECONCILIATION_REQUIRED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "reconciliation_required", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "System-of-record effect verification HALTED step 'step_040' (click 'Confirm Create New Patient'): exact_new_set refuted against the rest system of record (the screen indicated completion but the declared outcome is contradicted or unverifiable) \u2014 declared new record {DOB=04/20/1944, city=EXAMPLETON,", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<terminal>", "success": false, "transaction_outcome": "RECONCILIATION_REQUIRED"}, "relabel": {"proposed": false, "why": "input reached step_040, a step that saves; never repaired"}, "route": {"route": "reconciliation", "why": "a write may have happened before the stop; it is never repaired automatically"}, "run_dir": "items/ref-00006", "stops": [{"decision": "do_by_hand", "rule": "fix_wrong_chart_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00006", "exception": "malformed_dob", "final": {"new_charts": 2, "verdict": "wrong"}, "final_oracle": "wrong", "harness_wall_s": 126.44, "injected": [], "item_id": "ref-00006", "load_1m": 9.8, "load_1m_end": 6.9, "model_calls": 0, "oracle": {"collateral_ids": [], "diffs": [{"field": "DOB", "got": "2026-10-24", "want": "1944-04-20"}], "new_charts": 1, "new_ids": ["18"], "verdict": "wrong", "why": "field mismatch"}, "outcome": "flagged_wrong", "product_status": "HALTED / RECONCILIATION_REQUIRED", "seq": 6, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792874938.237, "type": "item_result", "wall_s": 126.12} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00007", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 7, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792875044.835, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00007"}, "drift_active": [], "evidence": "items/ref-00007", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.62, "injected": [], "item_id": "ref-00007", "load_1m": 6.9, "load_1m_end": 110.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["20"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 7, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792875058.964, "type": "item_result", "wall_s": 120.21} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00008", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "skip_no_chart_wanted", "seq": 8, "surface": "openadapt-flow explain / approve / resume", "t": 1792875066.297, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00008", "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00008", "exception": "missing_required", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 7.55, "injected": [], "item_id": "ref-00008", "load_1m": 102.2, "load_1m_end": 102.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 8, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792875066.616, "type": "item_result", "wall_s": 7.24} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00009", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 9, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792875171.957, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00009"}, "drift_active": [], "evidence": "items/ref-00009", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 119.29, "injected": [], "item_id": "ref-00009", "load_1m": 102.5, "load_1m_end": 50.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["21"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 9, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792875185.997, "type": "item_result", "wall_s": 118.9} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00010", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 10, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792875290.357, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00010"}, "drift_active": [], "evidence": "items/ref-00010", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.21, "injected": [], "item_id": "ref-00010", "load_1m": 50.4, "load_1m_end": 12.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["22"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 10, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792875304.302, "type": "item_result", "wall_s": 117.81} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00011", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 11, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792875408.728, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00011"}, "drift_active": [], "evidence": "items/ref-00011", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.24, "injected": [], "item_id": "ref-00011", "load_1m": 12.6, "load_1m_end": 8.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["23"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 11, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792875422.64, "type": "item_result", "wall_s": 117.82} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00012", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "skip_no_chart_wanted", "seq": 12, "surface": "openadapt-flow explain / approve / resume", "t": 1792875658.636, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00012", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00012", "exception": "concurrent_same", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 235.83, "injected": [{"chart_id": "24", "event": "other_clerk_creates"}], "item_id": "ref-00012", "load_1m": 8.5, "load_1m_end": 11.3, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 12, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792875659.049, "type": "item_result", "wall_s": 235.41} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00013", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 13, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792875764.02, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00013"}, "drift_active": [], "evidence": "items/ref-00013", "exception": "concurrent_other", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 119.02, "injected": [{"event": "other_clerk_edits_unrelated", "phone_home": "555-0113", "touched_ids": ["15"]}], "item_id": "ref-00013", "load_1m": 11.3, "load_1m_end": 9.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["25"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 13, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792875778.179, "type": "item_result", "wall_s": 118.63} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00014", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 14, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792875882.632, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00014"}, "drift_active": [], "evidence": "items/ref-00014", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.29, "injected": [], "item_id": "ref-00014", "load_1m": 9.5, "load_1m_end": 7.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["26"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 14, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792875896.566, "type": "item_result", "wall_s": 117.9} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00015", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 15, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792876000.99, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00015"}, "drift_active": [], "evidence": "items/ref-00015", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.43, "injected": [], "item_id": "ref-00015", "load_1m": 7.9, "load_1m_end": 11.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["27"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 15, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792876015.097, "type": "item_result", "wall_s": 118.03} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00016", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 16, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792876119.978, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00016"}, "drift_active": [], "evidence": "items/ref-00016", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.78, "injected": [], "item_id": "ref-00016", "load_1m": 11.4, "load_1m_end": 6.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["28"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 16, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792876133.967, "type": "item_result", "wall_s": 118.39} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00017", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 17, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792876238.22, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00017"}, "drift_active": [], "evidence": "items/ref-00017", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.22, "injected": [], "item_id": "ref-00017", "load_1m": 6.7, "load_1m_end": 7.2, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["29"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 17, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792876252.282, "type": "item_result", "wall_s": 117.83} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00018", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 18, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792876356.719, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00018"}, "drift_active": [], "evidence": "items/ref-00018", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.42, "injected": [], "item_id": "ref-00018", "load_1m": 7.2, "load_1m_end": 6.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["30"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 18, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792876370.805, "type": "item_result", "wall_s": 118.02} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00019", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 19, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792876474.75, "type": "operator"} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "32"}, "charged_s": 330.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "RECONCILIATION_REQUIRED"}, "item_id": "ref-00019", "kind": "reconcile", "operator": "scripted", "reason": "RECONCILIATION_REQUIRED: System-of-record effect verification HALTED step 'step_040' (click 'Confirm Create New Patient'): exact_new_set refuted against the rest system of record (the screen indicated completion but the declared outcome is contradicted or unverifiable) \u2014 declared new record {DOB=10/", "rule": "fix_wrong_chart_by_hand", "seq": 19, "surface": "openadapt-flow explain / approve / resume", "t": 1792876496.605, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "System-of-record effect verification HALTED step 'step_040' (click 'Confirm Create New Patient'): exact_new_set refuted against the rest system of record (the screen indicated completion but the declared outcome is contradicted or unverifiable) \u2014 declared new record {DOB=10/01/1958, city=EXAMPLETON,", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<terminal>", "success": false, "transaction_outcome": "RECONCILIATION_REQUIRED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "System-of-record effect verification HALTED step 'step_040' (click 'Confirm Create New Patient'): exact_new_set refuted against the rest system of record (the screen indicated completion but the declared outcome is contradicted or unverifiable) \u2014 declared new record {DOB=10/01/1958, city=EXAMPLETON,", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<terminal>", "success": false, "transaction_outcome": "RECONCILIATION_REQUIRED"}, "relabel": {"proposed": false, "why": "input reached step_040, a step that saves; never repaired"}, "route": {"route": "reconciliation", "why": "a write may have happened before the stop; it is never repaired automatically"}, "run_dir": "items/ref-00019", "stops": [{"decision": "do_by_hand", "rule": "fix_wrong_chart_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00019", "exception": "malformed_dob", "final": {"new_charts": 2, "verdict": "wrong"}, "final_oracle": "wrong", "harness_wall_s": 125.99, "injected": [], "item_id": "ref-00019", "load_1m": 6.4, "load_1m_end": 6.6, "model_calls": 0, "oracle": {"collateral_ids": [], "diffs": [{"field": "DOB", "got": "2026-10-24", "want": "1958-10-01"}], "new_charts": 1, "new_ids": ["31"], "verdict": "wrong", "why": "field mismatch"}, "outcome": "flagged_wrong", "product_status": "HALTED / RECONCILIATION_REQUIRED", "seq": 19, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792876496.882, "type": "item_result", "wall_s": 125.71} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00020", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 20, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792876601.091, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00020"}, "drift_active": [], "evidence": "items/ref-00020", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.04, "injected": [], "item_id": "ref-00020", "load_1m": 6.6, "load_1m_end": 6.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["33"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 20, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792876615.012, "type": "item_result", "wall_s": 117.64} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00021", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "skip_no_chart_wanted", "seq": 21, "surface": "openadapt-flow explain / approve / resume", "t": 1792876850.021, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00021", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00021", "exception": "dup_resend", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 235.31, "injected": [], "item_id": "ref-00021", "load_1m": 6.6, "load_1m_end": 10.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 21, "shares_with_existing": {"DOB": 1, "fname": 3, "lname": 1}, "t": 1792876850.424, "type": "item_result", "wall_s": 234.91} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00022", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 22, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792876954.733, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00022"}, "drift_active": [], "evidence": "items/ref-00022", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.22, "injected": [], "item_id": "ref-00022", "load_1m": 10.8, "load_1m_end": 10.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["34"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 22, "shares_with_existing": {"DOB": 0, "fname": 3, "lname": 0}, "t": 1792876968.737, "type": "item_result", "wall_s": 117.82} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00023", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 23, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792877073.15, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00023"}, "drift_active": [], "evidence": "items/ref-00023", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.26, "injected": [], "item_id": "ref-00023", "load_1m": 10.6, "load_1m_end": 6.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["35"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 23, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792877087.098, "type": "item_result", "wall_s": 117.86} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00024", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "skip_no_chart_wanted", "seq": 24, "surface": "openadapt-flow explain / approve / resume", "t": 1792877322.864, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00024", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00024", "exception": "ambiguous_same_person", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 236.07, "injected": [], "item_id": "ref-00024", "load_1m": 6.5, "load_1m_end": 8.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 24, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 1}, "t": 1792877323.273, "type": "item_result", "wall_s": 235.67} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00025", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 25, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792877427.576, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00025"}, "drift_active": [], "evidence": "items/ref-00025", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.2, "injected": [], "item_id": "ref-00025", "load_1m": 8.9, "load_1m_end": 8.3, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["36"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 25, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792877441.57, "type": "item_result", "wall_s": 117.81} +{"applied": {"kind": "relabel_save", "labels": {"Confirm Create New Patient": "Save new patient"}}, "arm": "openadapt-production-relabel", "day": 4, "first_seq": 26, "kind": "relabel_save", "t": 1792877441.753, "type": "drift_applied"} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00026", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 26, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792877546.586, "type": "operator"} +{"action": "accept_repair", "arm": "openadapt-production-relabel", "charged_s": 150.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"certified_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "fresh_admission": "the repair changes the program's record check; it needs a person's fresh admission", "probes_passed": true, "release_changed_files": ["/var/www/localhost/htdocs/openemr/interface/new/new_search_popup.php"], "requalified_cases": 6}, "item_id": "ref-00026", "kind": "repair_review", "operator": "scripted", "reason": "step_040: the control now reads 'Save new patient' instead of 'Confirm Create New Patient'; its id, kind and form are unchanged (the recorded identity hash matches with only the label swapped back)", "rule": "repair_drift_and_probes_passed", "seq": 26, "surface": "openadapt-flow repair relabel (review card)", "t": 1792878330.643, "type": "operator"} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00026", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 26, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792878434.741, "type": "operator"} +{"action": "confirm_saved", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "RECONCILIATION_REQUIRED"}, "item_id": "ref-00026", "kind": "stop", "operator": "scripted", "reason": "RECONCILIATION_REQUIRED: System-of-record effect verification HALTED step 'step_040' (click 'Save new patient'): record_written refuted against the rest system of record (the screen indicated completion but the declared outcome is contradicted or unverifiable) \u2014 0 records match the target selector, ", "rule": "chart_already_correct", "seq": 26, "surface": "openadapt-flow explain / approve / resume", "t": 1792878453.178, "type": "operator"} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "fresh admission of the re-qualified copy: the repair changes the program's record check; it needs a person's fresh admission", "phase": "admit", "seq": 26, "stage": "maintenance", "t": 1792878453.281, "type": "phase", "wall_s": 0.0, "within_item": "ref-00026"} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "phase": "relabel_requalify", "seq": 26, "stage": "maintenance", "t": 1792878453.282, "type": "phase", "wall_s": 763.0, "within_item": "ref-00026"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "System-of-record effect verification HALTED step 'step_040' (click 'Save new patient'): record_written refuted against the rest system of record (the screen indicated completion but the declared outcome is contradicted or unverifiable) \u2014 0 records match the target selector, expected 1 (missing / pha", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<terminal>", "success": false, "transaction_outcome": "RECONCILIATION_REQUIRED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's \u2014 expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_c", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "item": "ref-00026", "lineage_hop": null, "proposal": "step_040: the control now reads 'Save new patient' instead of 'Confirm Create New Patient'; its id, kind and form are unchanged (the recorded identity hash matches with only the label swapped back)", "reason": "the repair changes the program's record check; it needs a person's fresh admission", "release": {"changed": ["/var/www/localhost/htdocs/openemr/interface/new/new_search_popup.php"], "lock": "environment.release-1.lock.json"}, "rerun": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "System-of-record effect verification HALTED step 'step_040' (click 'Save new patient'): record_written refuted against the rest system of record (the screen indicated completion but the declared outcome is contradicted or unverifiable) \u2014 0 records match the target selector, expected 1 (missing / pha", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<terminal>", "success": false, "transaction_outcome": "RECONCILIATION_REQUIRED"}, "review": {"action": "accept_repair", "charged_s": 150.0}, "seconds_to_item_done": 896.0, "seconds_to_readmitted": 773.7, "status": "fresh_admission", "timings": {"person_wait_s": 0.0, "requalify_s": 763.0}}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00026", "stops": [{"decision": "confirm_saved", "rule": "chart_already_correct"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00026", "exception": "malformed_case", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 1011.65, "injected": [], "item_id": "ref-00026", "load_1m": 8.3, "load_1m_end": 6.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["37"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "stopped_saved", "product_status": "HALTED / RECONCILIATION_REQUIRED", "seq": 26, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792878453.512, "type": "item_result", "wall_s": 1011.32} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "38"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00027", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "enter_by_hand", "seq": 27, "surface": "openadapt-flow explain / approve / resume", "t": 1792878692.472, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00027", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00027", "exception": "common_surname", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 239.19, "injected": [], "item_id": "ref-00027", "load_1m": 6.6, "load_1m_end": 48.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 27, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 1}, "t": 1792878692.793, "type": "item_result", "wall_s": 238.87} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00028", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 28, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792878798.135, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00028"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00028", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 119.17, "injected": [], "item_id": "ref-00028", "load_1m": 48.5, "load_1m_end": 11.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["39"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 28, "shares_with_existing": {"DOB": 0, "fname": 4, "lname": 0}, "t": 1792878812.066, "type": "item_result", "wall_s": 118.78} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00029", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "skip_no_chart_wanted", "seq": 29, "surface": "openadapt-flow explain / approve / resume", "t": 1792879049.676, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00029", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00029", "exception": "concurrent_same", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 237.46, "injected": [{"chart_id": "40", "event": "other_clerk_creates"}], "item_id": "ref-00029", "load_1m": 11.6, "load_1m_end": 12.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 29, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792879050.093, "type": "item_result", "wall_s": 237.05} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "41"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00030", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "enter_by_hand", "seq": 30, "surface": "openadapt-flow explain / approve / resume", "t": 1792879288.187, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00030", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00030", "exception": "common_surname", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 238.29, "injected": [], "item_id": "ref-00030", "load_1m": 12.4, "load_1m_end": 6.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 30, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 1}, "t": 1792879288.483, "type": "item_result", "wall_s": 238.0} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00031", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 31, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792879394.048, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00031"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00031", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 119.6, "injected": [], "item_id": "ref-00031", "load_1m": 6.7, "load_1m_end": 5.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["42"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 31, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792879408.181, "type": "item_result", "wall_s": 119.19} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "43"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00032", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "enter_by_hand", "seq": 32, "surface": "openadapt-flow explain / approve / resume", "t": 1792879416.101, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00032", "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00032", "exception": "missing_optional", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 8.12, "injected": [], "item_id": "ref-00032", "load_1m": 5.8, "load_1m_end": 5.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 32, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792879416.401, "type": "item_result", "wall_s": 7.82} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "44"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00033", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "enter_by_hand", "seq": 33, "surface": "openadapt-flow explain / approve / resume", "t": 1792879653.94, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00033", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00033", "exception": "common_surname", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 237.74, "injected": [], "item_id": "ref-00033", "load_1m": 5.7, "load_1m_end": 11.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 33, "shares_with_existing": {"DOB": 0, "fname": 3, "lname": 2}, "t": 1792879654.239, "type": "item_result", "wall_s": 237.44} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00034", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "skip_no_chart_wanted", "seq": 34, "surface": "openadapt-flow explain / approve / resume", "t": 1792879890.961, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00034", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00034", "exception": "dup_existing", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 237.02, "injected": [], "item_id": "ref-00034", "load_1m": 11.1, "load_1m_end": 5.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 34, "shares_with_existing": {"DOB": 1, "fname": 1, "lname": 1}, "t": 1792879891.355, "type": "item_result", "wall_s": 236.62} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00035", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 35, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792879996.367, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00035"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00035", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.93, "injected": [], "item_id": "ref-00035", "load_1m": 5.9, "load_1m_end": 6.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["45"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 35, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792880010.376, "type": "item_result", "wall_s": 118.53} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00036", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 36, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792880115.488, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00036"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00036", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 119.1, "injected": [], "item_id": "ref-00036", "load_1m": 6.5, "load_1m_end": 9.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["46"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 36, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792880129.568, "type": "item_result", "wall_s": 118.7} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00037", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 37, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792880234.489, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00037"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00037", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 119.01, "injected": [], "item_id": "ref-00037", "load_1m": 9.0, "load_1m_end": 8.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["47"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 37, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792880248.679, "type": "item_result", "wall_s": 118.6} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "48"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00038", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "enter_by_hand", "seq": 38, "surface": "openadapt-flow explain / approve / resume", "t": 1792880492.497, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": ["oa_lifecycle_fault"], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00038", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00038", "exception": "slow_save", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 244.11, "injected": [{"event": "slow_save", "trigger": "IF NEW.email = 'dmitri.birchfield.38@example.invalid' THEN SET @oa_slept = SLEEP(6); END IF;"}], "item_id": "ref-00038", "load_1m": 8.0, "load_1m_end": 6.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "fault_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 38, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 1}, "t": 1792880492.895, "type": "item_result", "wall_s": 243.71} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00039", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 39, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792880597.567, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00039"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00039", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.57, "injected": [], "item_id": "ref-00039", "load_1m": 6.7, "load_1m_end": 6.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["49"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 39, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792880611.559, "type": "item_result", "wall_s": 118.17} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "50"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00040", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "enter_by_hand", "seq": 40, "surface": "openadapt-flow explain / approve / resume", "t": 1792880849.351, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00040", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00040", "exception": "shared_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 237.99, "injected": [], "item_id": "ref-00040", "load_1m": 6.7, "load_1m_end": 6.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 40, "shares_with_existing": {"DOB": 1, "fname": 2, "lname": 1}, "t": 1792880849.65, "type": "item_result", "wall_s": 237.69} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "51"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00041", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "enter_by_hand", "seq": 41, "surface": "openadapt-flow explain / approve / resume", "t": 1792881086.361, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00041", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00041", "exception": "shared_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 236.92, "injected": [], "item_id": "ref-00041", "load_1m": 6.0, "load_1m_end": 6.2, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 41, "shares_with_existing": {"DOB": 1, "fname": 0, "lname": 0}, "t": 1792881086.672, "type": "item_result", "wall_s": 236.61} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00042", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 42, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792881191.942, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00042"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00042", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 119.19, "injected": [], "item_id": "ref-00042", "load_1m": 6.2, "load_1m_end": 8.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["52"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 42, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792881205.967, "type": "item_result", "wall_s": 118.8} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00043", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 43, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792881310.8, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00043"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00043", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.68, "injected": [], "item_id": "ref-00043", "load_1m": 8.0, "load_1m_end": 7.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["53"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 43, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792881324.749, "type": "item_result", "wall_s": 118.28} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00044", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "skip_no_chart_wanted", "seq": 44, "surface": "openadapt-flow explain / approve / resume", "t": 1792881563.098, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00044", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00044", "exception": "dup_resend", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 238.65, "injected": [], "item_id": "ref-00044", "load_1m": 7.1, "load_1m_end": 7.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 44, "shares_with_existing": {"DOB": 0, "fname": 5, "lname": 2}, "t": 1792881563.501, "type": "item_result", "wall_s": 238.25} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00045", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "skip_no_chart_wanted", "seq": 45, "surface": "openadapt-flow explain / approve / resume", "t": 1792881800.829, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00045", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00045", "exception": "dup_existing", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 237.64, "injected": [], "item_id": "ref-00045", "load_1m": 7.0, "load_1m_end": 9.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 45, "shares_with_existing": {"DOB": 1, "fname": 1, "lname": 2}, "t": 1792881801.24, "type": "item_result", "wall_s": 237.23} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00046", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 46, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792881906.06, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00046"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00046", "exception": "session_expiry", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.56, "injected": [{"event": "force_logout", "sessions_ended": 1827}], "item_id": "ref-00046", "load_1m": 9.9, "load_1m_end": 7.3, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["54"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 46, "shares_with_existing": {"DOB": 0, "fname": 4, "lname": 0}, "t": 1792881920.027, "type": "item_result", "wall_s": 118.17} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00047", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 47, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792882024.998, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00047"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00047", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.96, "injected": [], "item_id": "ref-00047", "load_1m": 7.3, "load_1m_end": 5.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["55"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 47, "shares_with_existing": {"DOB": 0, "fname": 3, "lname": 0}, "t": 1792882039.083, "type": "item_result", "wall_s": 118.56} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00048", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 48, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792882143.962, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00048"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00048", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 119.69, "injected": [], "item_id": "ref-00048", "load_1m": 5.9, "load_1m_end": 42.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["56"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 48, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792882158.867, "type": "item_result", "wall_s": 118.99} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00049", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 49, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792882263.81, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00049"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00049", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.85, "injected": [], "item_id": "ref-00049", "load_1m": 42.0, "load_1m_end": 47.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["57"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 49, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792882277.832, "type": "item_result", "wall_s": 118.44} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "58"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00050", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "enter_by_hand", "seq": 50, "surface": "openadapt-flow explain / approve / resume", "t": 1792882514.588, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00050", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00050", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 236.98, "injected": [], "item_id": "ref-00050", "load_1m": 47.7, "load_1m_end": 11.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 50, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 1}, "t": 1792882514.907, "type": "item_result", "wall_s": 236.66} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00051", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 51, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792882619.767, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00051"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00051", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 118.82, "injected": [], "item_id": "ref-00051", "load_1m": 11.7, "load_1m_end": 10.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["59"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 51, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792882633.828, "type": "item_result", "wall_s": 118.43} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00052", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "skip_no_chart_wanted", "seq": 52, "surface": "openadapt-flow explain / approve / resume", "t": 1792882870.807, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00052", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00052", "exception": "dup_existing", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 237.29, "injected": [], "item_id": "ref-00052", "load_1m": 10.8, "load_1m_end": 13.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 52, "shares_with_existing": {"DOB": 1, "fname": 5, "lname": 1}, "t": 1792882871.211, "type": "item_result", "wall_s": 236.89} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "60"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00053", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "enter_by_hand", "seq": 53, "surface": "openadapt-flow explain / approve / resume", "t": 1792882879.109, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00053", "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00053", "exception": "missing_optional", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 8.09, "injected": [], "item_id": "ref-00053", "load_1m": 13.4, "load_1m_end": 13.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 53, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792882879.402, "type": "item_result", "wall_s": 7.8} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "61"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00054", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "enter_by_hand", "seq": 54, "surface": "openadapt-flow explain / approve / resume", "t": 1792883116.822, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00054", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00054", "exception": "common_surname", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 237.62, "injected": [], "item_id": "ref-00054", "load_1m": 13.7, "load_1m_end": 10.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 54, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 2}, "t": 1792883117.122, "type": "item_result", "wall_s": 237.33} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00055", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "skip_no_chart_wanted", "seq": 55, "surface": "openadapt-flow explain / approve / resume", "t": 1792883124.485, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 9, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00055", "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00055", "exception": "missing_required", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 7.63, "injected": [], "item_id": "ref-00055", "load_1m": 10.6, "load_1m_end": 10.3, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 55, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792883124.846, "type": "item_result", "wall_s": 7.27} +{"arm": "openadapt-production-relabel", "t": 1792883125.117, "type": "arm_end"} +{"arm": "openadapt-production-relabel", "t": 1792883125.119, "type": "run_end"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/results.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/results.json new file mode 100644 index 000000000..40a1eccac --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/results.json @@ -0,0 +1,336 @@ +{ + "arms": { + "openadapt-production-relabel": { + "bands": { + "x0.5": { + "maintenance_min": 3.75, + "manual_only_hours": 1.375, + "manual_only_items_per_hour": 40.0, + "operator_hours": 1.087, + "operator_hours_with_cleanup": 1.087, + "per_item_operator_min": 1.073, + "per_item_operator_min_total": 59.0, + "setup_min": 2.5, + "verified_completed_per_operator_hour": 37.7, + "verified_completed_per_operator_hour_with_cleanup": 37.7, + "work_removed_fraction": 0.209 + }, + "x1": { + "maintenance_min": 7.5, + "manual_only_hours": 2.75, + "manual_only_items_per_hour": 20.0, + "operator_hours": 2.175, + "operator_hours_with_cleanup": 2.175, + "per_item_operator_min": 2.145, + "per_item_operator_min_total": 118.0, + "setup_min": 5.0, + "verified_completed_per_operator_hour": 18.85, + "verified_completed_per_operator_hour_with_cleanup": 18.85, + "work_removed_fraction": 0.209 + }, + "x2": { + "maintenance_min": 15.0, + "manual_only_hours": 5.5, + "manual_only_items_per_hour": 10.0, + "operator_hours": 4.35, + "operator_hours_with_cleanup": 4.35, + "per_item_operator_min": 4.291, + "per_item_operator_min_total": 236.0, + "setup_min": 10.0, + "verified_completed_per_operator_hour": 9.43, + "verified_completed_per_operator_hour_with_cleanup": 9.43, + "work_removed_fraction": 0.209 + } + }, + "by_exception": { + "ambiguous_same_person": { + "right_stop": 1 + }, + "clean": { + "correct": 28, + "false_stop": 2 + }, + "common_surname": { + "false_stop": 4 + }, + "concurrent_other": { + "correct": 1 + }, + "concurrent_same": { + "right_stop": 2 + }, + "dup_existing": { + "right_stop": 3 + }, + "dup_resend": { + "right_stop": 2 + }, + "malformed_case": { + "stopped_saved": 1 + }, + "malformed_dob": { + "flagged_wrong": 2 + }, + "missing_optional": { + "data_stop": 2 + }, + "missing_required": { + "right_stop": 2 + }, + "session_expiry": { + "correct": 1 + }, + "shared_dob": { + "false_stop": 3 + }, + "slow_save": { + "fault_stop": 1 + } + }, + "complete": true, + "cost_model": "lifecycle-cost/2026-10-20.1", + "describe": { + "api_tier": "where admissible (refused on the OpenEMR referral by its own proposal; the GUI save runs)", + "approval": "problems_only (local stand-in for Cloud's switch status)", + "authorization": "governed run gate on the certified, encrypted bundle", + "checkpoint_store": "encrypted", + "configuration": "benchmark/lifecycle_proof (proof-15)", + "duplicate_check": "no_duplicate_candidate on step_039 (rows tr.oneresult; a row with the item's last name or date of birth stops the item)", + "durable": true, + "model_calls": "none on any path", + "pin": "admitted digest; repaired versions only through signed lineage", + "policy": "clinical-write", + "profile": "regulated", + "qualification_trials": 1, + "readback": "pipelined, window 1; the harness waits for each check", + "recovery": "relabel", + "repair": "self-repair on a halt before any effect (rule-based agent, no model)" + }, + "done_by_hand": 14, + "false_stop_rate": { + "ci95": [ + 0.1336, + 0.4012 + ], + "definition": "stops with nothing written on items whose data was right and that carried no item-level fault, over all such items", + "k": 9, + "n": 37, + "rate": 0.2432, + "with_ui_change_in_force": 7 + }, + "final_correct": 53, + "headline": { + "bands": { + "x0.5": { + "after_app_change": [ + { + "first_seq": 26, + "first_verified_seq": 28, + "items_false_stopped": 7, + "items_in_window": 30, + "kind": "relabel_save", + "maintenance_operator_min": 21.25, + "seconds_to_running_again": 1370.3 + } + ], + "operator_min_per_stop": 1.86, + "operator_min_run": 62.75, + "operator_min_setup": 2.5, + "verified_per_operator_minute": 0.653, + "verified_per_operator_minute_with_setup": 0.628 + }, + "x1": { + "after_app_change": [ + { + "first_seq": 26, + "first_verified_seq": 28, + "items_false_stopped": 7, + "items_in_window": 30, + "kind": "relabel_save", + "maintenance_operator_min": 42.5, + "seconds_to_running_again": 1370.3 + } + ], + "operator_min_per_stop": 3.72, + "operator_min_run": 125.5, + "operator_min_setup": 5.0, + "verified_per_operator_minute": 0.327, + "verified_per_operator_minute_with_setup": 0.314 + }, + "x2": { + "after_app_change": [ + { + "first_seq": 26, + "first_verified_seq": 28, + "items_false_stopped": 7, + "items_in_window": 30, + "kind": "relabel_save", + "maintenance_operator_min": 85.0, + "seconds_to_running_again": 1370.3 + } + ], + "operator_min_per_stop": 7.44, + "operator_min_run": 251.0, + "operator_min_setup": 10.0, + "verified_per_operator_minute": 0.163, + "verified_per_operator_minute_with_setup": 0.157 + } + }, + "definition": "verified completed items (oracle-correct, not done by hand) per operator-minute; operator minutes are every charged approval, stop, reconciliation, resume, repair review and item done by hand, plus maintenance; *_with_setup also charges admission", + "duplicate_rule_stops": { + "by_exception": { + "ambiguous_same_person": 1, + "clean": 2, + "common_surname": 4, + "concurrent_same": 2, + "dup_existing": 3, + "dup_resend": 2, + "shared_dob": 3, + "slow_save": 1 + }, + "by_outcome": { + "false_stop": 9, + "fault_stop": 1, + "right_stop": 8 + }, + "by_shared_field": { + "DOB": 2, + "first name only": 1, + "lname": 9, + "lname+DOB": 5, + "none at start": 1 + }, + "items": 18, + "note": "fields the item shared with a chart that existed when it started; charts created during the run by earlier items count too" + }, + "false_stops_per_100_items": 16.36, + "items": 55, + "manual_entry_min": 3.0, + "stops_by_cause": { + "data_stop": { + "other: REJECTED_POLICY HALTED / REJECTED_POLICY": 2 + }, + "false_stop": { + "duplicate check listed a chart": 9 + }, + "fault_stop": { + "duplicate check listed a chart": 1 + }, + "flagged_wrong": { + "other: RECONCILIATION_REQUIRED System-of-record effect verification HALTED step 'step_040' (click 'Confirm Crea": 2 + }, + "right_stop": { + "duplicate check listed a chart": 8, + "other: REJECTED_POLICY HALTED / REJECTED_POLICY": 2 + }, + "stopped_saved": { + "identity check failed (relabeled control)": 1 + } + }, + "stops_per_100_items": 45.45, + "verified_completed": 41 + }, + "items": 55, + "model": { + "calls": 0, + "cost_usd": 0.0 + }, + "operator_actions": { + "accept_repair": 1, + "approve": 30, + "confirm_saved": 1, + "do_by_hand": 14, + "skip": 10 + }, + "operator_requests": { + "approval": 30, + "reconcile": 2, + "repair_review": 1, + "stop": 23 + }, + "outcomes": { + "correct": 30, + "data_stop": 2, + "false_stop": 9, + "fault_stop": 1, + "flagged_wrong": 2, + "right_stop": 10, + "stopped_saved": 1 + }, + "per_drift": { + "relabel_save": { + "first_seq": 26, + "items": 30, + "outcomes": { + "correct": 13, + "data_stop": 2, + "false_stop": 7, + "fault_stop": 1, + "right_stop": 6, + "stopped_saved": 1 + }, + "repair_reviews": 1 + } + }, + "silent_wrong_rate": { + "ci95": [ + 0.0, + 0.1135 + ], + "definition": "items the arm claimed done that the independent oracle judged wrong, over all items the arm claimed done", + "k": 0, + "n": 30, + "of_all_items": 0.0, + "rate": 0.0 + }, + "stops": 25, + "verified_completed": 41, + "wall": { + "load_1m_max": 102.5, + "load_1m_median": 8.0, + "median_item_s": 118.78, + "total_s": 9124.5 + } + } + }, + "run": { + "app": { + "api_url": "https://127.0.0.1:9400", + "app": "openemr", + "baseline_sha256": "015bef02fb30530e2ed64c17e8035623a39801a9008f2df307eaf53e420e98ba", + "images": { + "mariadb": "mariadb:11.8@sha256:efb4959ef2c835cd735dbc388eb9ad6aab0c78dd64febcd51bc17481111890c4", + "openemr": "openemr/openemr:8.0.0.3@sha256:0aa4d3d52b22fa69986c087e7c99e9854d8dfd70440634eb7c8af0e08f19f3ab" + }, + "project": "openadapt-openemr-compose", + "ui_url": "http://127.0.0.1:9401", + "version": "8.0.0.3" + }, + "argv": null, + "cost_model": { + "admit_s": 300.0, + "approval_s": 20.0, + "calibration": "No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds).", + "compile_review_s": 600.0, + "interrupt_s": 30.0, + "manual_entry_s": 180.0, + "question_s": 60.0, + "reconcile_s": 120.0, + "repair_review_s": 120.0, + "stop_s": 90.0, + "teach_prep_s": 300.0, + "version": "lifecycle-cost/2026-10-20.1" + }, + "cpus": 12, + "days": 10, + "engine_commit": "26947f9683d6b08809f9bea03c004c326092ef89", + "host": "MacBook-Pro-5", + "items": 55, + "platform": "macOS-15.7.3-arm64-arm-64bit", + "protocol": "lifecycle/2026-10-20.1", + "seed": 7, + "stop_after": null, + "type": "run_start", + "workload": "lifecycle-workload/2026-10-24.1" + } +} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/stops.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/stops.jsonl new file mode 100644 index 000000000..338e19127 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/stops.jsonl @@ -0,0 +1,25 @@ +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00002", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00002", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 2, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00005", "exception": "shared_dob", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00005", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 5, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00006", "exception": "malformed_dob", "execution_outcome": null, "final": "wrong", "halt_reason": null, "halt_step": null, "item_id": "ref-00006", "oracle": "wrong", "outcome": "flagged_wrong", "product_status": "HALTED / RECONCILIATION_REQUIRED", "repair": {}, "seq": 6, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00008", "exception": "missing_required", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00008", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 8, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00012", "exception": "concurrent_same", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00012", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 12, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00019", "exception": "malformed_dob", "execution_outcome": null, "final": "wrong", "halt_reason": null, "halt_step": null, "item_id": "ref-00019", "oracle": "wrong", "outcome": "flagged_wrong", "product_status": "HALTED / RECONCILIATION_REQUIRED", "repair": {}, "seq": 19, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00021", "exception": "dup_resend", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00021", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 21, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00024", "exception": "ambiguous_same_person", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00024", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 24, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00026", "exception": "malformed_case", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00026", "oracle": "correct", "outcome": "stopped_saved", "product_status": "HALTED / RECONCILIATION_REQUIRED", "repair": {}, "seq": 26, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00027", "exception": "common_surname", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00027", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 27, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00029", "exception": "concurrent_same", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00029", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 29, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00030", "exception": "common_surname", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00030", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 30, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00032", "exception": "missing_optional", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00032", "oracle": "absent", "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 32, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00033", "exception": "common_surname", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00033", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 33, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00034", "exception": "dup_existing", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00034", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 34, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00038", "exception": "slow_save", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00038", "oracle": "absent", "outcome": "fault_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 38, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00040", "exception": "shared_dob", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00040", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 40, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00041", "exception": "shared_dob", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00041", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 41, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00044", "exception": "dup_resend", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00044", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 44, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00045", "exception": "dup_existing", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00045", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 45, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00050", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00050", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 50, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00052", "exception": "dup_existing", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00052", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 52, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00053", "exception": "missing_optional", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00053", "oracle": "absent", "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 53, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00054", "exception": "common_surname", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00054", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 54, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00055", "exception": "missing_required", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00055", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 55, "transaction_outcome": null} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/log-1792873972.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/log-1792873972.jsonl new file mode 100644 index 000000000..6194d25e0 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/log-1792873972.jsonl @@ -0,0 +1,37 @@ +{"at":"2026-10-24T20:32:52.705525+00:00","counts_toward_problems":null,"decision":null,"kind":"opened","prev_sha256":"sha256:0000000000000000000000000000000000000000000000000000000000000000","reason":null,"run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":1,"sha256":"sha256:e539744dea820c17b3a36863e37e7d9fedc3b4c9168924b5e794c701d5c4f0f4","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":"sha256:548cdb3ddd1e89058620fe85a6db49a109deee0365fe280962f43f29487d74cf"} +{"at":"2026-10-24T20:34:41.459612+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:e539744dea820c17b3a36863e37e7d9fedc3b4c9168924b5e794c701d5c4f0f4","reason":null,"run_ref":"6ebaef4593daf3746b2be5d5259bc55f70b9eb385569a8e920b4d7735631d72f","schema_version":"openadapt.approval-mode-log-event/v1","seq":2,"sha256":"sha256:66e84016bd083e78c909d68439d8c3dae17bbf345433c10e2e13309ded175ebc","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:34:55.115941+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:66e84016bd083e78c909d68439d8c3dae17bbf345433c10e2e13309ded175ebc","reason":null,"run_ref":"6ebaef4593daf3746b2be5d5259bc55f70b9eb385569a8e920b4d7735631d72f","schema_version":"openadapt.approval-mode-log-event/v1","seq":3,"sha256":"sha256:9b28cdbadd8e977fab96ea66b29cc75406b4307201bcb4450c6f6ddbc047ea1a","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:36:56.867454+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:9b28cdbadd8e977fab96ea66b29cc75406b4307201bcb4450c6f6ddbc047ea1a","reason":"halted_before_effect","run_ref":"727261885e1c77dbfdec378b76bdd50d1f74bb58d23eff20712d1d164284a240","schema_version":"openadapt.approval-mode-log-event/v1","seq":4,"sha256":"sha256:5fb933354932b3cf5d74f0cde2b1109901874d70fb4eec916f69ce0a2df08d0b","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:38:56.722087+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:5fb933354932b3cf5d74f0cde2b1109901874d70fb4eec916f69ce0a2df08d0b","reason":"halted_before_effect","run_ref":"e11f5904fd1f042508660d0e9540eaf3c3f1984e6fb88d3662547d393f9e7ecb","schema_version":"openadapt.approval-mode-log-event/v1","seq":5,"sha256":"sha256:ee654c3ed1ab2cd51babd3e2b3f9de002b6fc520826f104906f61c64d4542da5","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:40:42.232259+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:ee654c3ed1ab2cd51babd3e2b3f9de002b6fc520826f104906f61c64d4542da5","reason":null,"run_ref":"f8e0c424fbeaba8f239aeeba4f020de651757454aa5f5e72093248c0ae196504","schema_version":"openadapt.approval-mode-log-event/v1","seq":6,"sha256":"sha256:c67babcea58146f71129e0880ee0622af1b2914c4469747843c7e80501321b1d","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:40:55.578855+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:c67babcea58146f71129e0880ee0622af1b2914c4469747843c7e80501321b1d","reason":null,"run_ref":"f8e0c424fbeaba8f239aeeba4f020de651757454aa5f5e72093248c0ae196504","schema_version":"openadapt.approval-mode-log-event/v1","seq":7,"sha256":"sha256:3ca203b7da6ae7109b7aa903475b8c785ea3924d3903058dbe441fee9ef0951c","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:42:40.661385+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:3ca203b7da6ae7109b7aa903475b8c785ea3924d3903058dbe441fee9ef0951c","reason":null,"run_ref":"f05dad6bddeb62e76e3dc3a893291bde2330f6bcd7fdb87fdab67bed3d5a72a4","schema_version":"openadapt.approval-mode-log-event/v1","seq":8,"sha256":"sha256:1290b482c8cce004583a0962e1f9ad6ecf14ee6bd05578c3dac78ee75d6621a2","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:42:53.917659+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:1290b482c8cce004583a0962e1f9ad6ecf14ee6bd05578c3dac78ee75d6621a2","reason":null,"run_ref":"f05dad6bddeb62e76e3dc3a893291bde2330f6bcd7fdb87fdab67bed3d5a72a4","schema_version":"openadapt.approval-mode-log-event/v1","seq":9,"sha256":"sha256:abc63728736f0cc5307136b911f56f20f04a8d22c3b3ef70da24d44759046fac","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:44:51.016439+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:abc63728736f0cc5307136b911f56f20f04a8d22c3b3ef70da24d44759046fac","reason":"halted_before_effect","run_ref":"5b4cdcaa9cf3a8d1329e71c8e359fedfcb2a76c5fc64fdebf07e85b0db91a33e","schema_version":"openadapt.approval-mode-log-event/v1","seq":10,"sha256":"sha256:b58f5cb88af4912e3685650e59e4ae3962b267a1bfc688ec93acbb59ac7c29c8","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:46:50.509527+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:b58f5cb88af4912e3685650e59e4ae3962b267a1bfc688ec93acbb59ac7c29c8","reason":"halted_before_effect","run_ref":"80387dcee94151015a86930bf6cc9e15316af0827893239cd095490a1fa89a43","schema_version":"openadapt.approval-mode-log-event/v1","seq":11,"sha256":"sha256:e921d34d1071b4452d1284a653c0ce34a193987863a0eea6d1812bdac8ce236c","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:48:36.217678+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:e921d34d1071b4452d1284a653c0ce34a193987863a0eea6d1812bdac8ce236c","reason":null,"run_ref":"b5dd664eebcaf5e4fb31c72f26a687ff0d870fc1ab1e31082eb095f5fc496184","schema_version":"openadapt.approval-mode-log-event/v1","seq":12,"sha256":"sha256:620739f503571234c68002160c4733dddd0fc307a84328c860067416be1465b9","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:48:55.037305+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:620739f503571234c68002160c4733dddd0fc307a84328c860067416be1465b9","reason":"reconciliation_required","run_ref":"b5dd664eebcaf5e4fb31c72f26a687ff0d870fc1ab1e31082eb095f5fc496184","schema_version":"openadapt.approval-mode-log-event/v1","seq":13,"sha256":"sha256:bc9b274df32b5d1cfea9b26364fec5568834b10ed4065f711ad7e376d1b34bd1","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:48:55.037852+00:00","counts_toward_problems":null,"decision":null,"kind":"switched_off","prev_sha256":"sha256:bc9b274df32b5d1cfea9b26364fec5568834b10ed4065f711ad7e376d1b34bd1","reason":"uncertain_result","run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":14,"sha256":"sha256:f93c198316f85e9d0bd55148a943d167480269b33a5a55e13a82c2c46a61c7dc","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:50:58.542521+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:f93c198316f85e9d0bd55148a943d167480269b33a5a55e13a82c2c46a61c7dc","reason":"save_not_approved","run_ref":"5cb9a8267f7f1f21ba3f0a23ac86596c1efd76161a727d00a1e33264196c1db0","schema_version":"openadapt.approval-mode-log-event/v1","seq":15,"sha256":"sha256:9bcc503ed4e5ac8cab9a3c4c83ed00dc0d83fa181834aa5cfbceb00d34c068a0","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:51:04.175643+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:9bcc503ed4e5ac8cab9a3c4c83ed00dc0d83fa181834aa5cfbceb00d34c068a0","reason":"inputs_supplied","run_ref":"52f91807aff92fa3f131052686a30bb4f9ae38f4bd2fb7099713b29fccd84f76","schema_version":"openadapt.approval-mode-log-event/v1","seq":16,"sha256":"sha256:fddb1caae9975bd600ccdd4c94fc239c279a0c2190b042ff5d46604610ba310b","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:53:05.572674+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:fddb1caae9975bd600ccdd4c94fc239c279a0c2190b042ff5d46604610ba310b","reason":"save_not_approved","run_ref":"179687f7dff674a4480a6ed29dc4f20e2160f0da46d517e933523f8027c7114f","schema_version":"openadapt.approval-mode-log-event/v1","seq":17,"sha256":"sha256:4e35e5fa76b8d6a529285dc885f445072d5300e8f9e23db786a0d87da0439df5","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:55:03.889913+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:4e35e5fa76b8d6a529285dc885f445072d5300e8f9e23db786a0d87da0439df5","reason":"save_not_approved","run_ref":"5335aba87acf2a07a45c142a5c8e0066afca32909b352c17c6615ad32ca2e120","schema_version":"openadapt.approval-mode-log-event/v1","seq":18,"sha256":"sha256:bbd1a4a4a112c0ff7af20a0d9afaf7dd9f85d283fa3ca95a93f03ab1f300f7f9","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:57:02.205562+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:bbd1a4a4a112c0ff7af20a0d9afaf7dd9f85d283fa3ca95a93f03ab1f300f7f9","reason":"save_not_approved","run_ref":"99114d5261975b68662eabb923c9636e4c73c1d8c9343fd2efd2c0fee7039a81","schema_version":"openadapt.approval-mode-log-event/v1","seq":19,"sha256":"sha256:a69aeab02b79c8755dbfd13ae053b3b76dd18897b50d0b632aabc5a1c11e0450","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T20:58:59.661246+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:a69aeab02b79c8755dbfd13ae053b3b76dd18897b50d0b632aabc5a1c11e0450","reason":"halted_before_effect","run_ref":"795dfacbc35c1b999992a91d3b7bc825586a6fe4a2b4364cb0b14defccf7e86e","schema_version":"openadapt.approval-mode-log-event/v1","seq":20,"sha256":"sha256:96b3982175ab7494b7ee16f8611da47985c85c6f1b2a78fad0a3d79218e79da9","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:00:58.483846+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:96b3982175ab7494b7ee16f8611da47985c85c6f1b2a78fad0a3d79218e79da9","reason":"halted_before_effect","run_ref":"a0ec3ace3b135c9b9d920e7aa3b9ddf922d0b952c327ab6779f8abbc540e438f","schema_version":"openadapt.approval-mode-log-event/v1","seq":21,"sha256":"sha256:b8982735e77df8dfaeec6abd3a38276746d15273d3d98d00fa714e1ac0bb2733","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:02:57.778821+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:b8982735e77df8dfaeec6abd3a38276746d15273d3d98d00fa714e1ac0bb2733","reason":"save_not_approved","run_ref":"e59a82ba220a283bea67a26118898e164563ec624ea6d6ae22cb3fdaa421992d","schema_version":"openadapt.approval-mode-log-event/v1","seq":22,"sha256":"sha256:aeacbdae72baa6d2282efc072b040faf505c2bd341f2cebb8928202401ed980d","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:04:56.163006+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:aeacbdae72baa6d2282efc072b040faf505c2bd341f2cebb8928202401ed980d","reason":"save_not_approved","run_ref":"a2db48ad1d3c0c41ce17ca7d967c48386641d631abc29eb2c9527113a2d7d451","schema_version":"openadapt.approval-mode-log-event/v1","seq":23,"sha256":"sha256:1d54c00e669b177f22641d772360b3e378427c8e7d1cc741f8d335bdc14a9b3c","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:06:54.680943+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:1d54c00e669b177f22641d772360b3e378427c8e7d1cc741f8d335bdc14a9b3c","reason":"save_not_approved","run_ref":"70f9b837652c436640cb6f85c813ac07e9b4bebede3344dca6dfa58ddf418f3d","schema_version":"openadapt.approval-mode-log-event/v1","seq":24,"sha256":"sha256:9d145ad7e7fa8a8d6350125b577b2e65c512b5305f85c215c3523aaa13d6df29","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:08:53.569211+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:9d145ad7e7fa8a8d6350125b577b2e65c512b5305f85c215c3523aaa13d6df29","reason":"save_not_approved","run_ref":"98cf0f5a2a2398173c33430a0faf1aa38672d1683b9872fe560381727c48f481","schema_version":"openadapt.approval-mode-log-event/v1","seq":25,"sha256":"sha256:1d10263c197b1200b1d29f934d05795e772f81d85ab739b78cc31ab66ddfade7","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:10:51.883229+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:1d10263c197b1200b1d29f934d05795e772f81d85ab739b78cc31ab66ddfade7","reason":"save_not_approved","run_ref":"7ae0db93f4a5a11ac85516486bf72c69ad58a8ac7b90af6b2202487195f6c30d","schema_version":"openadapt.approval-mode-log-event/v1","seq":26,"sha256":"sha256:4d9f923059bb4e4f1279489283ee6a07160a722cbfb6b89b55b04f604867f451","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:12:50.383866+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:4d9f923059bb4e4f1279489283ee6a07160a722cbfb6b89b55b04f604867f451","reason":"save_not_approved","run_ref":"2222d9b1a960c1851682df6422762e0d7c086a2bc33ac0a39ea9edd4b0406032","schema_version":"openadapt.approval-mode-log-event/v1","seq":27,"sha256":"sha256:b554864414a3ae150c2f3056a41df97a85b24e180c3d8189f4cd3919aa9e9b48","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:14:53.724104+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:b554864414a3ae150c2f3056a41df97a85b24e180c3d8189f4cd3919aa9e9b48","reason":"save_not_approved","run_ref":"24d55e66e27051b9c43a88b7546b70aee0fc0e4859f2711cdee7c30516e70943","schema_version":"openadapt.approval-mode-log-event/v1","seq":28,"sha256":"sha256:ec7cd3e2d87b88f43a3880061fa4c211b57814773d1807ba2633c84cceb18a1f","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:16:54.606736+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:ec7cd3e2d87b88f43a3880061fa4c211b57814773d1807ba2633c84cceb18a1f","reason":"save_not_approved","run_ref":"3691494e45f9e5df9c357615eaa0cc44b776118b73df1648eb2beb75de834b45","schema_version":"openadapt.approval-mode-log-event/v1","seq":29,"sha256":"sha256:600872c720928cc9d86b89ab809fdfd9d9149cc6649b566427505958acc8b469","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:18:50.709796+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:600872c720928cc9d86b89ab809fdfd9d9149cc6649b566427505958acc8b469","reason":"halted_before_effect","run_ref":"50d41064bf7758768d749ecf5c094c628751b7127bf21fc3995f194599a93f69","schema_version":"openadapt.approval-mode-log-event/v1","seq":30,"sha256":"sha256:ca5212491c2eeb3edd326e4afb8a8fa8f0bbcf56d1dc8548f3069c41ec3f775b","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:20:49.865241+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:ca5212491c2eeb3edd326e4afb8a8fa8f0bbcf56d1dc8548f3069c41ec3f775b","reason":"halted_before_effect","run_ref":"f2f22f319e1deec7f067d574107c8c4b95d85958a6ae2bd0c8f85638d092f9cc","schema_version":"openadapt.approval-mode-log-event/v1","seq":31,"sha256":"sha256:5b44082e1a0308f3d4fe5fedd9a2f614de4467db3c82ce884ce4cfc13398b325","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:22:48.322577+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:5b44082e1a0308f3d4fe5fedd9a2f614de4467db3c82ce884ce4cfc13398b325","reason":"save_not_approved","run_ref":"6a1d0938689f4fea0568fdd972a7d47d459ce684e78ba46994758bd079a8cca9","schema_version":"openadapt.approval-mode-log-event/v1","seq":32,"sha256":"sha256:ea53f8c185cd729d8b8bfc780f0fc9ebf99c740e38bf9fa017a12eae296ba7cc","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:24:46.690269+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:ea53f8c185cd729d8b8bfc780f0fc9ebf99c740e38bf9fa017a12eae296ba7cc","reason":"save_not_approved","run_ref":"9cae549450d3be35b9cf3de41b6723a55c4281c838742a2960db570188b7746f","schema_version":"openadapt.approval-mode-log-event/v1","seq":33,"sha256":"sha256:4543e33ccc904c19a07a291443ba8f78c32a79398b5ebb002c37e412ed824489","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:26:43.217167+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:4543e33ccc904c19a07a291443ba8f78c32a79398b5ebb002c37e412ed824489","reason":"halted_before_effect","run_ref":"28b971c5a4f712992aebfe4be0c6aa2ebf3fcae373cafc868c1172af9f7aaa0e","schema_version":"openadapt.approval-mode-log-event/v1","seq":34,"sha256":"sha256:7a1cc7fd540fae02756f83075ff0dba00c586e22dfce7276b4dabb15262622cd","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:28:42.710501+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:7a1cc7fd540fae02756f83075ff0dba00c586e22dfce7276b4dabb15262622cd","reason":"halted_before_effect","run_ref":"f6930237358bdcf26507b474c86c976aa75ad3fbdc31a72c319b26aea8cba60e","schema_version":"openadapt.approval-mode-log-event/v1","seq":35,"sha256":"sha256:166420bee5ff1fedabf82e659efa27bade4fffdc25dea4ef8cbd89115fe67292","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:30:41.172566+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:166420bee5ff1fedabf82e659efa27bade4fffdc25dea4ef8cbd89115fe67292","reason":"save_not_approved","run_ref":"c375f230e4108ecd0c5b8039ccb515044dbeb6c0e3069d42ef22e6acaff10ce4","schema_version":"openadapt.approval-mode-log-event/v1","seq":36,"sha256":"sha256:508edef7fea7142461d81205db9509ecefdc1d98923b393980efc7d133432f4a","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} +{"at":"2026-10-24T21:32:34.752926+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:508edef7fea7142461d81205db9509ecefdc1d98923b393980efc7d133432f4a","reason":"save_not_approved","run_ref":"5e865217b9f879445c5877effa60b58ecc36605c310abb37e2fc7e4d24d05002","schema_version":"openadapt.approval-mode-log-event/v1","seq":37,"sha256":"sha256:8e3d26fb2b1c6d5f0ae71f2885c118e9b254a72e9871d40b153b120d5a15f933","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792873972","switch_record_sha256":null} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/log-1792878330.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/log-1792878330.jsonl new file mode 100644 index 000000000..bb6e3a7b1 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/log-1792878330.jsonl @@ -0,0 +1,45 @@ +{"at":"2026-10-24T21:45:30.909033+00:00","counts_toward_problems":null,"decision":null,"kind":"opened","prev_sha256":"sha256:0000000000000000000000000000000000000000000000000000000000000000","reason":null,"run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":1,"sha256":"sha256:1cb73ca6b68f18872658c71e4a7915f4fba728e6a89b92aac990f18fc6b7eb44","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":"sha256:d1c059dac30bca7a95550bfe7e3bb7416deab332c1e9ee9aeb5e2664782e3791"} +{"at":"2026-10-24T21:47:32.967692+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:1cb73ca6b68f18872658c71e4a7915f4fba728e6a89b92aac990f18fc6b7eb44","reason":"save_not_approved","run_ref":"83d2440c7e1b3d05c04f14db673cdddf5ef86405525c4db2fce084529f6da032","schema_version":"openadapt.approval-mode-log-event/v1","seq":2,"sha256":"sha256:33ae9cf0be816db0e36a7c742ac1d1d14c1141a5872520154a3b3de1b2e1cb6f","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T21:47:32.967965+00:00","counts_toward_problems":null,"decision":null,"kind":"switched_off","prev_sha256":"sha256:33ae9cf0be816db0e36a7c742ac1d1d14c1141a5872520154a3b3de1b2e1cb6f","reason":"uncertain_result","run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":3,"sha256":"sha256:e460b004b33c576ec4aeab912ef88277b05d9084d1d919f6aa868a9c6131c3e6","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T21:49:31.093521+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:e460b004b33c576ec4aeab912ef88277b05d9084d1d919f6aa868a9c6131c3e6","reason":"halted_before_effect","run_ref":"ecc04c18da060969b7faacf0a1b4794f340101db2e00da951e9e2e8bc9f930f1","schema_version":"openadapt.approval-mode-log-event/v1","seq":4,"sha256":"sha256:1bbc73f0f784a9d3928832e51813e5df2edfd91abb9bac57995f23a787b4f244","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T21:51:31.649206+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:1bbc73f0f784a9d3928832e51813e5df2edfd91abb9bac57995f23a787b4f244","reason":"halted_before_effect","run_ref":"af1829f4e6f324d8ceb57ea14ca7fa056740a5cb3ede55c3d39f9b417f8a106e","schema_version":"openadapt.approval-mode-log-event/v1","seq":5,"sha256":"sha256:95bdabc99b560587dd0bc1b6b7ee7387b2c6538b909ff2b0382639401c63f72e","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T21:53:31.658449+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:95bdabc99b560587dd0bc1b6b7ee7387b2c6538b909ff2b0382639401c63f72e","reason":"save_not_approved","run_ref":"8dfa083f9ddee331de0123dcdac6991eda7ae9f7bfd98b17c3e5c393d6ef36bf","schema_version":"openadapt.approval-mode-log-event/v1","seq":6,"sha256":"sha256:10e4b5273c3d5c2a516cc16508e82246837799fc724c9b76472b02a40c856f40","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T21:55:30.004326+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:10e4b5273c3d5c2a516cc16508e82246837799fc724c9b76472b02a40c856f40","reason":"halted_before_effect","run_ref":"3956e117a971e2e7496e971325c7f7ec3845858f84e107af3fb76ef48abee587","schema_version":"openadapt.approval-mode-log-event/v1","seq":7,"sha256":"sha256:c21aff23f2f98ac71a76a816c1cfab91b006c7d17b6c0b19709d005b943df0c0","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T21:57:29.517216+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:c21aff23f2f98ac71a76a816c1cfab91b006c7d17b6c0b19709d005b943df0c0","reason":"halted_before_effect","run_ref":"1d01e363e4a7751df0c25270fba8f5c91be73b04fa4de1f2a5c76c47143bb0f5","schema_version":"openadapt.approval-mode-log-event/v1","seq":8,"sha256":"sha256:e99119a8b91e47a90cf3c73d1945044a8b74ecc7c19138248ca017492ed32a8f","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T21:59:27.516108+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:e99119a8b91e47a90cf3c73d1945044a8b74ecc7c19138248ca017492ed32a8f","reason":"halted_before_effect","run_ref":"b9ca312e5e1bb2c721f65dbec147759539d8b2451e1084e7ae05652cf92484f0","schema_version":"openadapt.approval-mode-log-event/v1","seq":9,"sha256":"sha256:97ea07d291ac113c81d97aefc90ca359c22426723e363a47dea806c913d35842","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:01:27.362588+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:97ea07d291ac113c81d97aefc90ca359c22426723e363a47dea806c913d35842","reason":"halted_before_effect","run_ref":"96742a119887e6939868701161157f865fafc378f86acd2adde99902d97f7345","schema_version":"openadapt.approval-mode-log-event/v1","seq":10,"sha256":"sha256:9ebdcc7ac26dd724b596391c6d123df5cdf0e280569e3f0a9967b1f21137f222","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:03:27.759064+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:9ebdcc7ac26dd724b596391c6d123df5cdf0e280569e3f0a9967b1f21137f222","reason":"save_not_approved","run_ref":"e36fb04a12f130af3663e10b7dffe4fb26c8fc955f2f0a98032ad0baca88b959","schema_version":"openadapt.approval-mode-log-event/v1","seq":11,"sha256":"sha256:76724068e9c0787d55950d6d12908e30be5bc6cb7cea0855dd552787c2a14cd1","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:03:33.383029+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:76724068e9c0787d55950d6d12908e30be5bc6cb7cea0855dd552787c2a14cd1","reason":"rejected_policy","run_ref":"edc82138e803036c862c65c9a0c49d3f7d9bf06668b683a363b2035573a59b6c","schema_version":"openadapt.approval-mode-log-event/v1","seq":12,"sha256":"sha256:0dcc9a5c6817ed081a7534863af14e1387ce4abd536f5f0ebeb52c3e51d9a307","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:05:33.754814+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:0dcc9a5c6817ed081a7534863af14e1387ce4abd536f5f0ebeb52c3e51d9a307","reason":"halted_before_effect","run_ref":"81fab23a4031b9a5d440c7564bd2f663dc173f27757e2d9f769cd3d83fe7dcc4","schema_version":"openadapt.approval-mode-log-event/v1","seq":13,"sha256":"sha256:ccb3bd82590154d9118ed666d480226a77aa96e0e9cc737d4d1e4a27127407ab","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:07:33.092022+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:ccb3bd82590154d9118ed666d480226a77aa96e0e9cc737d4d1e4a27127407ab","reason":"halted_before_effect","run_ref":"591d838c51af73bc07ebf45c9ba78fd77d9f2dbe3c706b9ae130f4b1d9ea360a","schema_version":"openadapt.approval-mode-log-event/v1","seq":14,"sha256":"sha256:83955683d9d69d2f2cf4305b17cc69b232d7dda5171fbcb40951c736b8263ae4","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:09:31.388620+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:83955683d9d69d2f2cf4305b17cc69b232d7dda5171fbcb40951c736b8263ae4","reason":"halted_before_effect","run_ref":"269763ec3fce3606ce0787616d6d0411328500413ab2992c985dfce52d876ba2","schema_version":"openadapt.approval-mode-log-event/v1","seq":15,"sha256":"sha256:8a0063f57e35e334b2d646ecef28fbc3b48ab201f688e1871b9f1151cadfd857","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:11:30.809009+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:8a0063f57e35e334b2d646ecef28fbc3b48ab201f688e1871b9f1151cadfd857","reason":"halted_before_effect","run_ref":"7e0395f264a1ec740ff2178da8eb44c722f37ad78aa6d54ad6bb2044b03ed7b5","schema_version":"openadapt.approval-mode-log-event/v1","seq":16,"sha256":"sha256:5d2196dd7351f80d280d4b0a3a8998bea5150c1de6e6d0ff059058c8aea93566","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:13:29.968087+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:5d2196dd7351f80d280d4b0a3a8998bea5150c1de6e6d0ff059058c8aea93566","reason":"save_not_approved","run_ref":"8bf54fa7e59a3ca3a7d6d4fe2117d562d9781af5b7b4bfc88986b0482b9e0351","schema_version":"openadapt.approval-mode-log-event/v1","seq":17,"sha256":"sha256:c09852a8ffa0c37b99258fcf5641dbdd341e9db6c312be75245bd15e3e45a288","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:15:29.160882+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:c09852a8ffa0c37b99258fcf5641dbdd341e9db6c312be75245bd15e3e45a288","reason":"save_not_approved","run_ref":"633f87f7e283fd3f88071f4628aeafbb7d1cc1b9e265b87e32cf8415bbaae584","schema_version":"openadapt.approval-mode-log-event/v1","seq":18,"sha256":"sha256:c397a2473ac4642712df9197c5481fa421fbf225a016988f49247b86c2c66941","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:17:28.260546+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:c397a2473ac4642712df9197c5481fa421fbf225a016988f49247b86c2c66941","reason":"save_not_approved","run_ref":"29bcd47a8f53e4b827f3f7c9a0cad4c5f1f5e7742f1bdcb9cc95ccedf0964701","schema_version":"openadapt.approval-mode-log-event/v1","seq":19,"sha256":"sha256:41798fea43530e568964a1ae0044571b528dfa022f51877c1768d446ae4331e8","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:19:25.947120+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:41798fea43530e568964a1ae0044571b528dfa022f51877c1768d446ae4331e8","reason":"halted_before_effect","run_ref":"4be8a8dca803351f32a9c106313c52451cb1c7cf66164f6214b4c3d6d42533c4","schema_version":"openadapt.approval-mode-log-event/v1","seq":20,"sha256":"sha256:6d48e14748476a9dc3f469d4c37ff09e3145c1b4ae722f36146135b1800559d6","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:21:25.612396+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:6d48e14748476a9dc3f469d4c37ff09e3145c1b4ae722f36146135b1800559d6","reason":"halted_before_effect","run_ref":"7487f2a90aac605741ee52777ccd4e17fe005471a9b49c02d55ff3c57d251a4c","schema_version":"openadapt.approval-mode-log-event/v1","seq":21,"sha256":"sha256:1de4e9ad8438b3b8c1edf1834a4287bf732302b0a0488e07de78f28962ac026a","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:23:31.155806+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:1de4e9ad8438b3b8c1edf1834a4287bf732302b0a0488e07de78f28962ac026a","reason":"save_not_approved","run_ref":"ecb0887c1d1d13ca32a9057b5826dc2046e80132d7dd150ab7bc74c6cab0e578","schema_version":"openadapt.approval-mode-log-event/v1","seq":22,"sha256":"sha256:cef4fcfc14ef528dfd7fe9c3242b6c7524349458739e1da03733109590eb3d3c","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:25:29.349280+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:cef4fcfc14ef528dfd7fe9c3242b6c7524349458739e1da03733109590eb3d3c","reason":"halted_before_effect","run_ref":"19592e5d54226dd9942c2f57d1430eeaec94ed7d1759e709cf2ecebadbb2ee00","schema_version":"openadapt.approval-mode-log-event/v1","seq":23,"sha256":"sha256:57c9173f8cb1a7bebfb96ba1cd8bf3029526f022d32e4382f7181a1b756020ce","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:27:28.493613+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:57c9173f8cb1a7bebfb96ba1cd8bf3029526f022d32e4382f7181a1b756020ce","reason":"halted_before_effect","run_ref":"fe9485491a478c4b29e089a2982abc4b047dfd69ffa72d35ff32a9db5ff3a9f1","schema_version":"openadapt.approval-mode-log-event/v1","seq":24,"sha256":"sha256:793d878fe0d234437f3fe4c4526d787ee82aaddd7c85d95122f6386d5bdf1788","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:29:26.178313+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:793d878fe0d234437f3fe4c4526d787ee82aaddd7c85d95122f6386d5bdf1788","reason":"halted_before_effect","run_ref":"f03506156c4093a069ebb02ff2ccc2d2be040101e87327e7e5f52abdf9b2007b","schema_version":"openadapt.approval-mode-log-event/v1","seq":25,"sha256":"sha256:b79cd2cf853f056d7e006d94b3c8cb62ec8dbccedbd513e341d056492f1e70c9","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:31:25.522417+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:b79cd2cf853f056d7e006d94b3c8cb62ec8dbccedbd513e341d056492f1e70c9","reason":"halted_before_effect","run_ref":"88c9a1173b69bb4b57ab31c2603c600e8247efdeafc42f3513abea05b019eeb9","schema_version":"openadapt.approval-mode-log-event/v1","seq":26,"sha256":"sha256:b51e7b3909f81dae776b92e00f42ef6e6b6207fcd5fe26b07f2cf2054f197e2c","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:33:25.569010+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:b51e7b3909f81dae776b92e00f42ef6e6b6207fcd5fe26b07f2cf2054f197e2c","reason":"save_not_approved","run_ref":"7ebc689a4b4ff6ac7df78ea8e5b295deb9314b3749aa41f81ab7e36ed4198fa2","schema_version":"openadapt.approval-mode-log-event/v1","seq":27,"sha256":"sha256:df7f7071a5876c692d12f09a5a6ec48910f8cae0cb37b848cc0be05a53447ca0","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:35:24.341327+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:df7f7071a5876c692d12f09a5a6ec48910f8cae0cb37b848cc0be05a53447ca0","reason":"save_not_approved","run_ref":"79d2ef5eefead5592f7e8a35e3f5b347e5676373fcc7e18ab9c10c2c27d63e52","schema_version":"openadapt.approval-mode-log-event/v1","seq":28,"sha256":"sha256:595925abd71bf1ce6906ed06a649141832f86d92966b655f0fc92e56b7508de1","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:37:22.195009+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:595925abd71bf1ce6906ed06a649141832f86d92966b655f0fc92e56b7508de1","reason":"halted_before_effect","run_ref":"c813667e59615efb1122e82f782086fa8a031e74afdf0bd13c402d105e06a221","schema_version":"openadapt.approval-mode-log-event/v1","seq":29,"sha256":"sha256:a23b396bcee20a8e99dad56d8991823a7f55142584da67e07eed04f034bc3161","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:39:22.944323+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:a23b396bcee20a8e99dad56d8991823a7f55142584da67e07eed04f034bc3161","reason":"halted_before_effect","run_ref":"c4c4745e7d644e66d79e8c2373dbd234f0867f22dbaa10545ec03774df7e5304","schema_version":"openadapt.approval-mode-log-event/v1","seq":30,"sha256":"sha256:2c839a49bb0e4245ef976fcd9a2a2caa19ca84ba1b1ac4bc0438cf517aa6e967","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:41:20.546065+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:2c839a49bb0e4245ef976fcd9a2a2caa19ca84ba1b1ac4bc0438cf517aa6e967","reason":"halted_before_effect","run_ref":"38213780929c9ca885aa1fcccd5b5d84aeb608d935b8e137d5926819d326e0a7","schema_version":"openadapt.approval-mode-log-event/v1","seq":31,"sha256":"sha256:e13af2e5388d704b5eefb9e67dbfc5b32b4656e236e95eb03ba90519a3ab1868","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:43:20.674344+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:e13af2e5388d704b5eefb9e67dbfc5b32b4656e236e95eb03ba90519a3ab1868","reason":"halted_before_effect","run_ref":"6a68b7c5a33d5065f56331ffd44c4fac5417632446fa964647abc69d12434c0f","schema_version":"openadapt.approval-mode-log-event/v1","seq":32,"sha256":"sha256:00e8043b86e66dc6f1b7276a02b14da73719fd65298d3ca32d425813f32d06e8","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:45:19.622915+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:00e8043b86e66dc6f1b7276a02b14da73719fd65298d3ca32d425813f32d06e8","reason":"save_not_approved","run_ref":"7ca68609e47828d394efbada36e7d980470c88ec1e3d117d8e9169d612e18fd0","schema_version":"openadapt.approval-mode-log-event/v1","seq":33,"sha256":"sha256:e23ce8c3b8ddb03b0f0a9ddff9642931d10a740b2d56f08c91502176b5a9131f","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:47:18.668766+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:e23ce8c3b8ddb03b0f0a9ddff9642931d10a740b2d56f08c91502176b5a9131f","reason":"save_not_approved","run_ref":"e01257620cb68c47caa047f79d9835ddc62f38b138d8b33446390dbae852fb57","schema_version":"openadapt.approval-mode-log-event/v1","seq":34,"sha256":"sha256:8c36e7c534e10911b4bd26292e3561275dfc63159481429bb441d1ae38bef631","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:49:18.157155+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:8c36e7c534e10911b4bd26292e3561275dfc63159481429bb441d1ae38bef631","reason":"save_not_approved","run_ref":"0b6ac25a8284ec4a6867730c93fb1e16100cf919315508bc5f026777381dc4f2","schema_version":"openadapt.approval-mode-log-event/v1","seq":35,"sha256":"sha256:acc2db70943688fa0313f0b025e934b9a60f0d9e01b39ce793d5475719a7ca36","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:51:17.409648+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:acc2db70943688fa0313f0b025e934b9a60f0d9e01b39ce793d5475719a7ca36","reason":"save_not_approved","run_ref":"4c0d7851258f811ba3d394425833f1dcb1fa8a5c96f101a3e0fe84c8a513762c","schema_version":"openadapt.approval-mode-log-event/v1","seq":36,"sha256":"sha256:d8f9ebd4d052043ac5f651e6f209899eac191db89cef3126039694c0ad57a36f","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:53:14.871722+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:d8f9ebd4d052043ac5f651e6f209899eac191db89cef3126039694c0ad57a36f","reason":"halted_before_effect","run_ref":"7ff8210dbfa55679a916272887ac759af8b8bf93ef6d8343d658337d38ed6fdf","schema_version":"openadapt.approval-mode-log-event/v1","seq":37,"sha256":"sha256:c3ac193061b3ddbde38c0f22201a7487fefd7b6fd7af70faa0771852aa73825d","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:55:13.747527+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:c3ac193061b3ddbde38c0f22201a7487fefd7b6fd7af70faa0771852aa73825d","reason":"halted_before_effect","run_ref":"eee8ede56031c04d33138591ff37eb37eb082891d134b2eb81235ee8b0077120","schema_version":"openadapt.approval-mode-log-event/v1","seq":38,"sha256":"sha256:9e5e9ec6fe61d04173333a6bcdc4aafa2f78e23d77d4ae957bab98229cb28a44","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:57:13.425924+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:9e5e9ec6fe61d04173333a6bcdc4aafa2f78e23d77d4ae957bab98229cb28a44","reason":"save_not_approved","run_ref":"2cbb9924cc31596e914b0dcb14043137b1bed7954a20c870523b5bbacaa2872c","schema_version":"openadapt.approval-mode-log-event/v1","seq":39,"sha256":"sha256:299ecc495fbddd2af4ecbbaad84d9bab20b1cbbc230c4ed734ad9c27e5359df2","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T22:59:11.423034+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:299ecc495fbddd2af4ecbbaad84d9bab20b1cbbc230c4ed734ad9c27e5359df2","reason":"halted_before_effect","run_ref":"9fb0ccd3541954c83c5b47e0e16515c1fc6c54cffeeb2a6406b5e9c30028a70f","schema_version":"openadapt.approval-mode-log-event/v1","seq":40,"sha256":"sha256:71bdcf2625f55bd2d9e79383bcf62bf1651a9b1dba811c0cf5f72060c2de8616","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T23:01:10.655070+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:71bdcf2625f55bd2d9e79383bcf62bf1651a9b1dba811c0cf5f72060c2de8616","reason":"halted_before_effect","run_ref":"f382cfc3f06b91f29ecfa280740a3746b259028c6ae9c1ece5af5c23d757c027","schema_version":"openadapt.approval-mode-log-event/v1","seq":41,"sha256":"sha256:07026a641b2d0bc81537ce521eab685896a52b6c3f6558a94f15b7b3682652d6","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T23:01:16.397927+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:07026a641b2d0bc81537ce521eab685896a52b6c3f6558a94f15b7b3682652d6","reason":"rejected_policy","run_ref":"035249de5baf628e4abf16781fdc0be7cde5df1a831afd9bb6314e56eccb5e6b","schema_version":"openadapt.approval-mode-log-event/v1","seq":42,"sha256":"sha256:39a9753ea5a1fd0f3ba2268cb5dd033f3956a17c1c41a2c21a7c04d88cf80b00","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T23:03:16.377001+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:39a9753ea5a1fd0f3ba2268cb5dd033f3956a17c1c41a2c21a7c04d88cf80b00","reason":"halted_before_effect","run_ref":"f3173c0f342169d26beba36a4af37111a96e1435c6c3750c078bdc34bbc08c49","schema_version":"openadapt.approval-mode-log-event/v1","seq":43,"sha256":"sha256:a2f17e61364fc8c3fb0eb369db677cb76c4f8e01662f625aa0eb74bb1d7d5f8f","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T23:05:15.998557+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:a2f17e61364fc8c3fb0eb369db677cb76c4f8e01662f625aa0eb74bb1d7d5f8f","reason":"halted_before_effect","run_ref":"ceffbf63e8f1008c0190776d33490822ce995cac35f03004f9ae90bb071c6d50","schema_version":"openadapt.approval-mode-log-event/v1","seq":44,"sha256":"sha256:ee65b9e3b1ce4b4627f5c20e904786bd2adc7099916925f616972d0e268431a7","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} +{"at":"2026-10-24T23:05:22.372688+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:ee65b9e3b1ce4b4627f5c20e904786bd2adc7099916925f616972d0e268431a7","reason":"inputs_supplied","run_ref":"d6ff2d09445e597d9c81d5775be60ca691596c6b24db00432f0582ccb6335a61","schema_version":"openadapt.approval-mode-log-event/v1","seq":45,"sha256":"sha256:eaff82a67a00d2a2135e05e909d152e79247281f15c5c2c53847b640606a656e","switch_id":"switch-lifecycle-proof-c0a61b16b9d8-1792878330","switch_record_sha256":null} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/switch.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/switch.json new file mode 100644 index 000000000..76aa79a99 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/switch.json @@ -0,0 +1,42 @@ +{ + "log": "/Users/abrichr/oa/scratch/production-lifecycle/runs/soak-after-2/arms/openadapt-production-relabel/switch/log-1792878330.jsonl", + "record": { + "allowed_interstitials": {}, + "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", + "channel": "desktop_run_it_list_with_header", + "dedicated_user_ref": "hmac-sha256:416c28d5858aff6dc46c5f2e1f00ead21c20ceaa4a64e3d4a1b8330b23f89f7e", + "environment_digest": "sha256:2dc00aa5bd8d4cb971fc11d724d7bae63aaa300f8cfe636298f68d5500913df5", + "org_id": "org-lifecycle-proof", + "profile": "regulated", + "rung_floor": { + "step_000": "structural", + "step_003": "structural", + "step_006": "structural", + "step_009": "structural", + "step_012": "structural", + "step_016": "structural", + "step_018": "structural", + "step_021": "structural", + "step_024": "structural", + "step_027": "structural", + "step_030": "structural", + "step_033": "structural", + "step_036": "structural", + "step_039": "structural", + "step_040": "structural" + }, + "runner_id": "lifecycle-proof-runner-1", + "schema_version": "openadapt.approval-mode-switch/v1", + "switch_id": "switch-lifecycle-proof-c0a61b16b9d8-1792878330", + "thresholds": { + "problems_in_a_row": 3, + "problems_in_window": 5, + "problems_window": 20, + "status_max_age_s": 900 + }, + "verifier_identities": [ + "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2" + ], + "workflow_id": "workflow-openemr-referral" + } +} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/workload.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/workload.jsonl new file mode 100644 index 000000000..88d7f9d32 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/workload.jsonl @@ -0,0 +1,69 @@ +{"days": 10, "exception_mix": {"ambiguous_new_person": 0.02, "ambiguous_same_person": 0.02, "common_surname": 0.06, "concurrent_other": 0.02, "concurrent_same": 0.015, "dup_existing": 0.03, "dup_resend": 0.03, "failed_save": 0.015, "malformed_case": 0.02, "malformed_dob": 0.02, "missing_optional": 0.02, "missing_required": 0.02, "session_expiry": 0.02, "shared_dob": 0.08, "slow_save": 0.02}, "items": 55, "seed": 7, "type": "workload", "version": "lifecycle-workload/2026-10-24.1"} +{"DOB": "1941-02-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ana.fairwick.9000@example.invalid", "fname": "Ana", "lname": "Fairwick", "phone_home": "555-0174", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "276 QUARRY HILL DRIVE", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1939-02-14", "city": "EXAMPLETON", "country_code": "USA", "email": "theo.radley.9001@example.invalid", "fname": "Theo", "lname": "Radley", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "216 QUARRY HILL DRIVE", "title": "Ms.", "type": "existing_chart"} +{"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.oakwood.9002@example.invalid", "fname": "Rosalind", "lname": "Oakwood", "phone_home": "555-0106", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "323 WILLOW BEND ROAD", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1972-07-05", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.birchfield.9003@example.invalid", "fname": "Bram", "lname": "Birchfield", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "278 QUARRY HILL DRIVE", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1959-06-04", "city": "EXAMPLETON", "country_code": "USA", "email": "gideon.galwick.9004@example.invalid", "fname": "Gideon", "lname": "Galwick", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "282 QUARRY HILL DRIVE", "title": "Ms.", "type": "existing_chart"} +{"DOB": "1975-08-19", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenridge.9005@example.invalid", "fname": "Odile", "lname": "Quenridge", "phone_home": "555-0138", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "474 WAY", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1945-10-10", "city": "EXAMPLETON", "country_code": "USA", "email": "yuki.galwick.9006@example.invalid", "fname": "Yuki", "lname": "Galwick", "phone_home": "555-0193", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "270 WAY", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1950-09-14", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jessmere.9007@example.invalid", "fname": "Oren", "lname": "Jessmere", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "86 AVENUE MILL ROAD", "title": "Ms.", "type": "existing_chart"} +{"DOB": "1975-06-23", "city": "EXAMPLETON", "country_code": "USA", "email": "henrik.birchmore.9008@example.invalid", "fname": "Henrik", "lname": "Birchmore", "phone_home": "555-0108", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "181 WAY", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.jesston.9009@example.invalid", "fname": "Arlo", "lname": "Jesston", "phone_home": "555-0136", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "361 BEACON TERRACE STATION", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.jessmere.9011@example.invalid", "fname": "Odile", "lname": "Jessmere", "phone_home": "555-0121", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "471 WAY", "title": "Ms.", "type": "existing_chart"} +{"day": 4, "first_seq": 26, "kind": "relabel_save", "type": "drift_scheduled"} +{"app": "openemr", "day": 0, "item_id": "ref-00001", "params": {"DOB": "1990-09-09", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.jesswood.1@example.invalid", "fname": "Rosalind", "lname": "Jesswood", "phone_home": "555-0187", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "363 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 1, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Rosalind\nLast name: Jesswood\nDate of birth: 1990-09-09\nSex: Female\nStreet: 363 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0187\nEmail: rosalind.jesswood.1@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1990-09-09", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.jesswood.1@example.invalid", "fname": "Rosalind", "lname": "Jesswood", "phone_home": "555-0187", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "363 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00001", "person": {"DOB": "1990-09-09", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.jesswood.1@example.invalid", "fname": "Rosalind", "lname": "Jesswood", "phone_home": "555-0187", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "363 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 1}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00002", "params": {"DOB": "1957-03-08", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.fairwick.2@example.invalid", "fname": "Bram", "lname": "Fairwick", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "339 STREET CEDAR ROW", "title": "Ms."}, "seq": 2, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Bram\nLast name: Fairwick\nDate of birth: 1957-03-08\nSex: Female\nStreet: 339 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0162\nEmail: bram.fairwick.2@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1957-03-08", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.fairwick.2@example.invalid", "fname": "Bram", "lname": "Fairwick", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "339 STREET CEDAR ROW", "title": "Ms."}, "item_id": "ref-00002", "person": {"DOB": "1957-03-08", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.fairwick.2@example.invalid", "fname": "Bram", "lname": "Fairwick", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "339 STREET CEDAR ROW", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 2}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00003", "params": {"DOB": "1935-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "liesel.iversridge.3@example.invalid", "fname": "Liesel", "lname": "Iversridge", "phone_home": "555-0116", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "275 AVENUE MILL ROAD", "title": "Mr."}, "seq": 3, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Liesel\nLast name: Iversridge\nDate of birth: 1935-03-14\nSex: Male\nStreet: 275 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0116\nEmail: liesel.iversridge.3@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1935-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "liesel.iversridge.3@example.invalid", "fname": "Liesel", "lname": "Iversridge", "phone_home": "555-0116", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "275 AVENUE MILL ROAD", "title": "Mr."}, "item_id": "ref-00003", "person": {"DOB": "1935-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "liesel.iversridge.3@example.invalid", "fname": "Liesel", "lname": "Iversridge", "phone_home": "555-0116", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "275 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 3}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00004", "params": {"DOB": "1985-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.birchmere.4@example.invalid", "fname": "Fergus", "lname": "Birchmere", "phone_home": "555-0181", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "203 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 4, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Fergus\nLast name: Birchmere\nDate of birth: 1985-07-13\nSex: Male\nStreet: 203 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0181\nEmail: fergus.birchmere.4@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1985-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.birchmere.4@example.invalid", "fname": "Fergus", "lname": "Birchmere", "phone_home": "555-0181", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "203 QUARRY HILL DRIVE", "title": "Mr."}, "item_id": "ref-00004", "person": {"DOB": "1985-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.birchmere.4@example.invalid", "fname": "Fergus", "lname": "Birchmere", "phone_home": "555-0181", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "203 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 4}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00005", "params": {"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldley.5@example.invalid", "fname": "Rafael", "lname": "Caldley", "phone_home": "555-0100", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "176 WILLOW BEND ROAD", "title": "Ms."}, "seq": 5, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Rafael\nLast name: Caldley\nDate of birth: 1943-01-24\nSex: Female\nStreet: 176 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0100\nEmail: rafael.caldley.5@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "shared_dob", "inject": [], "intended": {"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldley.5@example.invalid", "fname": "Rafael", "lname": "Caldley", "phone_home": "555-0100", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "176 WILLOW BEND ROAD", "title": "Ms."}, "item_id": "ref-00005", "person": {"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldley.5@example.invalid", "fname": "Rafael", "lname": "Caldley", "phone_home": "555-0100", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "176 WILLOW BEND ROAD", "title": "Ms."}, "rationale": "born on the same day as an existing chart; a different person", "seq": 5}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00006", "params": {"DOB": "04/20/1944", "city": "EXAMPLETON", "country_code": "USA", "email": "priya.marwell.6@example.invalid", "fname": "Priya", "lname": "Marwell", "phone_home": "555-0144", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "194 LANTERN COURT FERRY", "title": "Mrs."}, "seq": 6, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Priya\nLast name: Marwell\nDate of birth: 04/20/1944\nSex: Female\nStreet: 194 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0144\nEmail: priya.marwell.6@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "malformed_dob", "inject": [], "intended": {"DOB": "1944-04-20", "city": "EXAMPLETON", "country_code": "USA", "email": "priya.marwell.6@example.invalid", "fname": "Priya", "lname": "Marwell", "phone_home": "555-0144", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "194 LANTERN COURT FERRY", "title": "Mrs."}, "item_id": "ref-00006", "person": {"DOB": "1944-04-20", "city": "EXAMPLETON", "country_code": "USA", "email": "priya.marwell.6@example.invalid", "fname": "Priya", "lname": "Marwell", "phone_home": "555-0144", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "194 LANTERN COURT FERRY", "title": "Mrs."}, "rationale": "date of birth written MM/DD/YYYY; the true date is ISO", "seq": 6}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00007", "params": {"DOB": "1997-08-16", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.ellwick.7@example.invalid", "fname": "Mateo", "lname": "Ellwick", "phone_home": "555-0118", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "249 BEACON TERRACE STATION", "title": "Ms."}, "seq": 7, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Mateo\nLast name: Ellwick\nDate of birth: 1997-08-16\nSex: Female\nStreet: 249 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0118\nEmail: mateo.ellwick.7@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1997-08-16", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.ellwick.7@example.invalid", "fname": "Mateo", "lname": "Ellwick", "phone_home": "555-0118", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "249 BEACON TERRACE STATION", "title": "Ms."}, "item_id": "ref-00007", "person": {"DOB": "1997-08-16", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.ellwick.7@example.invalid", "fname": "Mateo", "lname": "Ellwick", "phone_home": "555-0118", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "249 BEACON TERRACE STATION", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 7}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00008", "params": {"city": "EXAMPLETON", "country_code": "USA", "email": "bo.jessby.8@example.invalid", "fname": "Bo", "lname": "Jessby", "phone_home": "555-0188", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "107 AVENUE MILL ROAD", "title": "Mr."}, "seq": 8, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Bo\nLast name: Jessby\nDate of birth: \nSex: Male\nStreet: 107 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0188\nEmail: bo.jessby.8@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "missing_required", "inject": [], "intended": null, "item_id": "ref-00008", "person": {"DOB": "1955-09-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.jessby.8@example.invalid", "fname": "Bo", "lname": "Jessby", "phone_home": "555-0188", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "107 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "no date of birth; return the referral to the sender", "seq": 8}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00009", "params": {"DOB": "1946-12-28", "city": "EXAMPLETON", "country_code": "USA", "email": "marcus.stanby.9@example.invalid", "fname": "Marcus", "lname": "Stanby", "phone_home": "555-0145", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "135 AVENUE MILL ROAD", "title": "Mr."}, "seq": 9, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Marcus\nLast name: Stanby\nDate of birth: 1946-12-28\nSex: Male\nStreet: 135 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0145\nEmail: marcus.stanby.9@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1946-12-28", "city": "EXAMPLETON", "country_code": "USA", "email": "marcus.stanby.9@example.invalid", "fname": "Marcus", "lname": "Stanby", "phone_home": "555-0145", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "135 AVENUE MILL ROAD", "title": "Mr."}, "item_id": "ref-00009", "person": {"DOB": "1946-12-28", "city": "EXAMPLETON", "country_code": "USA", "email": "marcus.stanby.9@example.invalid", "fname": "Marcus", "lname": "Stanby", "phone_home": "555-0145", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "135 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 9}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00010", "params": {"DOB": "1963-10-26", "city": "EXAMPLETON", "country_code": "USA", "email": "kwame.stanwood.10@example.invalid", "fname": "Kwame", "lname": "Stanwood", "phone_home": "555-0151", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "405 STREET CEDAR ROW", "title": "Mr."}, "seq": 10, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Kwame\nLast name: Stanwood\nDate of birth: 1963-10-26\nSex: Male\nStreet: 405 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0151\nEmail: kwame.stanwood.10@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1963-10-26", "city": "EXAMPLETON", "country_code": "USA", "email": "kwame.stanwood.10@example.invalid", "fname": "Kwame", "lname": "Stanwood", "phone_home": "555-0151", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "405 STREET CEDAR ROW", "title": "Mr."}, "item_id": "ref-00010", "person": {"DOB": "1963-10-26", "city": "EXAMPLETON", "country_code": "USA", "email": "kwame.stanwood.10@example.invalid", "fname": "Kwame", "lname": "Stanwood", "phone_home": "555-0151", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "405 STREET CEDAR ROW", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 10}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00011", "params": {"DOB": "1980-12-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.galmere.11@example.invalid", "fname": "Bram", "lname": "Galmere", "phone_home": "555-0133", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "16 BEACON TERRACE STATION", "title": "Mr."}, "seq": 11, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Bram\nLast name: Galmere\nDate of birth: 1980-12-01\nSex: Male\nStreet: 16 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0133\nEmail: bram.galmere.11@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1980-12-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.galmere.11@example.invalid", "fname": "Bram", "lname": "Galmere", "phone_home": "555-0133", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "16 BEACON TERRACE STATION", "title": "Mr."}, "item_id": "ref-00011", "person": {"DOB": "1980-12-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.galmere.11@example.invalid", "fname": "Bram", "lname": "Galmere", "phone_home": "555-0133", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "16 BEACON TERRACE STATION", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 11}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00012", "params": {"DOB": "1979-06-03", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.langstead.12@example.invalid", "fname": "Anouk", "lname": "Langstead", "phone_home": "555-0160", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "114 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 12, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Anouk\nLast name: Langstead\nDate of birth: 1979-06-03\nSex: Male\nStreet: 114 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0160\nEmail: anouk.langstead.12@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "concurrent_same", "inject": [{"event": "other_clerk_creates", "person": {"DOB": "1979-06-03", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.langstead.12@example.invalid", "fname": "Anouk", "lname": "Langstead", "phone_home": "555-0160", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "114 QUARRY HILL DRIVE", "title": "Mr."}, "when": "before_item"}], "intended": null, "item_id": "ref-00012", "person": {"DOB": "1979-06-03", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.langstead.12@example.invalid", "fname": "Anouk", "lname": "Langstead", "phone_home": "555-0160", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "114 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "another clerk registered this patient moments earlier", "seq": 12}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00013", "params": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 13, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Odile\nLast name: Quenwood\nDate of birth: 1996-11-12\nSex: Female\nStreet: 411 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0149\nEmail: odile.quenwood.13@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "concurrent_other", "inject": [{"event": "other_clerk_edits_unrelated", "when": "during_item"}], "intended": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "item_id": "ref-00013", "person": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "another clerk edits an unrelated chart meanwhile", "seq": 13}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00014", "params": {"DOB": "1990-11-11", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.quenley.14@example.invalid", "fname": "Rafael", "lname": "Quenley", "phone_home": "555-0151", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "46 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 14, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Rafael\nLast name: Quenley\nDate of birth: 1990-11-11\nSex: Female\nStreet: 46 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0151\nEmail: rafael.quenley.14@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1990-11-11", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.quenley.14@example.invalid", "fname": "Rafael", "lname": "Quenley", "phone_home": "555-0151", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "46 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00014", "person": {"DOB": "1990-11-11", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.quenley.14@example.invalid", "fname": "Rafael", "lname": "Quenley", "phone_home": "555-0151", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "46 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 14}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00015", "params": {"DOB": "1951-01-05", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.fairwell.15@example.invalid", "fname": "Arlo", "lname": "Fairwell", "phone_home": "555-0178", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "304 WAY", "title": "Ms."}, "seq": 15, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Arlo\nLast name: Fairwell\nDate of birth: 1951-01-05\nSex: Female\nStreet: 304 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0178\nEmail: arlo.fairwell.15@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1951-01-05", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.fairwell.15@example.invalid", "fname": "Arlo", "lname": "Fairwell", "phone_home": "555-0178", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "304 WAY", "title": "Ms."}, "item_id": "ref-00015", "person": {"DOB": "1951-01-05", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.fairwell.15@example.invalid", "fname": "Arlo", "lname": "Fairwell", "phone_home": "555-0178", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "304 WAY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 15}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00016", "params": {"DOB": "1951-01-01", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.langridge.16@example.invalid", "fname": "Mateo", "lname": "Langridge", "phone_home": "555-0155", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 16, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Mateo\nLast name: Langridge\nDate of birth: 1951-01-01\nSex: Female\nStreet: 411 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0155\nEmail: mateo.langridge.16@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1951-01-01", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.langridge.16@example.invalid", "fname": "Mateo", "lname": "Langridge", "phone_home": "555-0155", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "item_id": "ref-00016", "person": {"DOB": "1951-01-01", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.langridge.16@example.invalid", "fname": "Mateo", "lname": "Langridge", "phone_home": "555-0155", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 16}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00017", "params": {"DOB": "1967-04-10", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.hartton.17@example.invalid", "fname": "Rafael", "lname": "Hartton", "phone_home": "555-0133", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "258 STREET CEDAR ROW", "title": "Mrs."}, "seq": 17, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Rafael\nLast name: Hartton\nDate of birth: 1967-04-10\nSex: Female\nStreet: 258 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0133\nEmail: rafael.hartton.17@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1967-04-10", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.hartton.17@example.invalid", "fname": "Rafael", "lname": "Hartton", "phone_home": "555-0133", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "258 STREET CEDAR ROW", "title": "Mrs."}, "item_id": "ref-00017", "person": {"DOB": "1967-04-10", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.hartton.17@example.invalid", "fname": "Rafael", "lname": "Hartton", "phone_home": "555-0133", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "258 STREET CEDAR ROW", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 17}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00018", "params": {"DOB": "1993-11-19", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.caldford.18@example.invalid", "fname": "Wen", "lname": "Caldford", "phone_home": "555-0168", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "419 ORCHARD LANE HARBOR", "title": "Mr."}, "seq": 18, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Wen\nLast name: Caldford\nDate of birth: 1993-11-19\nSex: Male\nStreet: 419 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0168\nEmail: wen.caldford.18@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1993-11-19", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.caldford.18@example.invalid", "fname": "Wen", "lname": "Caldford", "phone_home": "555-0168", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "419 ORCHARD LANE HARBOR", "title": "Mr."}, "item_id": "ref-00018", "person": {"DOB": "1993-11-19", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.caldford.18@example.invalid", "fname": "Wen", "lname": "Caldford", "phone_home": "555-0168", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "419 ORCHARD LANE HARBOR", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 18}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00019", "params": {"DOB": "10/01/1958", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "seq": 19, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Fergus\nLast name: Ashbrook\nDate of birth: 10/01/1958\nSex: Male\nStreet: 399 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0118\nEmail: fergus.ashbrook.19@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "malformed_dob", "inject": [], "intended": {"DOB": "1958-10-01", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "item_id": "ref-00019", "person": {"DOB": "1958-10-01", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "rationale": "date of birth written MM/DD/YYYY; the true date is ISO", "seq": 19}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00020", "params": {"DOB": "1976-11-17", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.ellford.20@example.invalid", "fname": "Jasper", "lname": "Ellford", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "273 WAY", "title": "Ms."}, "seq": 20, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Jasper\nLast name: Ellford\nDate of birth: 1976-11-17\nSex: Female\nStreet: 273 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0171\nEmail: jasper.ellford.20@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "clean", "inject": [], "intended": {"DOB": "1976-11-17", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.ellford.20@example.invalid", "fname": "Jasper", "lname": "Ellford", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "273 WAY", "title": "Ms."}, "item_id": "ref-00020", "person": {"DOB": "1976-11-17", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.ellford.20@example.invalid", "fname": "Jasper", "lname": "Ellford", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "273 WAY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 20}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00021", "params": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 21, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Odile\nLast name: Quenwood\nDate of birth: 1996-11-12\nSex: Female\nStreet: 411 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0149\nEmail: odile.quenwood.13@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "dup_resend", "inject": [], "intended": null, "item_id": "ref-00021", "person": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "a resend of ref-00013", "seq": 21}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00022", "params": {"DOB": "1970-08-17", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.radwood.22@example.invalid", "fname": "Fergus", "lname": "Radwood", "phone_home": "555-0189", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "275 WAY", "title": "Ms."}, "seq": 22, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Fergus\nLast name: Radwood\nDate of birth: 1970-08-17\nSex: Female\nStreet: 275 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0189\nEmail: fergus.radwood.22@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "clean", "inject": [], "intended": {"DOB": "1970-08-17", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.radwood.22@example.invalid", "fname": "Fergus", "lname": "Radwood", "phone_home": "555-0189", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "275 WAY", "title": "Ms."}, "item_id": "ref-00022", "person": {"DOB": "1970-08-17", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.radwood.22@example.invalid", "fname": "Fergus", "lname": "Radwood", "phone_home": "555-0189", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "275 WAY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 22}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00023", "params": {"DOB": "1992-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.thornford.23@example.invalid", "fname": "Soren", "lname": "Thornford", "phone_home": "555-0140", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "64 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 23, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Soren\nLast name: Thornford\nDate of birth: 1992-03-14\nSex: Female\nStreet: 64 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0140\nEmail: soren.thornford.23@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "clean", "inject": [], "intended": {"DOB": "1992-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.thornford.23@example.invalid", "fname": "Soren", "lname": "Thornford", "phone_home": "555-0140", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "64 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00023", "person": {"DOB": "1992-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.thornford.23@example.invalid", "fname": "Soren", "lname": "Thornford", "phone_home": "555-0140", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "64 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 23}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00024", "params": {"DOB": "1937-08-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 24, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ida\nLast name: Norwick\nDate of birth: 1937-08-13\nSex: Male\nStreet: 88 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0107\nEmail: ida.norwick.9010@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "ambiguous_same_person", "inject": [], "intended": null, "item_id": "ref-00024", "person": {"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "same person as an existing chart; the date of birth has a typo", "seq": 24}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00025", "params": {"DOB": "1994-04-24", "city": "EXAMPLETON", "country_code": "USA", "email": "esme.iversbrook.25@example.invalid", "fname": "Esme", "lname": "Iversbrook", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "489 QUARRY HILL DRIVE", "title": "Mrs."}, "seq": 25, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Esme\nLast name: Iversbrook\nDate of birth: 1994-04-24\nSex: Female\nStreet: 489 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0162\nEmail: esme.iversbrook.25@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "clean", "inject": [], "intended": {"DOB": "1994-04-24", "city": "EXAMPLETON", "country_code": "USA", "email": "esme.iversbrook.25@example.invalid", "fname": "Esme", "lname": "Iversbrook", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "489 QUARRY HILL DRIVE", "title": "Mrs."}, "item_id": "ref-00025", "person": {"DOB": "1994-04-24", "city": "EXAMPLETON", "country_code": "USA", "email": "esme.iversbrook.25@example.invalid", "fname": "Esme", "lname": "Iversbrook", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "489 QUARRY HILL DRIVE", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 25}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00026", "params": {"DOB": "1990-09-13", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.hartbrook.26@example.invalid", "fname": " FARIDA ", "lname": "HARTBROOK ", "phone_home": "555-0145", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "175 ORCHARD LANE HARBOR", "title": "Ms."}, "seq": 26, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: FARIDA \nLast name: HARTBROOK \nDate of birth: 1990-09-13\nSex: Female\nStreet: 175 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0145\nEmail: farida.hartbrook.26@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "malformed_case", "inject": [], "intended": {"DOB": "1990-09-13", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.hartbrook.26@example.invalid", "fname": "Farida", "lname": "Hartbrook", "phone_home": "555-0145", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "175 ORCHARD LANE HARBOR", "title": "Ms."}, "item_id": "ref-00026", "person": {"DOB": "1990-09-13", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.hartbrook.26@example.invalid", "fname": "Farida", "lname": "Hartbrook", "phone_home": "555-0145", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "175 ORCHARD LANE HARBOR", "title": "Ms."}, "rationale": "names in capitals with stray spaces", "seq": 26}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00027", "params": {"DOB": "1978-09-15", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.birchmore.27@example.invalid", "fname": "Jasper", "lname": "Birchmore", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "227 WILLOW BEND ROAD", "title": "Mrs."}, "seq": 27, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Jasper\nLast name: Birchmore\nDate of birth: 1978-09-15\nSex: Female\nStreet: 227 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0142\nEmail: jasper.birchmore.27@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "common_surname", "inject": [], "intended": {"DOB": "1978-09-15", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.birchmore.27@example.invalid", "fname": "Jasper", "lname": "Birchmore", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "227 WILLOW BEND ROAD", "title": "Mrs."}, "item_id": "ref-00027", "person": {"DOB": "1978-09-15", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.birchmore.27@example.invalid", "fname": "Jasper", "lname": "Birchmore", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "227 WILLOW BEND ROAD", "title": "Mrs."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 27}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00028", "params": {"DOB": "1964-02-03", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.caldwick.28@example.invalid", "fname": "Fergus", "lname": "Caldwick", "phone_home": "555-0199", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "137 BEACON TERRACE STATION", "title": "Ms."}, "seq": 28, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Fergus\nLast name: Caldwick\nDate of birth: 1964-02-03\nSex: Female\nStreet: 137 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0199\nEmail: fergus.caldwick.28@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "clean", "inject": [], "intended": {"DOB": "1964-02-03", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.caldwick.28@example.invalid", "fname": "Fergus", "lname": "Caldwick", "phone_home": "555-0199", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "137 BEACON TERRACE STATION", "title": "Ms."}, "item_id": "ref-00028", "person": {"DOB": "1964-02-03", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.caldwick.28@example.invalid", "fname": "Fergus", "lname": "Caldwick", "phone_home": "555-0199", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "137 BEACON TERRACE STATION", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 28}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00029", "params": {"DOB": "1986-03-18", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.oakwell.29@example.invalid", "fname": "Wen", "lname": "Oakwell", "phone_home": "555-0111", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "472 WAY", "title": "Mr."}, "seq": 29, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Wen\nLast name: Oakwell\nDate of birth: 1986-03-18\nSex: Male\nStreet: 472 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0111\nEmail: wen.oakwell.29@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "concurrent_same", "inject": [{"event": "other_clerk_creates", "person": {"DOB": "1986-03-18", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.oakwell.29@example.invalid", "fname": "Wen", "lname": "Oakwell", "phone_home": "555-0111", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "472 WAY", "title": "Mr."}, "when": "before_item"}], "intended": null, "item_id": "ref-00029", "person": {"DOB": "1986-03-18", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.oakwell.29@example.invalid", "fname": "Wen", "lname": "Oakwell", "phone_home": "555-0111", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "472 WAY", "title": "Mr."}, "rationale": "another clerk registered this patient moments earlier", "seq": 29}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00030", "params": {"DOB": "1944-05-01", "city": "EXAMPLETON", "country_code": "USA", "email": "hollis.jesston.30@example.invalid", "fname": "Hollis", "lname": "Jesston", "phone_home": "555-0110", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "326 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 30, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Hollis\nLast name: Jesston\nDate of birth: 1944-05-01\nSex: Male\nStreet: 326 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0110\nEmail: hollis.jesston.30@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "common_surname", "inject": [], "intended": {"DOB": "1944-05-01", "city": "EXAMPLETON", "country_code": "USA", "email": "hollis.jesston.30@example.invalid", "fname": "Hollis", "lname": "Jesston", "phone_home": "555-0110", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "326 QUARRY HILL DRIVE", "title": "Mr."}, "item_id": "ref-00030", "person": {"DOB": "1944-05-01", "city": "EXAMPLETON", "country_code": "USA", "email": "hollis.jesston.30@example.invalid", "fname": "Hollis", "lname": "Jesston", "phone_home": "555-0110", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "326 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 30}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00031", "params": {"DOB": "1993-01-11", "city": "EXAMPLETON", "country_code": "USA", "email": "grace.jessby.31@example.invalid", "fname": "Grace", "lname": "Jessby", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "285 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 31, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Grace\nLast name: Jessby\nDate of birth: 1993-01-11\nSex: Female\nStreet: 285 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0179\nEmail: grace.jessby.31@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "clean", "inject": [], "intended": {"DOB": "1993-01-11", "city": "EXAMPLETON", "country_code": "USA", "email": "grace.jessby.31@example.invalid", "fname": "Grace", "lname": "Jessby", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "285 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00031", "person": {"DOB": "1993-01-11", "city": "EXAMPLETON", "country_code": "USA", "email": "grace.jessby.31@example.invalid", "fname": "Grace", "lname": "Jessby", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "285 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 31}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00032", "params": {"DOB": "1955-05-02", "city": "EXAMPLETON", "country_code": "USA", "email": "ilse.iverswick.32@example.invalid", "fname": "Ilse", "lname": "Iverswick", "phone_home": "", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "94 STREET CEDAR ROW", "title": "Mrs."}, "seq": 32, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Ilse\nLast name: Iverswick\nDate of birth: 1955-05-02\nSex: Female\nStreet: 94 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: \nEmail: ilse.iverswick.32@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "missing_optional", "inject": [], "intended": {"DOB": "1955-05-02", "city": "EXAMPLETON", "country_code": "USA", "email": "ilse.iverswick.32@example.invalid", "fname": "Ilse", "lname": "Iverswick", "phone_home": "", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "94 STREET CEDAR ROW", "title": "Mrs."}, "item_id": "ref-00032", "person": {"DOB": "1955-05-02", "city": "EXAMPLETON", "country_code": "USA", "email": "ilse.iverswick.32@example.invalid", "fname": "Ilse", "lname": "Iverswick", "phone_home": "", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "94 STREET CEDAR ROW", "title": "Mrs."}, "rationale": "no home phone; register without one", "seq": 32}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00033", "params": {"DOB": "1999-11-06", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.fairwick.33@example.invalid", "fname": "Odile", "lname": "Fairwick", "phone_home": "555-0132", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "140 AVENUE MILL ROAD", "title": "Mr."}, "seq": 33, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Odile\nLast name: Fairwick\nDate of birth: 1999-11-06\nSex: Male\nStreet: 140 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0132\nEmail: odile.fairwick.33@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "common_surname", "inject": [], "intended": {"DOB": "1999-11-06", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.fairwick.33@example.invalid", "fname": "Odile", "lname": "Fairwick", "phone_home": "555-0132", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "140 AVENUE MILL ROAD", "title": "Mr."}, "item_id": "ref-00033", "person": {"DOB": "1999-11-06", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.fairwick.33@example.invalid", "fname": "Odile", "lname": "Fairwick", "phone_home": "555-0132", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "140 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 33}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00034", "params": {"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 34, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ida\nLast name: Norwick\nDate of birth: 1937-08-12\nSex: Male\nStreet: 88 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0107\nEmail: ida.norwick.9010@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "dup_existing", "inject": [], "intended": null, "item_id": "ref-00034", "person": {"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "this patient already has a chart", "seq": 34}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00035", "params": {"DOB": "1999-05-23", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.stanbrook.35@example.invalid", "fname": "Leilani", "lname": "Stanbrook", "phone_home": "555-0125", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "112 STREET CEDAR ROW", "title": "Mr."}, "seq": 35, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Leilani\nLast name: Stanbrook\nDate of birth: 1999-05-23\nSex: Male\nStreet: 112 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0125\nEmail: leilani.stanbrook.35@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "clean", "inject": [], "intended": {"DOB": "1999-05-23", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.stanbrook.35@example.invalid", "fname": "Leilani", "lname": "Stanbrook", "phone_home": "555-0125", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "112 STREET CEDAR ROW", "title": "Mr."}, "item_id": "ref-00035", "person": {"DOB": "1999-05-23", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.stanbrook.35@example.invalid", "fname": "Leilani", "lname": "Stanbrook", "phone_home": "555-0125", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "112 STREET CEDAR ROW", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 35}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00036", "params": {"DOB": "1979-01-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.ellstead.36@example.invalid", "fname": "Ida", "lname": "Ellstead", "phone_home": "555-0180", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "68 WILLOW BEND ROAD", "title": "Mr."}, "seq": 36, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ida\nLast name: Ellstead\nDate of birth: 1979-01-27\nSex: Male\nStreet: 68 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0180\nEmail: ida.ellstead.36@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "clean", "inject": [], "intended": {"DOB": "1979-01-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.ellstead.36@example.invalid", "fname": "Ida", "lname": "Ellstead", "phone_home": "555-0180", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "68 WILLOW BEND ROAD", "title": "Mr."}, "item_id": "ref-00036", "person": {"DOB": "1979-01-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.ellstead.36@example.invalid", "fname": "Ida", "lname": "Ellstead", "phone_home": "555-0180", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "68 WILLOW BEND ROAD", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 36}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00037", "params": {"DOB": "1942-02-22", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.oakcombe.37@example.invalid", "fname": "Soren", "lname": "Oakcombe", "phone_home": "555-0176", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "432 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 37, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Soren\nLast name: Oakcombe\nDate of birth: 1942-02-22\nSex: Female\nStreet: 432 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0176\nEmail: soren.oakcombe.37@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "clean", "inject": [], "intended": {"DOB": "1942-02-22", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.oakcombe.37@example.invalid", "fname": "Soren", "lname": "Oakcombe", "phone_home": "555-0176", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "432 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00037", "person": {"DOB": "1942-02-22", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.oakcombe.37@example.invalid", "fname": "Soren", "lname": "Oakcombe", "phone_home": "555-0176", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "432 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 37}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00038", "params": {"DOB": "1958-03-09", "city": "EXAMPLETON", "country_code": "USA", "email": "dmitri.birchfield.38@example.invalid", "fname": "Dmitri", "lname": "Birchfield", "phone_home": "555-0146", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "230 WILLOW BEND ROAD", "title": "Mr."}, "seq": 38, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Dmitri\nLast name: Birchfield\nDate of birth: 1958-03-09\nSex: Male\nStreet: 230 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0146\nEmail: dmitri.birchfield.38@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "slow_save", "inject": [{"event": "slow_save", "seconds": 6, "when": "during_item"}], "intended": {"DOB": "1958-03-09", "city": "EXAMPLETON", "country_code": "USA", "email": "dmitri.birchfield.38@example.invalid", "fname": "Dmitri", "lname": "Birchfield", "phone_home": "555-0146", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "230 WILLOW BEND ROAD", "title": "Mr."}, "item_id": "ref-00038", "person": {"DOB": "1958-03-09", "city": "EXAMPLETON", "country_code": "USA", "email": "dmitri.birchfield.38@example.invalid", "fname": "Dmitri", "lname": "Birchfield", "phone_home": "555-0146", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "230 WILLOW BEND ROAD", "title": "Mr."}, "rationale": "the save is slow", "seq": 38}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00039", "params": {"DOB": "1939-05-07", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.langby.39@example.invalid", "fname": "Rosalind", "lname": "Langby", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "184 LANTERN COURT FERRY", "title": "Ms."}, "seq": 39, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Rosalind\nLast name: Langby\nDate of birth: 1939-05-07\nSex: Female\nStreet: 184 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0142\nEmail: rosalind.langby.39@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "clean", "inject": [], "intended": {"DOB": "1939-05-07", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.langby.39@example.invalid", "fname": "Rosalind", "lname": "Langby", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "184 LANTERN COURT FERRY", "title": "Ms."}, "item_id": "ref-00039", "person": {"DOB": "1939-05-07", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.langby.39@example.invalid", "fname": "Rosalind", "lname": "Langby", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "184 LANTERN COURT FERRY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 39}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00040", "params": {"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.jesswood.40@example.invalid", "fname": "Mateo", "lname": "Jesswood", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "4 QUARRY HILL DRIVE", "title": "Mrs."}, "seq": 40, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Mateo\nLast name: Jesswood\nDate of birth: 1950-04-21\nSex: Female\nStreet: 4 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0111\nEmail: mateo.jesswood.40@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "shared_dob", "inject": [], "intended": {"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.jesswood.40@example.invalid", "fname": "Mateo", "lname": "Jesswood", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "4 QUARRY HILL DRIVE", "title": "Mrs."}, "item_id": "ref-00040", "person": {"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.jesswood.40@example.invalid", "fname": "Mateo", "lname": "Jesswood", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "4 QUARRY HILL DRIVE", "title": "Mrs."}, "rationale": "born on the same day as an existing chart; a different person", "seq": 40}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00041", "params": {"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ines.norwell.41@example.invalid", "fname": "Ines", "lname": "Norwell", "phone_home": "555-0184", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "121 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 41, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Ines\nLast name: Norwell\nDate of birth: 1966-07-13\nSex: Female\nStreet: 121 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0184\nEmail: ines.norwell.41@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "shared_dob", "inject": [], "intended": {"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ines.norwell.41@example.invalid", "fname": "Ines", "lname": "Norwell", "phone_home": "555-0184", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "121 QUARRY HILL DRIVE", "title": "Ms."}, "item_id": "ref-00041", "person": {"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ines.norwell.41@example.invalid", "fname": "Ines", "lname": "Norwell", "phone_home": "555-0184", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "121 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "born on the same day as an existing chart; a different person", "seq": 41}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00042", "params": {"DOB": "1998-03-10", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.norley.42@example.invalid", "fname": "Anouk", "lname": "Norley", "phone_home": "555-0191", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "372 LANTERN COURT FERRY", "title": "Mr."}, "seq": 42, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Anouk\nLast name: Norley\nDate of birth: 1998-03-10\nSex: Male\nStreet: 372 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0191\nEmail: anouk.norley.42@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "clean", "inject": [], "intended": {"DOB": "1998-03-10", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.norley.42@example.invalid", "fname": "Anouk", "lname": "Norley", "phone_home": "555-0191", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "372 LANTERN COURT FERRY", "title": "Mr."}, "item_id": "ref-00042", "person": {"DOB": "1998-03-10", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.norley.42@example.invalid", "fname": "Anouk", "lname": "Norley", "phone_home": "555-0191", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "372 LANTERN COURT FERRY", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 42}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00043", "params": {"DOB": "2002-09-19", "city": "EXAMPLETON", "country_code": "USA", "email": "dalia.oakbrook.43@example.invalid", "fname": "Dalia", "lname": "Oakbrook", "phone_home": "555-0110", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "429 WILLOW BEND ROAD", "title": "Ms."}, "seq": 43, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Dalia\nLast name: Oakbrook\nDate of birth: 2002-09-19\nSex: Female\nStreet: 429 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0110\nEmail: dalia.oakbrook.43@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "clean", "inject": [], "intended": {"DOB": "2002-09-19", "city": "EXAMPLETON", "country_code": "USA", "email": "dalia.oakbrook.43@example.invalid", "fname": "Dalia", "lname": "Oakbrook", "phone_home": "555-0110", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "429 WILLOW BEND ROAD", "title": "Ms."}, "item_id": "ref-00043", "person": {"DOB": "2002-09-19", "city": "EXAMPLETON", "country_code": "USA", "email": "dalia.oakbrook.43@example.invalid", "fname": "Dalia", "lname": "Oakbrook", "phone_home": "555-0110", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "429 WILLOW BEND ROAD", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 43}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00044", "params": {"DOB": "10/01/1958", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "seq": 44, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Fergus\nLast name: Ashbrook\nDate of birth: 10/01/1958\nSex: Male\nStreet: 399 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0118\nEmail: fergus.ashbrook.19@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "dup_resend", "inject": [], "intended": null, "item_id": "ref-00044", "person": {"DOB": "1958-10-01", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "rationale": "a resend of ref-00019", "seq": 44}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00045", "params": {"DOB": "1959-06-04", "city": "EXAMPLETON", "country_code": "USA", "email": "gideon.galwick.9004@example.invalid", "fname": "Gideon", "lname": "Galwick", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "282 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 45, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Gideon\nLast name: Galwick\nDate of birth: 1959-06-04\nSex: Female\nStreet: 282 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0179\nEmail: gideon.galwick.9004@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "dup_existing", "inject": [], "intended": null, "item_id": "ref-00045", "person": {"DOB": "1959-06-04", "city": "EXAMPLETON", "country_code": "USA", "email": "gideon.galwick.9004@example.invalid", "fname": "Gideon", "lname": "Galwick", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "282 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "this patient already has a chart", "seq": 45}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00046", "params": {"DOB": "1998-07-03", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.hartgate.46@example.invalid", "fname": "Odile", "lname": "Hartgate", "phone_home": "555-0178", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "247 BEACON TERRACE STATION", "title": "Mr."}, "seq": 46, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Odile\nLast name: Hartgate\nDate of birth: 1998-07-03\nSex: Male\nStreet: 247 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0178\nEmail: odile.hartgate.46@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "session_expiry", "inject": [{"event": "force_logout", "when": "before_item"}], "intended": {"DOB": "1998-07-03", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.hartgate.46@example.invalid", "fname": "Odile", "lname": "Hartgate", "phone_home": "555-0178", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "247 BEACON TERRACE STATION", "title": "Mr."}, "item_id": "ref-00046", "person": {"DOB": "1998-07-03", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.hartgate.46@example.invalid", "fname": "Odile", "lname": "Hartgate", "phone_home": "555-0178", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "247 BEACON TERRACE STATION", "title": "Mr."}, "rationale": "sessions ended just before the item", "seq": 46}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00047", "params": {"DOB": "1977-05-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldbrook.47@example.invalid", "fname": "Rafael", "lname": "Caldbrook", "phone_home": "555-0101", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "382 BEACON TERRACE STATION", "title": "Ms."}, "seq": 47, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Rafael\nLast name: Caldbrook\nDate of birth: 1977-05-21\nSex: Female\nStreet: 382 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0101\nEmail: rafael.caldbrook.47@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "clean", "inject": [], "intended": {"DOB": "1977-05-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldbrook.47@example.invalid", "fname": "Rafael", "lname": "Caldbrook", "phone_home": "555-0101", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "382 BEACON TERRACE STATION", "title": "Ms."}, "item_id": "ref-00047", "person": {"DOB": "1977-05-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldbrook.47@example.invalid", "fname": "Rafael", "lname": "Caldbrook", "phone_home": "555-0101", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "382 BEACON TERRACE STATION", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 47}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00048", "params": {"DOB": "1962-11-16", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.jesswick.48@example.invalid", "fname": "Leilani", "lname": "Jesswick", "phone_home": "555-0159", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "150 BEACON TERRACE STATION", "title": "Mrs."}, "seq": 48, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Leilani\nLast name: Jesswick\nDate of birth: 1962-11-16\nSex: Female\nStreet: 150 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0159\nEmail: leilani.jesswick.48@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "clean", "inject": [], "intended": {"DOB": "1962-11-16", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.jesswick.48@example.invalid", "fname": "Leilani", "lname": "Jesswick", "phone_home": "555-0159", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "150 BEACON TERRACE STATION", "title": "Mrs."}, "item_id": "ref-00048", "person": {"DOB": "1962-11-16", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.jesswick.48@example.invalid", "fname": "Leilani", "lname": "Jesswick", "phone_home": "555-0159", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "150 BEACON TERRACE STATION", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 48}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00049", "params": {"DOB": "1974-02-16", "city": "EXAMPLETON", "country_code": "USA", "email": "tomas.stanstead.49@example.invalid", "fname": "Tomas", "lname": "Stanstead", "phone_home": "555-0109", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "10 BEACON TERRACE STATION", "title": "Mrs."}, "seq": 49, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Tomas\nLast name: Stanstead\nDate of birth: 1974-02-16\nSex: Female\nStreet: 10 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0109\nEmail: tomas.stanstead.49@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "clean", "inject": [], "intended": {"DOB": "1974-02-16", "city": "EXAMPLETON", "country_code": "USA", "email": "tomas.stanstead.49@example.invalid", "fname": "Tomas", "lname": "Stanstead", "phone_home": "555-0109", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "10 BEACON TERRACE STATION", "title": "Mrs."}, "item_id": "ref-00049", "person": {"DOB": "1974-02-16", "city": "EXAMPLETON", "country_code": "USA", "email": "tomas.stanstead.49@example.invalid", "fname": "Tomas", "lname": "Stanstead", "phone_home": "555-0109", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "10 BEACON TERRACE STATION", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 49}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00050", "params": {"DOB": "1961-04-03", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jesswick.50@example.invalid", "fname": "Oren", "lname": "Jesswick", "phone_home": "555-0195", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "299 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 50, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Oren\nLast name: Jesswick\nDate of birth: 1961-04-03\nSex: Male\nStreet: 299 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0195\nEmail: oren.jesswick.50@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "clean", "inject": [], "intended": {"DOB": "1961-04-03", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jesswick.50@example.invalid", "fname": "Oren", "lname": "Jesswick", "phone_home": "555-0195", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "299 QUARRY HILL DRIVE", "title": "Mr."}, "item_id": "ref-00050", "person": {"DOB": "1961-04-03", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jesswick.50@example.invalid", "fname": "Oren", "lname": "Jesswick", "phone_home": "555-0195", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "299 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 50}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00051", "params": {"DOB": "1949-12-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.ellwood.51@example.invalid", "fname": "Ola", "lname": "Ellwood", "phone_home": "555-0150", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "120 WAY", "title": "Mr."}, "seq": 51, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ola\nLast name: Ellwood\nDate of birth: 1949-12-12\nSex: Male\nStreet: 120 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0150\nEmail: ola.ellwood.51@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "clean", "inject": [], "intended": {"DOB": "1949-12-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.ellwood.51@example.invalid", "fname": "Ola", "lname": "Ellwood", "phone_home": "555-0150", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "120 WAY", "title": "Mr."}, "item_id": "ref-00051", "person": {"DOB": "1949-12-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.ellwood.51@example.invalid", "fname": "Ola", "lname": "Ellwood", "phone_home": "555-0150", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "120 WAY", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 51}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00052", "params": {"DOB": "1975-08-19", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenridge.9005@example.invalid", "fname": "Odile", "lname": "Quenridge", "phone_home": "555-0138", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "474 WAY", "title": "Mr."}, "seq": 52, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Odile\nLast name: Quenridge\nDate of birth: 1975-08-19\nSex: Male\nStreet: 474 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0138\nEmail: odile.quenridge.9005@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "dup_existing", "inject": [], "intended": null, "item_id": "ref-00052", "person": {"DOB": "1975-08-19", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenridge.9005@example.invalid", "fname": "Odile", "lname": "Quenridge", "phone_home": "555-0138", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "474 WAY", "title": "Mr."}, "rationale": "this patient already has a chart", "seq": 52}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00053", "params": {"DOB": "1978-07-04", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.ashby.53@example.invalid", "fname": "Bo", "lname": "Ashby", "phone_home": "", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "483 STREET CEDAR ROW", "title": "Mr."}, "seq": 53, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Bo\nLast name: Ashby\nDate of birth: 1978-07-04\nSex: Male\nStreet: 483 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: \nEmail: bo.ashby.53@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "missing_optional", "inject": [], "intended": {"DOB": "1978-07-04", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.ashby.53@example.invalid", "fname": "Bo", "lname": "Ashby", "phone_home": "", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "483 STREET CEDAR ROW", "title": "Mr."}, "item_id": "ref-00053", "person": {"DOB": "1978-07-04", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.ashby.53@example.invalid", "fname": "Bo", "lname": "Ashby", "phone_home": "", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "483 STREET CEDAR ROW", "title": "Mr."}, "rationale": "no home phone; register without one", "seq": 53}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00054", "params": {"DOB": "1984-10-03", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.galwick.54@example.invalid", "fname": "Ola", "lname": "Galwick", "phone_home": "555-0106", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "186 ORCHARD LANE HARBOR", "title": "Mr."}, "seq": 54, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ola\nLast name: Galwick\nDate of birth: 1984-10-03\nSex: Male\nStreet: 186 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0106\nEmail: ola.galwick.54@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "common_surname", "inject": [], "intended": {"DOB": "1984-10-03", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.galwick.54@example.invalid", "fname": "Ola", "lname": "Galwick", "phone_home": "555-0106", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "186 ORCHARD LANE HARBOR", "title": "Mr."}, "item_id": "ref-00054", "person": {"DOB": "1984-10-03", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.galwick.54@example.invalid", "fname": "Ola", "lname": "Galwick", "phone_home": "555-0106", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "186 ORCHARD LANE HARBOR", "title": "Mr."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 54}, "type": "item"} +{"app": "openemr", "day": 9, "item_id": "ref-00055", "params": {"city": "EXAMPLETON", "country_code": "USA", "email": "farida.jessstead.55@example.invalid", "fname": "Farida", "lname": "Jessstead", "phone_home": "555-0198", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "263 AVENUE MILL ROAD", "title": "Ms."}, "seq": 55, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Farida\nLast name: Jessstead\nDate of birth: \nSex: Female\nStreet: 263 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0198\nEmail: farida.jessstead.55@example.invalid\nCountry: USA\n", "truth": {"day": 9, "exception": "missing_required", "inject": [], "intended": null, "item_id": "ref-00055", "person": {"DOB": "1966-05-14", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.jessstead.55@example.invalid", "fname": "Farida", "lname": "Jessstead", "phone_home": "555-0198", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "263 AVENUE MILL ROAD", "title": "Ms."}, "rationale": "no date of birth; return the referral to the sender", "seq": 55}, "type": "item"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/REPORT.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/REPORT.md new file mode 100644 index 000000000..8692d2a72 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/REPORT.md @@ -0,0 +1,61 @@ +# Lifecycle soak report + +Protocol `lifecycle/2026-10-20.1`, workload `lifecycle-workload/2026-10-24.1`, seed 7, 55 referrals over 10 simulated days. Engine commit `26947f9683d6`. App: openemr 8.0.0.3, synthetic data only. Cost model `lifecycle-cost/2026-10-20.1`. + +## Arm `openadapt-production` (incomplete) + +- **Verified items per operator-minute: 0.033** (4 verified of 27 items over 123.0 operator minutes; 0.031 with the 5.0 setup minutes). By hand: 0.333 an operator-minute. +- False stops per 100 items: 70.37; all stops per 100 items: 100.0; operator minutes per stop: 4.56. +- After the app change `relabel_save` (item 26): 1 of 2 items false-stopped, 5.0 operator minutes of maintenance (stops, repair reviews); first verified item after it: None, None s after the change. +- Duplicate-check stops: 15; field shared with an existing chart: {"first name only": 9, "lname": 3, "DOB": 1, "none at start": 1, "lname+DOB": 1}; judged {"false_stop": 10, "right_stop": 3, "fault_stop": 1, "data_stop": 1}; exception kinds {"clean": 8, "shared_dob": 1, "concurrent_same": 1, "concurrent_other": 1, "malformed_dob": 1, "dup_resend": 1, "ambiguous_same_person": 1, "common_surname": 1}. +- Stops judged `data_stop`, by cause: duplicate check listed a chart 1, identity check failed (relabeled control) 1, problems_only switch off; stopped unasked 1. +- Stops judged `false_stop`, by cause: duplicate check listed a chart 10, problems_only switch off; stopped unasked 9. +- Stops judged `fault_stop`, by cause: duplicate check listed a chart 1. +- Stops judged `right_stop`, by cause: duplicate check listed a chart 3, other: REJECTED_POLICY HALTED / REJECTED_POLICY 1. +- Cost-model bands, verified per operator-minute: x0.5 0.065, x1 0.033, x2 0.016. + +| | x0.5 | x1 | x2 | +|---|---:|---:|---:| +| Verified completed items per operator-hour | 3.75 | 1.88 | 0.94 | +| ... if every silent wrong is later found and fixed | 3.75 | 1.88 | 0.94 | +| All-manual items per operator-hour | 40 | 20 | 10 | +| Operator work removed vs all-manual | -58.0% | -58.0% | -58.0% | +| Setup minutes | 2.5 | 5 | 10 | +| Per-item operator minutes (mean) | 2.278 | 4.556 | 9.111 | +| Maintenance minutes (all UI changes) | 0 | 0 | 0 | +| Operator hours in total | 1.067 | 2.133 | 4.267 | + +- Items: 27; verified completed without hand entry: 4; right in the end: 27; done by hand: 23. +- False stops: 19 of 19 clean items, 100.0% (95% CI 83.2-100.0%); 1 of them with a UI change in force. +- Silent wrong: 0 of 0 items claimed done, n/a (judged by direct SQL, never the product's verdict). +- Operator requests: {"stop": 27}; actions: {"do_by_hand": 23, "skip": 4}. +- Outcomes: {"false_stop": 19, "data_stop": 3, "right_stop": 4, "fault_stop": 1}. +- Wall: 5743.1 s of item time, median 226.94 s an item; host 1-minute load median 7.0, max 76.1. +- Model calls 0, list-price cost $0.0. + +Outcome by exception: + +| Exception | Outcomes | +|---|---| +| ambiguous_same_person | right_stop 1 | +| clean | false_stop 17 | +| common_surname | false_stop 1 | +| concurrent_other | fault_stop 1 | +| concurrent_same | right_stop 1 | +| dup_resend | right_stop 1 | +| malformed_case | data_stop 1 | +| malformed_dob | data_stop 2 | +| missing_required | right_stop 1 | +| shared_dob | false_stop 1 | + +After each UI change (items until the next change): + +| Change | From item | Items | Outcomes | +|---|---:|---:|---| +| relabel_save | 26 | 2 | data_stop 1, false_stop 1 | + +## Assumptions + +Operator seconds per touch (`lifecycle-cost/2026-10-20.1`): admit 300, approval 20, compile_review 600, interrupt 30, manual_entry 180, question 60, reconcile 120, repair_review 120, stop 90, teach_prep 300. Every request also pays the interrupt charge. Bands scale every number. + +No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds). diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/arm-ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/arm-ledger.jsonl new file mode 100644 index 000000000..faf4adb37 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/arm-ledger.jsonl @@ -0,0 +1,21 @@ +{"at": 1792867231.308, "certification_invalidated": true, "encrypted": true, "encrypted_digest": "ec87be520a03662a423d15e8a778058c46588bcd1225bcaf4471f34032776874", "kind": "admit.encrypt", "source_digest": "ec096afa2b614326b00ec3155f256041c19d86f3998761ce9d772cfd911460b6"} +{"at": 1792867373.603, "kind": "admit.qualify.log", "line": "{\"case_id\": \"representative\", \"trial\": 1, \"expected\": \"VERIFIED\", \"execution_outcome\": \"VERIFIED\", \"transaction_outcome\": \"VERIFIED\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": true, \"model_calls\": 0, \"total_ms\": 112541.8413747102, \"failed_step_id\": null, \"failed_error"} +{"at": 1792867495.563, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-ambiguity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 112577.0550002344, \"failed_step_id\": \"step_040"} +{"at": 1792867614.713, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-wrong-identity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"REJECTED_POLICY\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 110032.17295790091, \"failed_step_id\": \"step_04"} +{"at": 1792867732.672, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-stale-identity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 109435.30616676435, \"failed_step_id\": \"st"} +{"at": 1792867850.204, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-weak-effect\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 108721.05291672051, \"failed_step_id\": \"step_"} +{"at": 1792867967.187, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-missing-effect\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 108448.08670924976, \"failed_step_id\": \"st"} +{"at": 1792867975.271, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"representative\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792867985.373, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-ambiguity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792867993.097, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-wrong-identity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792868000.819, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-stale-identity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792868008.462, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-weak-effect\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792868016.191, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-missing-effect\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792868016.191, "kind": "admit.qualify.log", "line": "pixels-only pass (informational): 0/6 (0%) trials behaved as required with structure lookups disabled; most common failure: StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"at": 1792868016.546, "kind": "admit.qualify.log", "line": "qualified lookups: structure on a local surface"} +{"at": 1792868016.754, "kind": "admit.qualify.log", "line": "PASS: qualification for 'openemr-create-synthetic-patient'\n identity coverage 1/1; effect coverage 1/1; cases 6/6"} +{"at": 1792868016.754, "kind": "admit.qualify.log", "line": "qualification-result/v1 c7b625552580b795: passed=True silent_incorrect_success=0 over_halt=0 executor_model_calls=0 verifier_model_calls=0"} +{"at": 1792868023.443, "kind": "admit.qualify.log", "line": "no admission envelope: the qualification-admission/v1 envelope needs at least 3 trials per case; this campaign ran 1"} +{"at": 1792868030.164, "certified": true, "digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "kind": "admit.qualify", "passed": true, "rows": [{"case_id": "representative", "expected": "VERIFIED", "transaction_outcome": "VERIFIED", "trial": 1}, {"case_id": "fault-ambiguity", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-wrong-identity", "expected": "HALTED", "transaction_outcome": "REJECTED_POLICY", "trial": 1}, {"case_id": "fault-stale-identity", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-weak-effect", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-missing-effect", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}], "seconds": 803.2} +{"at": 1792868030.165, "kind": "admit", "pinned_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "seconds": 803.2} +{"at": 1792868032.467, "bundle": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-163eeff429c5-1792868032"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/ledger.jsonl new file mode 100644 index 000000000..44231c97c --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/ledger.jsonl @@ -0,0 +1,59 @@ +{"app": {"api_url": "https://127.0.0.1:9400", "app": "openemr", "baseline_sha256": "015bef02fb30530e2ed64c17e8035623a39801a9008f2df307eaf53e420e98ba", "images": {"mariadb": "mariadb:11.8@sha256:efb4959ef2c835cd735dbc388eb9ad6aab0c78dd64febcd51bc17481111890c4", "openemr": "openemr/openemr:8.0.0.3@sha256:0aa4d3d52b22fa69986c087e7c99e9854d8dfd70440634eb7c8af0e08f19f3ab"}, "project": "openadapt-openemr-compose", "ui_url": "http://127.0.0.1:9401", "version": "8.0.0.3"}, "argv": null, "arm": "", "cost_model": {"admit_s": 300.0, "approval_s": 20.0, "calibration": "No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds).", "compile_review_s": 600.0, "interrupt_s": 30.0, "manual_entry_s": 180.0, "question_s": 60.0, "reconcile_s": 120.0, "repair_review_s": 120.0, "stop_s": 90.0, "teach_prep_s": 300.0, "version": "lifecycle-cost/2026-10-20.1"}, "cpus": 12, "days": 10, "engine_commit": "26947f9683d6b08809f9bea03c004c326092ef89", "host": "MacBook-Pro-5", "items": 55, "platform": "macOS-15.7.3-arm64-arm-64bit", "protocol": "lifecycle/2026-10-20.1", "seed": 7, "stop_after": null, "t": 1792867215.61, "type": "run_start", "workload": "lifecycle-workload/2026-10-24.1"} +{"arm": "openadapt-production", "arm_spec": "benchmark.lifecycle.production_arm:make", "describe": {"api_tier": "where admissible (refused on the OpenEMR referral by its own proposal; the GUI save runs)", "approval": "problems_only (local stand-in for Cloud's switch status)", "authorization": "governed run gate on the certified, encrypted bundle", "checkpoint_store": "encrypted", "configuration": "benchmark/lifecycle_proof (proof-15)", "duplicate_check": "recorded: text_present 'No matches were found.'", "durable": true, "model_calls": "none on any path", "pin": "admitted digest; repaired versions only through signed lineage", "policy": "clinical-write", "profile": "regulated", "qualification_trials": 1, "readback": "pipelined, window 1; the harness waits for each check", "recovery": "none", "repair": "self-repair on a halt before any effect (rule-based agent, no model)"}, "existing_ids": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], "interface": "lifecycle-arm/1", "options": {"recovery": "none"}, "t": 1792867225.941, "type": "arm_start"} +{"arm": "openadapt-production", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "teach and compile happened before this run (the certified referral bundle); onboarding effort is measured in benchmark/onboarding_effort", "phase": "admit", "pinned_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "reused_from": null, "stage": "setup", "t": 1792868032.47, "type": "phase", "wall_s": 805.7} +{"arm": "openadapt-production", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "problems_only switch opened locally, as Cloud would", "phase": "switch", "stage": "setup", "t": 1792868032.47, "type": "phase", "wall_s": 0.3} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "13"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00001", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "rule": "enter_by_hand", "seq": 1, "surface": "openadapt-flow explain / approve / resume", "t": 1792868271.444, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00001", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00001", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 239.18, "injected": [], "item_id": "ref-00001", "load_1m": 7.4, "load_1m_end": 6.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 1, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792868271.76, "type": "item_result", "wall_s": 238.84} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "14"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00002", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "rule": "enter_by_hand", "seq": 2, "surface": "openadapt-flow explain / approve / resume", "t": 1792868506.711, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00002", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00002", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 235.14, "injected": [], "item_id": "ref-00002", "load_1m": 6.4, "load_1m_end": 5.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 2, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 1}, "t": 1792868507.011, "type": "item_result", "wall_s": 234.84} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "15"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00003", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "rule": "enter_by_hand", "seq": 3, "surface": "openadapt-flow explain / approve / resume", "t": 1792868726.285, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00003", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00003", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 219.48, "injected": [], "item_id": "ref-00003", "load_1m": 5.7, "load_1m_end": 6.3, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 3, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792868726.586, "type": "item_result", "wall_s": 219.18} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "16"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00004", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "rule": "enter_by_hand", "seq": 4, "surface": "openadapt-flow explain / approve / resume", "t": 1792868945.647, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00004", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00004", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 219.28, "injected": [], "item_id": "ref-00004", "load_1m": 6.3, "load_1m_end": 8.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 4, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792868945.954, "type": "item_result", "wall_s": 218.97} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "17"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00005", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "rule": "enter_by_hand", "seq": 5, "surface": "openadapt-flow explain / approve / resume", "t": 1792869175.382, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00005", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00005", "exception": "shared_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 229.64, "injected": [], "item_id": "ref-00005", "load_1m": 8.5, "load_1m_end": 5.2, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 5, "shares_with_existing": {"DOB": 1, "fname": 0, "lname": 0}, "t": 1792869175.686, "type": "item_result", "wall_s": 229.34} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "18"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00006", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "rule": "enter_by_hand", "seq": 6, "surface": "openadapt-flow explain / approve / resume", "t": 1792869395.125, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00006", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00006", "exception": "malformed_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 219.64, "injected": [], "item_id": "ref-00006", "load_1m": 5.2, "load_1m_end": 6.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "data_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 6, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792869395.43, "type": "item_result", "wall_s": 219.34} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "19"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00007", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "rule": "enter_by_hand", "seq": 7, "surface": "openadapt-flow explain / approve / resume", "t": 1792869614.745, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00007", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00007", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 219.51, "injected": [], "item_id": "ref-00007", "load_1m": 6.0, "load_1m_end": 5.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 7, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792869615.043, "type": "item_result", "wall_s": 219.21} +{"action": "skip", "arm": "openadapt-production", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00008", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "skip_no_chart_wanted", "seq": 8, "surface": "openadapt-flow explain / approve / resume", "t": 1792869620.105, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00008", "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00008", "exception": "missing_required", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 5.28, "injected": [], "item_id": "ref-00008", "load_1m": 5.6, "load_1m_end": 5.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 8, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792869620.422, "type": "item_result", "wall_s": 4.96} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "20"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00009", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "rule": "enter_by_hand", "seq": 9, "surface": "openadapt-flow explain / approve / resume", "t": 1792869839.638, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00009", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00009", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 219.42, "injected": [], "item_id": "ref-00009", "load_1m": 5.6, "load_1m_end": 6.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 9, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792869839.932, "type": "item_result", "wall_s": 219.13} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "21"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00010", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "rule": "enter_by_hand", "seq": 10, "surface": "openadapt-flow explain / approve / resume", "t": 1792870058.997, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00010", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00010", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 219.28, "injected": [], "item_id": "ref-00010", "load_1m": 6.1, "load_1m_end": 4.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 10, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792870059.32, "type": "item_result", "wall_s": 218.96} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "22"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00011", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "rule": "enter_by_hand", "seq": 11, "surface": "openadapt-flow explain / approve / resume", "t": 1792870289.606, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00011", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00011", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 230.5, "injected": [], "item_id": "ref-00011", "load_1m": 4.6, "load_1m_end": 7.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 11, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792870289.919, "type": "item_result", "wall_s": 230.19} +{"action": "skip", "arm": "openadapt-production", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00012", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "rule": "skip_no_chart_wanted", "seq": 12, "surface": "openadapt-flow explain / approve / resume", "t": 1792870517.983, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00012", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00012", "exception": "concurrent_same", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 227.89, "injected": [{"chart_id": "23", "event": "other_clerk_creates"}], "item_id": "ref-00012", "load_1m": 7.1, "load_1m_end": 7.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 12, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792870518.381, "type": "item_result", "wall_s": 227.5} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "24"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00013", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "rule": "enter_by_hand", "seq": 13, "surface": "openadapt-flow explain / approve / resume", "t": 1792870745.673, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00013", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00013", "exception": "concurrent_other", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 227.49, "injected": [{"event": "other_clerk_edits_unrelated", "phone_home": "555-0113", "touched_ids": ["2"]}], "item_id": "ref-00013", "load_1m": 7.5, "load_1m_end": 8.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "fault_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 13, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792870745.964, "type": "item_result", "wall_s": 227.2} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "25"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00014", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "rule": "enter_by_hand", "seq": 14, "surface": "openadapt-flow explain / approve / resume", "t": 1792870974.072, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00014", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00014", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 228.3, "injected": [], "item_id": "ref-00014", "load_1m": 8.0, "load_1m_end": 7.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 14, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792870974.359, "type": "item_result", "wall_s": 228.01} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "26"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00015", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "rule": "enter_by_hand", "seq": 15, "surface": "openadapt-flow explain / approve / resume", "t": 1792871202.111, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00015", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00015", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 227.96, "injected": [], "item_id": "ref-00015", "load_1m": 7.6, "load_1m_end": 7.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 15, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792871202.418, "type": "item_result", "wall_s": 227.65} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "27"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00016", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "rule": "enter_by_hand", "seq": 16, "surface": "openadapt-flow explain / approve / resume", "t": 1792871430.353, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00016", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00016", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 228.14, "injected": [], "item_id": "ref-00016", "load_1m": 7.0, "load_1m_end": 76.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 16, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792871430.655, "type": "item_result", "wall_s": 227.84} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "28"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00017", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "rule": "enter_by_hand", "seq": 17, "surface": "openadapt-flow explain / approve / resume", "t": 1792871658.092, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00017", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00017", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 227.65, "injected": [], "item_id": "ref-00017", "load_1m": 76.1, "load_1m_end": 10.2, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 17, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792871658.405, "type": "item_result", "wall_s": 227.33} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "29"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00018", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "rule": "enter_by_hand", "seq": 18, "surface": "openadapt-flow explain / approve / resume", "t": 1792871877.929, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00018", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00018", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 219.74, "injected": [], "item_id": "ref-00018", "load_1m": 10.2, "load_1m_end": 6.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 18, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792871878.243, "type": "item_result", "wall_s": 219.43} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "30"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00019", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "rule": "enter_by_hand", "seq": 19, "surface": "openadapt-flow explain / approve / resume", "t": 1792872106.221, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00019", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00019", "exception": "malformed_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 228.17, "injected": [], "item_id": "ref-00019", "load_1m": 6.1, "load_1m_end": 11.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "data_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 19, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792872106.512, "type": "item_result", "wall_s": 227.88} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "31"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00020", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "rule": "enter_by_hand", "seq": 20, "surface": "openadapt-flow explain / approve / resume", "t": 1792872325.498, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00020", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00020", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 219.22, "injected": [], "item_id": "ref-00020", "load_1m": 11.0, "load_1m_end": 6.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 20, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792872325.829, "type": "item_result", "wall_s": 218.89} +{"action": "skip", "arm": "openadapt-production", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00021", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "rule": "skip_no_chart_wanted", "seq": 21, "surface": "openadapt-flow explain / approve / resume", "t": 1792872552.695, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00021", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00021", "exception": "dup_resend", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 227.17, "injected": [], "item_id": "ref-00021", "load_1m": 6.8, "load_1m_end": 7.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 21, "shares_with_existing": {"DOB": 1, "fname": 3, "lname": 1}, "t": 1792872553.098, "type": "item_result", "wall_s": 226.77} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "32"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00022", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "rule": "enter_by_hand", "seq": 22, "surface": "openadapt-flow explain / approve / resume", "t": 1792872782.701, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00022", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00022", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 229.82, "injected": [], "item_id": "ref-00022", "load_1m": 7.0, "load_1m_end": 8.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 22, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792872783.009, "type": "item_result", "wall_s": 229.51} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "33"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00023", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "rule": "enter_by_hand", "seq": 23, "surface": "openadapt-flow explain / approve / resume", "t": 1792873001.964, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00023", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00023", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 219.18, "injected": [], "item_id": "ref-00023", "load_1m": 8.4, "load_1m_end": 6.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 23, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792873002.289, "type": "item_result", "wall_s": 218.86} +{"action": "skip", "arm": "openadapt-production", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00024", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "rule": "skip_no_chart_wanted", "seq": 24, "surface": "openadapt-flow explain / approve / resume", "t": 1792873229.322, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00024", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00024", "exception": "ambiguous_same_person", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 227.34, "injected": [], "item_id": "ref-00024", "load_1m": 6.9, "load_1m_end": 9.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 24, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 1}, "t": 1792873229.724, "type": "item_result", "wall_s": 226.94} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "34"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00025", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "rule": "enter_by_hand", "seq": 25, "surface": "openadapt-flow explain / approve / resume", "t": 1792873448.919, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "switch_on", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item is waiting for a person to approve it before saving (switch_on: switched_off). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00025", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00025", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 219.39, "injected": [], "item_id": "ref-00025", "load_1m": 9.8, "load_1m_end": 10.2, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 25, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792873449.21, "type": "item_result", "wall_s": 219.1} +{"applied": {"kind": "relabel_save", "labels": {"Confirm Create New Patient": "Save new patient"}}, "arm": "openadapt-production", "day": 4, "first_seq": 26, "kind": "relabel_save", "t": 1792873449.389, "type": "drift_applied"} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "35"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "stop_before_saving", "decision_reason": "right_record", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00026", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's \u2014 expected '<structured identity template>', observed '{\"form_path\":\"/in", "rule": "enter_by_hand", "seq": 26, "surface": "openadapt-flow explain / approve / resume", "t": 1792873558.96, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "stop_before_saving", "decision_reason": "right_record", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's \u2014 expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_c", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "stop_before_saving", "decision_reason": "right_record", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's \u2014 expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_c", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00026", "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00026", "exception": "malformed_case", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 109.79, "injected": [], "item_id": "ref-00026", "load_1m": 10.2, "load_1m_end": 8.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 26, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792873559.28, "type": "item_result", "wall_s": 109.47} +{"action": "do_by_hand", "arm": "openadapt-production", "by_hand": {"chart_id": "36"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00027", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "rule": "enter_by_hand", "seq": 27, "surface": "openadapt-flow explain / approve / resume", "t": 1792873787.171, "type": "operator"} +{"arm": "openadapt-production", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: text_present 'No matches were found.' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00027", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00027", "exception": "common_surname", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 228.1, "injected": [], "item_id": "ref-00027", "load_1m": 8.4, "load_1m_end": 6.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 27, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 1}, "t": 1792873787.477, "type": "item_result", "wall_s": 227.8} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/results.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/results.json new file mode 100644 index 000000000..41f36b70d --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/results.json @@ -0,0 +1,305 @@ +{ + "arms": { + "openadapt-production": { + "bands": { + "x0.5": { + "maintenance_min": 0.0, + "manual_only_hours": 0.675, + "manual_only_items_per_hour": 40.0, + "operator_hours": 1.067, + "operator_hours_with_cleanup": 1.067, + "per_item_operator_min": 2.278, + "per_item_operator_min_total": 61.5, + "setup_min": 2.5, + "verified_completed_per_operator_hour": 3.75, + "verified_completed_per_operator_hour_with_cleanup": 3.75, + "work_removed_fraction": -0.58 + }, + "x1": { + "maintenance_min": 0.0, + "manual_only_hours": 1.35, + "manual_only_items_per_hour": 20.0, + "operator_hours": 2.133, + "operator_hours_with_cleanup": 2.133, + "per_item_operator_min": 4.556, + "per_item_operator_min_total": 123.0, + "setup_min": 5.0, + "verified_completed_per_operator_hour": 1.88, + "verified_completed_per_operator_hour_with_cleanup": 1.88, + "work_removed_fraction": -0.58 + }, + "x2": { + "maintenance_min": 0.0, + "manual_only_hours": 2.7, + "manual_only_items_per_hour": 10.0, + "operator_hours": 4.267, + "operator_hours_with_cleanup": 4.267, + "per_item_operator_min": 9.111, + "per_item_operator_min_total": 246.0, + "setup_min": 10.0, + "verified_completed_per_operator_hour": 0.94, + "verified_completed_per_operator_hour_with_cleanup": 0.94, + "work_removed_fraction": -0.58 + } + }, + "by_exception": { + "ambiguous_same_person": { + "right_stop": 1 + }, + "clean": { + "false_stop": 17 + }, + "common_surname": { + "false_stop": 1 + }, + "concurrent_other": { + "fault_stop": 1 + }, + "concurrent_same": { + "right_stop": 1 + }, + "dup_resend": { + "right_stop": 1 + }, + "malformed_case": { + "data_stop": 1 + }, + "malformed_dob": { + "data_stop": 2 + }, + "missing_required": { + "right_stop": 1 + }, + "shared_dob": { + "false_stop": 1 + } + }, + "complete": false, + "cost_model": "lifecycle-cost/2026-10-20.1", + "describe": { + "api_tier": "where admissible (refused on the OpenEMR referral by its own proposal; the GUI save runs)", + "approval": "problems_only (local stand-in for Cloud's switch status)", + "authorization": "governed run gate on the certified, encrypted bundle", + "checkpoint_store": "encrypted", + "configuration": "benchmark/lifecycle_proof (proof-15)", + "duplicate_check": "recorded: text_present 'No matches were found.'", + "durable": true, + "model_calls": "none on any path", + "pin": "admitted digest; repaired versions only through signed lineage", + "policy": "clinical-write", + "profile": "regulated", + "qualification_trials": 1, + "readback": "pipelined, window 1; the harness waits for each check", + "recovery": "none", + "repair": "self-repair on a halt before any effect (rule-based agent, no model)" + }, + "done_by_hand": 23, + "false_stop_rate": { + "ci95": [ + 0.8318, + 1.0 + ], + "definition": "stops with nothing written on items whose data was right and that carried no item-level fault, over all such items", + "k": 19, + "n": 19, + "rate": 1.0, + "with_ui_change_in_force": 1 + }, + "final_correct": 27, + "headline": { + "bands": { + "x0.5": { + "after_app_change": [ + { + "first_seq": 26, + "first_verified_seq": null, + "items_false_stopped": 1, + "items_in_window": 2, + "kind": "relabel_save", + "maintenance_operator_min": 2.5, + "seconds_to_running_again": null + } + ], + "operator_min_per_stop": 2.28, + "operator_min_run": 61.5, + "operator_min_setup": 2.5, + "verified_per_operator_minute": 0.065, + "verified_per_operator_minute_with_setup": 0.062 + }, + "x1": { + "after_app_change": [ + { + "first_seq": 26, + "first_verified_seq": null, + "items_false_stopped": 1, + "items_in_window": 2, + "kind": "relabel_save", + "maintenance_operator_min": 5.0, + "seconds_to_running_again": null + } + ], + "operator_min_per_stop": 4.56, + "operator_min_run": 123.0, + "operator_min_setup": 5.0, + "verified_per_operator_minute": 0.033, + "verified_per_operator_minute_with_setup": 0.031 + }, + "x2": { + "after_app_change": [ + { + "first_seq": 26, + "first_verified_seq": null, + "items_false_stopped": 1, + "items_in_window": 2, + "kind": "relabel_save", + "maintenance_operator_min": 10.0, + "seconds_to_running_again": null + } + ], + "operator_min_per_stop": 9.11, + "operator_min_run": 246.0, + "operator_min_setup": 10.0, + "verified_per_operator_minute": 0.016, + "verified_per_operator_minute_with_setup": 0.016 + } + }, + "definition": "verified completed items (oracle-correct, not done by hand) per operator-minute; operator minutes are every charged approval, stop, reconciliation, resume, repair review and item done by hand, plus maintenance; *_with_setup also charges admission", + "duplicate_rule_stops": { + "by_exception": { + "ambiguous_same_person": 1, + "clean": 8, + "common_surname": 1, + "concurrent_other": 1, + "concurrent_same": 1, + "dup_resend": 1, + "malformed_dob": 1, + "shared_dob": 1 + }, + "by_outcome": { + "data_stop": 1, + "false_stop": 10, + "fault_stop": 1, + "right_stop": 3 + }, + "by_shared_field": { + "DOB": 1, + "first name only": 9, + "lname": 3, + "lname+DOB": 1, + "none at start": 1 + }, + "items": 15, + "note": "fields the item shared with a chart that existed when it started; charts created during the run by earlier items count too" + }, + "false_stops_per_100_items": 70.37, + "items": 27, + "manual_entry_min": 3.0, + "stops_by_cause": { + "data_stop": { + "duplicate check listed a chart": 1, + "identity check failed (relabeled control)": 1, + "problems_only switch off; stopped unasked": 1 + }, + "false_stop": { + "duplicate check listed a chart": 10, + "problems_only switch off; stopped unasked": 9 + }, + "fault_stop": { + "duplicate check listed a chart": 1 + }, + "right_stop": { + "duplicate check listed a chart": 3, + "other: REJECTED_POLICY HALTED / REJECTED_POLICY": 1 + } + }, + "stops_per_100_items": 100.0, + "verified_completed": 4 + }, + "items": 27, + "model": { + "calls": 0, + "cost_usd": 0.0 + }, + "operator_actions": { + "do_by_hand": 23, + "skip": 4 + }, + "operator_requests": { + "stop": 27 + }, + "outcomes": { + "data_stop": 3, + "false_stop": 19, + "fault_stop": 1, + "right_stop": 4 + }, + "per_drift": { + "relabel_save": { + "first_seq": 26, + "items": 2, + "outcomes": { + "data_stop": 1, + "false_stop": 1 + }, + "repair_reviews": 0 + } + }, + "silent_wrong_rate": { + "ci95": null, + "definition": "items the arm claimed done that the independent oracle judged wrong, over all items the arm claimed done", + "k": 0, + "n": 0, + "of_all_items": 0.0, + "rate": null + }, + "stops": 27, + "verified_completed": 4, + "wall": { + "load_1m_max": 76.1, + "load_1m_median": 7.0, + "median_item_s": 226.94, + "total_s": 5743.1 + } + } + }, + "run": { + "app": { + "api_url": "https://127.0.0.1:9400", + "app": "openemr", + "baseline_sha256": "015bef02fb30530e2ed64c17e8035623a39801a9008f2df307eaf53e420e98ba", + "images": { + "mariadb": "mariadb:11.8@sha256:efb4959ef2c835cd735dbc388eb9ad6aab0c78dd64febcd51bc17481111890c4", + "openemr": "openemr/openemr:8.0.0.3@sha256:0aa4d3d52b22fa69986c087e7c99e9854d8dfd70440634eb7c8af0e08f19f3ab" + }, + "project": "openadapt-openemr-compose", + "ui_url": "http://127.0.0.1:9401", + "version": "8.0.0.3" + }, + "argv": null, + "cost_model": { + "admit_s": 300.0, + "approval_s": 20.0, + "calibration": "No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds).", + "compile_review_s": 600.0, + "interrupt_s": 30.0, + "manual_entry_s": 180.0, + "question_s": 60.0, + "reconcile_s": 120.0, + "repair_review_s": 120.0, + "stop_s": 90.0, + "teach_prep_s": 300.0, + "version": "lifecycle-cost/2026-10-20.1" + }, + "cpus": 12, + "days": 10, + "engine_commit": "26947f9683d6b08809f9bea03c004c326092ef89", + "host": "MacBook-Pro-5", + "items": 55, + "platform": "macOS-15.7.3-arm64-arm-64bit", + "protocol": "lifecycle/2026-10-20.1", + "seed": 7, + "stop_after": null, + "type": "run_start", + "workload": "lifecycle-workload/2026-10-24.1" + } +} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/stops.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/stops.jsonl new file mode 100644 index 000000000..3cbf72b8d --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/stops.jsonl @@ -0,0 +1,27 @@ +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00001", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00001", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 1, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00002", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00002", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 2, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00003", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00003", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 3, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00004", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00004", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 4, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00005", "exception": "shared_dob", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00005", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 5, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00006", "exception": "malformed_dob", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00006", "oracle": "absent", "outcome": "data_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 6, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00007", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00007", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 7, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00008", "exception": "missing_required", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00008", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 8, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00009", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00009", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 9, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00010", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00010", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 10, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00011", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00011", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 11, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00012", "exception": "concurrent_same", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00012", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 12, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00013", "exception": "concurrent_other", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00013", "oracle": "absent", "outcome": "fault_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 13, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00014", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00014", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 14, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00015", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00015", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 15, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00016", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00016", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 16, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00017", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00017", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 17, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00018", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00018", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 18, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00019", "exception": "malformed_dob", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00019", "oracle": "absent", "outcome": "data_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 19, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00020", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00020", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 20, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00021", "exception": "dup_resend", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00021", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 21, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00022", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00022", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 22, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00023", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00023", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 23, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00024", "exception": "ambiguous_same_person", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00024", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 24, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": [], "evidence": "items/ref-00025", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00025", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 25, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production", "drift_active": ["relabel_save"], "evidence": "items/ref-00026", "exception": "malformed_case", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00026", "oracle": "absent", "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 26, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production", "drift_active": ["relabel_save"], "evidence": "items/ref-00027", "exception": "common_surname", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00027", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 27, "transaction_outcome": null} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/switch/log-1792868032.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/switch/log-1792868032.jsonl new file mode 100644 index 000000000..ecaec3a57 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/switch/log-1792868032.jsonl @@ -0,0 +1,54 @@ +{"at":"2026-10-24T18:53:52.466771+00:00","counts_toward_problems":null,"decision":null,"kind":"opened","prev_sha256":"sha256:0000000000000000000000000000000000000000000000000000000000000000","reason":null,"run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":1,"sha256":"sha256:61db610d8196fdcdb4ea31a5590448ad09fa8cc0d6334bed177ebc088af788d1","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":"sha256:0686d6f6312fa6211123ce29b2bdaf0e9e16dfbb62002ea6730818c6309b636b"} +{"at":"2026-10-24T18:55:52.714296+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:61db610d8196fdcdb4ea31a5590448ad09fa8cc0d6334bed177ebc088af788d1","reason":"halted_before_effect","run_ref":"802ef2f15770025049107ddf7c6491b274779b9031ca343ff96a02b13b36ed22","schema_version":"openadapt.approval-mode-log-event/v1","seq":2,"sha256":"sha256:b1b38c86c41c9a76ff4be5c9bc6271b2f936d0cfbcb7ddc3ed177fd7d0074382","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T18:57:50.597804+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:b1b38c86c41c9a76ff4be5c9bc6271b2f936d0cfbcb7ddc3ed177fd7d0074382","reason":"halted_before_effect","run_ref":"3d18623e1c6f419261f9f3850cc47e4ed02c540bd3a96439de8f682c9cc5b4b8","schema_version":"openadapt.approval-mode-log-event/v1","seq":3,"sha256":"sha256:4349674b5a9623390989bdfdd05b598480fb43a6ae77104d6c9c9a804881fee7","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T18:59:49.518059+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:4349674b5a9623390989bdfdd05b598480fb43a6ae77104d6c9c9a804881fee7","reason":"halted_before_effect","run_ref":"edbe7a211d4d85081604822ff42d26508e013f90b92f69faa1759ee3d14d798d","schema_version":"openadapt.approval-mode-log-event/v1","seq":4,"sha256":"sha256:ef51e51c348da4c52ec1b06b31ada9b79b4b0c1e22407f7eb677ffad3bac8273","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T18:59:49.518558+00:00","counts_toward_problems":null,"decision":null,"kind":"switched_off","prev_sha256":"sha256:ef51e51c348da4c52ec1b06b31ada9b79b4b0c1e22407f7eb677ffad3bac8273","reason":"too_many_problems","run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":5,"sha256":"sha256:970926452a90b05317e427837d616d3fc92dcfec325d5743a328c85de7b00c3a","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:01:45.870509+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:970926452a90b05317e427837d616d3fc92dcfec325d5743a328c85de7b00c3a","reason":"halted_before_effect","run_ref":"a77f3a2f7c9c424c4ecd82901b61a5b5cf91f8c63c679277a5731703c930300f","schema_version":"openadapt.approval-mode-log-event/v1","seq":6,"sha256":"sha256:150c3d7857f052f5edf9cbc1b7cbe7ef5261fc57055e9a4f01b0dbcef0c510cb","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:03:35.794641+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:150c3d7857f052f5edf9cbc1b7cbe7ef5261fc57055e9a4f01b0dbcef0c510cb","reason":"switch_on","run_ref":"80fb3c47eb948db76e5dba0edb29ef86b06f7083809daad31398d2ccf7231c4e","schema_version":"openadapt.approval-mode-log-event/v1","seq":7,"sha256":"sha256:8278ee2df03bf1c8910508f3e0c1240d67a0af18adcf4c50b3c60223081af7fe","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:05:25.469420+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:8278ee2df03bf1c8910508f3e0c1240d67a0af18adcf4c50b3c60223081af7fe","reason":"switch_on","run_ref":"ac304228ffa33b28d80c367600e587d776aba20ddca786d591902792e1123f0b","schema_version":"openadapt.approval-mode-log-event/v1","seq":8,"sha256":"sha256:4f05a1c5dcde3039fcc589cd731dfb8ddcbeaaf7626407b7ee8ab0f9e4957e52","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:07:15.071310+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:4f05a1c5dcde3039fcc589cd731dfb8ddcbeaaf7626407b7ee8ab0f9e4957e52","reason":"switch_on","run_ref":"5eaa73f12d3c7aa554c187448e3d649c3151e2ac46cd040cb4a022162a836951","schema_version":"openadapt.approval-mode-log-event/v1","seq":9,"sha256":"sha256:07e6ed3d12cedd0e7df600b2646c94f7711c30601dcbb342032e220d95a4077e","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:09:04.827047+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:07e6ed3d12cedd0e7df600b2646c94f7711c30601dcbb342032e220d95a4077e","reason":"switch_on","run_ref":"fa6370d0783068087d84dde8d29ee4a6335bc419e383c16cde0d5698b07b2d24","schema_version":"openadapt.approval-mode-log-event/v1","seq":10,"sha256":"sha256:721c2b1ae4012d0c2f50f8b49f060c15fb4d06bfcaccf95bf6e2b0976bfb3a89","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:11:00.305274+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:721c2b1ae4012d0c2f50f8b49f060c15fb4d06bfcaccf95bf6e2b0976bfb3a89","reason":"halted_before_effect","run_ref":"a01f0732e89600098822fd4897c0eae9ca201a6f35fd42d252c4e6584d908808","schema_version":"openadapt.approval-mode-log-event/v1","seq":11,"sha256":"sha256:acf0170bb27bbe93cb5a1777f5af8897a8c094849b3f689aca2d36a04e41d4d3","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:12:54.541593+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:acf0170bb27bbe93cb5a1777f5af8897a8c094849b3f689aca2d36a04e41d4d3","reason":"halted_before_effect","run_ref":"fed17c7510475e05d6ccd79b58579e6735cde09994412c32579e7d17f12e29fe","schema_version":"openadapt.approval-mode-log-event/v1","seq":12,"sha256":"sha256:fffc702da2138708128c567a9dabe996111ae9305c7720e6f67a59885052c368","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:14:44.568353+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:fffc702da2138708128c567a9dabe996111ae9305c7720e6f67a59885052c368","reason":"switch_on","run_ref":"d1a6fdecec6ae039c3fbb16135aa9fa563070827e639811c57aea1496f3021dc","schema_version":"openadapt.approval-mode-log-event/v1","seq":13,"sha256":"sha256:5a244df138df8e8089bcb6123fed34da8e59bf51e3146193ac052f74e1af0e91","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:16:34.303162+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:5a244df138df8e8089bcb6123fed34da8e59bf51e3146193ac052f74e1af0e91","reason":"switch_on","run_ref":"f81c66e2bb1acd3f4d4feda80678a33e49cc17282d6219779cf3682c647cc64d","schema_version":"openadapt.approval-mode-log-event/v1","seq":14,"sha256":"sha256:e998cb5b8572546016a0933309f1441088c5b9ac9d43de028da6b0b3d28ecda4","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:18:24.120449+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:e998cb5b8572546016a0933309f1441088c5b9ac9d43de028da6b0b3d28ecda4","reason":"switch_on","run_ref":"670a0cb849e1fd229735343aeb44fcda3c1067721991f2f3b311d1c20412f2fa","schema_version":"openadapt.approval-mode-log-event/v1","seq":15,"sha256":"sha256:90b5ccc7d071e07c333665a1d0cf0d3ae8007464f7a2646106ecff041f750485","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:20:13.921904+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:90b5ccc7d071e07c333665a1d0cf0d3ae8007464f7a2646106ecff041f750485","reason":"switch_on","run_ref":"2a07d0140cde3d5418737708feb746fead0a26608bea9426c76261246426be04","schema_version":"openadapt.approval-mode-log-event/v1","seq":16,"sha256":"sha256:31effc958142f453eff04695694ceafc3b24331d7416ef30b0d89598a68ff6a8","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:20:20.099023+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:31effc958142f453eff04695694ceafc3b24331d7416ef30b0d89598a68ff6a8","reason":"inputs_supplied","run_ref":"eccbc04f67eb0d5b08a3378e12e8d3c6b9876698ced8bf0ccd82225961a0983f","schema_version":"openadapt.approval-mode-log-event/v1","seq":17,"sha256":"sha256:15346f557813708c6d04a4b86daaef6a05b8335a426cd0ea7ac45710d4ab7a65","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:22:09.215478+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:15346f557813708c6d04a4b86daaef6a05b8335a426cd0ea7ac45710d4ab7a65","reason":"switch_on","run_ref":"5e65737392d2db1f84bdbc9371bb8fe77fdec315dbcc5fc8eaa14b567815b511","schema_version":"openadapt.approval-mode-log-event/v1","seq":18,"sha256":"sha256:f72fbdba0e39f6e91d4815b94da087c44fb4e6ccefe2c1f83a8e982df3091d1c","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:23:58.823684+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:f72fbdba0e39f6e91d4815b94da087c44fb4e6ccefe2c1f83a8e982df3091d1c","reason":"switch_on","run_ref":"98bca3c1788bf1a0af465b05de4dc91857f60393195af66c78674906dcd1f376","schema_version":"openadapt.approval-mode-log-event/v1","seq":19,"sha256":"sha256:03e26fb5067376def96c1499248e90179f2fe34982fc32d4f4f22c78986be8dc","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:25:48.637668+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:03e26fb5067376def96c1499248e90179f2fe34982fc32d4f4f22c78986be8dc","reason":"switch_on","run_ref":"5bf404721ba12153d724befc66691857ea0029fe26532bc4eb8626b0ef6d72fe","schema_version":"openadapt.approval-mode-log-event/v1","seq":20,"sha256":"sha256:c33d0199515c5d3bdde2072acf146c98288eeee035fd5e2546c156d7f17c4d51","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:27:38.179107+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:c33d0199515c5d3bdde2072acf146c98288eeee035fd5e2546c156d7f17c4d51","reason":"switch_on","run_ref":"374fc05700cb93417acc8ff0d4c45fd7b2f4cada9cdd9d4f27ef1c04b96ccf1e","schema_version":"openadapt.approval-mode-log-event/v1","seq":21,"sha256":"sha256:d1cd3d84ac7ff28398a0910352170e75e502df9a5109c3554d8a421c3a0c13c3","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:29:33.965438+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:d1cd3d84ac7ff28398a0910352170e75e502df9a5109c3554d8a421c3a0c13c3","reason":"halted_before_effect","run_ref":"afb38b8e713cba500f0183002113eed4e003d680811ad59ebd8b9a646922227e","schema_version":"openadapt.approval-mode-log-event/v1","seq":22,"sha256":"sha256:6fb308960529d3159083b09612ce8595df5e788364f89617107bb7be75eb1f87","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:31:28.771702+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:6fb308960529d3159083b09612ce8595df5e788364f89617107bb7be75eb1f87","reason":"halted_before_effect","run_ref":"42811680e44f4e76849250f90e421b2f7f6afb6a96e516e4402fedfba238d6b1","schema_version":"openadapt.approval-mode-log-event/v1","seq":23,"sha256":"sha256:23b9e95e99fcd041a0de13fb9d39b9ef1c5f8b0d40a2c0634f9d258504e1998a","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:33:23.807265+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:23b9e95e99fcd041a0de13fb9d39b9ef1c5f8b0d40a2c0634f9d258504e1998a","reason":"halted_before_effect","run_ref":"d782392ebf8df90f8733b675f3356b6e2159f3cd1416044f38c71781a8e77c34","schema_version":"openadapt.approval-mode-log-event/v1","seq":24,"sha256":"sha256:75c93bf4ebf709b573f25e552b98a2acff7829ccb89451ce1cd325d3ab789e35","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:35:17.837341+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:75c93bf4ebf709b573f25e552b98a2acff7829ccb89451ce1cd325d3ab789e35","reason":"halted_before_effect","run_ref":"b5b48eb710549849783e888d934b0e0a6b0bd64157254bef9648e576836f5373","schema_version":"openadapt.approval-mode-log-event/v1","seq":25,"sha256":"sha256:b9d69ec8ef236262ec86f819abf6a7960941557088411a3d1fa294ac298eebf0","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:37:11.041373+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:b9d69ec8ef236262ec86f819abf6a7960941557088411a3d1fa294ac298eebf0","reason":"halted_before_effect","run_ref":"4ecd559a3a809672fd705fac17ba293e8a350879aface7829fc907ff56aaa0c0","schema_version":"openadapt.approval-mode-log-event/v1","seq":26,"sha256":"sha256:f19ba209af8c2568596c20fa9f41e869eb749e517f1eb3ad36fb82629d87c906","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:39:04.870637+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:f19ba209af8c2568596c20fa9f41e869eb749e517f1eb3ad36fb82629d87c906","reason":"halted_before_effect","run_ref":"834336720ba742023d2482c9d536924a3e7e2da31c892236c177e944bb17e190","schema_version":"openadapt.approval-mode-log-event/v1","seq":27,"sha256":"sha256:d1004d61ed11a764f805ed12c67f7de9506e320cbbf352f686dd9c68300f8843","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:40:59.006217+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:d1004d61ed11a764f805ed12c67f7de9506e320cbbf352f686dd9c68300f8843","reason":"halted_before_effect","run_ref":"bc7fbbdbe24145611546f57ec8960b81ea325789eb67a34cbc96510c963f180d","schema_version":"openadapt.approval-mode-log-event/v1","seq":28,"sha256":"sha256:fa2411d5d465b473d395f98d1173ee7e4deef2017446512475cbfc81031723a0","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:42:53.219739+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:fa2411d5d465b473d395f98d1173ee7e4deef2017446512475cbfc81031723a0","reason":"halted_before_effect","run_ref":"055a49394e098b7e41ffc674207b2f13c03fcec402ecaff5c3f024a39043bf7e","schema_version":"openadapt.approval-mode-log-event/v1","seq":29,"sha256":"sha256:afa0e0bfca97909fbd50032dc6d799b8a335fa84f606d453982ec0a87a837038","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:44:47.380360+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:afa0e0bfca97909fbd50032dc6d799b8a335fa84f606d453982ec0a87a837038","reason":"halted_before_effect","run_ref":"c2b8447b1d393a5b245bd82eb7c6a36bd27a4932d7250c8d4cbe56ea3ddb3e38","schema_version":"openadapt.approval-mode-log-event/v1","seq":30,"sha256":"sha256:0b854d83f4d95c548ba83298b6bc8da1b4c25d4493c2f0445cb16b199cc86c86","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:46:41.277133+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:0b854d83f4d95c548ba83298b6bc8da1b4c25d4493c2f0445cb16b199cc86c86","reason":"halted_before_effect","run_ref":"7dc24eb4ea7e88f1084d0f4fc1e8be14d92f66b34d80011399bf8bfbb4b6933c","schema_version":"openadapt.approval-mode-log-event/v1","seq":31,"sha256":"sha256:4e78c95103955eb53d1157ca51bf3e29c692f937655ab3056ec09146888e009f","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:48:34.937516+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:4e78c95103955eb53d1157ca51bf3e29c692f937655ab3056ec09146888e009f","reason":"halted_before_effect","run_ref":"55f53680d815a890d6a406f648d1f6b96e300a41bd88923c6be5d338f283338f","schema_version":"openadapt.approval-mode-log-event/v1","seq":32,"sha256":"sha256:10e633453b6b6f2a8b30e2f1ab94cb60248ce0a6147ff5bd7c5c078195f6f05d","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:50:29.514875+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:10e633453b6b6f2a8b30e2f1ab94cb60248ce0a6147ff5bd7c5c078195f6f05d","reason":"halted_before_effect","run_ref":"d78bdd558456ad4aec8a92d8e7c58cf29c68fe6f5bf61d1d579e633bfcaa4cec","schema_version":"openadapt.approval-mode-log-event/v1","seq":33,"sha256":"sha256:0a097a427822eb1b74a9f09e6021f73963dc61a65c861ffa7c51d7d5fcc999d8","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:52:23.194130+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:0a097a427822eb1b74a9f09e6021f73963dc61a65c861ffa7c51d7d5fcc999d8","reason":"halted_before_effect","run_ref":"1d3a21a7e9af4b8d72d28b5dc5a177f46e001e1f526470d825167734dce3fa37","schema_version":"openadapt.approval-mode-log-event/v1","seq":34,"sha256":"sha256:ecc7abbb6f8ebe9cb6f1c3a113583e026b0c7dcfbfed03c89ff693387c981aaa","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:54:17.241606+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:ecc7abbb6f8ebe9cb6f1c3a113583e026b0c7dcfbfed03c89ff693387c981aaa","reason":"halted_before_effect","run_ref":"f4f2717c7e1aa6367188c31531702cb4151d063b0b11f14dbed00ecdd1a62c3e","schema_version":"openadapt.approval-mode-log-event/v1","seq":35,"sha256":"sha256:54ac0305604151ebf55b1f795f1f98a9e032bf50d37029f6eed07ed6131dde0d","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:56:07.111069+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:54ac0305604151ebf55b1f795f1f98a9e032bf50d37029f6eed07ed6131dde0d","reason":"switch_on","run_ref":"0aae1b6e720c5e1400bff0dcc8e6aa275589a0ee95f3fd5f5deea615709df224","schema_version":"openadapt.approval-mode-log-event/v1","seq":36,"sha256":"sha256:33c283fe9f8d885f835fe0361475753b3aede18dfa59c5ecc8e0f46e6b1efa7c","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:57:57.054938+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:33c283fe9f8d885f835fe0361475753b3aede18dfa59c5ecc8e0f46e6b1efa7c","reason":"switch_on","run_ref":"0290cb8fe666da634cc03a135b57ac79e9c5c19ae2703928124f19e1fcc58501","schema_version":"openadapt.approval-mode-log-event/v1","seq":37,"sha256":"sha256:eca4b6e0be4cfa9d9f75ca545811378dbce080d0a0c11de917eb5a3779bdd717","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T19:59:50.965544+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:eca4b6e0be4cfa9d9f75ca545811378dbce080d0a0c11de917eb5a3779bdd717","reason":"halted_before_effect","run_ref":"31cfeb112ffae54597498ac90a1a3ffca0376d5439003ea28d12e8a491ef93e4","schema_version":"openadapt.approval-mode-log-event/v1","seq":38,"sha256":"sha256:866bf63b92a3dc1cf492fdac6c38bbef533d7c0a1b5e0329ed54e1fc3d60d324","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:01:45.382794+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:866bf63b92a3dc1cf492fdac6c38bbef533d7c0a1b5e0329ed54e1fc3d60d324","reason":"halted_before_effect","run_ref":"46c73da3472448ae6d3398c5ec7eeb83498495586a3ff6b1ef5931cc233ff979","schema_version":"openadapt.approval-mode-log-event/v1","seq":39,"sha256":"sha256:3efd5a5f2d78c8a51387e9c31894efd7e82594187c1575e4aae573d6846e88f8","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:03:35.142780+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:3efd5a5f2d78c8a51387e9c31894efd7e82594187c1575e4aae573d6846e88f8","reason":"switch_on","run_ref":"6321ebac54de807abe04b2d55e5d3bc4363fa3a600e20ac9ca50e7d085918788","schema_version":"openadapt.approval-mode-log-event/v1","seq":40,"sha256":"sha256:98b71f6787908279f14732741cbf75b2285968276edb9c1b3f12ac4485f8592a","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:05:24.683117+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:98b71f6787908279f14732741cbf75b2285968276edb9c1b3f12ac4485f8592a","reason":"switch_on","run_ref":"214ec4d5748c74fc08f0f0e10cba4636c4a3c1a83725461d28555437b222242f","schema_version":"openadapt.approval-mode-log-event/v1","seq":41,"sha256":"sha256:fc569d8fb5dfd7118fec0a9672cca021e1741cbbcdd2db04f90b165be35bbbe6","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:07:18.435840+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:fc569d8fb5dfd7118fec0a9672cca021e1741cbbcdd2db04f90b165be35bbbe6","reason":"halted_before_effect","run_ref":"13c27f0f39491000ab369eda8c06486c7d4e68d1d93048ec250529c921467e91","schema_version":"openadapt.approval-mode-log-event/v1","seq":42,"sha256":"sha256:eabebaaf91eaa8ec51cf031fb22694d0072c3b7af4fbfd8c6a626833d8af6e3d","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:09:12.548203+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:eabebaaf91eaa8ec51cf031fb22694d0072c3b7af4fbfd8c6a626833d8af6e3d","reason":"halted_before_effect","run_ref":"58ffa43bef8642eafb61565b5fff60eee94a088c773072d9af4a3ff3b511f4a8","schema_version":"openadapt.approval-mode-log-event/v1","seq":43,"sha256":"sha256:9d805ce5d79b464db018013118b8a990b23cd6571aa33918991bacfdaab662b2","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:11:07.916161+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:9d805ce5d79b464db018013118b8a990b23cd6571aa33918991bacfdaab662b2","reason":"halted_before_effect","run_ref":"8a630168901b40d680a1f4a4e6130e1e7d406cec350a4777e5e56a2ef3e59bfe","schema_version":"openadapt.approval-mode-log-event/v1","seq":44,"sha256":"sha256:1f399abb5231cbb51bb34a09d0ae233e9ae4c15c7c458f41b87044f7ab390981","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:13:01.889495+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:1f399abb5231cbb51bb34a09d0ae233e9ae4c15c7c458f41b87044f7ab390981","reason":"halted_before_effect","run_ref":"b134ebc4323444e795b375a01ad71d3c99acef461fe84cd8871eef787a7b0cec","schema_version":"openadapt.approval-mode-log-event/v1","seq":45,"sha256":"sha256:aebcb6ca94cd58bb5bff70ba7b0fe5195caf8aa8b58a582df0065e2530d9ecde","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:14:51.793575+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:aebcb6ca94cd58bb5bff70ba7b0fe5195caf8aa8b58a582df0065e2530d9ecde","reason":"switch_on","run_ref":"fd0dfe1bf4d60e706cdd802d225aec9aef3eaa4570532dbcc53104afc1dd264c","schema_version":"openadapt.approval-mode-log-event/v1","seq":46,"sha256":"sha256:35233c7e456a8ae78c0c37ec5306e1c147b2555b504a4562bbf86c558de5d3d0","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:16:41.154019+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:35233c7e456a8ae78c0c37ec5306e1c147b2555b504a4562bbf86c558de5d3d0","reason":"switch_on","run_ref":"5a26f4e10db639547c6a44f631870008cccf7aaf574593f60c0a1a3b1b0f69e8","schema_version":"openadapt.approval-mode-log-event/v1","seq":47,"sha256":"sha256:33920a5381e6c945e72a7db2ad058b3586fac82f953e8c7804b90feffb9de12f","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:18:35.027089+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:33920a5381e6c945e72a7db2ad058b3586fac82f953e8c7804b90feffb9de12f","reason":"halted_before_effect","run_ref":"e7feef2374e3350f13e0dcf82a258c61173e43b78becee095e736d0f29efe80e","schema_version":"openadapt.approval-mode-log-event/v1","seq":48,"sha256":"sha256:f4ced4cecda829aab30bc5e3bb4850977710884d1085222b917d3813ec3024f2","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:20:29.174917+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:f4ced4cecda829aab30bc5e3bb4850977710884d1085222b917d3813ec3024f2","reason":"halted_before_effect","run_ref":"241400e8bf10918df29960da7a00d2015da94795373cf803b59c7e02332b5294","schema_version":"openadapt.approval-mode-log-event/v1","seq":49,"sha256":"sha256:d1229d40656ba9afad7848e1da67bcbfbcd09b9aae3426949ae8ac923447f946","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:22:18.463624+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:d1229d40656ba9afad7848e1da67bcbfbcd09b9aae3426949ae8ac923447f946","reason":"switch_on","run_ref":"414d66c0cc937ae31d0bab5f51214ec0eb5c649de9a4c741aae01755711046cc","schema_version":"openadapt.approval-mode-log-event/v1","seq":50,"sha256":"sha256:62667a677229438417c7ea07a8828b7bb35a8250091e524845c02eeaaf478215","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:24:08.092823+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:62667a677229438417c7ea07a8828b7bb35a8250091e524845c02eeaaf478215","reason":"switch_on","run_ref":"8aadf32d8ab31b02e8659d61ad2ab49880901be46269f8863ad35242f1d8e68f","schema_version":"openadapt.approval-mode-log-event/v1","seq":51,"sha256":"sha256:c7b5ec84393376902e1dd702658eb536a5c6bd216e1d6e3fd82090b9f8d30cf3","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:25:58.149655+00:00","counts_toward_problems":true,"decision":"stop_before_saving","kind":"item_finished","prev_sha256":"sha256:c7b5ec84393376902e1dd702658eb536a5c6bd216e1d6e3fd82090b9f8d30cf3","reason":"right_record","run_ref":"8ba7555c3199b10ac20d3559e9e7304c5f71c4d05c02a489738cca610ce1366b","schema_version":"openadapt.approval-mode-log-event/v1","seq":52,"sha256":"sha256:25902268c96ccce0987c560e7f9f14d782cf701d521632772eb45cc0d578c7b8","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:27:52.317863+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:25902268c96ccce0987c560e7f9f14d782cf701d521632772eb45cc0d578c7b8","reason":"halted_before_effect","run_ref":"a74a76844c7053fc9b0f91375851de138d06928ffb6a116298b528a0aa43635b","schema_version":"openadapt.approval-mode-log-event/v1","seq":53,"sha256":"sha256:61a7b109fe92f0f003f09e3cadf0f7356c1fa7ae633663a75a1a117c46f916c2","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} +{"at":"2026-10-24T20:29:46.343476+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:61a7b109fe92f0f003f09e3cadf0f7356c1fa7ae633663a75a1a117c46f916c2","reason":"halted_before_effect","run_ref":"dfda1f7066626a06c0eae3e6377aa6fc190802d8e8b8afd01b5cb81fb5eda459","schema_version":"openadapt.approval-mode-log-event/v1","seq":54,"sha256":"sha256:d8e3f0c66dde525236abcb4f07ad3e1187e77e3ba8142a04bac758273b9401b7","switch_id":"switch-lifecycle-proof-163eeff429c5-1792868032","switch_record_sha256":null} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/switch/switch.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/switch/switch.json new file mode 100644 index 000000000..4de9574b5 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/switch/switch.json @@ -0,0 +1,42 @@ +{ + "log": "/Users/abrichr/oa/scratch/production-lifecycle/runs/soak-before/arms/openadapt-production/switch/log-1792868032.jsonl", + "record": { + "allowed_interstitials": {}, + "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", + "channel": "desktop_run_it_list_with_header", + "dedicated_user_ref": "hmac-sha256:416c28d5858aff6dc46c5f2e1f00ead21c20ceaa4a64e3d4a1b8330b23f89f7e", + "environment_digest": "sha256:2dc00aa5bd8d4cb971fc11d724d7bae63aaa300f8cfe636298f68d5500913df5", + "org_id": "org-lifecycle-proof", + "profile": "regulated", + "rung_floor": { + "step_000": "structural", + "step_003": "structural", + "step_006": "structural", + "step_009": "structural", + "step_012": "structural", + "step_016": "structural", + "step_018": "structural", + "step_021": "structural", + "step_024": "structural", + "step_027": "structural", + "step_030": "structural", + "step_033": "structural", + "step_036": "structural", + "step_039": "structural", + "step_040": "structural" + }, + "runner_id": "lifecycle-proof-runner-1", + "schema_version": "openadapt.approval-mode-switch/v1", + "switch_id": "switch-lifecycle-proof-163eeff429c5-1792868032", + "thresholds": { + "problems_in_a_row": 3, + "problems_in_window": 5, + "problems_window": 20, + "status_max_age_s": 900 + }, + "verifier_identities": [ + "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2" + ], + "workflow_id": "workflow-openemr-referral" + } +} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/workload.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/workload.jsonl new file mode 100644 index 000000000..88d7f9d32 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/workload.jsonl @@ -0,0 +1,69 @@ +{"days": 10, "exception_mix": {"ambiguous_new_person": 0.02, "ambiguous_same_person": 0.02, "common_surname": 0.06, "concurrent_other": 0.02, "concurrent_same": 0.015, "dup_existing": 0.03, "dup_resend": 0.03, "failed_save": 0.015, "malformed_case": 0.02, "malformed_dob": 0.02, "missing_optional": 0.02, "missing_required": 0.02, "session_expiry": 0.02, "shared_dob": 0.08, "slow_save": 0.02}, "items": 55, "seed": 7, "type": "workload", "version": "lifecycle-workload/2026-10-24.1"} +{"DOB": "1941-02-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ana.fairwick.9000@example.invalid", "fname": "Ana", "lname": "Fairwick", "phone_home": "555-0174", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "276 QUARRY HILL DRIVE", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1939-02-14", "city": "EXAMPLETON", "country_code": "USA", "email": "theo.radley.9001@example.invalid", "fname": "Theo", "lname": "Radley", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "216 QUARRY HILL DRIVE", "title": "Ms.", "type": "existing_chart"} +{"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.oakwood.9002@example.invalid", "fname": "Rosalind", "lname": "Oakwood", "phone_home": "555-0106", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "323 WILLOW BEND ROAD", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1972-07-05", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.birchfield.9003@example.invalid", "fname": "Bram", "lname": "Birchfield", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "278 QUARRY HILL DRIVE", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1959-06-04", "city": "EXAMPLETON", "country_code": "USA", "email": "gideon.galwick.9004@example.invalid", "fname": "Gideon", "lname": "Galwick", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "282 QUARRY HILL DRIVE", "title": "Ms.", "type": "existing_chart"} +{"DOB": "1975-08-19", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenridge.9005@example.invalid", "fname": "Odile", "lname": "Quenridge", "phone_home": "555-0138", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "474 WAY", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1945-10-10", "city": "EXAMPLETON", "country_code": "USA", "email": "yuki.galwick.9006@example.invalid", "fname": "Yuki", "lname": "Galwick", "phone_home": "555-0193", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "270 WAY", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1950-09-14", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jessmere.9007@example.invalid", "fname": "Oren", "lname": "Jessmere", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "86 AVENUE MILL ROAD", "title": "Ms.", "type": "existing_chart"} +{"DOB": "1975-06-23", "city": "EXAMPLETON", "country_code": "USA", "email": "henrik.birchmore.9008@example.invalid", "fname": "Henrik", "lname": "Birchmore", "phone_home": "555-0108", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "181 WAY", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.jesston.9009@example.invalid", "fname": "Arlo", "lname": "Jesston", "phone_home": "555-0136", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "361 BEACON TERRACE STATION", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.jessmere.9011@example.invalid", "fname": "Odile", "lname": "Jessmere", "phone_home": "555-0121", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "471 WAY", "title": "Ms.", "type": "existing_chart"} +{"day": 4, "first_seq": 26, "kind": "relabel_save", "type": "drift_scheduled"} +{"app": "openemr", "day": 0, "item_id": "ref-00001", "params": {"DOB": "1990-09-09", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.jesswood.1@example.invalid", "fname": "Rosalind", "lname": "Jesswood", "phone_home": "555-0187", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "363 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 1, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Rosalind\nLast name: Jesswood\nDate of birth: 1990-09-09\nSex: Female\nStreet: 363 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0187\nEmail: rosalind.jesswood.1@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1990-09-09", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.jesswood.1@example.invalid", "fname": "Rosalind", "lname": "Jesswood", "phone_home": "555-0187", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "363 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00001", "person": {"DOB": "1990-09-09", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.jesswood.1@example.invalid", "fname": "Rosalind", "lname": "Jesswood", "phone_home": "555-0187", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "363 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 1}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00002", "params": {"DOB": "1957-03-08", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.fairwick.2@example.invalid", "fname": "Bram", "lname": "Fairwick", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "339 STREET CEDAR ROW", "title": "Ms."}, "seq": 2, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Bram\nLast name: Fairwick\nDate of birth: 1957-03-08\nSex: Female\nStreet: 339 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0162\nEmail: bram.fairwick.2@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1957-03-08", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.fairwick.2@example.invalid", "fname": "Bram", "lname": "Fairwick", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "339 STREET CEDAR ROW", "title": "Ms."}, "item_id": "ref-00002", "person": {"DOB": "1957-03-08", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.fairwick.2@example.invalid", "fname": "Bram", "lname": "Fairwick", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "339 STREET CEDAR ROW", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 2}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00003", "params": {"DOB": "1935-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "liesel.iversridge.3@example.invalid", "fname": "Liesel", "lname": "Iversridge", "phone_home": "555-0116", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "275 AVENUE MILL ROAD", "title": "Mr."}, "seq": 3, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Liesel\nLast name: Iversridge\nDate of birth: 1935-03-14\nSex: Male\nStreet: 275 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0116\nEmail: liesel.iversridge.3@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1935-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "liesel.iversridge.3@example.invalid", "fname": "Liesel", "lname": "Iversridge", "phone_home": "555-0116", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "275 AVENUE MILL ROAD", "title": "Mr."}, "item_id": "ref-00003", "person": {"DOB": "1935-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "liesel.iversridge.3@example.invalid", "fname": "Liesel", "lname": "Iversridge", "phone_home": "555-0116", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "275 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 3}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00004", "params": {"DOB": "1985-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.birchmere.4@example.invalid", "fname": "Fergus", "lname": "Birchmere", "phone_home": "555-0181", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "203 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 4, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Fergus\nLast name: Birchmere\nDate of birth: 1985-07-13\nSex: Male\nStreet: 203 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0181\nEmail: fergus.birchmere.4@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1985-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.birchmere.4@example.invalid", "fname": "Fergus", "lname": "Birchmere", "phone_home": "555-0181", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "203 QUARRY HILL DRIVE", "title": "Mr."}, "item_id": "ref-00004", "person": {"DOB": "1985-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.birchmere.4@example.invalid", "fname": "Fergus", "lname": "Birchmere", "phone_home": "555-0181", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "203 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 4}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00005", "params": {"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldley.5@example.invalid", "fname": "Rafael", "lname": "Caldley", "phone_home": "555-0100", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "176 WILLOW BEND ROAD", "title": "Ms."}, "seq": 5, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Rafael\nLast name: Caldley\nDate of birth: 1943-01-24\nSex: Female\nStreet: 176 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0100\nEmail: rafael.caldley.5@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "shared_dob", "inject": [], "intended": {"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldley.5@example.invalid", "fname": "Rafael", "lname": "Caldley", "phone_home": "555-0100", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "176 WILLOW BEND ROAD", "title": "Ms."}, "item_id": "ref-00005", "person": {"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldley.5@example.invalid", "fname": "Rafael", "lname": "Caldley", "phone_home": "555-0100", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "176 WILLOW BEND ROAD", "title": "Ms."}, "rationale": "born on the same day as an existing chart; a different person", "seq": 5}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00006", "params": {"DOB": "04/20/1944", "city": "EXAMPLETON", "country_code": "USA", "email": "priya.marwell.6@example.invalid", "fname": "Priya", "lname": "Marwell", "phone_home": "555-0144", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "194 LANTERN COURT FERRY", "title": "Mrs."}, "seq": 6, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Priya\nLast name: Marwell\nDate of birth: 04/20/1944\nSex: Female\nStreet: 194 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0144\nEmail: priya.marwell.6@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "malformed_dob", "inject": [], "intended": {"DOB": "1944-04-20", "city": "EXAMPLETON", "country_code": "USA", "email": "priya.marwell.6@example.invalid", "fname": "Priya", "lname": "Marwell", "phone_home": "555-0144", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "194 LANTERN COURT FERRY", "title": "Mrs."}, "item_id": "ref-00006", "person": {"DOB": "1944-04-20", "city": "EXAMPLETON", "country_code": "USA", "email": "priya.marwell.6@example.invalid", "fname": "Priya", "lname": "Marwell", "phone_home": "555-0144", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "194 LANTERN COURT FERRY", "title": "Mrs."}, "rationale": "date of birth written MM/DD/YYYY; the true date is ISO", "seq": 6}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00007", "params": {"DOB": "1997-08-16", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.ellwick.7@example.invalid", "fname": "Mateo", "lname": "Ellwick", "phone_home": "555-0118", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "249 BEACON TERRACE STATION", "title": "Ms."}, "seq": 7, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Mateo\nLast name: Ellwick\nDate of birth: 1997-08-16\nSex: Female\nStreet: 249 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0118\nEmail: mateo.ellwick.7@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1997-08-16", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.ellwick.7@example.invalid", "fname": "Mateo", "lname": "Ellwick", "phone_home": "555-0118", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "249 BEACON TERRACE STATION", "title": "Ms."}, "item_id": "ref-00007", "person": {"DOB": "1997-08-16", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.ellwick.7@example.invalid", "fname": "Mateo", "lname": "Ellwick", "phone_home": "555-0118", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "249 BEACON TERRACE STATION", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 7}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00008", "params": {"city": "EXAMPLETON", "country_code": "USA", "email": "bo.jessby.8@example.invalid", "fname": "Bo", "lname": "Jessby", "phone_home": "555-0188", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "107 AVENUE MILL ROAD", "title": "Mr."}, "seq": 8, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Bo\nLast name: Jessby\nDate of birth: \nSex: Male\nStreet: 107 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0188\nEmail: bo.jessby.8@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "missing_required", "inject": [], "intended": null, "item_id": "ref-00008", "person": {"DOB": "1955-09-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.jessby.8@example.invalid", "fname": "Bo", "lname": "Jessby", "phone_home": "555-0188", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "107 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "no date of birth; return the referral to the sender", "seq": 8}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00009", "params": {"DOB": "1946-12-28", "city": "EXAMPLETON", "country_code": "USA", "email": "marcus.stanby.9@example.invalid", "fname": "Marcus", "lname": "Stanby", "phone_home": "555-0145", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "135 AVENUE MILL ROAD", "title": "Mr."}, "seq": 9, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Marcus\nLast name: Stanby\nDate of birth: 1946-12-28\nSex: Male\nStreet: 135 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0145\nEmail: marcus.stanby.9@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1946-12-28", "city": "EXAMPLETON", "country_code": "USA", "email": "marcus.stanby.9@example.invalid", "fname": "Marcus", "lname": "Stanby", "phone_home": "555-0145", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "135 AVENUE MILL ROAD", "title": "Mr."}, "item_id": "ref-00009", "person": {"DOB": "1946-12-28", "city": "EXAMPLETON", "country_code": "USA", "email": "marcus.stanby.9@example.invalid", "fname": "Marcus", "lname": "Stanby", "phone_home": "555-0145", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "135 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 9}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00010", "params": {"DOB": "1963-10-26", "city": "EXAMPLETON", "country_code": "USA", "email": "kwame.stanwood.10@example.invalid", "fname": "Kwame", "lname": "Stanwood", "phone_home": "555-0151", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "405 STREET CEDAR ROW", "title": "Mr."}, "seq": 10, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Kwame\nLast name: Stanwood\nDate of birth: 1963-10-26\nSex: Male\nStreet: 405 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0151\nEmail: kwame.stanwood.10@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1963-10-26", "city": "EXAMPLETON", "country_code": "USA", "email": "kwame.stanwood.10@example.invalid", "fname": "Kwame", "lname": "Stanwood", "phone_home": "555-0151", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "405 STREET CEDAR ROW", "title": "Mr."}, "item_id": "ref-00010", "person": {"DOB": "1963-10-26", "city": "EXAMPLETON", "country_code": "USA", "email": "kwame.stanwood.10@example.invalid", "fname": "Kwame", "lname": "Stanwood", "phone_home": "555-0151", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "405 STREET CEDAR ROW", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 10}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00011", "params": {"DOB": "1980-12-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.galmere.11@example.invalid", "fname": "Bram", "lname": "Galmere", "phone_home": "555-0133", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "16 BEACON TERRACE STATION", "title": "Mr."}, "seq": 11, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Bram\nLast name: Galmere\nDate of birth: 1980-12-01\nSex: Male\nStreet: 16 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0133\nEmail: bram.galmere.11@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1980-12-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.galmere.11@example.invalid", "fname": "Bram", "lname": "Galmere", "phone_home": "555-0133", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "16 BEACON TERRACE STATION", "title": "Mr."}, "item_id": "ref-00011", "person": {"DOB": "1980-12-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.galmere.11@example.invalid", "fname": "Bram", "lname": "Galmere", "phone_home": "555-0133", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "16 BEACON TERRACE STATION", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 11}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00012", "params": {"DOB": "1979-06-03", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.langstead.12@example.invalid", "fname": "Anouk", "lname": "Langstead", "phone_home": "555-0160", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "114 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 12, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Anouk\nLast name: Langstead\nDate of birth: 1979-06-03\nSex: Male\nStreet: 114 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0160\nEmail: anouk.langstead.12@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "concurrent_same", "inject": [{"event": "other_clerk_creates", "person": {"DOB": "1979-06-03", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.langstead.12@example.invalid", "fname": "Anouk", "lname": "Langstead", "phone_home": "555-0160", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "114 QUARRY HILL DRIVE", "title": "Mr."}, "when": "before_item"}], "intended": null, "item_id": "ref-00012", "person": {"DOB": "1979-06-03", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.langstead.12@example.invalid", "fname": "Anouk", "lname": "Langstead", "phone_home": "555-0160", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "114 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "another clerk registered this patient moments earlier", "seq": 12}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00013", "params": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 13, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Odile\nLast name: Quenwood\nDate of birth: 1996-11-12\nSex: Female\nStreet: 411 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0149\nEmail: odile.quenwood.13@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "concurrent_other", "inject": [{"event": "other_clerk_edits_unrelated", "when": "during_item"}], "intended": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "item_id": "ref-00013", "person": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "another clerk edits an unrelated chart meanwhile", "seq": 13}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00014", "params": {"DOB": "1990-11-11", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.quenley.14@example.invalid", "fname": "Rafael", "lname": "Quenley", "phone_home": "555-0151", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "46 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 14, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Rafael\nLast name: Quenley\nDate of birth: 1990-11-11\nSex: Female\nStreet: 46 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0151\nEmail: rafael.quenley.14@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1990-11-11", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.quenley.14@example.invalid", "fname": "Rafael", "lname": "Quenley", "phone_home": "555-0151", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "46 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00014", "person": {"DOB": "1990-11-11", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.quenley.14@example.invalid", "fname": "Rafael", "lname": "Quenley", "phone_home": "555-0151", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "46 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 14}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00015", "params": {"DOB": "1951-01-05", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.fairwell.15@example.invalid", "fname": "Arlo", "lname": "Fairwell", "phone_home": "555-0178", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "304 WAY", "title": "Ms."}, "seq": 15, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Arlo\nLast name: Fairwell\nDate of birth: 1951-01-05\nSex: Female\nStreet: 304 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0178\nEmail: arlo.fairwell.15@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1951-01-05", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.fairwell.15@example.invalid", "fname": "Arlo", "lname": "Fairwell", "phone_home": "555-0178", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "304 WAY", "title": "Ms."}, "item_id": "ref-00015", "person": {"DOB": "1951-01-05", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.fairwell.15@example.invalid", "fname": "Arlo", "lname": "Fairwell", "phone_home": "555-0178", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "304 WAY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 15}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00016", "params": {"DOB": "1951-01-01", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.langridge.16@example.invalid", "fname": "Mateo", "lname": "Langridge", "phone_home": "555-0155", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 16, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Mateo\nLast name: Langridge\nDate of birth: 1951-01-01\nSex: Female\nStreet: 411 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0155\nEmail: mateo.langridge.16@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1951-01-01", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.langridge.16@example.invalid", "fname": "Mateo", "lname": "Langridge", "phone_home": "555-0155", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "item_id": "ref-00016", "person": {"DOB": "1951-01-01", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.langridge.16@example.invalid", "fname": "Mateo", "lname": "Langridge", "phone_home": "555-0155", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 16}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00017", "params": {"DOB": "1967-04-10", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.hartton.17@example.invalid", "fname": "Rafael", "lname": "Hartton", "phone_home": "555-0133", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "258 STREET CEDAR ROW", "title": "Mrs."}, "seq": 17, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Rafael\nLast name: Hartton\nDate of birth: 1967-04-10\nSex: Female\nStreet: 258 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0133\nEmail: rafael.hartton.17@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1967-04-10", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.hartton.17@example.invalid", "fname": "Rafael", "lname": "Hartton", "phone_home": "555-0133", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "258 STREET CEDAR ROW", "title": "Mrs."}, "item_id": "ref-00017", "person": {"DOB": "1967-04-10", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.hartton.17@example.invalid", "fname": "Rafael", "lname": "Hartton", "phone_home": "555-0133", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "258 STREET CEDAR ROW", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 17}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00018", "params": {"DOB": "1993-11-19", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.caldford.18@example.invalid", "fname": "Wen", "lname": "Caldford", "phone_home": "555-0168", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "419 ORCHARD LANE HARBOR", "title": "Mr."}, "seq": 18, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Wen\nLast name: Caldford\nDate of birth: 1993-11-19\nSex: Male\nStreet: 419 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0168\nEmail: wen.caldford.18@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1993-11-19", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.caldford.18@example.invalid", "fname": "Wen", "lname": "Caldford", "phone_home": "555-0168", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "419 ORCHARD LANE HARBOR", "title": "Mr."}, "item_id": "ref-00018", "person": {"DOB": "1993-11-19", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.caldford.18@example.invalid", "fname": "Wen", "lname": "Caldford", "phone_home": "555-0168", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "419 ORCHARD LANE HARBOR", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 18}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00019", "params": {"DOB": "10/01/1958", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "seq": 19, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Fergus\nLast name: Ashbrook\nDate of birth: 10/01/1958\nSex: Male\nStreet: 399 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0118\nEmail: fergus.ashbrook.19@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "malformed_dob", "inject": [], "intended": {"DOB": "1958-10-01", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "item_id": "ref-00019", "person": {"DOB": "1958-10-01", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "rationale": "date of birth written MM/DD/YYYY; the true date is ISO", "seq": 19}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00020", "params": {"DOB": "1976-11-17", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.ellford.20@example.invalid", "fname": "Jasper", "lname": "Ellford", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "273 WAY", "title": "Ms."}, "seq": 20, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Jasper\nLast name: Ellford\nDate of birth: 1976-11-17\nSex: Female\nStreet: 273 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0171\nEmail: jasper.ellford.20@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "clean", "inject": [], "intended": {"DOB": "1976-11-17", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.ellford.20@example.invalid", "fname": "Jasper", "lname": "Ellford", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "273 WAY", "title": "Ms."}, "item_id": "ref-00020", "person": {"DOB": "1976-11-17", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.ellford.20@example.invalid", "fname": "Jasper", "lname": "Ellford", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "273 WAY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 20}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00021", "params": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 21, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Odile\nLast name: Quenwood\nDate of birth: 1996-11-12\nSex: Female\nStreet: 411 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0149\nEmail: odile.quenwood.13@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "dup_resend", "inject": [], "intended": null, "item_id": "ref-00021", "person": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "a resend of ref-00013", "seq": 21}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00022", "params": {"DOB": "1970-08-17", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.radwood.22@example.invalid", "fname": "Fergus", "lname": "Radwood", "phone_home": "555-0189", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "275 WAY", "title": "Ms."}, "seq": 22, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Fergus\nLast name: Radwood\nDate of birth: 1970-08-17\nSex: Female\nStreet: 275 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0189\nEmail: fergus.radwood.22@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "clean", "inject": [], "intended": {"DOB": "1970-08-17", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.radwood.22@example.invalid", "fname": "Fergus", "lname": "Radwood", "phone_home": "555-0189", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "275 WAY", "title": "Ms."}, "item_id": "ref-00022", "person": {"DOB": "1970-08-17", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.radwood.22@example.invalid", "fname": "Fergus", "lname": "Radwood", "phone_home": "555-0189", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "275 WAY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 22}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00023", "params": {"DOB": "1992-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.thornford.23@example.invalid", "fname": "Soren", "lname": "Thornford", "phone_home": "555-0140", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "64 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 23, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Soren\nLast name: Thornford\nDate of birth: 1992-03-14\nSex: Female\nStreet: 64 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0140\nEmail: soren.thornford.23@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "clean", "inject": [], "intended": {"DOB": "1992-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.thornford.23@example.invalid", "fname": "Soren", "lname": "Thornford", "phone_home": "555-0140", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "64 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00023", "person": {"DOB": "1992-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.thornford.23@example.invalid", "fname": "Soren", "lname": "Thornford", "phone_home": "555-0140", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "64 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 23}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00024", "params": {"DOB": "1937-08-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 24, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ida\nLast name: Norwick\nDate of birth: 1937-08-13\nSex: Male\nStreet: 88 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0107\nEmail: ida.norwick.9010@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "ambiguous_same_person", "inject": [], "intended": null, "item_id": "ref-00024", "person": {"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "same person as an existing chart; the date of birth has a typo", "seq": 24}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00025", "params": {"DOB": "1994-04-24", "city": "EXAMPLETON", "country_code": "USA", "email": "esme.iversbrook.25@example.invalid", "fname": "Esme", "lname": "Iversbrook", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "489 QUARRY HILL DRIVE", "title": "Mrs."}, "seq": 25, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Esme\nLast name: Iversbrook\nDate of birth: 1994-04-24\nSex: Female\nStreet: 489 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0162\nEmail: esme.iversbrook.25@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "clean", "inject": [], "intended": {"DOB": "1994-04-24", "city": "EXAMPLETON", "country_code": "USA", "email": "esme.iversbrook.25@example.invalid", "fname": "Esme", "lname": "Iversbrook", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "489 QUARRY HILL DRIVE", "title": "Mrs."}, "item_id": "ref-00025", "person": {"DOB": "1994-04-24", "city": "EXAMPLETON", "country_code": "USA", "email": "esme.iversbrook.25@example.invalid", "fname": "Esme", "lname": "Iversbrook", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "489 QUARRY HILL DRIVE", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 25}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00026", "params": {"DOB": "1990-09-13", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.hartbrook.26@example.invalid", "fname": " FARIDA ", "lname": "HARTBROOK ", "phone_home": "555-0145", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "175 ORCHARD LANE HARBOR", "title": "Ms."}, "seq": 26, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: FARIDA \nLast name: HARTBROOK \nDate of birth: 1990-09-13\nSex: Female\nStreet: 175 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0145\nEmail: farida.hartbrook.26@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "malformed_case", "inject": [], "intended": {"DOB": "1990-09-13", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.hartbrook.26@example.invalid", "fname": "Farida", "lname": "Hartbrook", "phone_home": "555-0145", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "175 ORCHARD LANE HARBOR", "title": "Ms."}, "item_id": "ref-00026", "person": {"DOB": "1990-09-13", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.hartbrook.26@example.invalid", "fname": "Farida", "lname": "Hartbrook", "phone_home": "555-0145", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "175 ORCHARD LANE HARBOR", "title": "Ms."}, "rationale": "names in capitals with stray spaces", "seq": 26}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00027", "params": {"DOB": "1978-09-15", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.birchmore.27@example.invalid", "fname": "Jasper", "lname": "Birchmore", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "227 WILLOW BEND ROAD", "title": "Mrs."}, "seq": 27, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Jasper\nLast name: Birchmore\nDate of birth: 1978-09-15\nSex: Female\nStreet: 227 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0142\nEmail: jasper.birchmore.27@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "common_surname", "inject": [], "intended": {"DOB": "1978-09-15", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.birchmore.27@example.invalid", "fname": "Jasper", "lname": "Birchmore", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "227 WILLOW BEND ROAD", "title": "Mrs."}, "item_id": "ref-00027", "person": {"DOB": "1978-09-15", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.birchmore.27@example.invalid", "fname": "Jasper", "lname": "Birchmore", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "227 WILLOW BEND ROAD", "title": "Mrs."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 27}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00028", "params": {"DOB": "1964-02-03", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.caldwick.28@example.invalid", "fname": "Fergus", "lname": "Caldwick", "phone_home": "555-0199", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "137 BEACON TERRACE STATION", "title": "Ms."}, "seq": 28, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Fergus\nLast name: Caldwick\nDate of birth: 1964-02-03\nSex: Female\nStreet: 137 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0199\nEmail: fergus.caldwick.28@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "clean", "inject": [], "intended": {"DOB": "1964-02-03", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.caldwick.28@example.invalid", "fname": "Fergus", "lname": "Caldwick", "phone_home": "555-0199", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "137 BEACON TERRACE STATION", "title": "Ms."}, "item_id": "ref-00028", "person": {"DOB": "1964-02-03", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.caldwick.28@example.invalid", "fname": "Fergus", "lname": "Caldwick", "phone_home": "555-0199", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "137 BEACON TERRACE STATION", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 28}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00029", "params": {"DOB": "1986-03-18", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.oakwell.29@example.invalid", "fname": "Wen", "lname": "Oakwell", "phone_home": "555-0111", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "472 WAY", "title": "Mr."}, "seq": 29, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Wen\nLast name: Oakwell\nDate of birth: 1986-03-18\nSex: Male\nStreet: 472 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0111\nEmail: wen.oakwell.29@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "concurrent_same", "inject": [{"event": "other_clerk_creates", "person": {"DOB": "1986-03-18", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.oakwell.29@example.invalid", "fname": "Wen", "lname": "Oakwell", "phone_home": "555-0111", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "472 WAY", "title": "Mr."}, "when": "before_item"}], "intended": null, "item_id": "ref-00029", "person": {"DOB": "1986-03-18", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.oakwell.29@example.invalid", "fname": "Wen", "lname": "Oakwell", "phone_home": "555-0111", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "472 WAY", "title": "Mr."}, "rationale": "another clerk registered this patient moments earlier", "seq": 29}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00030", "params": {"DOB": "1944-05-01", "city": "EXAMPLETON", "country_code": "USA", "email": "hollis.jesston.30@example.invalid", "fname": "Hollis", "lname": "Jesston", "phone_home": "555-0110", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "326 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 30, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Hollis\nLast name: Jesston\nDate of birth: 1944-05-01\nSex: Male\nStreet: 326 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0110\nEmail: hollis.jesston.30@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "common_surname", "inject": [], "intended": {"DOB": "1944-05-01", "city": "EXAMPLETON", "country_code": "USA", "email": "hollis.jesston.30@example.invalid", "fname": "Hollis", "lname": "Jesston", "phone_home": "555-0110", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "326 QUARRY HILL DRIVE", "title": "Mr."}, "item_id": "ref-00030", "person": {"DOB": "1944-05-01", "city": "EXAMPLETON", "country_code": "USA", "email": "hollis.jesston.30@example.invalid", "fname": "Hollis", "lname": "Jesston", "phone_home": "555-0110", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "326 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 30}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00031", "params": {"DOB": "1993-01-11", "city": "EXAMPLETON", "country_code": "USA", "email": "grace.jessby.31@example.invalid", "fname": "Grace", "lname": "Jessby", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "285 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 31, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Grace\nLast name: Jessby\nDate of birth: 1993-01-11\nSex: Female\nStreet: 285 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0179\nEmail: grace.jessby.31@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "clean", "inject": [], "intended": {"DOB": "1993-01-11", "city": "EXAMPLETON", "country_code": "USA", "email": "grace.jessby.31@example.invalid", "fname": "Grace", "lname": "Jessby", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "285 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00031", "person": {"DOB": "1993-01-11", "city": "EXAMPLETON", "country_code": "USA", "email": "grace.jessby.31@example.invalid", "fname": "Grace", "lname": "Jessby", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "285 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 31}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00032", "params": {"DOB": "1955-05-02", "city": "EXAMPLETON", "country_code": "USA", "email": "ilse.iverswick.32@example.invalid", "fname": "Ilse", "lname": "Iverswick", "phone_home": "", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "94 STREET CEDAR ROW", "title": "Mrs."}, "seq": 32, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Ilse\nLast name: Iverswick\nDate of birth: 1955-05-02\nSex: Female\nStreet: 94 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: \nEmail: ilse.iverswick.32@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "missing_optional", "inject": [], "intended": {"DOB": "1955-05-02", "city": "EXAMPLETON", "country_code": "USA", "email": "ilse.iverswick.32@example.invalid", "fname": "Ilse", "lname": "Iverswick", "phone_home": "", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "94 STREET CEDAR ROW", "title": "Mrs."}, "item_id": "ref-00032", "person": {"DOB": "1955-05-02", "city": "EXAMPLETON", "country_code": "USA", "email": "ilse.iverswick.32@example.invalid", "fname": "Ilse", "lname": "Iverswick", "phone_home": "", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "94 STREET CEDAR ROW", "title": "Mrs."}, "rationale": "no home phone; register without one", "seq": 32}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00033", "params": {"DOB": "1999-11-06", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.fairwick.33@example.invalid", "fname": "Odile", "lname": "Fairwick", "phone_home": "555-0132", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "140 AVENUE MILL ROAD", "title": "Mr."}, "seq": 33, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Odile\nLast name: Fairwick\nDate of birth: 1999-11-06\nSex: Male\nStreet: 140 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0132\nEmail: odile.fairwick.33@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "common_surname", "inject": [], "intended": {"DOB": "1999-11-06", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.fairwick.33@example.invalid", "fname": "Odile", "lname": "Fairwick", "phone_home": "555-0132", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "140 AVENUE MILL ROAD", "title": "Mr."}, "item_id": "ref-00033", "person": {"DOB": "1999-11-06", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.fairwick.33@example.invalid", "fname": "Odile", "lname": "Fairwick", "phone_home": "555-0132", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "140 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 33}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00034", "params": {"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 34, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ida\nLast name: Norwick\nDate of birth: 1937-08-12\nSex: Male\nStreet: 88 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0107\nEmail: ida.norwick.9010@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "dup_existing", "inject": [], "intended": null, "item_id": "ref-00034", "person": {"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "this patient already has a chart", "seq": 34}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00035", "params": {"DOB": "1999-05-23", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.stanbrook.35@example.invalid", "fname": "Leilani", "lname": "Stanbrook", "phone_home": "555-0125", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "112 STREET CEDAR ROW", "title": "Mr."}, "seq": 35, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Leilani\nLast name: Stanbrook\nDate of birth: 1999-05-23\nSex: Male\nStreet: 112 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0125\nEmail: leilani.stanbrook.35@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "clean", "inject": [], "intended": {"DOB": "1999-05-23", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.stanbrook.35@example.invalid", "fname": "Leilani", "lname": "Stanbrook", "phone_home": "555-0125", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "112 STREET CEDAR ROW", "title": "Mr."}, "item_id": "ref-00035", "person": {"DOB": "1999-05-23", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.stanbrook.35@example.invalid", "fname": "Leilani", "lname": "Stanbrook", "phone_home": "555-0125", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "112 STREET CEDAR ROW", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 35}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00036", "params": {"DOB": "1979-01-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.ellstead.36@example.invalid", "fname": "Ida", "lname": "Ellstead", "phone_home": "555-0180", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "68 WILLOW BEND ROAD", "title": "Mr."}, "seq": 36, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ida\nLast name: Ellstead\nDate of birth: 1979-01-27\nSex: Male\nStreet: 68 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0180\nEmail: ida.ellstead.36@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "clean", "inject": [], "intended": {"DOB": "1979-01-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.ellstead.36@example.invalid", "fname": "Ida", "lname": "Ellstead", "phone_home": "555-0180", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "68 WILLOW BEND ROAD", "title": "Mr."}, "item_id": "ref-00036", "person": {"DOB": "1979-01-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.ellstead.36@example.invalid", "fname": "Ida", "lname": "Ellstead", "phone_home": "555-0180", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "68 WILLOW BEND ROAD", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 36}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00037", "params": {"DOB": "1942-02-22", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.oakcombe.37@example.invalid", "fname": "Soren", "lname": "Oakcombe", "phone_home": "555-0176", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "432 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 37, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Soren\nLast name: Oakcombe\nDate of birth: 1942-02-22\nSex: Female\nStreet: 432 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0176\nEmail: soren.oakcombe.37@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "clean", "inject": [], "intended": {"DOB": "1942-02-22", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.oakcombe.37@example.invalid", "fname": "Soren", "lname": "Oakcombe", "phone_home": "555-0176", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "432 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00037", "person": {"DOB": "1942-02-22", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.oakcombe.37@example.invalid", "fname": "Soren", "lname": "Oakcombe", "phone_home": "555-0176", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "432 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 37}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00038", "params": {"DOB": "1958-03-09", "city": "EXAMPLETON", "country_code": "USA", "email": "dmitri.birchfield.38@example.invalid", "fname": "Dmitri", "lname": "Birchfield", "phone_home": "555-0146", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "230 WILLOW BEND ROAD", "title": "Mr."}, "seq": 38, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Dmitri\nLast name: Birchfield\nDate of birth: 1958-03-09\nSex: Male\nStreet: 230 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0146\nEmail: dmitri.birchfield.38@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "slow_save", "inject": [{"event": "slow_save", "seconds": 6, "when": "during_item"}], "intended": {"DOB": "1958-03-09", "city": "EXAMPLETON", "country_code": "USA", "email": "dmitri.birchfield.38@example.invalid", "fname": "Dmitri", "lname": "Birchfield", "phone_home": "555-0146", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "230 WILLOW BEND ROAD", "title": "Mr."}, "item_id": "ref-00038", "person": {"DOB": "1958-03-09", "city": "EXAMPLETON", "country_code": "USA", "email": "dmitri.birchfield.38@example.invalid", "fname": "Dmitri", "lname": "Birchfield", "phone_home": "555-0146", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "230 WILLOW BEND ROAD", "title": "Mr."}, "rationale": "the save is slow", "seq": 38}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00039", "params": {"DOB": "1939-05-07", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.langby.39@example.invalid", "fname": "Rosalind", "lname": "Langby", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "184 LANTERN COURT FERRY", "title": "Ms."}, "seq": 39, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Rosalind\nLast name: Langby\nDate of birth: 1939-05-07\nSex: Female\nStreet: 184 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0142\nEmail: rosalind.langby.39@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "clean", "inject": [], "intended": {"DOB": "1939-05-07", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.langby.39@example.invalid", "fname": "Rosalind", "lname": "Langby", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "184 LANTERN COURT FERRY", "title": "Ms."}, "item_id": "ref-00039", "person": {"DOB": "1939-05-07", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.langby.39@example.invalid", "fname": "Rosalind", "lname": "Langby", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "184 LANTERN COURT FERRY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 39}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00040", "params": {"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.jesswood.40@example.invalid", "fname": "Mateo", "lname": "Jesswood", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "4 QUARRY HILL DRIVE", "title": "Mrs."}, "seq": 40, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Mateo\nLast name: Jesswood\nDate of birth: 1950-04-21\nSex: Female\nStreet: 4 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0111\nEmail: mateo.jesswood.40@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "shared_dob", "inject": [], "intended": {"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.jesswood.40@example.invalid", "fname": "Mateo", "lname": "Jesswood", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "4 QUARRY HILL DRIVE", "title": "Mrs."}, "item_id": "ref-00040", "person": {"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.jesswood.40@example.invalid", "fname": "Mateo", "lname": "Jesswood", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "4 QUARRY HILL DRIVE", "title": "Mrs."}, "rationale": "born on the same day as an existing chart; a different person", "seq": 40}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00041", "params": {"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ines.norwell.41@example.invalid", "fname": "Ines", "lname": "Norwell", "phone_home": "555-0184", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "121 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 41, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Ines\nLast name: Norwell\nDate of birth: 1966-07-13\nSex: Female\nStreet: 121 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0184\nEmail: ines.norwell.41@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "shared_dob", "inject": [], "intended": {"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ines.norwell.41@example.invalid", "fname": "Ines", "lname": "Norwell", "phone_home": "555-0184", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "121 QUARRY HILL DRIVE", "title": "Ms."}, "item_id": "ref-00041", "person": {"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ines.norwell.41@example.invalid", "fname": "Ines", "lname": "Norwell", "phone_home": "555-0184", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "121 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "born on the same day as an existing chart; a different person", "seq": 41}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00042", "params": {"DOB": "1998-03-10", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.norley.42@example.invalid", "fname": "Anouk", "lname": "Norley", "phone_home": "555-0191", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "372 LANTERN COURT FERRY", "title": "Mr."}, "seq": 42, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Anouk\nLast name: Norley\nDate of birth: 1998-03-10\nSex: Male\nStreet: 372 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0191\nEmail: anouk.norley.42@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "clean", "inject": [], "intended": {"DOB": "1998-03-10", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.norley.42@example.invalid", "fname": "Anouk", "lname": "Norley", "phone_home": "555-0191", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "372 LANTERN COURT FERRY", "title": "Mr."}, "item_id": "ref-00042", "person": {"DOB": "1998-03-10", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.norley.42@example.invalid", "fname": "Anouk", "lname": "Norley", "phone_home": "555-0191", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "372 LANTERN COURT FERRY", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 42}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00043", "params": {"DOB": "2002-09-19", "city": "EXAMPLETON", "country_code": "USA", "email": "dalia.oakbrook.43@example.invalid", "fname": "Dalia", "lname": "Oakbrook", "phone_home": "555-0110", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "429 WILLOW BEND ROAD", "title": "Ms."}, "seq": 43, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Dalia\nLast name: Oakbrook\nDate of birth: 2002-09-19\nSex: Female\nStreet: 429 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0110\nEmail: dalia.oakbrook.43@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "clean", "inject": [], "intended": {"DOB": "2002-09-19", "city": "EXAMPLETON", "country_code": "USA", "email": "dalia.oakbrook.43@example.invalid", "fname": "Dalia", "lname": "Oakbrook", "phone_home": "555-0110", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "429 WILLOW BEND ROAD", "title": "Ms."}, "item_id": "ref-00043", "person": {"DOB": "2002-09-19", "city": "EXAMPLETON", "country_code": "USA", "email": "dalia.oakbrook.43@example.invalid", "fname": "Dalia", "lname": "Oakbrook", "phone_home": "555-0110", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "429 WILLOW BEND ROAD", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 43}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00044", "params": {"DOB": "10/01/1958", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "seq": 44, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Fergus\nLast name: Ashbrook\nDate of birth: 10/01/1958\nSex: Male\nStreet: 399 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0118\nEmail: fergus.ashbrook.19@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "dup_resend", "inject": [], "intended": null, "item_id": "ref-00044", "person": {"DOB": "1958-10-01", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "rationale": "a resend of ref-00019", "seq": 44}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00045", "params": {"DOB": "1959-06-04", "city": "EXAMPLETON", "country_code": "USA", "email": "gideon.galwick.9004@example.invalid", "fname": "Gideon", "lname": "Galwick", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "282 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 45, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Gideon\nLast name: Galwick\nDate of birth: 1959-06-04\nSex: Female\nStreet: 282 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0179\nEmail: gideon.galwick.9004@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "dup_existing", "inject": [], "intended": null, "item_id": "ref-00045", "person": {"DOB": "1959-06-04", "city": "EXAMPLETON", "country_code": "USA", "email": "gideon.galwick.9004@example.invalid", "fname": "Gideon", "lname": "Galwick", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "282 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "this patient already has a chart", "seq": 45}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00046", "params": {"DOB": "1998-07-03", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.hartgate.46@example.invalid", "fname": "Odile", "lname": "Hartgate", "phone_home": "555-0178", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "247 BEACON TERRACE STATION", "title": "Mr."}, "seq": 46, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Odile\nLast name: Hartgate\nDate of birth: 1998-07-03\nSex: Male\nStreet: 247 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0178\nEmail: odile.hartgate.46@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "session_expiry", "inject": [{"event": "force_logout", "when": "before_item"}], "intended": {"DOB": "1998-07-03", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.hartgate.46@example.invalid", "fname": "Odile", "lname": "Hartgate", "phone_home": "555-0178", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "247 BEACON TERRACE STATION", "title": "Mr."}, "item_id": "ref-00046", "person": {"DOB": "1998-07-03", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.hartgate.46@example.invalid", "fname": "Odile", "lname": "Hartgate", "phone_home": "555-0178", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "247 BEACON TERRACE STATION", "title": "Mr."}, "rationale": "sessions ended just before the item", "seq": 46}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00047", "params": {"DOB": "1977-05-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldbrook.47@example.invalid", "fname": "Rafael", "lname": "Caldbrook", "phone_home": "555-0101", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "382 BEACON TERRACE STATION", "title": "Ms."}, "seq": 47, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Rafael\nLast name: Caldbrook\nDate of birth: 1977-05-21\nSex: Female\nStreet: 382 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0101\nEmail: rafael.caldbrook.47@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "clean", "inject": [], "intended": {"DOB": "1977-05-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldbrook.47@example.invalid", "fname": "Rafael", "lname": "Caldbrook", "phone_home": "555-0101", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "382 BEACON TERRACE STATION", "title": "Ms."}, "item_id": "ref-00047", "person": {"DOB": "1977-05-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldbrook.47@example.invalid", "fname": "Rafael", "lname": "Caldbrook", "phone_home": "555-0101", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "382 BEACON TERRACE STATION", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 47}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00048", "params": {"DOB": "1962-11-16", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.jesswick.48@example.invalid", "fname": "Leilani", "lname": "Jesswick", "phone_home": "555-0159", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "150 BEACON TERRACE STATION", "title": "Mrs."}, "seq": 48, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Leilani\nLast name: Jesswick\nDate of birth: 1962-11-16\nSex: Female\nStreet: 150 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0159\nEmail: leilani.jesswick.48@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "clean", "inject": [], "intended": {"DOB": "1962-11-16", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.jesswick.48@example.invalid", "fname": "Leilani", "lname": "Jesswick", "phone_home": "555-0159", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "150 BEACON TERRACE STATION", "title": "Mrs."}, "item_id": "ref-00048", "person": {"DOB": "1962-11-16", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.jesswick.48@example.invalid", "fname": "Leilani", "lname": "Jesswick", "phone_home": "555-0159", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "150 BEACON TERRACE STATION", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 48}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00049", "params": {"DOB": "1974-02-16", "city": "EXAMPLETON", "country_code": "USA", "email": "tomas.stanstead.49@example.invalid", "fname": "Tomas", "lname": "Stanstead", "phone_home": "555-0109", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "10 BEACON TERRACE STATION", "title": "Mrs."}, "seq": 49, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Tomas\nLast name: Stanstead\nDate of birth: 1974-02-16\nSex: Female\nStreet: 10 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0109\nEmail: tomas.stanstead.49@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "clean", "inject": [], "intended": {"DOB": "1974-02-16", "city": "EXAMPLETON", "country_code": "USA", "email": "tomas.stanstead.49@example.invalid", "fname": "Tomas", "lname": "Stanstead", "phone_home": "555-0109", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "10 BEACON TERRACE STATION", "title": "Mrs."}, "item_id": "ref-00049", "person": {"DOB": "1974-02-16", "city": "EXAMPLETON", "country_code": "USA", "email": "tomas.stanstead.49@example.invalid", "fname": "Tomas", "lname": "Stanstead", "phone_home": "555-0109", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "10 BEACON TERRACE STATION", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 49}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00050", "params": {"DOB": "1961-04-03", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jesswick.50@example.invalid", "fname": "Oren", "lname": "Jesswick", "phone_home": "555-0195", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "299 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 50, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Oren\nLast name: Jesswick\nDate of birth: 1961-04-03\nSex: Male\nStreet: 299 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0195\nEmail: oren.jesswick.50@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "clean", "inject": [], "intended": {"DOB": "1961-04-03", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jesswick.50@example.invalid", "fname": "Oren", "lname": "Jesswick", "phone_home": "555-0195", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "299 QUARRY HILL DRIVE", "title": "Mr."}, "item_id": "ref-00050", "person": {"DOB": "1961-04-03", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jesswick.50@example.invalid", "fname": "Oren", "lname": "Jesswick", "phone_home": "555-0195", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "299 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 50}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00051", "params": {"DOB": "1949-12-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.ellwood.51@example.invalid", "fname": "Ola", "lname": "Ellwood", "phone_home": "555-0150", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "120 WAY", "title": "Mr."}, "seq": 51, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ola\nLast name: Ellwood\nDate of birth: 1949-12-12\nSex: Male\nStreet: 120 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0150\nEmail: ola.ellwood.51@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "clean", "inject": [], "intended": {"DOB": "1949-12-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.ellwood.51@example.invalid", "fname": "Ola", "lname": "Ellwood", "phone_home": "555-0150", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "120 WAY", "title": "Mr."}, "item_id": "ref-00051", "person": {"DOB": "1949-12-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.ellwood.51@example.invalid", "fname": "Ola", "lname": "Ellwood", "phone_home": "555-0150", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "120 WAY", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 51}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00052", "params": {"DOB": "1975-08-19", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenridge.9005@example.invalid", "fname": "Odile", "lname": "Quenridge", "phone_home": "555-0138", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "474 WAY", "title": "Mr."}, "seq": 52, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Odile\nLast name: Quenridge\nDate of birth: 1975-08-19\nSex: Male\nStreet: 474 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0138\nEmail: odile.quenridge.9005@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "dup_existing", "inject": [], "intended": null, "item_id": "ref-00052", "person": {"DOB": "1975-08-19", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenridge.9005@example.invalid", "fname": "Odile", "lname": "Quenridge", "phone_home": "555-0138", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "474 WAY", "title": "Mr."}, "rationale": "this patient already has a chart", "seq": 52}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00053", "params": {"DOB": "1978-07-04", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.ashby.53@example.invalid", "fname": "Bo", "lname": "Ashby", "phone_home": "", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "483 STREET CEDAR ROW", "title": "Mr."}, "seq": 53, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Bo\nLast name: Ashby\nDate of birth: 1978-07-04\nSex: Male\nStreet: 483 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: \nEmail: bo.ashby.53@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "missing_optional", "inject": [], "intended": {"DOB": "1978-07-04", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.ashby.53@example.invalid", "fname": "Bo", "lname": "Ashby", "phone_home": "", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "483 STREET CEDAR ROW", "title": "Mr."}, "item_id": "ref-00053", "person": {"DOB": "1978-07-04", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.ashby.53@example.invalid", "fname": "Bo", "lname": "Ashby", "phone_home": "", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "483 STREET CEDAR ROW", "title": "Mr."}, "rationale": "no home phone; register without one", "seq": 53}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00054", "params": {"DOB": "1984-10-03", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.galwick.54@example.invalid", "fname": "Ola", "lname": "Galwick", "phone_home": "555-0106", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "186 ORCHARD LANE HARBOR", "title": "Mr."}, "seq": 54, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ola\nLast name: Galwick\nDate of birth: 1984-10-03\nSex: Male\nStreet: 186 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0106\nEmail: ola.galwick.54@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "common_surname", "inject": [], "intended": {"DOB": "1984-10-03", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.galwick.54@example.invalid", "fname": "Ola", "lname": "Galwick", "phone_home": "555-0106", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "186 ORCHARD LANE HARBOR", "title": "Mr."}, "item_id": "ref-00054", "person": {"DOB": "1984-10-03", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.galwick.54@example.invalid", "fname": "Ola", "lname": "Galwick", "phone_home": "555-0106", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "186 ORCHARD LANE HARBOR", "title": "Mr."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 54}, "type": "item"} +{"app": "openemr", "day": 9, "item_id": "ref-00055", "params": {"city": "EXAMPLETON", "country_code": "USA", "email": "farida.jessstead.55@example.invalid", "fname": "Farida", "lname": "Jessstead", "phone_home": "555-0198", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "263 AVENUE MILL ROAD", "title": "Ms."}, "seq": 55, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Farida\nLast name: Jessstead\nDate of birth: \nSex: Female\nStreet: 263 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0198\nEmail: farida.jessstead.55@example.invalid\nCountry: USA\n", "truth": {"day": 9, "exception": "missing_required", "inject": [], "intended": null, "item_id": "ref-00055", "person": {"DOB": "1966-05-14", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.jessstead.55@example.invalid", "fname": "Farida", "lname": "Jessstead", "phone_home": "555-0198", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "263 AVENUE MILL ROAD", "title": "Ms."}, "rationale": "no date of birth; return the referral to the sender", "seq": 55}, "type": "item"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/REPORT.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/REPORT.md new file mode 100644 index 000000000..8257bf60a --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/REPORT.md @@ -0,0 +1,48 @@ +# Lifecycle soak report + +Protocol `lifecycle/2026-10-20.1`, workload `lifecycle-workload/2026-10-20.2`, seed 7, 2 referrals over 1 simulated days. Engine commit `fd0bdcbac807`. App: openemr 8.0.0.3, synthetic data only. Cost model `lifecycle-cost/2026-10-20.1`. + +## Arm `openadapt-production-relabel` + +- **Verified items per operator-minute: 0.075** (1 verified of 2 items over 13.33 operator minutes; 0.055 with the 5.0 setup minutes). By hand: 0.333 an operator-minute. +- False stops per 100 items: 50.0; all stops per 100 items: 50.0; operator minutes per stop: 5.0. +- After the app change `relabel_save` (item 1): 1 of 2 items false-stopped, 12.5 operator minutes of maintenance (stops, repair reviews); first verified item after it: 1, 1133.8 s after the change. +- Stops judged `false_stop`, by cause: duplicate check listed a chart 1. +- Cost-model bands, verified per operator-minute: x0.5 0.15, x1 0.075, x2 0.037. + +| | x0.5 | x1 | x2 | +|---|---:|---:|---:| +| Verified completed items per operator-hour | 6.55 | 3.27 | 1.64 | +| ... if every silent wrong is later found and fixed | 6.55 | 3.27 | 1.64 | +| All-manual items per operator-hour | 40 | 20 | 10 | +| Operator work removed vs all-manual | -205.6% | -205.6% | -205.6% | +| Setup minutes | 2.5 | 5 | 10 | +| Per-item operator minutes (mean) | 1.458 | 2.917 | 5.833 | +| Maintenance minutes (all UI changes) | 3.75 | 7.5 | 15 | +| Operator hours in total | 0.153 | 0.306 | 0.611 | + +- Items: 2; verified completed without hand entry: 1; right in the end: 2; done by hand: 1. +- False stops: 1 of 2 clean items, 50.0% (95% CI 9.4-90.5%); 1 of them with a UI change in force. +- Silent wrong: 0 of 1 items claimed done, 0.0% (95% CI 0.0-79.3%) (judged by direct SQL, never the product's verdict). +- Operator requests: {"repair_review": 1, "approval": 1, "stop": 1}; actions: {"accept_repair": 1, "approve": 1, "do_by_hand": 1}. +- Outcomes: {"correct": 1, "false_stop": 1}. +- Wall: 1395.0 s of item time, median 1133.0 s an item; host 1-minute load median 20.7, max 20.7. +- Model calls 0, list-price cost $0.0. + +Outcome by exception: + +| Exception | Outcomes | +|---|---| +| clean | correct 1, false_stop 1 | + +After each UI change (items until the next change): + +| Change | From item | Items | Outcomes | +|---|---:|---:|---| +| relabel_save | 1 | 2 | correct 1, false_stop 1 | + +## Assumptions + +Operator seconds per touch (`lifecycle-cost/2026-10-20.1`): admit 300, approval 20, compile_review 600, interrupt 30, manual_entry 180, question 60, reconcile 120, repair_review 120, stop 90, teach_prep 300. Every request also pays the interrupt charge. Bands scale every number. + +No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds). diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/arm-ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/arm-ledger.jsonl new file mode 100644 index 000000000..f3edb188c --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/arm-ledger.jsonl @@ -0,0 +1,5 @@ +{"at": 1792865787.129, "bundle": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-ecfb998b8ff7-1792865787"} +{"at": 1792865921.172, "candidate": "/Users/abrichr/oa/scratch/production-lifecycle/runs/smoke-5/arms/openadapt-production-relabel/items/ref-00001-relabel/candidate", "kind": "drift.requalify.start"} +{"at": 1792866766.734, "kind": "drift.requalify.end"} +{"at": 1792866771.456, "bundle": "bbb693b01824f47b414b5dd54425f16502a7533c74e797116ff8f4f8a1925577", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-bbb693b01824-1792866771"} +{"action": "approve", "at": 1792866901.352, "item": "ref-00001", "kind": "person", "request_id": "c33b11d19200406d954dea9c320b1781"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/ledger.jsonl new file mode 100644 index 000000000..f4849213c --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/ledger.jsonl @@ -0,0 +1,14 @@ +{"app": {"api_url": "https://127.0.0.1:9400", "app": "openemr", "baseline_sha256": "015bef02fb30530e2ed64c17e8035623a39801a9008f2df307eaf53e420e98ba", "images": {"mariadb": "mariadb:11.8@sha256:efb4959ef2c835cd735dbc388eb9ad6aab0c78dd64febcd51bc17481111890c4", "openemr": "openemr/openemr:8.0.0.3@sha256:0aa4d3d52b22fa69986c087e7c99e9854d8dfd70440634eb7c8af0e08f19f3ab"}, "project": "openadapt-openemr-compose", "ui_url": "http://127.0.0.1:9401", "version": "8.0.0.3"}, "argv": null, "arm": "", "cost_model": {"admit_s": 300.0, "approval_s": 20.0, "calibration": "No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds).", "compile_review_s": 600.0, "interrupt_s": 30.0, "manual_entry_s": 180.0, "question_s": 60.0, "reconcile_s": 120.0, "repair_review_s": 120.0, "stop_s": 90.0, "teach_prep_s": 300.0, "version": "lifecycle-cost/2026-10-20.1"}, "cpus": 12, "days": 1, "engine_commit": "fd0bdcbac8078732334b66666929a15321fce3a1", "host": "MacBook-Pro-5", "items": 2, "platform": "macOS-15.7.3-arm64-arm-64bit", "protocol": "lifecycle/2026-10-20.1", "seed": 7, "stop_after": null, "t": 1792865776.128, "type": "run_start", "workload": "lifecycle-workload/2026-10-20.2"} +{"arm": "openadapt-production-relabel", "arm_spec": "benchmark.lifecycle.production_arm:make", "describe": {"api_tier": "where admissible (refused on the OpenEMR referral by its own proposal; the GUI save runs)", "approval": "problems_only (local stand-in for Cloud's switch status)", "authorization": "governed run gate on the certified, encrypted bundle", "checkpoint_store": "encrypted", "configuration": "benchmark/lifecycle_proof (proof-15)", "duplicate_check": "no_duplicate_candidate on step_039 (rows tr.oneresult; a row with the item's last name or date of birth stops the item)", "durable": true, "model_calls": "none on any path", "pin": "admitted digest; repaired versions only through signed lineage", "policy": "clinical-write", "profile": "regulated", "qualification_trials": 1, "readback": "pipelined, window 1; the harness waits for each check", "recovery": "relabel", "repair": "self-repair on a halt before any effect (rule-based agent, no model)"}, "existing_ids": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], "interface": "lifecycle-arm/1", "options": {"admission_from": "/Users/abrichr/oa/scratch/production-lifecycle/runs/smoke-3b/arms/openadapt-production-relabel", "duplicate_check": true, "recovery": "relabel"}, "t": 1792865786.389, "type": "arm_start"} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "teach and compile happened before this run (the certified referral bundle); onboarding effort is measured in benchmark/onboarding_effort", "phase": "admit", "pinned_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "reused_from": {"digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "seconds": 796.3, "workdir": "/Users/abrichr/oa/scratch/production-lifecycle/runs/smoke-3b/arms/openadapt-production-relabel"}, "stage": "setup", "t": 1792865787.132, "type": "phase", "wall_s": 796.3} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "problems_only switch opened locally, as Cloud would", "phase": "switch", "stage": "setup", "t": 1792865787.132, "type": "phase", "wall_s": 0.3} +{"applied": {"kind": "relabel_save", "labels": {"Confirm Create New Patient": "Save new patient"}}, "arm": "openadapt-production-relabel", "day": 0, "first_seq": 1, "kind": "relabel_save", "t": 1792865787.306, "type": "drift_applied"} +{"action": "accept_repair", "arm": "openadapt-production-relabel", "charged_s": 150.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"certified_digest": "bbb693b01824f47b414b5dd54425f16502a7533c74e797116ff8f4f8a1925577", "fresh_admission": "the repair changes the program's record check; it needs a person's fresh admission", "probes_passed": true, "release_changed_files": ["/var/www/localhost/htdocs/openemr/interface/new/new_search_popup.php"], "requalified_cases": 6}, "item_id": "ref-00001", "kind": "repair_review", "operator": "scripted", "reason": "step_040: the control now reads 'Save new patient' instead of 'Confirm Create New Patient'; its id, kind and form are unchanged (the recorded identity hash matches with only the label swapped back)", "rule": "repair_drift_and_probes_passed", "seq": 1, "surface": "openadapt-flow repair relabel (review card)", "t": 1792866771.172, "type": "operator"} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00001", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 1, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792866901.351, "type": "operator"} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "fresh admission of the re-qualified copy: the repair changes the program's record check; it needs a person's fresh admission", "phase": "admit", "seq": 1, "stage": "maintenance", "t": 1792866920.774, "type": "phase", "wall_s": 0.0, "within_item": "ref-00001"} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "phase": "relabel_requalify", "seq": 1, "stage": "maintenance", "t": 1792866920.775, "type": "phase", "wall_s": 850.5, "within_item": "ref-00001"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "bbb693b01824f47b414b5dd54425f16502a7533c74e797116ff8f4f8a1925577", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "stop_before_saving", "decision_reason": "right_record", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's \u2014 expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_c", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"digest": "bbb693b01824f47b414b5dd54425f16502a7533c74e797116ff8f4f8a1925577", "item": "ref-00001", "lineage_hop": null, "proposal": "step_040: the control now reads 'Save new patient' instead of 'Confirm Create New Patient'; its id, kind and form are unchanged (the recorded identity hash matches with only the label swapped back)", "reason": "the repair changes the program's record check; it needs a person's fresh admission", "release": {"changed": ["/var/www/localhost/htdocs/openemr/interface/new/new_search_popup.php"], "lock": "environment.release-1.lock.json"}, "rerun": {"approval": {"decision": "problem", "decision_reason": "save_not_approved", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "bbb693b01824f47b414b5dd54425f16502a7533c74e797116ff8f4f8a1925577", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "review": {"action": "accept_repair", "charged_s": 150.0}, "seconds_to_item_done": 1011.1, "seconds_to_readmitted": 861.8, "status": "fresh_admission", "timings": {"person_wait_s": 0.0, "requalify_s": 850.5}}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00001"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00001", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 1133.7, "injected": [], "item_id": "ref-00001", "load_1m": 5.9, "load_1m_end": 20.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["13"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 1, "t": 1792866921.107, "type": "item_result", "wall_s": 1133.0} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "14"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00002", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "enter_by_hand", "seq": 2, "surface": "openadapt-flow explain / approve / resume", "t": 1792867183.301, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "bbb693b01824f47b414b5dd54425f16502a7533c74e797116ff8f4f8a1925577", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "bbb693b01824f47b414b5dd54425f16502a7533c74e797116ff8f4f8a1925577", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00002", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00002", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 262.32, "injected": [], "item_id": "ref-00002", "load_1m": 20.7, "load_1m_end": 9.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 2, "t": 1792867183.593, "type": "item_result", "wall_s": 262.03} +{"arm": "openadapt-production-relabel", "t": 1792867183.871, "type": "arm_end"} +{"arm": "openadapt-production-relabel", "t": 1792867183.872, "type": "run_end"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/results.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/results.json new file mode 100644 index 000000000..fb7cf67ba --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/results.json @@ -0,0 +1,243 @@ +{ + "arms": { + "openadapt-production-relabel": { + "bands": { + "x0.5": { + "maintenance_min": 3.75, + "manual_only_hours": 0.05, + "manual_only_items_per_hour": 40.0, + "operator_hours": 0.153, + "operator_hours_with_cleanup": 0.153, + "per_item_operator_min": 1.458, + "per_item_operator_min_total": 2.92, + "setup_min": 2.5, + "verified_completed_per_operator_hour": 6.55, + "verified_completed_per_operator_hour_with_cleanup": 6.55, + "work_removed_fraction": -2.056 + }, + "x1": { + "maintenance_min": 7.5, + "manual_only_hours": 0.1, + "manual_only_items_per_hour": 20.0, + "operator_hours": 0.306, + "operator_hours_with_cleanup": 0.306, + "per_item_operator_min": 2.917, + "per_item_operator_min_total": 5.83, + "setup_min": 5.0, + "verified_completed_per_operator_hour": 3.27, + "verified_completed_per_operator_hour_with_cleanup": 3.27, + "work_removed_fraction": -2.056 + }, + "x2": { + "maintenance_min": 15.0, + "manual_only_hours": 0.2, + "manual_only_items_per_hour": 10.0, + "operator_hours": 0.611, + "operator_hours_with_cleanup": 0.611, + "per_item_operator_min": 5.833, + "per_item_operator_min_total": 11.67, + "setup_min": 10.0, + "verified_completed_per_operator_hour": 1.64, + "verified_completed_per_operator_hour_with_cleanup": 1.64, + "work_removed_fraction": -2.056 + } + }, + "by_exception": { + "clean": { + "correct": 1, + "false_stop": 1 + } + }, + "complete": true, + "cost_model": "lifecycle-cost/2026-10-20.1", + "describe": { + "api_tier": "where admissible (refused on the OpenEMR referral by its own proposal; the GUI save runs)", + "approval": "problems_only (local stand-in for Cloud's switch status)", + "authorization": "governed run gate on the certified, encrypted bundle", + "checkpoint_store": "encrypted", + "configuration": "benchmark/lifecycle_proof (proof-15)", + "duplicate_check": "no_duplicate_candidate on step_039 (rows tr.oneresult; a row with the item's last name or date of birth stops the item)", + "durable": true, + "model_calls": "none on any path", + "pin": "admitted digest; repaired versions only through signed lineage", + "policy": "clinical-write", + "profile": "regulated", + "qualification_trials": 1, + "readback": "pipelined, window 1; the harness waits for each check", + "recovery": "relabel", + "repair": "self-repair on a halt before any effect (rule-based agent, no model)" + }, + "done_by_hand": 1, + "false_stop_rate": { + "ci95": [ + 0.0945, + 0.9055 + ], + "definition": "stops with nothing written on items whose data was right and that carried no item-level fault, over all such items", + "k": 1, + "n": 2, + "rate": 0.5, + "with_ui_change_in_force": 1 + }, + "final_correct": 2, + "headline": { + "bands": { + "x0.5": { + "after_app_change": [ + { + "first_seq": 1, + "first_verified_seq": 1, + "items_false_stopped": 1, + "items_in_window": 2, + "kind": "relabel_save", + "maintenance_operator_min": 6.25, + "seconds_to_running_again": 1133.8 + } + ], + "operator_min_per_stop": 2.5, + "operator_min_run": 6.67, + "operator_min_setup": 2.5, + "verified_per_operator_minute": 0.15, + "verified_per_operator_minute_with_setup": 0.109 + }, + "x1": { + "after_app_change": [ + { + "first_seq": 1, + "first_verified_seq": 1, + "items_false_stopped": 1, + "items_in_window": 2, + "kind": "relabel_save", + "maintenance_operator_min": 12.5, + "seconds_to_running_again": 1133.8 + } + ], + "operator_min_per_stop": 5.0, + "operator_min_run": 13.33, + "operator_min_setup": 5.0, + "verified_per_operator_minute": 0.075, + "verified_per_operator_minute_with_setup": 0.055 + }, + "x2": { + "after_app_change": [ + { + "first_seq": 1, + "first_verified_seq": 1, + "items_false_stopped": 1, + "items_in_window": 2, + "kind": "relabel_save", + "maintenance_operator_min": 25.0, + "seconds_to_running_again": 1133.8 + } + ], + "operator_min_per_stop": 10.0, + "operator_min_run": 26.67, + "operator_min_setup": 10.0, + "verified_per_operator_minute": 0.037, + "verified_per_operator_minute_with_setup": 0.027 + } + }, + "definition": "verified completed items (oracle-correct, not done by hand) per operator-minute; operator minutes are every charged approval, stop, reconciliation, resume, repair review and item done by hand, plus maintenance; *_with_setup also charges admission", + "false_stops_per_100_items": 50.0, + "items": 2, + "manual_entry_min": 3.0, + "stops_by_cause": { + "false_stop": { + "duplicate check listed a chart": 1 + } + }, + "stops_per_100_items": 50.0, + "verified_completed": 1 + }, + "items": 2, + "model": { + "calls": 0, + "cost_usd": 0.0 + }, + "operator_actions": { + "accept_repair": 1, + "approve": 1, + "do_by_hand": 1 + }, + "operator_requests": { + "approval": 1, + "repair_review": 1, + "stop": 1 + }, + "outcomes": { + "correct": 1, + "false_stop": 1 + }, + "per_drift": { + "relabel_save": { + "first_seq": 1, + "items": 2, + "outcomes": { + "correct": 1, + "false_stop": 1 + }, + "repair_reviews": 1 + } + }, + "silent_wrong_rate": { + "ci95": [ + 0.0, + 0.7935 + ], + "definition": "items the arm claimed done that the independent oracle judged wrong, over all items the arm claimed done", + "k": 0, + "n": 1, + "of_all_items": 0.0, + "rate": 0.0 + }, + "stops": 1, + "verified_completed": 1, + "wall": { + "load_1m_max": 20.7, + "load_1m_median": 20.7, + "median_item_s": 1133.0, + "total_s": 1395.0 + } + } + }, + "run": { + "app": { + "api_url": "https://127.0.0.1:9400", + "app": "openemr", + "baseline_sha256": "015bef02fb30530e2ed64c17e8035623a39801a9008f2df307eaf53e420e98ba", + "images": { + "mariadb": "mariadb:11.8@sha256:efb4959ef2c835cd735dbc388eb9ad6aab0c78dd64febcd51bc17481111890c4", + "openemr": "openemr/openemr:8.0.0.3@sha256:0aa4d3d52b22fa69986c087e7c99e9854d8dfd70440634eb7c8af0e08f19f3ab" + }, + "project": "openadapt-openemr-compose", + "ui_url": "http://127.0.0.1:9401", + "version": "8.0.0.3" + }, + "argv": null, + "cost_model": { + "admit_s": 300.0, + "approval_s": 20.0, + "calibration": "No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds).", + "compile_review_s": 600.0, + "interrupt_s": 30.0, + "manual_entry_s": 180.0, + "question_s": 60.0, + "reconcile_s": 120.0, + "repair_review_s": 120.0, + "stop_s": 90.0, + "teach_prep_s": 300.0, + "version": "lifecycle-cost/2026-10-20.1" + }, + "cpus": 12, + "days": 1, + "engine_commit": "fd0bdcbac8078732334b66666929a15321fce3a1", + "host": "MacBook-Pro-5", + "items": 2, + "platform": "macOS-15.7.3-arm64-arm-64bit", + "protocol": "lifecycle/2026-10-20.1", + "seed": 7, + "stop_after": null, + "type": "run_start", + "workload": "lifecycle-workload/2026-10-20.2" + } +} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/stops.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/stops.jsonl new file mode 100644 index 000000000..f13c6c841 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/stops.jsonl @@ -0,0 +1 @@ +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00002", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00002", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 2, "transaction_outcome": null} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/log-1792865787.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/log-1792865787.jsonl new file mode 100644 index 000000000..60a3b6cbb --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/log-1792865787.jsonl @@ -0,0 +1,2 @@ +{"at":"2026-10-24T18:16:27.128731+00:00","counts_toward_problems":null,"decision":null,"kind":"opened","prev_sha256":"sha256:0000000000000000000000000000000000000000000000000000000000000000","reason":null,"run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":1,"sha256":"sha256:dd86d47eca2a0340aa8b06d984930efa64c714812e8576596d36bf5559ae91e3","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792865787","switch_record_sha256":"sha256:0897a5d2fc984deaa97ed2ad508217d1b2e27cda7c27fe2505bbeecbdce6386c"} +{"at":"2026-10-24T18:18:26.976453+00:00","counts_toward_problems":true,"decision":"stop_before_saving","kind":"item_finished","prev_sha256":"sha256:dd86d47eca2a0340aa8b06d984930efa64c714812e8576596d36bf5559ae91e3","reason":"right_record","run_ref":"9fa1f0087396de3d63ac51d3ca59cd25eac9de1a3efaffe86c837bfb2d41a7c6","schema_version":"openadapt.approval-mode-log-event/v1","seq":2,"sha256":"sha256:b2964323223833dd7946a7b37b0bdb235c65907c71b1d7249789426831bd5f15","switch_id":"switch-lifecycle-proof-ecfb998b8ff7-1792865787","switch_record_sha256":null} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/log-1792866771.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/log-1792866771.jsonl new file mode 100644 index 000000000..5b55bcf5c --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/log-1792866771.jsonl @@ -0,0 +1,5 @@ +{"at":"2026-10-24T18:32:51.455620+00:00","counts_toward_problems":null,"decision":null,"kind":"opened","prev_sha256":"sha256:0000000000000000000000000000000000000000000000000000000000000000","reason":null,"run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":1,"sha256":"sha256:4d44c04a01281f2bed01c5a55ca1ab4c0fc0d17854bc93f440ec5ffd3c68e5a0","switch_id":"switch-lifecycle-proof-bbb693b01824-1792866771","switch_record_sha256":"sha256:d364388c5d0e3c82a9addf4b6255ba265be385dd3486b24c61f9d565e11f69be"} +{"at":"2026-10-24T18:35:20.423255+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:4d44c04a01281f2bed01c5a55ca1ab4c0fc0d17854bc93f440ec5ffd3c68e5a0","reason":"save_not_approved","run_ref":"e4e6175ed460022704f574bd837fc1cc2bc97bc404198bdb03c6af5b7a6750d9","schema_version":"openadapt.approval-mode-log-event/v1","seq":2,"sha256":"sha256:2e24444488c19081c3201eb624f7d1ef51ce81d5785979aa809378b6cc0d2394","switch_id":"switch-lifecycle-proof-bbb693b01824-1792866771","switch_record_sha256":null} +{"at":"2026-10-24T18:37:36.569479+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:2e24444488c19081c3201eb624f7d1ef51ce81d5785979aa809378b6cc0d2394","reason":"halted_before_effect","run_ref":"381a31ac0dca94a9ee2ba23e373ead62d17f8525122ac3013b4ad7cf280df9da","schema_version":"openadapt.approval-mode-log-event/v1","seq":3,"sha256":"sha256:3dcd9dc8cd3fa25d78d2d8e9e138c2d28ace2966007ca382ce210a06b9d6f1b9","switch_id":"switch-lifecycle-proof-bbb693b01824-1792866771","switch_record_sha256":null} +{"at":"2026-10-24T18:39:42.449786+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:3dcd9dc8cd3fa25d78d2d8e9e138c2d28ace2966007ca382ce210a06b9d6f1b9","reason":"halted_before_effect","run_ref":"abea3fa08b9344ecefc8964ec068f186f6a8dc4ef636b7a9248d60ed9cdc666c","schema_version":"openadapt.approval-mode-log-event/v1","seq":4,"sha256":"sha256:b91d04368951675661306ae1d6b7f0d487ab69f3e2e09e9f7f88eb904688cb9b","switch_id":"switch-lifecycle-proof-bbb693b01824-1792866771","switch_record_sha256":null} +{"at":"2026-10-24T18:39:42.450103+00:00","counts_toward_problems":null,"decision":null,"kind":"switched_off","prev_sha256":"sha256:b91d04368951675661306ae1d6b7f0d487ab69f3e2e09e9f7f88eb904688cb9b","reason":"too_many_problems","run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":5,"sha256":"sha256:63709c15f83ac2393467f5be937840613377830ba6af8b73de1e9f88f4a229c2","switch_id":"switch-lifecycle-proof-bbb693b01824-1792866771","switch_record_sha256":null} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/switch.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/switch.json new file mode 100644 index 000000000..d4d3f40ed --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/switch.json @@ -0,0 +1,42 @@ +{ + "log": "/Users/abrichr/oa/scratch/production-lifecycle/runs/smoke-5/arms/openadapt-production-relabel/switch/log-1792866771.jsonl", + "record": { + "allowed_interstitials": {}, + "bundle_content_digest": "bbb693b01824f47b414b5dd54425f16502a7533c74e797116ff8f4f8a1925577", + "channel": "desktop_run_it_list_with_header", + "dedicated_user_ref": "hmac-sha256:416c28d5858aff6dc46c5f2e1f00ead21c20ceaa4a64e3d4a1b8330b23f89f7e", + "environment_digest": "sha256:2dc00aa5bd8d4cb971fc11d724d7bae63aaa300f8cfe636298f68d5500913df5", + "org_id": "org-lifecycle-proof", + "profile": "regulated", + "rung_floor": { + "step_000": "structural", + "step_003": "structural", + "step_006": "structural", + "step_009": "structural", + "step_012": "structural", + "step_016": "structural", + "step_018": "structural", + "step_021": "structural", + "step_024": "structural", + "step_027": "structural", + "step_030": "structural", + "step_033": "structural", + "step_036": "structural", + "step_039": "structural", + "step_040": "structural" + }, + "runner_id": "lifecycle-proof-runner-1", + "schema_version": "openadapt.approval-mode-switch/v1", + "switch_id": "switch-lifecycle-proof-bbb693b01824-1792866771", + "thresholds": { + "problems_in_a_row": 3, + "problems_in_window": 5, + "problems_window": 20, + "status_max_age_s": 900 + }, + "verifier_identities": [ + "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2" + ], + "workflow_id": "workflow-openemr-referral" + } +} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/workload.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/workload.jsonl new file mode 100644 index 000000000..0ccb31af4 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/workload.jsonl @@ -0,0 +1,16 @@ +{"days": 1, "exception_mix": {"ambiguous_new_person": 0.02, "ambiguous_same_person": 0.02, "concurrent_other": 0.02, "concurrent_same": 0.015, "dup_existing": 0.03, "dup_resend": 0.03, "failed_save": 0.015, "malformed_case": 0.02, "malformed_dob": 0.02, "missing_optional": 0.02, "missing_required": 0.02, "session_expiry": 0.02, "slow_save": 0.02}, "items": 2, "seed": 7, "type": "workload", "version": "lifecycle-workload/2026-10-20.2"} +{"DOB": "1941-02-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ana.fairwick.9000@example.invalid", "fname": "Ana", "lname": "Fairwick", "phone_home": "555-0174", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "276 QUARRY HILL DRIVE", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1939-02-14", "city": "EXAMPLETON", "country_code": "USA", "email": "theo.radley.9001@example.invalid", "fname": "Theo", "lname": "Radley", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "216 QUARRY HILL DRIVE", "title": "Ms.", "type": "existing_chart"} +{"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.oakwood.9002@example.invalid", "fname": "Rosalind", "lname": "Oakwood", "phone_home": "555-0106", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "323 WILLOW BEND ROAD", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1972-07-05", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.birchfield.9003@example.invalid", "fname": "Bram", "lname": "Birchfield", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "278 QUARRY HILL DRIVE", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1959-06-04", "city": "EXAMPLETON", "country_code": "USA", "email": "gideon.galwick.9004@example.invalid", "fname": "Gideon", "lname": "Galwick", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "282 QUARRY HILL DRIVE", "title": "Ms.", "type": "existing_chart"} +{"DOB": "1975-08-19", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenridge.9005@example.invalid", "fname": "Odile", "lname": "Quenridge", "phone_home": "555-0138", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "474 WAY", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1945-10-10", "city": "EXAMPLETON", "country_code": "USA", "email": "yuki.galwick.9006@example.invalid", "fname": "Yuki", "lname": "Galwick", "phone_home": "555-0193", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "270 WAY", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1950-09-14", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jessmere.9007@example.invalid", "fname": "Oren", "lname": "Jessmere", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "86 AVENUE MILL ROAD", "title": "Ms.", "type": "existing_chart"} +{"DOB": "1975-06-23", "city": "EXAMPLETON", "country_code": "USA", "email": "henrik.birchmore.9008@example.invalid", "fname": "Henrik", "lname": "Birchmore", "phone_home": "555-0108", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "181 WAY", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.jesston.9009@example.invalid", "fname": "Arlo", "lname": "Jesston", "phone_home": "555-0136", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "361 BEACON TERRACE STATION", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.jessmere.9011@example.invalid", "fname": "Odile", "lname": "Jessmere", "phone_home": "555-0121", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "471 WAY", "title": "Ms.", "type": "existing_chart"} +{"day": 0, "first_seq": 1, "kind": "relabel_save", "type": "drift_scheduled"} +{"app": "openemr", "day": 0, "item_id": "ref-00001", "params": {"DOB": "1990-09-09", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.jesswood.1@example.invalid", "fname": "Rosalind", "lname": "Jesswood", "phone_home": "555-0187", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "363 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 1, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Rosalind\nLast name: Jesswood\nDate of birth: 1990-09-09\nSex: Female\nStreet: 363 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0187\nEmail: rosalind.jesswood.1@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1990-09-09", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.jesswood.1@example.invalid", "fname": "Rosalind", "lname": "Jesswood", "phone_home": "555-0187", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "363 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00001", "person": {"DOB": "1990-09-09", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.jesswood.1@example.invalid", "fname": "Rosalind", "lname": "Jesswood", "phone_home": "555-0187", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "363 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 1}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00002", "params": {"DOB": "1957-03-08", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.fairwick.2@example.invalid", "fname": "Bram", "lname": "Fairwick", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "339 STREET CEDAR ROW", "title": "Ms."}, "seq": 2, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Bram\nLast name: Fairwick\nDate of birth: 1957-03-08\nSex: Female\nStreet: 339 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0162\nEmail: bram.fairwick.2@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1957-03-08", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.fairwick.2@example.invalid", "fname": "Bram", "lname": "Fairwick", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "339 STREET CEDAR ROW", "title": "Ms."}, "item_id": "ref-00002", "person": {"DOB": "1957-03-08", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.fairwick.2@example.invalid", "fname": "Bram", "lname": "Fairwick", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "339 STREET CEDAR ROW", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 2}, "type": "item"} diff --git a/packages/flow/openadapt_flow/approval_mode/gate.py b/packages/flow/openadapt_flow/approval_mode/gate.py index df3ec9a33..a081e698e 100644 --- a/packages/flow/openadapt_flow/approval_mode/gate.py +++ b/packages/flow/openadapt_flow/approval_mode/gate.py @@ -569,12 +569,33 @@ def _needs_approval(self) -> bool: if self.mode is ApprovalMode.EACH_ITEM: return True if self.mode is ApprovalMode.PROBLEMS_ONLY: - return self._item_fallback is not None or ( - self._decision is not None - and self._decision.kind is ItemDecisionKind.APPROVAL_REQUIRED + return ( + self._item_fallback is not None + or ( + self._decision is not None + and self._decision.kind is ItemDecisionKind.APPROVAL_REQUIRED + ) + or self._switch_reads_off() ) return False + def _switch_reads_off(self) -> bool: + """The local switch log already reads off (P1 would fail at the save). + + A switched-off mode waits for a person to approve the item, as in + ``each_item``. P1 runs at the save, after the last point a person can + be asked, so the ask happens here; without this, every item after the + switch turned off stopped at the save and nobody was asked. A missing + or unreadable log reads as off, as P1 does. + """ + + if self.record is None or self.log is None: + return True + try: + return bool(self.log.state().is_off) + except (SwitchLogError, OSError): + return True + def _before_step(self, ctx: StepContext) -> GateVerdict: if not self._began: raise RuntimeError("begin_item was not called for this run") diff --git a/packages/flow/openadapt_flow/repair/relabel.py b/packages/flow/openadapt_flow/repair/relabel.py index c46f3ca5a..744e3f47e 100644 --- a/packages/flow/openadapt_flow/repair/relabel.py +++ b/packages/flow/openadapt_flow/repair/relabel.py @@ -423,7 +423,7 @@ def run(*args: Any, **kwargs: Any) -> Any: ) except ReadmissionRefused as exc: timings["requalify_s"] = round(clock() - t0, 1) - result = captured.get("result") + result: Any = captured.get("result") if ( "fresh admission" not in str(exc) or not getattr(result, "passed", False) diff --git a/packages/flow/tests/test_approval_mode_replayer.py b/packages/flow/tests/test_approval_mode_replayer.py index 9901aec68..30c3b18b1 100644 --- a/packages/flow/tests/test_approval_mode_replayer.py +++ b/packages/flow/tests/test_approval_mode_replayer.py @@ -431,3 +431,59 @@ def test_outcome_words_are_identical_with_and_without_the_gate(tmp_path, answer) without = plain.run(gate=False) assert with_gate.transaction_outcome == without.transaction_outcome assert with_gate.execution_outcome == without.execution_outcome + + +def test_a_switched_off_mode_asks_a_person_when_an_approval_store_is_wired(tmp_path): + """Switched off, problems_only waits for a person as each_item does. + + The switch check (P1) runs at the save, after the last point a person can + be asked. With an approval store wired, the gate must ask there instead of + stopping every later item unasked. + """ + + from openadapt_flow.approval_mode.item_approval import ItemApprovalStore + from tests.test_approval_mode_each_item import APPROVE, FormBackend, Person + + person = Person([APPROVE]) + store = ItemApprovalStore(tmp_path / "run") + person.store = store + item = Item( + tmp_path, + approval_store=store, + approval_wait_s=30.0, + approval_poll_s=1.0, + sleep=person.sleep, + monotonic=person.monotonic, + ) + item.backend = FormBackend() + turn_off(item.log, OffReason.TURNED_OFF) + report = item.run() + + assert len(person.seen) == 1 # one request, answered by the person + assert _save_delivered(item.backend) + assert report.transaction_outcome == "VERIFIED" + assert [a.decision for a in report.approval.approvals] == ["approved"] + + +def test_a_switched_off_mode_without_an_answer_still_saves_nothing(tmp_path): + from openadapt_flow.approval_mode.item_approval import ItemApprovalStore + from tests.test_approval_mode_each_item import FormBackend, Person + + person = Person([None]) # nobody answers + store = ItemApprovalStore(tmp_path / "run") + person.store = store + item = Item( + tmp_path, + approval_store=store, + approval_wait_s=5.0, + approval_poll_s=1.0, + sleep=person.sleep, + monotonic=person.monotonic, + ) + item.backend = FormBackend() + turn_off(item.log, OffReason.TURNED_OFF) + report = item.run() + + assert not _save_delivered(item.backend) + assert report.transaction_outcome == "HALTED_BEFORE_EFFECT" + assert report.approval.needs_person From 597c7e46f6b9805daa3e24de58eb527e6f661dc8 Mon Sep 17 00:00:00 2001 From: abrichr <richard.abrich@mldsai.com> Date: Sat, 24 Oct 2026 19:09:02 -0400 Subject: [PATCH 06/16] measure: results README for the production-lifecycle soaks Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --- .../results/production-2026-10-24/README.md | 240 ++++++++++++++++++ 1 file changed, 240 insertions(+) create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md new file mode 100644 index 000000000..cd67ded08 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md @@ -0,0 +1,240 @@ +# Production configuration on local OpenEMR: before and after (2026-10-24) + +Does the production configuration remove work, or only stop safely? These +runs measure it with the lifecycle soak on the local OpenEMR referral +fixture (OpenEMR 8.0.0.3, synthetic patients only). + +## The configuration + +It is the configuration `benchmark/lifecycle_proof` proved in proof-15. The +soak runs it per item through `production_arm.py`: + +- the Regulated profile; +- governed authorization from the run gate on the certified, encrypted + bundle, pinned to the admitted digest; +- durable runs with an encrypted checkpoint store; +- the API tier where admissible (refused on this program by its own proposal, + so the GUI save runs); +- pipelined read-back, one window (the harness waits for each check before it + judges the item); +- self-repair on; +- `problems_only` approval. + +No model was called in any run. + +## The stream + +The stream is seed 7, 55 referrals over 10 simulated days, workload +`lifecycle-workload/2026-10-24.1`. Its items: + +- 30 clean; +- 4 new patients who share a last name with an existing chart; +- 3 who share a date of birth with one; +- the soak's data exceptions and item faults (duplicates, resends, missing and + malformed values, other clerks, a slow save, a forced logout). + +The mix is stress-weighted, not a measured intake mix. + +One app change ran before item 26: OpenEMR's save button "Confirm Create New +Patient" became "Save new patient" (proof-15's change), served to every +client. + +The operator is the soak's scripted operator. It is charged from cost model +`lifecycle-cost/2026-10-20.1`: + +- approval: 20 s; +- stop: 90 s; +- reconcile: 120 s; +- repair review: 120 s; +- entering an item by hand: 180 s; +- admission: 300 s; +- plus a 30 s interrupt on every request. + +These are assumptions, not measured operator times; see the bands below. + +## The two arms + +| Arm | What runs | +| --- | --- | +| `before` | Main as it was: the recorded program, whose duplicate check requires "No matches were found.", and no relabel repair. Admitted afresh by its own qualification (6 cases, 796 s). | +| `after` | The duplicate check reads OpenEMR's match list (`no_duplicate_candidate`, a fresh admission of that program version). The relabel repair is on. A switched-off `problems_only` gate asks a person before the save instead of stopping. Code: branch `fix/relabel-repair-duplicate-list`. | + +`before` was **stopped early at 27 of 55 items**, at the coordinator's +request. Every item had stopped, and continuing would only have repeated +that. Two of its items ran after the app change. + +## Results + +At x1 of the cost model. Run-only operator minutes exclude setup; "with +setup" adds the 5-minute admission charge. + +| | before (27 items) | after (55 items) | +| --- | ---: | ---: | +| **Verified items per operator-minute** (run only) | **0.033** | **0.327** | +| ... with setup | 0.031 | 0.314 | +| Entering every item by hand, items per operator-minute | 0.333 | 0.333 | +| Charts the program saved and the oracle confirmed | 0 | 30 | +| Items right without hand entry (incl. correct non-saves) | 4 | 41 | +| Items entered by hand | 23 | 14 | +| False stops per 100 items | 70.4 | 16.4 | +| All stops per 100 items | 100 | 45.5 | +| Operator minutes per stopped item | 4.56 | 3.72 | +| Operator minutes in total (run) | 123.0 | 125.5 | +| Silent wrong (claimed done, oracle wrong) | 0 of 0 | 0 of 30 (95% CI 0-11.3%) | +| Wrong writes the record check caught (`flagged_wrong`) | 0 | 2 | +| Median item time | 227 s | 119 s | +| Host 1-minute load, median / max | 7.0 / 76.1 | 8.0 / 102.5 | + +Bands, verified items per operator-minute: + +| | x0.5 | x1 | x2 | +| --- | ---: | ---: | ---: | +| before | 0.065 | 0.033 | 0.016 | +| after | 0.653 | 0.327 | 0.163 | + +At x1, `after` uses 2.18 operator hours for 55 items. Entering all 55 by hand +would take 2.75 hours, so `after` uses 21% less operator time. `before` used +2.13 hours for 27 items, against 1.35 hours by hand: 58% more. + +Where `after`'s 125.5 operator minutes went: + +| Kind | Minutes | +| --- | ---: | +| Stops, with the items entered by hand | 82.0 | +| Approvals (30 × 50 s) | 25.0 | +| Reconciliations | 11.0 | +| Relabel repair review | 2.5 | +| Fresh admission after the app change | 5.0 | + +### Why items stopped + +`before` stopped on all 27 items: + +- **Duplicate check: 15.** OpenEMR lists any chart that shares a first or last + name or the date of birth, and the recorded program stops on any listed + chart. 9 of the 15 shared only a first name with an existing chart. +- **`problems_only` switched off, stopped unasked: 10.** The switch turned + off, and every later item stopped at the save without a person being asked + (fixed in `after`). +- Missing date of birth: 1 (right). +- Relabeled save, identity check: 1. + +`after` stopped on 25 of 55: + +- **Duplicate check: 18**, by the field the item shared with an existing chart: + last name 9, last name and date of birth 5, date of birth 2, first name only + 1, none at the start 1. + - 8 were right stops: duplicates, resends, another clerk's chart, and the + same person with a mistyped date of birth. + - 9 were false stops: new patients with a common surname or a shared date of + birth. The rule stops them on purpose; a person decides. +- Missing values: 4. + - 2 missing a date of birth were right stops. + - 2 missing a home phone stopped too: the program refuses an empty input, + although a blank home phone is allowed. +- Malformed date of birth: 2 wrong writes caught (below). +- Relabeled save: 1, repaired (below). + +### The two wrong writes + +The program types the date of birth into a text field, and its parameter is +declared as a plain `string`. Two referrals wrote it as `MM/DD/YYYY` +(`malformed_dob`). OpenEMR stored today's date. In both, the record check +refuted the save (`RECONCILIATION_REQUIRED`) and the item went to a person. +Neither was silent, but a wrong chart landed. + +The first one, item 6, turned the `problems_only` switch off for the rest of +the run (`uncertain_result`). Every later saved item then needed one approval: +the 25 approval minutes above. Declaring the date of birth as a date +parameter would refuse these inputs before the save; it is the next fix. +`before` didn't write them only because it stopped earlier on these items. + +### After the app change: stopped to running again + +At item 26 the run stopped before the save: the save button's identity +check failed. The smallest safe path back, measured live: + +1. **Prove it's a relabel** (`repair/relabel.py`). The recorded identity hash + matches the observed control with only the label swapped back, so the + control id, kind and form are unchanged. +2. **Re-qualify on the new release.** This is the parent's own six-case + campaign on the test copy, with the environment lock re-pinned to the + running release (one changed file, `new_search_popup.php`). It took 763 s + of machine time. +3. **A person reviews once** (charged 2.5 minutes). A save button's identity is + part of the record check, so no lineage hop may carry it, and approving it + is a **fresh admission** of the certified copy (charged 5 minutes). The + deployment re-pins to its digest. +4. The stopped item, which never wrote, ran again on the new version as a + retry and saved once. + +That's 8.3 operator minutes, including the retry's approval. It took 896 s +from the stop to the item done, and 1,370 s from the change to the next +verified item (item 28). The smoke run in `recovery-smoke/` measured the same +path: 850 s to re-qualify, then VERIFIED. + +In `before` and in proof-15, every item after this change stopped until a +person re-taught the step. + +## Product bugs these runs found (fixed on `fix/relabel-repair-duplicate-list`) + +1. **Re-qualification after a repair was always refused in the process that + qualified the parent.** A case run's authorization id is its run id, and a + process refuses an id it has already used. `readmission.requalify` now + names each re-qualification's runs afresh. proof-15's repair hop never + ran, so it never hit this. +2. **A switched-off `problems_only` gate never asked a person.** The switch + check runs at the save, after the last point a person can be asked. The + gate now asks there while the switch log reads off, as `each_item` does. +3. **The duplicate check stopped on first-name matches.** The new + postcondition stops only on a listed chart with the item's last name or + date of birth, and fails closed on an unreadable or unloaded list. + +The harness found and fixed two problems of its own: + +- the DB dump was not binary-safe; +- restoring an older dump of OpenEMR's `keys` table broke every OAuth token. + +## What these runs don't show + +- **Operator times are assumed** (the cost model); no person was timed. +- **One seed.** The 95% intervals on rates are wide (false stops 13-40% in + `after`). +- `before` covers 27 items, not 55. +- **Timings:** some items ran at a 1-minute load above 40 (max 102 in + `after`, 76 in `before`). Item times at those loads may be longer. +- **The switch record for a re-admitted version is opened locally**, as + proof-15 does; Cloud's thresholds and status route are not part of the run. +- **The harness's by-hand fix of a wrong chart creates a second chart** + rather than editing the wrong one, so those 2 items end `wrong` in the + final view. +- **Pipelined read-back's wall-time gain is not shown**, because the harness + waits for each check. + +## Files + +Each of `before/`, `after/` and `recovery-smoke/` holds: + +- `ledger.jsonl`: every event, item, operator request and phase; +- `workload.jsonl`: the stream and its ground truth; +- `results.json` and `REPORT.md`, computed from the ledger + (`python -m benchmark.lifecycle.report <dir>` recomputes them); +- `stops.jsonl`; +- `arm-ledger.jsonl`: the arm's own events; +- `switch/`: the `problems_only` switch records and logs. + +## Reproduce + +Take the fixture lease first (`~/oa/scratch/fixture-lease/README.md`). Then, +from `packages/flow`: + +```bash +export LIFECYCLE_OPENEMR_PROJECT=openadapt-openemr-compose LIFECYCLE_UI_PORT=9401 LIFECYCLE_API_PORT=9400 +export LIFECYCLE_OPENEMR_STATE=~/oa/scratch/compose-proof/openemr-state PYTHONPATH=.:../types +python -m benchmark.lifecycle_proof.run up --out /tmp/up --keys ~/oa/scratch/compose-proof/keys +python -m benchmark.lifecycle.run --app openemr --seed 7 --items 55 --days 10 --drift relabel_save@26 \ + --arm benchmark.lifecycle.production_arm:make --arm-options '{"recovery":"none"}' --out <dir> +python -m benchmark.lifecycle.run --app openemr --seed 7 --items 55 --days 10 --drift relabel_save@26 \ + --arm benchmark.lifecycle.production_arm:make \ + --arm-options '{"recovery":"relabel","duplicate_check":true}' --out <dir> +``` From a35fb6ee1287a17409624458a9e70fc9d7213ac2 Mon Sep 17 00:00:00 2001 From: abrichr <richard.abrich@mldsai.com> Date: Sat, 24 Oct 2026 19:23:56 -0400 Subject: [PATCH 07/16] measure: one headline with exact definitions, switch-off cost, typed_dob arm option Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --- .../benchmark/lifecycle/production_arm.py | 36 ++++++++++++ .../results/production-2026-10-24/README.md | 58 ++++++++++++++----- 2 files changed, 79 insertions(+), 15 deletions(-) diff --git a/packages/flow/benchmark/lifecycle/production_arm.py b/packages/flow/benchmark/lifecycle/production_arm.py index 1e57597d3..4d087569f 100644 --- a/packages/flow/benchmark/lifecycle/production_arm.py +++ b/packages/flow/benchmark/lifecycle/production_arm.py @@ -146,6 +146,9 @@ def __init__(self, options: dict[str, Any]) -> None: #: list (no_duplicate_candidate) instead of requiring "No matches #: were found.". A program change, so it gets its own admission. self.duplicate_check = bool(options.get("duplicate_check", False)) + #: Admit a version whose date of birth is a typed ``date`` parameter, + #: so a date written another way is refused before any step. + self.typed_dob = bool(options.get("typed_dob", False)) self.recovery = str(options.get("recovery", "none")) if self.recovery not in ("none", "relabel"): raise ValueError(f"unknown recovery {self.recovery!r}") @@ -176,6 +179,7 @@ def describe(self) -> dict[str, Any]: "approval": "problems_only (local stand-in for Cloud's switch status)", "policy": proof.POLICY, "recovery": self.recovery, + "typed_dob": self.typed_dob, "duplicate_check": ( "no_duplicate_candidate on step_039 (rows tr.oneresult; a row " "with the item's last name or date of birth stops the item)" @@ -208,6 +212,8 @@ def setup(self, env: Env, operator: Any) -> list[dict[str, Any]]: else: if self.duplicate_check: source = with_duplicate_list_check(source, out / "program") + if self.typed_dob: + source = with_typed_dob(source, out / "program-typed-dob") dump = app.dump() try: proof.phase_admit(ctx, source, self.trials) @@ -743,6 +749,36 @@ def with_duplicate_list_check(source: Path, out: Path) -> Path: return out +def with_typed_dob(source: Path, out: Path) -> Path: + """The program with its date of birth declared as a ``date`` parameter. + + The recorded program types the date of birth as a plain string, so a + referral that writes it as MM/DD/YYYY was typed into the form and saved + as whatever OpenEMR made of it. Declared as a date, a value that is not a + canonical ISO date refuses the run before any step. Nothing else changes; + the result is uncertified, so admission qualifies it afresh. + """ + + import shutil + + from openadapt_flow.ir import ParamKind, ParamSpec, Workflow + from openadapt_flow.repair.self_repair import _uncertify_patch + + workflow = Workflow.load(source) + specs = dict(workflow.param_specs) + current = specs.get("DOB") or ParamSpec( + name="DOB", example=workflow.params.get("DOB") + ) + specs["DOB"] = current.model_copy(update={"type": ParamKind.DATE}) + workflow.param_specs = specs + _uncertify_patch(workflow) + if out.exists(): + shutil.rmtree(out) + shutil.copytree(source, out, ignore=shutil.ignore_patterns("manifest.json")) + workflow.save(out) + return out + + def make(options: dict[str, Any]) -> ProductionArm: os.environ.setdefault("OPENADAPT_NO_LAUNCHER_CHECK", "1") return ProductionArm(options) diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md index cd67ded08..0a1f624c3 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md @@ -65,14 +65,42 @@ that. Two of its items ran after the app change. ## Results -At x1 of the cost model. Run-only operator minutes exclude setup; "with -setup" adds the 5-minute admission charge. +### The metrics, exactly + +- **Verified items per operator-minute (the headline).** + - Numerator: items whose final state the independent oracle (a direct SQL + read) judges right and that no person entered by hand. This includes + items where the right outcome is no new chart (a duplicate, a resend, a + missing date of birth) and the program stopped without writing. + - Denominator: every operator minute the run charged. That covers + approvals, stops, reconciliations, resumes, repair reviews, fresh + admissions and items entered by hand, with a 30 s interrupt on every + request. Setup (the first admission) is left out; the "with setup" row + adds it. +- **The by-hand reference.** One item entered by hand costs 180 s (the cost + model's `manual_entry_s`), so 0.333 items per operator-minute. Every cost + scales together in the bands, so the ratio of the two numbers is the same + in every band. +- **Operator minutes for the whole stream** (a secondary view). The run's + operator minutes, compared with entering every item of the stream by hand + (55 × 180 s = 165 minutes). This view credits the program for the 14 items + it left to a person only through the minutes it spent on them, so it reads + more favourably than the headline. + +### Headline + +**About break-even on this stream.** After the fixes, the configuration +completes 0.327 verified items per operator-minute, against 0.333 entering +them by hand: 0.98 times the by-hand rate, in every cost-model band (x0.5: +0.653 against 0.667; x2: 0.163 against 0.167). Before the fixes, main +completed 0.033, a tenth of the by-hand rate, and the program saved no chart +at all. | | before (27 items) | after (55 items) | | --- | ---: | ---: | | **Verified items per operator-minute** (run only) | **0.033** | **0.327** | | ... with setup | 0.031 | 0.314 | -| Entering every item by hand, items per operator-minute | 0.333 | 0.333 | +| By hand, items per operator-minute | 0.333 | 0.333 | | Charts the program saved and the oracle confirmed | 0 | 30 | | Items right without hand entry (incl. correct non-saves) | 4 | 41 | | Items entered by hand | 23 | 14 | @@ -80,22 +108,12 @@ setup" adds the 5-minute admission charge. | All stops per 100 items | 100 | 45.5 | | Operator minutes per stopped item | 4.56 | 3.72 | | Operator minutes in total (run) | 123.0 | 125.5 | +| Operator minutes for the stream by hand | 81.0 (27 items) | 165.0 (55 items) | | Silent wrong (claimed done, oracle wrong) | 0 of 0 | 0 of 30 (95% CI 0-11.3%) | | Wrong writes the record check caught (`flagged_wrong`) | 0 | 2 | | Median item time | 227 s | 119 s | | Host 1-minute load, median / max | 7.0 / 76.1 | 8.0 / 102.5 | -Bands, verified items per operator-minute: - -| | x0.5 | x1 | x2 | -| --- | ---: | ---: | ---: | -| before | 0.065 | 0.033 | 0.016 | -| after | 0.653 | 0.327 | 0.163 | - -At x1, `after` uses 2.18 operator hours for 55 items. Entering all 55 by hand -would take 2.75 hours, so `after` uses 21% less operator time. `before` used -2.13 hours for 27 items, against 1.35 hours by hand: 58% more. - Where `after`'s 125.5 operator minutes went: | Kind | Minutes | @@ -106,6 +124,14 @@ Where `after`'s 125.5 operator minutes went: | Relabel repair review | 2.5 | | Fresh admission after the app change | 5.0 | +**The switch turning off.** All 25.0 approval minutes (20% of the run's +operator time) came after one caught problem turned the `problems_only` +switch off: the malformed date of birth at item 6 (`uncertain_result`). The +switch record opened for the re-admitted version turned off the same way, at +its first item, 26. A switch that has turned off stays off until a new switch +record is issued; this run does not change that rule. Whether it should +re-arm on its own is a policy decision, not made here. + ### Why items stopped `before` stopped on all 27 items: @@ -146,7 +172,9 @@ Neither was silent, but a wrong chart landed. The first one, item 6, turned the `problems_only` switch off for the rest of the run (`uncertain_result`). Every later saved item then needed one approval: the 25 approval minutes above. Declaring the date of birth as a date -parameter would refuse these inputs before the save; it is the next fix. +parameter refuses these inputs before any step. That change is in #1514 +(`ParamKind.DATE` is checked before the run starts; `typed_dob` in the arm). +It is not in this `after` run, and it is the next measured change. `before` didn't write them only because it stopped earlier on these items. ### After the app change: stopped to running again From 78b63c90cfc46879636e49ba762a0f006eb863df Mon Sep 17 00:00:00 2001 From: abrichr <richard.abrich@mldsai.com> Date: Sat, 24 Oct 2026 19:29:12 -0400 Subject: [PATCH 08/16] measure: intake_dates arm option (convert item dates to ISO as intake does) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --- .../benchmark/lifecycle/production_arm.py | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/packages/flow/benchmark/lifecycle/production_arm.py b/packages/flow/benchmark/lifecycle/production_arm.py index 4d087569f..3e1dfcbe0 100644 --- a/packages/flow/benchmark/lifecycle/production_arm.py +++ b/packages/flow/benchmark/lifecycle/production_arm.py @@ -149,6 +149,9 @@ def __init__(self, options: dict[str, Any]) -> None: #: Admit a version whose date of birth is a typed ``date`` parameter, #: so a date written another way is refused before any step. self.typed_dob = bool(options.get("typed_dob", False)) + #: Convert each item's date parameters to ISO as intake does before + #: the run (the referral writes dates however its sender writes them). + self.intake_dates = bool(options.get("intake_dates", False)) self.recovery = str(options.get("recovery", "none")) if self.recovery not in ("none", "relabel"): raise ValueError(f"unknown recovery {self.recovery!r}") @@ -180,6 +183,7 @@ def describe(self) -> dict[str, Any]: "policy": proof.POLICY, "recovery": self.recovery, "typed_dob": self.typed_dob, + "intake_dates": self.intake_dates, "duplicate_check": ( "no_duplicate_candidate on step_039 (rows tr.oneresult; a row " "with the item's last name or date of birth stops the item)" @@ -321,6 +325,8 @@ def run_item(self, item: WorkItem, env: Env, operator: Any) -> ItemResult: t0 = time.time() run_dir = self._run_dir(item) detail: dict[str, Any] = {"run_dir": str(run_dir.relative_to(env.workdir))} + if self.intake_dates: + item = self._intake_dates(item, detail) phases: list[dict[str, Any]] = [] try: report = self._execute(item, run_dir) @@ -389,6 +395,38 @@ def run_item(self, item: WorkItem, env: Env, operator: Any) -> ItemResult: return self._result(item, "done", summary, t0, detail, phases) return self._result(item, "stopped", summary, t0, detail, phases) + def _intake_dates(self, item: WorkItem, detail: dict[str, Any]) -> WorkItem: + """Each date parameter as intake converts it, with the conversion kept. + + A date whose order can't be told (or that doesn't exist) is left as + written: the run's own ISO check then refuses it before any step. + """ + + import dataclasses + + from openadapt_flow.intake.extract import normalize_date + from openadapt_flow.ir import ParamKind, Workflow + + specs = Workflow.load(Path(self.ctx["bundle"])).param_specs + params = dict(item.params) + notes = {} + for name, spec in specs.items(): + if spec.type is not ParamKind.DATE or not params.get(name): + continue + iso, error, conversion = normalize_date(params[name]) + if error: + notes[name] = {"raw": params[name], "error": error} + elif conversion: + notes[name] = { + "raw": params[name], + "value": iso, + "conversion": conversion, + } + params[name] = str(iso) + if notes: + detail["intake_dates"] = notes + return dataclasses.replace(item, params=params) + def _resumable(self, run_dir: Path) -> bool: from openadapt_flow.runtime.durable import CheckpointStore From bab0821483a2f043e37115e95f6516bbea27ddc2 Mon Sep 17 00:00:00 2001 From: abrichr <richard.abrich@mldsai.com> Date: Sat, 24 Oct 2026 19:49:02 -0400 Subject: [PATCH 09/16] measure: re-arm offered to the operator, by-hand sensitivity (3/5/8/10 min), pinned approver keys in the proof gate Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --- packages/flow/benchmark/lifecycle/metrics.py | 27 +++++++ packages/flow/benchmark/lifecycle/operator.py | 4 + .../benchmark/lifecycle/production_arm.py | 81 +++++++++++++++++++ packages/flow/benchmark/lifecycle/report.py | 13 +++ .../production-2026-10-24/after/REPORT.md | 8 ++ .../production-2026-10-24/after/results.json | 34 ++++++++ .../flow/benchmark/lifecycle_proof/run.py | 6 +- 7 files changed, 170 insertions(+), 3 deletions(-) diff --git a/packages/flow/benchmark/lifecycle/metrics.py b/packages/flow/benchmark/lifecycle/metrics.py index 58378ce18..08fb0dd9d 100644 --- a/packages/flow/benchmark/lifecycle/metrics.py +++ b/packages/flow/benchmark/lifecycle/metrics.py @@ -38,6 +38,7 @@ from __future__ import annotations +import dataclasses import math from collections import Counter, defaultdict from typing import Any, Iterable, Optional @@ -86,6 +87,12 @@ def classify(*, claimed: str, oracle: str, chart_wanted: bool, exception: str) - return "silent_wrong" if done else "flagged_wrong" +#: Minutes a person takes to enter one item by hand, for the sensitivity +#: table: the cost model charges 3; a real intake desk with lookups takes +#: longer. Every other charge stays at x1. +BY_HAND_MINUTES = (3, 5, 8, 10) + + def stop_cause(row: dict[str, Any]) -> str: """Why an item stopped, from the product's own halt text (for root causes).""" @@ -306,6 +313,25 @@ def headline() -> dict[str, Any]: ), "after_app_change": drift_rows, } + by_hand = [] + for minutes in BY_HAND_MINUTES: + c = dataclasses.replace(cost, manual_entry_s=minutes * 60.0) + run_s = ( + sum(_phase_charge(c, r) for r in maint) + + sum(_charge(c, r) for r in repair_ops) + + sum(_charge(c, r) for r in item_ops) + ) + rate = len(completed) / (run_s / 60.0) if run_s else None + by_hand.append( + { + "by_hand_min_per_item": minutes, + "verified_per_operator_minute": round(rate, 3) if rate else None, + "by_hand_per_operator_minute": round(1 / minutes, 3), + "ratio_to_by_hand": round(rate * minutes, 2) if rate else None, + "operator_min_run": round(run_s / 60.0, 1), + "operator_min_stream_by_hand": round(len(items) * minutes, 1), + } + ) n = len(items) dup = [ r @@ -322,6 +348,7 @@ def matched(r: dict[str, Any]) -> str: return "first name only" if shares.get("fname") else "none at start" return { + "by_hand_sensitivity": by_hand, "duplicate_rule_stops": { "items": len(dup), "by_shared_field": dict(Counter(matched(r) for r in dup)), diff --git a/packages/flow/benchmark/lifecycle/operator.py b/packages/flow/benchmark/lifecycle/operator.py index 5c0ce5339..45dc9df43 100644 --- a/packages/flow/benchmark/lifecycle/operator.py +++ b/packages/flow/benchmark/lifecycle/operator.py @@ -86,6 +86,10 @@ def _decide(self, req: OperatorRequest) -> tuple[str, str, Optional[str]]: if self.drift_active() and ok: return "accept_repair", "repair_drift_and_probes_passed", None return "reject_repair", "repair_no_drift_or_probe_failed", None + if req.kind == "approval" and req.detail.get("rearm"): + # The switch was offered for re-arming after its run of verified + # items; the operator reads the cause and signs. + return "approve", "rearm_after_verified_streak", None if t is None: return "deny", "no_truth_for_item", None if req.kind == "approval": diff --git a/packages/flow/benchmark/lifecycle/production_arm.py b/packages/flow/benchmark/lifecycle/production_arm.py index 3e1dfcbe0..251942be1 100644 --- a/packages/flow/benchmark/lifecycle/production_arm.py +++ b/packages/flow/benchmark/lifecycle/production_arm.py @@ -152,6 +152,9 @@ def __init__(self, options: dict[str, Any]) -> None: #: Convert each item's date parameters to ISO as intake does before #: the run (the referral writes dates however its sender writes them). self.intake_dates = bool(options.get("intake_dates", False)) + #: Offer the operator a signed re-arm of a switched-off + #: problems_only switch once the log allows it (10 verified items). + self.rearm = bool(options.get("rearm", False)) self.recovery = str(options.get("recovery", "none")) if self.recovery not in ("none", "relabel"): raise ValueError(f"unknown recovery {self.recovery!r}") @@ -184,6 +187,7 @@ def describe(self) -> dict[str, Any]: "recovery": self.recovery, "typed_dob": self.typed_dob, "intake_dates": self.intake_dates, + "rearm": "operator signs when offered" if self.rearm else "never", "duplicate_check": ( "no_duplicate_candidate on step_039 (rows tr.oneresult; a row " "with the item's last name or date of birth stops the item)" @@ -229,6 +233,9 @@ def setup(self, env: Env, operator: Any) -> list[dict[str, Any]]: from openadapt_flow.runtime.readback_pipeline import ReadbackPipeline self.pipeline = ReadbackPipeline() + if self.rearm: + self._approver = self._approver_key() + ctx["approver_keys"] = self._approver[1] return [ { "phase": "admit", @@ -427,6 +434,76 @@ def _intake_dates(self, item: WorkItem, detail: dict[str, Any]) -> WorkItem: detail["intake_dates"] = notes return dataclasses.replace(item, params=params) + def _approver_key(self) -> tuple[Any, dict[str, str]]: + """A throwaway approver key for the scripted operator (outside the repo).""" + + import base64 + + from cryptography.hazmat.primitives.asymmetric.ed25519 import ( + Ed25519PrivateKey, + ) + from cryptography.hazmat.primitives.serialization import ( + Encoding, + NoEncryption, + PrivateFormat, + PublicFormat, + load_pem_private_key, + ) + + pem = self.keys_dir / "soak-approver.pem" + if not pem.exists(): + pem.write_bytes( + Ed25519PrivateKey.generate().private_bytes( + Encoding.PEM, PrivateFormat.PKCS8, NoEncryption() + ) + ) + pem.chmod(0o600) + private = load_pem_private_key(pem.read_bytes(), password=None) + public = private.public_key().public_bytes(Encoding.Raw, PublicFormat.Raw) # type: ignore[union-attr] + return private, {"soak-approver": base64.b64encode(public).decode("ascii")} + + def _offer_rearm(self, operator: Any, item: WorkItem) -> Optional[dict[str, Any]]: + """After an item: if the switch may be re-armed, the operator signs.""" + + from openadapt_flow.approval_mode.switch import ( + SwitchLogError, + rearm, + rearm_request, + sign_rearm, + ) + + log = self.ctx.get("switch_log") + if log is None: + return None + keys = self.ctx["approver_keys"] + try: + if not log.state(approver_keys=keys).is_off: + return None + request = rearm_request(log, cause="recorded in the arm ledger") + except SwitchLogError: + return None + decision = operator.ask( + OperatorRequest( + kind="approval", + item_id=item.item_id, + reason=f"re-arm problems_only after {len(request['clean_run_refs'])} " + f"verified items (off: {request['off_reason']})", + surface="Desktop: re-arm the switch (one signed tap)", + detail={"rearm": True, "off_reason": request["off_reason"]}, + ) + ) + if decision.action != "approve": + return {"rearmed": False} + evidence = sign_rearm( + log, + request, + approver_id="soak-operator", + key_id="soak-approver", + private_key=self._approver[0], + ) + event = rearm(log, evidence, approver_keys=keys) + return {"rearmed": True, "seq": event.seq, "off_reason": request["off_reason"]} + def _resumable(self, run_dir: Path) -> bool: from openadapt_flow.runtime.durable import CheckpointStore @@ -711,6 +788,10 @@ def _result( if x ) detail["final"] = summary + if self.rearm: + offered = self._offer_rearm(self.ctx["person"].operator, item) + if offered is not None: + detail["rearm"] = offered return ItemResult( item_id=item.item_id, claimed=claimed, # type: ignore[arg-type] diff --git a/packages/flow/benchmark/lifecycle/report.py b/packages/flow/benchmark/lifecycle/report.py index ec97995a3..d34a2623e 100644 --- a/packages/flow/benchmark/lifecycle/report.py +++ b/packages/flow/benchmark/lifecycle/report.py @@ -94,6 +94,19 @@ def render(res: dict[str, Any]) -> str: f"{d['first_verified_seq']}, " f"{d['seconds_to_running_again']} s after the change." ) + sens = h.get("by_hand_sensitivity") or [] + if sens: + lines += [ + "", + "| By hand, minutes per item | Verified per operator-minute | By hand per operator-minute | Ratio |", + "|---:|---:|---:|---:|", + ] + lines += [ + f"| {r['by_hand_min_per_item']} | {r['verified_per_operator_minute']} | " + f"{r['by_hand_per_operator_minute']} | {r['ratio_to_by_hand']} |" + for r in sens + ] + lines.append("") d = h.get("duplicate_rule_stops") if d and d["items"]: lines.append( diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/REPORT.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/REPORT.md index 0cb915e3f..730a540e1 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/REPORT.md +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/REPORT.md @@ -7,6 +7,14 @@ Protocol `lifecycle/2026-10-20.1`, workload `lifecycle-workload/2026-10-24.1`, s - **Verified items per operator-minute: 0.327** (41 verified of 55 items over 125.5 operator minutes; 0.314 with the 5.0 setup minutes). By hand: 0.333 an operator-minute. - False stops per 100 items: 16.36; all stops per 100 items: 45.45; operator minutes per stop: 3.72. - After the app change `relabel_save` (item 26): 7 of 30 items false-stopped, 42.5 operator minutes of maintenance (stops, repair reviews); first verified item after it: 28, 1370.3 s after the change. + +| By hand, minutes per item | Verified per operator-minute | By hand per operator-minute | Ratio | +|---:|---:|---:|---:| +| 3 | 0.327 | 0.333 | 0.98 | +| 5 | 0.267 | 0.2 | 1.34 | +| 8 | 0.21 | 0.125 | 1.68 | +| 10 | 0.183 | 0.1 | 1.83 | + - Duplicate-check stops: 18; field shared with an existing chart: {"lname": 9, "DOB": 2, "none at start": 1, "lname+DOB": 5, "first name only": 1}; judged {"false_stop": 9, "right_stop": 8, "fault_stop": 1}; exception kinds {"clean": 2, "shared_dob": 3, "concurrent_same": 2, "dup_resend": 2, "ambiguous_same_person": 1, "common_surname": 4, "dup_existing": 3, "slow_save": 1}. - Stops judged `data_stop`, by cause: other: REJECTED_POLICY HALTED / REJECTED_POLICY 2. - Stops judged `false_stop`, by cause: duplicate check listed a chart 9. diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/results.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/results.json index 40a1eccac..728ea057d 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/results.json +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/results.json @@ -176,6 +176,40 @@ "verified_per_operator_minute_with_setup": 0.157 } }, + "by_hand_sensitivity": [ + { + "by_hand_min_per_item": 3, + "by_hand_per_operator_minute": 0.333, + "operator_min_run": 125.5, + "operator_min_stream_by_hand": 165, + "ratio_to_by_hand": 0.98, + "verified_per_operator_minute": 0.327 + }, + { + "by_hand_min_per_item": 5, + "by_hand_per_operator_minute": 0.2, + "operator_min_run": 153.5, + "operator_min_stream_by_hand": 275, + "ratio_to_by_hand": 1.34, + "verified_per_operator_minute": 0.267 + }, + { + "by_hand_min_per_item": 8, + "by_hand_per_operator_minute": 0.125, + "operator_min_run": 195.5, + "operator_min_stream_by_hand": 440, + "ratio_to_by_hand": 1.68, + "verified_per_operator_minute": 0.21 + }, + { + "by_hand_min_per_item": 10, + "by_hand_per_operator_minute": 0.1, + "operator_min_run": 223.5, + "operator_min_stream_by_hand": 550, + "ratio_to_by_hand": 1.83, + "verified_per_operator_minute": 0.183 + } + ], "definition": "verified completed items (oracle-correct, not done by hand) per operator-minute; operator minutes are every charged approval, stop, reconciliation, resume, repair review and item done by hand, plus maintenance; *_with_setup also charges admission", "duplicate_rule_stops": { "by_exception": { diff --git a/packages/flow/benchmark/lifecycle_proof/run.py b/packages/flow/benchmark/lifecycle_proof/run.py index bbcbcc2f9..0e077e47e 100644 --- a/packages/flow/benchmark/lifecycle_proof/run.py +++ b/packages/flow/benchmark/lifecycle_proof/run.py @@ -363,6 +363,8 @@ def approval_gate(self, bundle: Path, page: Any) -> Any: record=ctx["switch_record"], log=ctx["switch_log"], pinned_status_keys=ctx["keys"]["status_keys"], + # A person's signed re-arm counts only with their key pinned. + pinned_approver_keys=ctx.get("approver_keys") or None, fetch_status=LocalStatusAuthority(ctx["keys"]["status_private"]), environment_digest=lambda: ctx["environment_digest"], runner_id=RUNNER_ID, @@ -941,9 +943,7 @@ def execute( # The item's own first run: the problems-only gate and the pin. from openadapt_flow.runtime import Replayer - item = Item( - self.ctx, self.item.key, Path(run_dir), params=self.item.params - ) + item = Item(self.ctx, self.item.key, Path(run_dir), params=self.item.params) verifier = item.verifier() replayer = Replayer( session.backend, From 40d0f29b5568c31ec231971f73b00bb87be09a03 Mon Sep 17 00:00:00 2001 From: abrichr <richard.abrich@mldsai.com> Date: Sat, 24 Oct 2026 19:50:24 -0400 Subject: [PATCH 10/16] measure: by-hand sensitivity table in the results README Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --- .../results/production-2026-10-24/README.md | 25 ++++++++++++++ .../production-2026-10-24/before/REPORT.md | 8 +++++ .../production-2026-10-24/before/results.json | 34 +++++++++++++++++++ 3 files changed, 67 insertions(+) diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md index 0a1f624c3..0411a67fa 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md @@ -114,6 +114,31 @@ at all. | Median item time | 227 s | 119 s | | Host 1-minute load, median / max | 7.0 / 76.1 | 8.0 / 102.5 | +### If entering an item by hand takes longer than 3 minutes + +The cost model charges 3 minutes to enter one referral by hand (the +12-field form, reading the referral and the duplicate search). A real intake +desk, with lookups, phone calls and interruptions, may take longer. This +table recomputes `after` from its own ledger with each by-hand time. The +run's own hand entries are charged at that time too; every other charge stays +at x1: +- approval 20 s; +- stop 90 s; +- reconcile 120 s; +- repair review 120 s; +- a 30 s interrupt on every request. + +| By hand, minutes per item | after: verified items per operator-minute | By hand: items per operator-minute | after ÷ by hand | +| ---: | ---: | ---: | ---: | +| 3 (the cost model) | 0.327 | 0.333 | 0.98 | +| 5 | 0.267 | 0.200 | 1.34 | +| 8 | 0.210 | 0.125 | 1.68 | +| 10 | 0.183 | 0.100 | 1.83 | + +None of these times is measured from a person. `benchmark/lifecycle/metrics.py` +(`BY_HAND_MINUTES`) computes the table, and `results.json` holds it under +`headline.by_hand_sensitivity`. + Where `after`'s 125.5 operator minutes went: | Kind | Minutes | diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/REPORT.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/REPORT.md index 8692d2a72..eeb656ca3 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/REPORT.md +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/REPORT.md @@ -7,6 +7,14 @@ Protocol `lifecycle/2026-10-20.1`, workload `lifecycle-workload/2026-10-24.1`, s - **Verified items per operator-minute: 0.033** (4 verified of 27 items over 123.0 operator minutes; 0.031 with the 5.0 setup minutes). By hand: 0.333 an operator-minute. - False stops per 100 items: 70.37; all stops per 100 items: 100.0; operator minutes per stop: 4.56. - After the app change `relabel_save` (item 26): 1 of 2 items false-stopped, 5.0 operator minutes of maintenance (stops, repair reviews); first verified item after it: None, None s after the change. + +| By hand, minutes per item | Verified per operator-minute | By hand per operator-minute | Ratio | +|---:|---:|---:|---:| +| 3 | 0.033 | 0.333 | 0.1 | +| 5 | 0.024 | 0.2 | 0.12 | +| 8 | 0.017 | 0.125 | 0.13 | +| 10 | 0.014 | 0.1 | 0.14 | + - Duplicate-check stops: 15; field shared with an existing chart: {"first name only": 9, "lname": 3, "DOB": 1, "none at start": 1, "lname+DOB": 1}; judged {"false_stop": 10, "right_stop": 3, "fault_stop": 1, "data_stop": 1}; exception kinds {"clean": 8, "shared_dob": 1, "concurrent_same": 1, "concurrent_other": 1, "malformed_dob": 1, "dup_resend": 1, "ambiguous_same_person": 1, "common_surname": 1}. - Stops judged `data_stop`, by cause: duplicate check listed a chart 1, identity check failed (relabeled control) 1, problems_only switch off; stopped unasked 1. - Stops judged `false_stop`, by cause: duplicate check listed a chart 10, problems_only switch off; stopped unasked 9. diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/results.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/results.json index 41f36b70d..b386fc1ef 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/results.json +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/results.json @@ -163,6 +163,40 @@ "verified_per_operator_minute_with_setup": 0.016 } }, + "by_hand_sensitivity": [ + { + "by_hand_min_per_item": 3, + "by_hand_per_operator_minute": 0.333, + "operator_min_run": 123.0, + "operator_min_stream_by_hand": 81, + "ratio_to_by_hand": 0.1, + "verified_per_operator_minute": 0.033 + }, + { + "by_hand_min_per_item": 5, + "by_hand_per_operator_minute": 0.2, + "operator_min_run": 169.0, + "operator_min_stream_by_hand": 135, + "ratio_to_by_hand": 0.12, + "verified_per_operator_minute": 0.024 + }, + { + "by_hand_min_per_item": 8, + "by_hand_per_operator_minute": 0.125, + "operator_min_run": 238.0, + "operator_min_stream_by_hand": 216, + "ratio_to_by_hand": 0.13, + "verified_per_operator_minute": 0.017 + }, + { + "by_hand_min_per_item": 10, + "by_hand_per_operator_minute": 0.1, + "operator_min_run": 284.0, + "operator_min_stream_by_hand": 270, + "ratio_to_by_hand": 0.14, + "verified_per_operator_minute": 0.014 + } + ], "definition": "verified completed items (oracle-correct, not done by hand) per operator-minute; operator minutes are every charged approval, stop, reconciliation, resume, repair review and item done by hand, plus maintenance; *_with_setup also charges admission", "duplicate_rule_stops": { "by_exception": { From aaaf55e910b18c789149f21adc7af239fddf73fd Mon Sep 17 00:00:00 2001 From: abrichr <richard.abrich@mldsai.com> Date: Sat, 24 Oct 2026 21:26:49 -0400 Subject: [PATCH 11/16] measure: soak re-arm signs as its registered approver and passes its trusted keys Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --- packages/flow/benchmark/lifecycle/production_arm.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/flow/benchmark/lifecycle/production_arm.py b/packages/flow/benchmark/lifecycle/production_arm.py index 251942be1..59c9452f7 100644 --- a/packages/flow/benchmark/lifecycle/production_arm.py +++ b/packages/flow/benchmark/lifecycle/production_arm.py @@ -479,7 +479,9 @@ def _offer_rearm(self, operator: Any, item: WorkItem) -> Optional[dict[str, Any] try: if not log.state(approver_keys=keys).is_off: return None - request = rearm_request(log, cause="recorded in the arm ledger") + request = rearm_request( + log, cause="recorded in the arm ledger", approver_keys=keys + ) except SwitchLogError: return None decision = operator.ask( @@ -497,7 +499,7 @@ def _offer_rearm(self, operator: Any, item: WorkItem) -> Optional[dict[str, Any] evidence = sign_rearm( log, request, - approver_id="soak-operator", + approver_id="soak-approver", key_id="soak-approver", private_key=self._approver[0], ) From c8c31dab67a8178bb0050d767bae8f481ca84160 Mon Sep 17 00:00:00 2001 From: abrichr <richard.abrich@mldsai.com> Date: Sun, 25 Oct 2026 04:11:37 -0400 Subject: [PATCH 12/16] measure: the after-arm re-run evidence (55 items; 1.97x by hand at 3 min/item, 0 silent wrongs; Phase 0 gate not met) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --- .../production-2026-10-25-rerun/README.md | 181 +++++++++ .../production-2026-10-25-rerun/REPORT.md | 73 ++++ .../arm-ledger.jsonl | 57 +++ .../production-2026-10-25-rerun/ledger.jsonl | 113 ++++++ .../production-2026-10-25-rerun/results.json | 357 ++++++++++++++++++ .../production-2026-10-25-rerun/run.log | 83 ++++ .../production-2026-10-25-rerun/stops.jsonl | 15 + .../switch/log-1792907498.jsonl | 41 ++ .../switch/log-1792911871.jsonl | 36 ++ .../switch/switch.json | 42 +++ .../workload.jsonl | 69 ++++ 11 files changed, 1067 insertions(+) create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/README.md create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/REPORT.md create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/arm-ledger.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/ledger.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/results.json create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/run.log create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/stops.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/log-1792907498.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/log-1792911871.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/switch.json create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/workload.jsonl diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/README.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/README.md new file mode 100644 index 000000000..b4d08fbb7 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/README.md @@ -0,0 +1,181 @@ +# Production configuration on local OpenEMR: the after arm re-run (2026-10-25) + +This is the same 55-item stream and app change as +[`production-2026-10-24`](../production-2026-10-24/README.md): seed 7, 10 +simulated days, workload `lifecycle-workload/2026-10-24.1`, and the save button +relabeled before item 26. This time the fixes that followed it are in. The +code isn't on main yet, so these are the exact commits measured. + +## What was measured + +Branch `measure/production-lifecycle-rerun` at **38fc21afb** (`run.log` +records it), which contains: + +| Piece | PR | Commit in this run | +| --- | --- | --- | +| Relabel repair, match-list duplicate check, fresh re-qualification ids, switched-off gate asks, ISO dates at intake, typed dates refused before any step | #1514 | 1485eb851 and the intake/typed-date commits | +| Switch policy: input problems leave the switch on, signed re-arm after 10 verified items | #1517 | **6b52dd320** (see the deviation below) | +| Record-channel duplicate check: FHIR, structured `duplicate_check` outcome | #1516 | 647af767d | +| Soak harness and arm: per-item timeout, re-arm offered to the operator, FHIR fixture patches | this branch | 4f7d71dc2, 38fc21afb | + +Configuration: the same as before, plus: + +- **Regulated profile, `problems_only` approval:** governed run gate, pinned + digest, durable runs, pipelined read-back, repair on. +- **Program version:** admitted afresh with: + - the duplicate check pinned to the record channel over **FHIR** + (`candidate_source="record"`, `candidate_channel="fhir"`). OpenEMR's REST + search can't page here, because its next link names the configured site + address; FHIR returns every match in one Bundle; + - the date of birth as a typed `date` parameter. +- **Intake:** each item's date converted to ISO as intake does + (`intake_dates`). +- **Recovery and re-arm:** relabel recovery on, and the scripted operator + signs a re-arm when one is offered. +- **Watchdogs:** a 2700 s per-item timeout and a one-hour ledger watchdog. + Neither fired. +- **Fixture:** a fresh OpenEMR stack. Its OAuth keys were restored after every + reset, and the read client had `api:fhir user/Patient.read` + (`openemr_patches.py`). + +No model was called. + +### Deviation: the switch policy commit + +The run used #1517 at 6b52dd320. That commit counted a duplicate stop as an +item-input problem only when `duplicate_check == "candidate"` (the screen +check's value). The record check reports `"exact"` or `"close"`, and +f42e51a8e, which counts those too, was not on this branch. So in this run +every real duplicate the record check found turned the switch off as a +program problem, instead of leaving it on. + +That happened at item 12 (another clerk had registered the same patient). +From item 13 on, every saved item waited for a person's approval: + +- 33 approvals, 27.5 operator minutes; +- no run of 10 verified items since a switch-off ever completed, so no + re-arm was offered. + +#1517's head classes these correctly, with tests. This run therefore +**under-states** the policy's effect. The numbers below are as measured. + +## Phase 0 gate: not met + +The gate is at least 2 times the by-hand rate at 3 minutes per item, with 0 +silent wrongs. This run measured **1.97 times**, just under 2, with **0 silent +wrongs**. So the gate is **not met** on this run: + +- the rate condition fails, by 0.03; +- the silent-wrong condition holds; +- the run used an older switch-policy commit (see the deviation below), so + the result understates the policy as merged. + +A further 55-item run on main (with #1517 merged) plus #1516 is queued to +measure the policy as merged. + +## Results + +At x1 of the cost model (approval 20 s, stop 90 s, reconcile 120 s, repair +review 120 s, a 30 s interrupt on every request). Run-only operator minutes. + +**Headline: 0.658 verified items per operator-minute, 1.97 times the by-hand +rate at 3 minutes per item.** Before the fixes, main reached 0.033, and the +first `after` run 0.327. + +| By hand, minutes per item | Verified items per operator-minute | By hand per operator-minute | Ratio | +| ---: | ---: | ---: | ---: | +| 3 (the cost model) | 0.658 | 0.333 | 1.97 | +| 5 | 0.596 | 0.200 | 2.98 | +| 8 | 0.523 | 0.125 | 4.18 | +| 10 | 0.483 | 0.100 | 4.83 | + +No by-hand time is measured from a person. Every other charge stays at x1, and +the run's own hand entries are charged at each by-hand time. + +| | before (27 items) | first after (55) | this re-run (55) | +| --- | ---: | ---: | ---: | +| Verified items per operator-minute | 0.033 | 0.327 | **0.658** | +| Charts the program saved and the oracle confirmed | 0 | 30 | **40** | +| Items right without hand entry (incl. correct non-saves) | 4 | 41 | **51** | +| Items entered by hand | 23 | 14 | **4** | +| False stops per 100 items | 70.4 | 16.4 | **1.8** | +| All stops per 100 items | 100 | 45.5 | **27.3** | +| Silent wrong (claimed done, oracle wrong) | 0 | 0 of 30 | **0 of 40** (95% CI 0-8.8%) | +| Wrong writes the record check caught | 0 | 2 | **0** | +| Items right at the end | 27 of 27 | 53 of 55 | **55 of 55** | +| Operator minutes (run) | 123.0 | 125.5 | **77.5** | +| Median item time | 227 s | 119 s | 123 s | +| Host 1-minute load, median / max | 7.0 / 76.1 | 8.0 / 102.5 | 10.3 / 95.2 | + +Where the 77.5 operator minutes went: + +| Kind | Minutes | +| --- | ---: | +| Stops, including 4 items entered by hand | 37.0 | +| Approvals: 33 after the switch turned off (the deviation) | 27.5 | +| Repair review, relabel | 2.5 | +| Fresh admission after the app change | 5.0 | +| Reconciliation | 5.5 | +| Re-arms | 0 (none offered) | + +### Stops, by cause (15 of 55) + +- **Right stops: 10.** + - **8 real duplicates.** + - Which: 3 charts that already existed, 2 registered moments earlier by + another clerk, 2 resends, and the same person with a mistyped date of + birth. + - Where they stopped: 7 at the record-channel duplicate check; 1 resend + by an item check before the run started. + - 2 with no date of birth (refused before any step). +- **Data stops: 3.** + - A date of birth `10/01/1958` that reads either way. Intake held it + back, and the typed date refused it before any step. Nothing was written. + - 2 referrals with no home phone, which the program refuses as an empty + input although a blank phone is allowed. +- **False stop: 1 (item 20).** The click on "Confirm Create New Patient" didn't + register: the duplicate dialog stayed open with the button focused, and no + chart was written. The program couldn't confirm the save and sent the item + to reconciliation (fail closed). It is a program problem, so the switch + stayed off. +- **Saved, then stopped: 1 (item 26).** The relabel item: re-qualified, + admitted afresh, and saved on the re-run. The record check couldn't match a + last name written in capitals with a trailing space, so a person confirmed + it. + +### Misses + +None. Every item's final state was right (55 of 55), and no duplicate was +saved. The 4 new patients who share a last name with an existing chart, and +the 3 who share a date of birth, were all registered correctly. Only item 5 +needed no person; the other 6 came after item 12 and waited for the approval +the switch-off required (the deviation above). + +### After the app change + +- Item 26 stopped on the relabeled save, was re-qualified on the new release + and admitted afresh, and saved. +- Item 27 verified with no person, 1,148 s after the change. +- Operator time for the change: 7.5 minutes (review 2.5, admission 5.0). +- No other item false-stopped after the change. + +## Where the code for this run is + +This directory holds the evidence only. The run's harness changes are on +`measure/production-lifecycle-rerun` and land with or after #1516, because the +arm sets #1516's `candidate_channel`: +- the per-item timeout; +- the re-arm offered to the operator; +- the soak-only FHIR patches in `benchmark/lifecycle/openemr_patches.py`; +- the fixture's token-scope fix for `api:fhir`. + +## Files + +Everything is computed from `ledger.jsonl` +(`python -m benchmark.lifecycle.report <dir>`): + +- `ledger.jsonl`, `workload.jsonl`, `results.json`, `REPORT.md`, + `stops.jsonl`; +- `arm-ledger.jsonl`; +- `switch/`: both switch records and logs; +- `run.log`: the console output, with the commit. diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/REPORT.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/REPORT.md new file mode 100644 index 000000000..fd77b1c57 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/REPORT.md @@ -0,0 +1,73 @@ +# Lifecycle soak report + +Protocol `lifecycle/2026-10-20.1`, workload `lifecycle-workload/2026-10-24.1`, seed 7, 55 referrals over 10 simulated days. Engine commit `38fc21afbfff`. App: openemr 8.0.0.3, synthetic data only. Cost model `lifecycle-cost/2026-10-20.1`. + +## Arm `openadapt-production-relabel` + +- **Verified items per operator-minute: 0.658** (51 verified of 55 items over 77.5 operator minutes; 0.618 with the 5.0 setup minutes). By hand: 0.333 an operator-minute. +- False stops per 100 items: 1.82; all stops per 100 items: 27.27; operator minutes per stop: 2.83. +- After the app change `relabel_save` (item 26): 0 of 30 items false-stopped, 7.5 operator minutes of maintenance (stops, repair reviews); first verified item after it: 27, 1147.7 s after the change. + +| By hand, minutes per item | Verified per operator-minute | By hand per operator-minute | Ratio | +|---:|---:|---:|---:| +| 3 | 0.658 | 0.333 | 1.97 | +| 5 | 0.596 | 0.2 | 2.98 | +| 8 | 0.523 | 0.125 | 4.18 | +| 10 | 0.483 | 0.1 | 4.83 | + +- Duplicate-check stops: 7; field shared with an existing chart: {"none at start": 1, "lname+DOB": 4, "lname": 1, "first name only": 1}; judged {"right_stop": 7}; exception kinds {"concurrent_same": 2, "dup_resend": 1, "ambiguous_same_person": 1, "dup_existing": 3}. +- Stops judged `data_stop`, by cause: other: REJECTED_POLICY HALTED / REJECTED_POLICY 3. +- Stops judged `false_stop`, by cause: other: RECONCILIATION_REQUIRED Postconditions failed for step 'step_040' (click 'Confirm Create New Patient'): 1. +- Stops judged `right_stop`, by cause: duplicate check listed a chart 7, other: REJECTED_POLICY HALTED / REJECTED_POLICY 3. +- Stops judged `stopped_saved`, by cause: identity check failed (relabeled control) 1. +- Cost-model bands, verified per operator-minute: x0.5 1.316, x1 0.658, x2 0.329. + +| | x0.5 | x1 | x2 | +|---|---:|---:|---:| +| Verified completed items per operator-hour | 74.18 | 37.09 | 18.55 | +| ... if every silent wrong is later found and fixed | 74.18 | 37.09 | 18.55 | +| All-manual items per operator-hour | 40 | 20 | 10 | +| Operator work removed vs all-manual | 50.0% | 50.0% | 50.0% | +| Setup minutes | 2.5 | 5 | 10 | +| Per-item operator minutes (mean) | 0.636 | 1.273 | 2.545 | +| Maintenance minutes (all UI changes) | 3.75 | 7.5 | 15 | +| Operator hours in total | 0.688 | 1.375 | 2.75 | + +- Items: 55; verified completed without hand entry: 51; right in the end: 55; done by hand: 4. +- False stops: 1 of 37 clean items, 2.7% (95% CI 0.5-13.8%); 0 of them with a UI change in force. +- Silent wrong: 0 of 40 items claimed done, 0.0% (95% CI 0.0-8.8%) (judged by direct SQL, never the product's verdict). +- Operator requests: {"stop": 14, "approval": 33, "reconcile": 1, "repair_review": 1}; actions: {"skip": 10, "approve": 33, "do_by_hand": 4, "accept_repair": 1, "confirm_saved": 1}. +- Outcomes: {"correct": 40, "right_stop": 10, "data_stop": 3, "false_stop": 1, "stopped_saved": 1}. +- Wall: 8055.8 s of item time, median 123.34 s an item; host 1-minute load median 10.3, max 95.2. +- Model calls 0, list-price cost $0.0. + +Outcome by exception: + +| Exception | Outcomes | +|---|---| +| ambiguous_same_person | right_stop 1 | +| clean | correct 29, false_stop 1 | +| common_surname | correct 4 | +| concurrent_other | correct 1 | +| concurrent_same | right_stop 2 | +| dup_existing | right_stop 3 | +| dup_resend | right_stop 2 | +| malformed_case | stopped_saved 1 | +| malformed_dob | correct 1, data_stop 1 | +| missing_optional | data_stop 2 | +| missing_required | right_stop 2 | +| session_expiry | correct 1 | +| shared_dob | correct 3 | +| slow_save | correct 1 | + +After each UI change (items until the next change): + +| Change | From item | Items | Outcomes | +|---|---:|---:|---| +| relabel_save | 26 | 30 | correct 21, data_stop 2, right_stop 6, stopped_saved 1 | + +## Assumptions + +Operator seconds per touch (`lifecycle-cost/2026-10-20.1`): admit 300, approval 20, compile_review 600, interrupt 30, manual_entry 180, question 60, reconcile 120, repair_review 120, stop 90, teach_prep 300. Every request also pays the interrupt charge. Bands scale every number. + +No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds). diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/arm-ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/arm-ledger.jsonl new file mode 100644 index 000000000..73f0d470e --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/arm-ledger.jsonl @@ -0,0 +1,57 @@ +{"at": 1792906413.836, "certification_invalidated": true, "encrypted": true, "encrypted_digest": "ae3bd5f235967f85210153918e8a6a84ea1dbaf1055a6dc8ae843c4c1976ec42", "kind": "admit.encrypt", "source_digest": "15971da038a14cf1c51e661ad66cc692ce165372dd2eac327a4b4a439cc93777"} +{"at": 1792906667.287, "kind": "admit.qualify.log", "line": "{\"case_id\": \"representative\", \"trial\": 1, \"expected\": \"VERIFIED\", \"execution_outcome\": \"VERIFIED\", \"transaction_outcome\": \"VERIFIED\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": true, \"model_calls\": 0, \"total_ms\": 197875.02162531018, \"failed_step_id\": null, \"failed_erro"} +{"at": 1792906877.269, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-ambiguity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 196623.12466697767, \"failed_step_id\": \"step_04"} +{"at": 1792907019.902, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-wrong-identity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"REJECTED_POLICY\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 129979.66112475842, \"failed_step_id\": \"step_04"} +{"at": 1792907160.684, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-stale-identity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 130219.5133343339, \"failed_step_id\": \"ste"} +{"at": 1792907299.017, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-weak-effect\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 126587.28370908648, \"failed_step_id\": \"step_"} +{"at": 1792907423.725, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-missing-effect\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 114267.83845806494, \"failed_step_id\": \"st"} +{"at": 1792907432.758, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"representative\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792907440.956, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-ambiguity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792907448.931, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-wrong-identity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792907456.807, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-stale-identity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792907465.363, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-weak-effect\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792907479.468, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-missing-effect\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792907479.469, "kind": "admit.qualify.log", "line": "pixels-only pass (informational): 0/6 (0%) trials behaved as required with structure lookups disabled; most common failure: StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"at": 1792907479.823, "kind": "admit.qualify.log", "line": "qualified lookups: structure on a local surface"} +{"at": 1792907480.106, "kind": "admit.qualify.log", "line": "PASS: qualification for 'openemr-create-synthetic-patient'\n identity coverage 1/1; effect coverage 1/1; cases 6/6"} +{"at": 1792907480.106, "kind": "admit.qualify.log", "line": "qualification-result/v1 0c73dbc66b20973d: passed=True silent_incorrect_success=0 over_halt=0 executor_model_calls=0 verifier_model_calls=0"} +{"at": 1792907486.945, "kind": "admit.qualify.log", "line": "no admission envelope: the qualification-admission/v1 envelope needs at least 3 trials per case; this campaign ran 1"} +{"at": 1792907493.563, "certified": true, "digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "kind": "admit.qualify", "passed": true, "rows": [{"case_id": "representative", "expected": "VERIFIED", "transaction_outcome": "VERIFIED", "trial": 1}, {"case_id": "fault-ambiguity", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-wrong-identity", "expected": "HALTED", "transaction_outcome": "REJECTED_POLICY", "trial": 1}, {"case_id": "fault-stale-identity", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-weak-effect", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-missing-effect", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}], "seconds": 1086.3} +{"at": 1792907493.563, "kind": "admit", "pinned_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "seconds": 1086.3} +{"at": 1792907498.245, "bundle": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-a3f60b4a247c-1792907498"} +{"action": "approve", "at": 1792909220.118, "item": "ref-00013", "kind": "person", "request_id": "e29f554c338a476aa92e2f2e4d596f90"} +{"action": "approve", "at": 1792909348.086, "item": "ref-00014", "kind": "person", "request_id": "df7ac72a96494a3b8732cd275df0304c"} +{"action": "approve", "at": 1792909474.343, "item": "ref-00015", "kind": "person", "request_id": "8be98d62d94d4ea1afa8068aa15d26c5"} +{"action": "approve", "at": 1792909601.601, "item": "ref-00016", "kind": "person", "request_id": "c35d1dbc2cf544429c6844f821710445"} +{"action": "approve", "at": 1792909728.179, "item": "ref-00017", "kind": "person", "request_id": "f749fbdb09714cc8bc9a0c0b8540d91b"} +{"action": "approve", "at": 1792909874.437, "item": "ref-00018", "kind": "person", "request_id": "d56a521e7d4b4787b0582867018836af"} +{"action": "approve", "at": 1792910038.782, "item": "ref-00020", "kind": "person", "request_id": "15bbffe5f85f4516a467af50705cae39"} +{"action": "approve", "at": 1792910411.776, "item": "ref-00022", "kind": "person", "request_id": "1362b7333a5f40e4a86dba92c832d343"} +{"action": "approve", "at": 1792910533.584, "item": "ref-00023", "kind": "person", "request_id": "9e2b9566b4df4258a1e5e33db751336a"} +{"action": "approve", "at": 1792910956.424, "item": "ref-00025", "kind": "person", "request_id": "ddd8effde3c848f9a0d7f00f3d837ea3"} +{"action": "approve", "at": 1792911079.295, "item": "ref-00026", "kind": "person", "request_id": "a52a4c0888544984ad5041f614f6c50f"} +{"at": 1792911101.848, "candidate": "/Users/abrichr/oa/scratch/production-lifecycle/runs/soak-after-policy-2/arms/openadapt-production-relabel/items/ref-00026-relabel/candidate", "kind": "drift.requalify.start"} +{"at": 1792911867.101, "kind": "drift.requalify.end"} +{"at": 1792911871.809, "bundle": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-959971d5e5ef-1792911871"} +{"action": "approve", "at": 1792911976.769, "item": "ref-00026", "kind": "person", "request_id": "68dc2fec01b546dabf944349c7b295f3"} +{"action": "approve", "at": 1792912104.337, "item": "ref-00027", "kind": "person", "request_id": "3009f327a0da4f39bbd1d0d388280c2d"} +{"action": "approve", "at": 1792912228.176, "item": "ref-00028", "kind": "person", "request_id": "31ce16ffa5ab4255a5486734b552b358"} +{"action": "approve", "at": 1792912594.431, "item": "ref-00030", "kind": "person", "request_id": "81b0a81cd99d4434a11388c0c9c54a75"} +{"action": "approve", "at": 1792912717.208, "item": "ref-00031", "kind": "person", "request_id": "801475c703524c978f80cf54123a4264"} +{"action": "approve", "at": 1792912850.77, "item": "ref-00033", "kind": "person", "request_id": "49300e5978a341cbaf041a12a43c4d98"} +{"action": "approve", "at": 1792913215.683, "item": "ref-00035", "kind": "person", "request_id": "93b7512140664b04b40ff1ae1eab6db7"} +{"action": "approve", "at": 1792913338.166, "item": "ref-00036", "kind": "person", "request_id": "dc7ea382316e4d55933f4fcae5e6f723"} +{"action": "approve", "at": 1792913459.644, "item": "ref-00037", "kind": "person", "request_id": "564c87757c6a4892886087ef3124bff1"} +{"action": "approve", "at": 1792913581.451, "item": "ref-00038", "kind": "person", "request_id": "5165a4b8a08c4d7da5767aa76d18e293"} +{"action": "approve", "at": 1792913708.959, "item": "ref-00039", "kind": "person", "request_id": "ee25bc04d3f14d2e922c79d1b67ba737"} +{"action": "approve", "at": 1792913831.617, "item": "ref-00040", "kind": "person", "request_id": "932435797cbc40cebd62fac96ca299c7"} +{"action": "approve", "at": 1792913953.43, "item": "ref-00041", "kind": "person", "request_id": "7bca6054d5d245bfacc876ab85bd7e98"} +{"action": "approve", "at": 1792914075.243, "item": "ref-00042", "kind": "person", "request_id": "c3b03b6672964417b9b18a95180ba678"} +{"action": "approve", "at": 1792914196.771, "item": "ref-00043", "kind": "person", "request_id": "8aeb5d5a81114e979f8a5ed14af2ca21"} +{"action": "approve", "at": 1792914572.777, "item": "ref-00046", "kind": "person", "request_id": "17ad845e7977406d99ebd639b50938b1"} +{"action": "approve", "at": 1792914696.307, "item": "ref-00047", "kind": "person", "request_id": "952394ded37546f4bfb96d082fc2a236"} +{"action": "approve", "at": 1792914818.477, "item": "ref-00048", "kind": "person", "request_id": "6a3076466b724e87af70a2326c37c3d4"} +{"action": "approve", "at": 1792914940.218, "item": "ref-00049", "kind": "person", "request_id": "851c6bf4accc4a9e8412d455e8c32b60"} +{"action": "approve", "at": 1792915062.197, "item": "ref-00050", "kind": "person", "request_id": "9e747c1054a140a5ab39c1ee640eb999"} +{"action": "approve", "at": 1792915184.278, "item": "ref-00051", "kind": "person", "request_id": "d4fc1444726a4129bba2ae42a8f6e410"} +{"action": "approve", "at": 1792915559.05, "item": "ref-00054", "kind": "person", "request_id": "377199ae2d224b59aef4947a5cf2770f"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/ledger.jsonl new file mode 100644 index 000000000..89fdf80c7 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/ledger.jsonl @@ -0,0 +1,113 @@ +{"app": {"api_url": "https://127.0.0.1:9400", "app": "openemr", "baseline_sha256": "015bef02fb30530e2ed64c17e8035623a39801a9008f2df307eaf53e420e98ba", "images": {"mariadb": "mariadb:11.8@sha256:efb4959ef2c835cd735dbc388eb9ad6aab0c78dd64febcd51bc17481111890c4", "openemr": "openemr/openemr:8.0.0.3@sha256:0aa4d3d52b22fa69986c087e7c99e9854d8dfd70440634eb7c8af0e08f19f3ab"}, "project": "openadapt-openemr-compose", "ui_url": "http://127.0.0.1:9401", "version": "8.0.0.3"}, "argv": null, "arm": "", "cost_model": {"admit_s": 300.0, "approval_s": 20.0, "calibration": "No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds).", "compile_review_s": 600.0, "interrupt_s": 30.0, "manual_entry_s": 180.0, "question_s": 60.0, "reconcile_s": 120.0, "repair_review_s": 120.0, "stop_s": 90.0, "teach_prep_s": 300.0, "version": "lifecycle-cost/2026-10-20.1"}, "cpus": 12, "days": 10, "engine_commit": "38fc21afbfff08275d77fd8f61972ad49c28cbf4", "host": "MacBook-Pro-5", "items": 55, "platform": "macOS-15.7.3-arm64-arm-64bit", "protocol": "lifecycle/2026-10-20.1", "seed": 7, "stop_after": null, "t": 1792906375.745, "type": "run_start", "workload": "lifecycle-workload/2026-10-24.1"} +{"arm": "openadapt-production-relabel", "arm_spec": "benchmark.lifecycle.production_arm:make", "describe": {"api_tier": "where admissible (refused on the OpenEMR referral by its own proposal; the GUI save runs)", "approval": "problems_only (local stand-in for Cloud's switch status)", "authorization": "governed run gate on the certified, encrypted bundle", "checkpoint_store": "encrypted", "configuration": "benchmark/lifecycle_proof (proof-15)", "duplicate_check": "no_duplicate_candidate on step_039 (rows tr.oneresult; a row with the item's last name or date of birth stops the item)", "durable": true, "intake_dates": true, "model_calls": "none on any path", "pin": "admitted digest; repaired versions only through signed lineage", "policy": "clinical-write", "profile": "regulated", "qualification_trials": 1, "readback": "pipelined, window 1; the harness waits for each check", "rearm": "operator signs when offered", "recovery": "relabel", "repair": "self-repair on a halt before any effect (rule-based agent, no model)", "typed_dob": true}, "existing_ids": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], "interface": "lifecycle-arm/1", "options": {"duplicate_check": true, "intake_dates": true, "rearm": true, "recovery": "relabel", "typed_dob": true}, "t": 1792906404.264, "type": "arm_start"} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "teach and compile happened before this run (the certified referral bundle); onboarding effort is measured in benchmark/onboarding_effort", "phase": "admit", "pinned_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "reused_from": null, "stage": "setup", "t": 1792907498.249, "type": "phase", "wall_s": 1092.9} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "problems_only switch opened locally, as Cloud would", "phase": "switch", "stage": "setup", "t": 1792907498.25, "type": "phase", "wall_s": 0.4} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00001"}, "drift_active": [], "evidence": "items/ref-00001", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 165.37, "injected": [], "item_id": "ref-00001", "load_1m": 94.9, "load_1m_end": 57.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["13"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 1, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792907663.84, "type": "item_result", "wall_s": 164.93} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00002"}, "drift_active": [], "evidence": "items/ref-00002", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 125.93, "injected": [], "item_id": "ref-00002", "load_1m": 57.9, "load_1m_end": 15.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["14"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 2, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 1}, "t": 1792907789.876, "type": "item_result", "wall_s": 125.52} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00003"}, "drift_active": [], "evidence": "items/ref-00003", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 131.79, "injected": [], "item_id": "ref-00003", "load_1m": 15.8, "load_1m_end": 16.3, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["15"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 3, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792907921.768, "type": "item_result", "wall_s": 131.33} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00004"}, "drift_active": [], "evidence": "items/ref-00004", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 146.49, "injected": [], "item_id": "ref-00004", "load_1m": 16.3, "load_1m_end": 10.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["16"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 4, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792908068.36, "type": "item_result", "wall_s": 146.09} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00005"}, "drift_active": [], "evidence": "items/ref-00005", "exception": "shared_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 131.57, "injected": [], "item_id": "ref-00005", "load_1m": 10.5, "load_1m_end": 8.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["17"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 5, "shares_with_existing": {"DOB": 1, "fname": 0, "lname": 0}, "t": 1792908200.096, "type": "item_result", "wall_s": 131.15} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "intake_dates": {"DOB": {"conversion": "MM/DD/YYYY to ISO (20 can only be the day)", "raw": "04/20/1944", "value": "1944-04-20"}}, "run_dir": "items/ref-00006"}, "drift_active": [], "evidence": "items/ref-00006", "exception": "malformed_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 133.05, "injected": [], "item_id": "ref-00006", "load_1m": 8.8, "load_1m_end": 69.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["18"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 6, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792908333.244, "type": "item_result", "wall_s": 132.61} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00007"}, "drift_active": [], "evidence": "items/ref-00007", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 131.59, "injected": [], "item_id": "ref-00007", "load_1m": 69.9, "load_1m_end": 15.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["19"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 7, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792908464.933, "type": "item_result", "wall_s": 131.07} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00008", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "skip_no_chart_wanted", "seq": 8, "surface": "openadapt-flow explain / approve / resume", "t": 1792908475.23, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00008", "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00008", "exception": "missing_required", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 10.42, "injected": [], "item_id": "ref-00008", "load_1m": 15.6, "load_1m_end": 14.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 8, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792908475.583, "type": "item_result", "wall_s": 10.07} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00009"}, "drift_active": [], "evidence": "items/ref-00009", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 126.59, "injected": [], "item_id": "ref-00009", "load_1m": 14.5, "load_1m_end": 7.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["20"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 9, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792908602.284, "type": "item_result", "wall_s": 126.15} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00010"}, "drift_active": [], "evidence": "items/ref-00010", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 127.81, "injected": [], "item_id": "ref-00010", "load_1m": 7.6, "load_1m_end": 45.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["21"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 10, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792908730.201, "type": "item_result", "wall_s": 127.39} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00011"}, "drift_active": [], "evidence": "items/ref-00011", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 126.61, "injected": [], "item_id": "ref-00011", "load_1m": 45.0, "load_1m_end": 11.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["22"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 11, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792908856.904, "type": "item_result", "wall_s": 126.15} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00012", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310698e-72c2-49f9-aa0a-200da169e21a (same fi", "rule": "skip_no_chart_wanted", "seq": 12, "surface": "openadapt-flow explain / approve / resume", "t": 1792909107.17, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310698e-72c2-49f9-aa0a-200da169e21a (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310698e-72c2-49f9-aa0a-200da169e21a (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00012", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00012", "exception": "concurrent_same", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 250.06, "injected": [{"chart_id": "23", "event": "other_clerk_creates"}], "item_id": "ref-00012", "load_1m": 11.4, "load_1m_end": 8.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 12, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792909107.613, "type": "item_result", "wall_s": 249.61} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00013", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 13, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792909220.116, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00013"}, "drift_active": [], "evidence": "items/ref-00013", "exception": "concurrent_other", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 127.15, "injected": [{"event": "other_clerk_edits_unrelated", "phone_home": "555-0113", "touched_ids": ["14"]}], "item_id": "ref-00013", "load_1m": 8.5, "load_1m_end": 6.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["24"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 13, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792909234.86, "type": "item_result", "wall_s": 126.71} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00014", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 14, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792909348.083, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00014"}, "drift_active": [], "evidence": "items/ref-00014", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 127.9, "injected": [], "item_id": "ref-00014", "load_1m": 6.7, "load_1m_end": 6.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["25"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 14, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792909362.872, "type": "item_result", "wall_s": 127.48} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00015", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 15, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792909474.341, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00015"}, "drift_active": [], "evidence": "items/ref-00015", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 126.17, "injected": [], "item_id": "ref-00015", "load_1m": 6.8, "load_1m_end": 7.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["26"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 15, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792909489.155, "type": "item_result", "wall_s": 125.76} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00016", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 16, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792909601.6, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00016"}, "drift_active": [], "evidence": "items/ref-00016", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 127.11, "injected": [], "item_id": "ref-00016", "load_1m": 7.5, "load_1m_end": 8.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["27"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 16, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792909616.369, "type": "item_result", "wall_s": 126.69} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00017", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 17, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792909728.178, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00017"}, "drift_active": [], "evidence": "items/ref-00017", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 126.52, "injected": [], "item_id": "ref-00017", "load_1m": 8.1, "load_1m_end": 34.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["28"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 17, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792909742.998, "type": "item_result", "wall_s": 126.05} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00018", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 18, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792909874.435, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00018"}, "drift_active": [], "evidence": "items/ref-00018", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 148.53, "injected": [], "item_id": "ref-00018", "load_1m": 34.1, "load_1m_end": 11.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["29"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 18, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792909891.636, "type": "item_result", "wall_s": 148.09} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "30"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00019", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "enter_by_hand", "seq": 19, "surface": "openadapt-flow explain / approve / resume", "t": 1792909903.041, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "intake_dates": {"DOB": {"error": "ambiguous date '10/01/1958': day and month can't be told apart; declare the source's format (MM/DD/YYYY or DD/MM/YYYY)", "raw": "10/01/1958"}}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00019", "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00019", "exception": "malformed_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 11.64, "injected": [], "item_id": "ref-00019", "load_1m": 11.4, "load_1m_end": 11.3, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 19, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792909903.381, "type": "item_result", "wall_s": 11.3} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00020", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 20, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792910038.779, "type": "operator"} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "31"}, "charged_s": 330.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "reconciliation_required", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "RECONCILIATION_REQUIRED"}, "item_id": "ref-00020", "kind": "reconcile", "operator": "scripted", "reason": "RECONCILIATION_REQUIRED: Postconditions failed for step 'step_040' (click 'Confirm Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: region_stable region=(0, 255, 1280, 545); text_present 'Medical Record Dashboard' \u2014 run aborted", "rule": "enter_by_hand", "seq": 20, "surface": "openadapt-flow explain / approve / resume", "t": 1792910061.404, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "reconciliation_required", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_040' (click 'Confirm Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: region_stable region=(0, 255, 1280, 545); text_present 'Medical Record Dashboard' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "RECONCILIATION_REQUIRED"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "reconciliation_required", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_040' (click 'Confirm Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: region_stable region=(0, 255, 1280, 545); text_present 'Medical Record Dashboard' \u2014 run aborted", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "RECONCILIATION_REQUIRED"}, "relabel": {"proposed": false, "why": "input reached step_040, a step that saves; never repaired"}, "route": {"route": "reconciliation", "why": "a write may have happened before the stop; it is never repaired automatically"}, "run_dir": "items/ref-00020", "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00020", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 158.24, "injected": [], "item_id": "ref-00020", "load_1m": 11.3, "load_1m_end": 10.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "false_stop", "product_status": "HALTED / RECONCILIATION_REQUIRED", "seq": 20, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792910061.729, "type": "item_result", "wall_s": 157.92} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00021", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a3106bb9-1701-4343-b8fd-05f63c7c8014 (same fi", "rule": "skip_no_chart_wanted", "seq": 21, "surface": "openadapt-flow explain / approve / resume", "t": 1792910302.831, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a3106bb9-1701-4343-b8fd-05f63c7c8014 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a3106bb9-1701-4343-b8fd-05f63c7c8014 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00021", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00021", "exception": "dup_resend", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 241.44, "injected": [], "item_id": "ref-00021", "load_1m": 10.5, "load_1m_end": 6.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 21, "shares_with_existing": {"DOB": 1, "fname": 3, "lname": 1}, "t": 1792910303.267, "type": "item_result", "wall_s": 241.0} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00022", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 22, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792910411.775, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00022"}, "drift_active": [], "evidence": "items/ref-00022", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 122.69, "injected": [], "item_id": "ref-00022", "load_1m": 6.9, "load_1m_end": 8.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["32"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 22, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792910426.062, "type": "item_result", "wall_s": 122.26} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00023", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 23, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792910533.583, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00023"}, "drift_active": [], "evidence": "items/ref-00023", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.9, "injected": [], "item_id": "ref-00023", "load_1m": 8.4, "load_1m_end": 12.2, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["33"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 23, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792910548.057, "type": "item_result", "wall_s": 121.42} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00024", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: close, a chart may be this patient; a person decides: close record a3105aed-426a-4a7a-8eb3-a42e0fe", "rule": "skip_no_chart_wanted", "seq": 24, "surface": "openadapt-flow explain / approve / resume", "t": 1792910845.382, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: close, a chart may be this patient; a person decides: close record a3105aed-426a-4a7a-8eb3-a42e0fedf739 (same or similar", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: close, a chart may be this patient; a person decides: close record a3105aed-426a-4a7a-8eb3-a42e0fedf739 (same or similar", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00024", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00024", "exception": "ambiguous_same_person", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 297.66, "injected": [], "item_id": "ref-00024", "load_1m": 12.2, "load_1m_end": 21.3, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 24, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 1}, "t": 1792910845.821, "type": "item_result", "wall_s": 297.23} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00025", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 25, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792910956.422, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00025"}, "drift_active": [], "evidence": "items/ref-00025", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 124.78, "injected": [], "item_id": "ref-00025", "load_1m": 21.3, "load_1m_end": 43.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["34"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 25, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792910970.704, "type": "item_result", "wall_s": 124.35} +{"applied": {"kind": "relabel_save", "labels": {"Confirm Create New Patient": "Save new patient"}}, "arm": "openadapt-production-relabel", "day": 4, "first_seq": 26, "kind": "relabel_save", "t": 1792910970.866, "type": "drift_applied"} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00026", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Confirm Create New Patient'", "rule": "approve_intended_write", "seq": 26, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792911079.294, "type": "operator"} +{"action": "accept_repair", "arm": "openadapt-production-relabel", "charged_s": 150.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"certified_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "fresh_admission": "the repair changes the program's record check; it needs a person's fresh admission", "probes_passed": true, "release_changed_files": ["/var/www/localhost/htdocs/openemr/interface/new/new_search_popup.php"], "requalified_cases": 6}, "item_id": "ref-00026", "kind": "repair_review", "operator": "scripted", "reason": "step_040: the control now reads 'Save new patient' instead of 'Confirm Create New Patient'; its id, kind and form are unchanged (the recorded identity hash matches with only the label swapped back)", "rule": "repair_drift_and_probes_passed", "seq": 26, "surface": "openadapt-flow repair relabel (review card)", "t": 1792911871.529, "type": "operator"} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00026", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 26, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792911976.767, "type": "operator"} +{"action": "confirm_saved", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "reconciliation_required", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "RECONCILIATION_REQUIRED"}, "item_id": "ref-00026", "kind": "stop", "operator": "scripted", "reason": "RECONCILIATION_REQUIRED: System-of-record effect verification HALTED step 'step_040' (click 'Save new patient'): record_written refuted against the rest system of record (the screen indicated completion but the declared outcome is contradicted or unverifiable) \u2014 0 records match the target selector, ", "rule": "chart_already_correct", "seq": 26, "surface": "openadapt-flow explain / approve / resume", "t": 1792911995.444, "type": "operator"} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "fresh admission of the re-qualified copy: the repair changes the program's record check; it needs a person's fresh admission", "phase": "admit", "seq": 26, "stage": "maintenance", "t": 1792911995.551, "type": "phase", "wall_s": 0.0, "within_item": "ref-00026"} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "phase": "relabel_requalify", "seq": 26, "stage": "maintenance", "t": 1792911995.551, "type": "phase", "wall_s": 770.8, "within_item": "ref-00026"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "reconciliation_required", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "System-of-record effect verification HALTED step 'step_040' (click 'Save new patient'): record_written refuted against the rest system of record (the screen indicated completion but the declared outcome is contradicted or unverifiable) \u2014 0 records match the target selector, expected 1 (missing / pha", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<terminal>", "success": false, "transaction_outcome": "RECONCILIATION_REQUIRED"}, "first_run": {"approval": {"decision": "stop_before_saving", "decision_reason": "right_record", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "a3f60b4a247c4e8335bebbb783baa7521825bd7c0e11753f4e407c5f93265f1d", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's \u2014 expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_c", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "item": "ref-00026", "lineage_hop": null, "proposal": "step_040: the control now reads 'Save new patient' instead of 'Confirm Create New Patient'; its id, kind and form are unchanged (the recorded identity hash matches with only the label swapped back)", "reason": "the repair changes the program's record check; it needs a person's fresh admission", "release": {"changed": ["/var/www/localhost/htdocs/openemr/interface/new/new_search_popup.php"], "lock": "environment.release-1.lock.json"}, "rerun": {"approval": {"decision": "problem", "decision_reason": "reconciliation_required", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "System-of-record effect verification HALTED step 'step_040' (click 'Save new patient'): record_written refuted against the rest system of record (the screen indicated completion but the declared outcome is contradicted or unverifiable) \u2014 0 records match the target selector, expected 1 (missing / pha", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<terminal>", "success": false, "transaction_outcome": "RECONCILIATION_REQUIRED"}, "review": {"action": "accept_repair", "charged_s": 150.0}, "seconds_to_item_done": 905.3, "seconds_to_readmitted": 781.6, "status": "fresh_admission", "timings": {"person_wait_s": 0.0, "requalify_s": 770.8}}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00026", "stops": [{"decision": "confirm_saved", "rule": "chart_already_correct"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00026", "exception": "malformed_case", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 1024.79, "injected": [], "item_id": "ref-00026", "load_1m": 43.5, "load_1m_end": 15.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["35"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "stopped_saved", "product_status": "HALTED / RECONCILIATION_REQUIRED", "seq": 26, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792911995.756, "type": "item_result", "wall_s": 1024.48} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00027", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 27, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792912104.335, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00027"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00027", "exception": "common_surname", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 122.72, "injected": [], "item_id": "ref-00027", "load_1m": 15.4, "load_1m_end": 10.2, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["36"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 27, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 1}, "t": 1792912118.573, "type": "item_result", "wall_s": 122.28} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00028", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 28, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792912228.173, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00028"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00028", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 123.73, "injected": [], "item_id": "ref-00028", "load_1m": 10.2, "load_1m_end": 10.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["37"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 28, "shares_with_existing": {"DOB": 0, "fname": 3, "lname": 0}, "t": 1792912242.407, "type": "item_result", "wall_s": 123.29} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00029", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a3107dbc-4c03-4e3b-8900-1e04ce2b7380 (same fi", "rule": "skip_no_chart_wanted", "seq": 29, "surface": "openadapt-flow explain / approve / resume", "t": 1792912485.186, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a3107dbc-4c03-4e3b-8900-1e04ce2b7380 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a3107dbc-4c03-4e3b-8900-1e04ce2b7380 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00029", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00029", "exception": "concurrent_same", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 242.61, "injected": [{"chart_id": "38", "event": "other_clerk_creates"}], "item_id": "ref-00029", "load_1m": 10.7, "load_1m_end": 7.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 29, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792912485.644, "type": "item_result", "wall_s": 242.16} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00030", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 30, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792912594.429, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00030"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00030", "exception": "common_surname", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 123.02, "injected": [], "item_id": "ref-00030", "load_1m": 7.1, "load_1m_end": 8.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["39"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 30, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 1}, "t": 1792912608.773, "type": "item_result", "wall_s": 122.57} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00031", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 31, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792912717.206, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00031"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00031", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 122.52, "injected": [], "item_id": "ref-00031", "load_1m": 8.6, "load_1m_end": 6.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["40"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 31, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792912731.403, "type": "item_result", "wall_s": 122.1} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "41"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00032", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "enter_by_hand", "seq": 32, "surface": "openadapt-flow explain / approve / resume", "t": 1792912741.885, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00032", "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00032", "exception": "missing_optional", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 10.68, "injected": [], "item_id": "ref-00032", "load_1m": 6.1, "load_1m_end": 5.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 32, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792912742.182, "type": "item_result", "wall_s": 10.38} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00033", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 33, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792912850.769, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00033"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00033", "exception": "common_surname", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 122.92, "injected": [], "item_id": "ref-00033", "load_1m": 5.9, "load_1m_end": 9.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["42"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 33, "shares_with_existing": {"DOB": 0, "fname": 3, "lname": 2}, "t": 1792912865.201, "type": "item_result", "wall_s": 122.49} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00034", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a3105aed-426a-4a7a-8eb3-a42e0fedf739 (same fi", "rule": "skip_no_chart_wanted", "seq": 34, "surface": "openadapt-flow explain / approve / resume", "t": 1792913106.961, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a3105aed-426a-4a7a-8eb3-a42e0fedf739 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a3105aed-426a-4a7a-8eb3-a42e0fedf739 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00034", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00034", "exception": "dup_existing", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 242.07, "injected": [], "item_id": "ref-00034", "load_1m": 9.0, "load_1m_end": 6.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 34, "shares_with_existing": {"DOB": 1, "fname": 1, "lname": 1}, "t": 1792913107.383, "type": "item_result", "wall_s": 241.65} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00035", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 35, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792913215.682, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00035"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00035", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 122.46, "injected": [], "item_id": "ref-00035", "load_1m": 6.9, "load_1m_end": 9.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["43"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 35, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792913229.948, "type": "item_result", "wall_s": 122.01} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00036", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 36, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792913338.165, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00036"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00036", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 122.2, "injected": [], "item_id": "ref-00036", "load_1m": 9.8, "load_1m_end": 7.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["44"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 36, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792913352.243, "type": "item_result", "wall_s": 121.77} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00037", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 37, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792913459.642, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00037"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00037", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.54, "injected": [], "item_id": "ref-00037", "load_1m": 7.1, "load_1m_end": 6.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["45"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 37, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792913473.88, "type": "item_result", "wall_s": 121.13} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00038", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 38, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792913581.449, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": ["oa_lifecycle_fault"], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00038"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00038", "exception": "slow_save", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 127.4, "injected": [{"event": "slow_save", "trigger": "IF NEW.email = 'dmitri.birchfield.38@example.invalid' THEN SET @oa_slept = SLEEP(6); END IF;"}], "item_id": "ref-00038", "load_1m": 6.6, "load_1m_end": 9.3, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["46"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 38, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 1}, "t": 1792913601.379, "type": "item_result", "wall_s": 126.85} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00039", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 39, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792913708.957, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00039"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00039", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.73, "injected": [], "item_id": "ref-00039", "load_1m": 9.3, "load_1m_end": 8.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["47"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 39, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792913723.213, "type": "item_result", "wall_s": 121.31} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00040", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 40, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792913831.616, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00040"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00040", "exception": "shared_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 122.69, "injected": [], "item_id": "ref-00040", "load_1m": 8.6, "load_1m_end": 11.2, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["48"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 40, "shares_with_existing": {"DOB": 1, "fname": 2, "lname": 1}, "t": 1792913846.006, "type": "item_result", "wall_s": 122.24} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00041", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 41, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792913953.428, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00041"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00041", "exception": "shared_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.48, "injected": [], "item_id": "ref-00041", "load_1m": 11.2, "load_1m_end": 11.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["49"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 41, "shares_with_existing": {"DOB": 1, "fname": 0, "lname": 0}, "t": 1792913967.591, "type": "item_result", "wall_s": 121.07} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00042", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 42, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792914075.242, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00042"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00042", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.59, "injected": [], "item_id": "ref-00042", "load_1m": 11.1, "load_1m_end": 9.3, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["50"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 42, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792914089.286, "type": "item_result", "wall_s": 121.18} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00043", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 43, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792914196.769, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00043"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00043", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.52, "injected": [], "item_id": "ref-00043", "load_1m": 9.3, "load_1m_end": 10.3, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["51"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 43, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792914210.905, "type": "item_result", "wall_s": 121.11} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00044", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "skip_no_chart_wanted", "seq": 44, "surface": "openadapt-flow explain / approve / resume", "t": 1792914220.609, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "intake_dates": {"DOB": {"error": "ambiguous date '10/01/1958': day and month can't be told apart; declare the source's format (MM/DD/YYYY or DD/MM/YYYY)", "raw": "10/01/1958"}}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00044", "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00044", "exception": "dup_resend", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 9.97, "injected": [], "item_id": "ref-00044", "load_1m": 10.3, "load_1m_end": 10.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 44, "shares_with_existing": {"DOB": 0, "fname": 4, "lname": 1}, "t": 1792914220.973, "type": "item_result", "wall_s": 9.61} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00045", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a3105ae4-6f89-4c87-bdb5-4a5f8fa25d9d (same fi", "rule": "skip_no_chart_wanted", "seq": 45, "surface": "openadapt-flow explain / approve / resume", "t": 1792914462.632, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a3105ae4-6f89-4c87-bdb5-4a5f8fa25d9d (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a3105ae4-6f89-4c87-bdb5-4a5f8fa25d9d (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00045", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00045", "exception": "dup_existing", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 242.0, "injected": [], "item_id": "ref-00045", "load_1m": 10.1, "load_1m_end": 40.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 45, "shares_with_existing": {"DOB": 1, "fname": 1, "lname": 2}, "t": 1792914463.078, "type": "item_result", "wall_s": 241.56} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00046", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 46, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792914572.775, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00046"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00046", "exception": "session_expiry", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 123.74, "injected": [{"event": "force_logout", "sessions_ended": 554}], "item_id": "ref-00046", "load_1m": 40.1, "load_1m_end": 67.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["52"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 46, "shares_with_existing": {"DOB": 0, "fname": 4, "lname": 0}, "t": 1792914587.018, "type": "item_result", "wall_s": 123.31} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00047", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 47, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792914696.306, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00047"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00047", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 123.46, "injected": [], "item_id": "ref-00047", "load_1m": 67.8, "load_1m_end": 95.2, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["53"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 47, "shares_with_existing": {"DOB": 0, "fname": 3, "lname": 0}, "t": 1792914710.58, "type": "item_result", "wall_s": 123.03} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00048", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 48, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792914818.475, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00048"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00048", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 122.02, "injected": [], "item_id": "ref-00048", "load_1m": 95.2, "load_1m_end": 45.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["54"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 48, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792914832.705, "type": "item_result", "wall_s": 121.61} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00049", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 49, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792914940.216, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00049"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00049", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.74, "injected": [], "item_id": "ref-00049", "load_1m": 45.4, "load_1m_end": 11.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["55"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 49, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792914954.544, "type": "item_result", "wall_s": 121.32} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00050", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 50, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792915062.196, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00050"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00050", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.94, "injected": [], "item_id": "ref-00050", "load_1m": 11.9, "load_1m_end": 7.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["56"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 50, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 1}, "t": 1792915076.581, "type": "item_result", "wall_s": 121.5} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00051", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 51, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792915184.277, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00051"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00051", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.96, "injected": [], "item_id": "ref-00051", "load_1m": 7.4, "load_1m_end": 9.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["57"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 51, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792915198.651, "type": "item_result", "wall_s": 121.55} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00052", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a3105ae5-9b4c-475c-80f4-2c3936ac5455 (same fi", "rule": "skip_no_chart_wanted", "seq": 52, "surface": "openadapt-flow explain / approve / resume", "t": 1792915439.213, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a3105ae5-9b4c-475c-80f4-2c3936ac5455 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a3105ae5-9b4c-475c-80f4-2c3936ac5455 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00052", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00052", "exception": "dup_existing", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 240.88, "injected": [], "item_id": "ref-00052", "load_1m": 9.0, "load_1m_end": 9.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 52, "shares_with_existing": {"DOB": 1, "fname": 5, "lname": 1}, "t": 1792915439.641, "type": "item_result", "wall_s": 240.46} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "58"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00053", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "enter_by_hand", "seq": 53, "surface": "openadapt-flow explain / approve / resume", "t": 1792915450.012, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00053", "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00053", "exception": "missing_optional", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 10.56, "injected": [], "item_id": "ref-00053", "load_1m": 9.0, "load_1m_end": 9.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 53, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792915450.306, "type": "item_result", "wall_s": 10.27} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00054", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 54, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792915559.048, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "approved", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00054"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00054", "exception": "common_surname", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 123.91, "injected": [], "item_id": "ref-00054", "load_1m": 9.9, "load_1m_end": 10.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["59"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 54, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 2}, "t": 1792915574.316, "type": "item_result", "wall_s": 123.34} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00055", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "skip_no_chart_wanted", "seq": 55, "surface": "openadapt-flow explain / approve / resume", "t": 1792915584.29, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 9, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00055", "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00055", "exception": "missing_required", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 10.26, "injected": [], "item_id": "ref-00055", "load_1m": 10.4, "load_1m_end": 10.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 55, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792915584.687, "type": "item_result", "wall_s": 9.87} +{"arm": "openadapt-production-relabel", "t": 1792915585.018, "type": "arm_end"} +{"arm": "openadapt-production-relabel", "t": 1792915585.02, "type": "run_end"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/results.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/results.json new file mode 100644 index 000000000..35e52a327 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/results.json @@ -0,0 +1,357 @@ +{ + "arms": { + "openadapt-production-relabel": { + "bands": { + "x0.5": { + "maintenance_min": 3.75, + "manual_only_hours": 1.375, + "manual_only_items_per_hour": 40.0, + "operator_hours": 0.688, + "operator_hours_with_cleanup": 0.688, + "per_item_operator_min": 0.636, + "per_item_operator_min_total": 35.0, + "setup_min": 2.5, + "verified_completed_per_operator_hour": 74.18, + "verified_completed_per_operator_hour_with_cleanup": 74.18, + "work_removed_fraction": 0.5 + }, + "x1": { + "maintenance_min": 7.5, + "manual_only_hours": 2.75, + "manual_only_items_per_hour": 20.0, + "operator_hours": 1.375, + "operator_hours_with_cleanup": 1.375, + "per_item_operator_min": 1.273, + "per_item_operator_min_total": 70.0, + "setup_min": 5.0, + "verified_completed_per_operator_hour": 37.09, + "verified_completed_per_operator_hour_with_cleanup": 37.09, + "work_removed_fraction": 0.5 + }, + "x2": { + "maintenance_min": 15.0, + "manual_only_hours": 5.5, + "manual_only_items_per_hour": 10.0, + "operator_hours": 2.75, + "operator_hours_with_cleanup": 2.75, + "per_item_operator_min": 2.545, + "per_item_operator_min_total": 140.0, + "setup_min": 10.0, + "verified_completed_per_operator_hour": 18.55, + "verified_completed_per_operator_hour_with_cleanup": 18.55, + "work_removed_fraction": 0.5 + } + }, + "by_exception": { + "ambiguous_same_person": { + "right_stop": 1 + }, + "clean": { + "correct": 29, + "false_stop": 1 + }, + "common_surname": { + "correct": 4 + }, + "concurrent_other": { + "correct": 1 + }, + "concurrent_same": { + "right_stop": 2 + }, + "dup_existing": { + "right_stop": 3 + }, + "dup_resend": { + "right_stop": 2 + }, + "malformed_case": { + "stopped_saved": 1 + }, + "malformed_dob": { + "correct": 1, + "data_stop": 1 + }, + "missing_optional": { + "data_stop": 2 + }, + "missing_required": { + "right_stop": 2 + }, + "session_expiry": { + "correct": 1 + }, + "shared_dob": { + "correct": 3 + }, + "slow_save": { + "correct": 1 + } + }, + "complete": true, + "cost_model": "lifecycle-cost/2026-10-20.1", + "describe": { + "api_tier": "where admissible (refused on the OpenEMR referral by its own proposal; the GUI save runs)", + "approval": "problems_only (local stand-in for Cloud's switch status)", + "authorization": "governed run gate on the certified, encrypted bundle", + "checkpoint_store": "encrypted", + "configuration": "benchmark/lifecycle_proof (proof-15)", + "duplicate_check": "no_duplicate_candidate on step_039 (rows tr.oneresult; a row with the item's last name or date of birth stops the item)", + "durable": true, + "intake_dates": true, + "model_calls": "none on any path", + "pin": "admitted digest; repaired versions only through signed lineage", + "policy": "clinical-write", + "profile": "regulated", + "qualification_trials": 1, + "readback": "pipelined, window 1; the harness waits for each check", + "rearm": "operator signs when offered", + "recovery": "relabel", + "repair": "self-repair on a halt before any effect (rule-based agent, no model)", + "typed_dob": true + }, + "done_by_hand": 4, + "false_stop_rate": { + "ci95": [ + 0.0048, + 0.1382 + ], + "definition": "stops with nothing written on items whose data was right and that carried no item-level fault, over all such items", + "k": 1, + "n": 37, + "rate": 0.027, + "with_ui_change_in_force": 0 + }, + "final_correct": 55, + "headline": { + "bands": { + "x0.5": { + "after_app_change": [ + { + "first_seq": 26, + "first_verified_seq": 27, + "items_false_stopped": 0, + "items_in_window": 30, + "kind": "relabel_save", + "maintenance_operator_min": 3.75, + "seconds_to_running_again": 1147.7 + } + ], + "operator_min_per_stop": 1.42, + "operator_min_run": 38.75, + "operator_min_setup": 2.5, + "verified_per_operator_minute": 1.316, + "verified_per_operator_minute_with_setup": 1.236 + }, + "x1": { + "after_app_change": [ + { + "first_seq": 26, + "first_verified_seq": 27, + "items_false_stopped": 0, + "items_in_window": 30, + "kind": "relabel_save", + "maintenance_operator_min": 7.5, + "seconds_to_running_again": 1147.7 + } + ], + "operator_min_per_stop": 2.83, + "operator_min_run": 77.5, + "operator_min_setup": 5.0, + "verified_per_operator_minute": 0.658, + "verified_per_operator_minute_with_setup": 0.618 + }, + "x2": { + "after_app_change": [ + { + "first_seq": 26, + "first_verified_seq": 27, + "items_false_stopped": 0, + "items_in_window": 30, + "kind": "relabel_save", + "maintenance_operator_min": 15.0, + "seconds_to_running_again": 1147.7 + } + ], + "operator_min_per_stop": 5.67, + "operator_min_run": 155.0, + "operator_min_setup": 10.0, + "verified_per_operator_minute": 0.329, + "verified_per_operator_minute_with_setup": 0.309 + } + }, + "by_hand_sensitivity": [ + { + "by_hand_min_per_item": 3, + "by_hand_per_operator_minute": 0.333, + "operator_min_run": 77.5, + "operator_min_stream_by_hand": 165, + "ratio_to_by_hand": 1.97, + "verified_per_operator_minute": 0.658 + }, + { + "by_hand_min_per_item": 5, + "by_hand_per_operator_minute": 0.2, + "operator_min_run": 85.5, + "operator_min_stream_by_hand": 275, + "ratio_to_by_hand": 2.98, + "verified_per_operator_minute": 0.596 + }, + { + "by_hand_min_per_item": 8, + "by_hand_per_operator_minute": 0.125, + "operator_min_run": 97.5, + "operator_min_stream_by_hand": 440, + "ratio_to_by_hand": 4.18, + "verified_per_operator_minute": 0.523 + }, + { + "by_hand_min_per_item": 10, + "by_hand_per_operator_minute": 0.1, + "operator_min_run": 105.5, + "operator_min_stream_by_hand": 550, + "ratio_to_by_hand": 4.83, + "verified_per_operator_minute": 0.483 + } + ], + "definition": "verified completed items (oracle-correct, not done by hand) per operator-minute; operator minutes are every charged approval, stop, reconciliation, resume, repair review and item done by hand, plus maintenance; *_with_setup also charges admission", + "duplicate_rule_stops": { + "by_exception": { + "ambiguous_same_person": 1, + "concurrent_same": 2, + "dup_existing": 3, + "dup_resend": 1 + }, + "by_outcome": { + "right_stop": 7 + }, + "by_shared_field": { + "first name only": 1, + "lname": 1, + "lname+DOB": 4, + "none at start": 1 + }, + "items": 7, + "note": "fields the item shared with a chart that existed when it started; charts created during the run by earlier items count too" + }, + "false_stops_per_100_items": 1.82, + "items": 55, + "manual_entry_min": 3.0, + "stops_by_cause": { + "data_stop": { + "other: REJECTED_POLICY HALTED / REJECTED_POLICY": 3 + }, + "false_stop": { + "other: RECONCILIATION_REQUIRED Postconditions failed for step 'step_040' (click 'Confirm Create New Patient'):": 1 + }, + "right_stop": { + "duplicate check listed a chart": 7, + "other: REJECTED_POLICY HALTED / REJECTED_POLICY": 3 + }, + "stopped_saved": { + "identity check failed (relabeled control)": 1 + } + }, + "stops_per_100_items": 27.27, + "verified_completed": 51 + }, + "items": 55, + "model": { + "calls": 0, + "cost_usd": 0.0 + }, + "operator_actions": { + "accept_repair": 1, + "approve": 33, + "confirm_saved": 1, + "do_by_hand": 4, + "skip": 10 + }, + "operator_requests": { + "approval": 33, + "reconcile": 1, + "repair_review": 1, + "stop": 14 + }, + "outcomes": { + "correct": 40, + "data_stop": 3, + "false_stop": 1, + "right_stop": 10, + "stopped_saved": 1 + }, + "per_drift": { + "relabel_save": { + "first_seq": 26, + "items": 30, + "outcomes": { + "correct": 21, + "data_stop": 2, + "right_stop": 6, + "stopped_saved": 1 + }, + "repair_reviews": 1 + } + }, + "silent_wrong_rate": { + "ci95": [ + 0.0, + 0.0876 + ], + "definition": "items the arm claimed done that the independent oracle judged wrong, over all items the arm claimed done", + "k": 0, + "n": 40, + "of_all_items": 0.0, + "rate": 0.0 + }, + "stops": 15, + "verified_completed": 51, + "wall": { + "load_1m_max": 95.2, + "load_1m_median": 10.3, + "median_item_s": 123.34, + "total_s": 8055.8 + } + } + }, + "run": { + "app": { + "api_url": "https://127.0.0.1:9400", + "app": "openemr", + "baseline_sha256": "015bef02fb30530e2ed64c17e8035623a39801a9008f2df307eaf53e420e98ba", + "images": { + "mariadb": "mariadb:11.8@sha256:efb4959ef2c835cd735dbc388eb9ad6aab0c78dd64febcd51bc17481111890c4", + "openemr": "openemr/openemr:8.0.0.3@sha256:0aa4d3d52b22fa69986c087e7c99e9854d8dfd70440634eb7c8af0e08f19f3ab" + }, + "project": "openadapt-openemr-compose", + "ui_url": "http://127.0.0.1:9401", + "version": "8.0.0.3" + }, + "argv": null, + "cost_model": { + "admit_s": 300.0, + "approval_s": 20.0, + "calibration": "No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds).", + "compile_review_s": 600.0, + "interrupt_s": 30.0, + "manual_entry_s": 180.0, + "question_s": 60.0, + "reconcile_s": 120.0, + "repair_review_s": 120.0, + "stop_s": 90.0, + "teach_prep_s": 300.0, + "version": "lifecycle-cost/2026-10-20.1" + }, + "cpus": 12, + "days": 10, + "engine_commit": "38fc21afbfff08275d77fd8f61972ad49c28cbf4", + "host": "MacBook-Pro-5", + "items": 55, + "platform": "macOS-15.7.3-arm64-arm-64bit", + "protocol": "lifecycle/2026-10-20.1", + "seed": 7, + "stop_after": null, + "type": "run_start", + "workload": "lifecycle-workload/2026-10-24.1" + } +} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/run.log b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/run.log new file mode 100644 index 000000000..757a839c1 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/run.log @@ -0,0 +1,83 @@ +COMMIT 38fc21afbfff08275d77fd8f61972ad49c28cbf4 +saved /Users/abrichr/oa/scratch/compose-proof/openemr-state/fresh-oauth-keys.sql +[openadapt-production-relabel] resetting the app to its baseline +[openadapt-production-relabel] setup +[openadapt-production-relabel] 1 ref-00001 clean claimed=done oracle=correct -> correct final=correct 164.9s load=94.9 +[openadapt-production-relabel] 2 ref-00002 clean claimed=done oracle=correct -> correct final=correct 125.5s load=57.9 +[openadapt-production-relabel] 3 ref-00003 clean claimed=done oracle=correct -> correct final=correct 131.3s load=15.8 +[openadapt-production-relabel] 4 ref-00004 clean claimed=done oracle=correct -> correct final=correct 146.1s load=16.3 +[openadapt-production-relabel] 5 ref-00005 shared_dob claimed=done oracle=correct -> correct final=correct 131.2s load=10.5 +[openadapt-production-relabel] 6 ref-00006 malformed_dob claimed=done oracle=correct -> correct final=correct 132.6s load=8.8 +[openadapt-production-relabel] 7 ref-00007 clean claimed=done oracle=correct -> correct final=correct 131.1s load=69.9 +[openadapt-production-relabel] 8 ref-00008 missing_required claimed=stopped oracle=correct -> right_stop final=correct 10.1s load=15.6 +[openadapt-production-relabel] 9 ref-00009 clean claimed=done oracle=correct -> correct final=correct 126.1s load=14.5 +[openadapt-production-relabel] 10 ref-00010 clean claimed=done oracle=correct -> correct final=correct 127.4s load=7.6 +[openadapt-production-relabel] 11 ref-00011 clean claimed=done oracle=correct -> correct final=correct 126.1s load=45.0 +[openadapt-production-relabel] 12 ref-00012 concurrent_same claimed=stopped oracle=correct -> right_stop final=correct 249.6s load=11.4 +[openadapt-production-relabel] 13 ref-00013 concurrent_other claimed=done oracle=correct -> correct final=correct 126.7s load=8.5 +[openadapt-production-relabel] 14 ref-00014 clean claimed=done oracle=correct -> correct final=correct 127.5s load=6.7 +[openadapt-production-relabel] 15 ref-00015 clean claimed=done oracle=correct -> correct final=correct 125.8s load=6.8 +[openadapt-production-relabel] 16 ref-00016 clean claimed=done oracle=correct -> correct final=correct 126.7s load=7.5 +[openadapt-production-relabel] 17 ref-00017 clean claimed=done oracle=correct -> correct final=correct 126.1s load=8.1 +[openadapt-production-relabel] 18 ref-00018 clean claimed=done oracle=correct -> correct final=correct 148.1s load=34.1 +[openadapt-production-relabel] 19 ref-00019 malformed_dob claimed=stopped oracle=absent -> data_stop final=correct 11.3s load=11.4 +[openadapt-production-relabel] 20 ref-00020 clean claimed=stopped oracle=absent -> false_stop final=correct 157.9s load=11.3 +[openadapt-production-relabel] 21 ref-00021 dup_resend claimed=stopped oracle=correct -> right_stop final=correct 241.0s load=10.5 +[openadapt-production-relabel] 22 ref-00022 clean claimed=done oracle=correct -> correct final=correct 122.3s load=6.9 +[openadapt-production-relabel] 23 ref-00023 clean claimed=done oracle=correct -> correct final=correct 121.4s load=8.4 +[openadapt-production-relabel] 24 ref-00024 ambiguous_same_person claimed=stopped oracle=correct -> right_stop final=correct 297.2s load=12.2 +[openadapt-production-relabel] 25 ref-00025 clean claimed=done oracle=correct -> correct final=correct 124.4s load=21.3 +[openadapt-production-relabel] day 4: UI change 'relabel_save' from item 26 +{"case_id": "representative", "trial": 1, "expected": "VERIFIED", "execution_outcome": "VERIFIED", "transaction_outcome": "VERIFIED", "execution_profile": "standard", "production_eligible": false, "success": true, "model_calls": 0, "total_ms": 105993.0564169772, "failed_step_id": null, "failed_error": null, "oracle": "exact_record", "trial_wall_s": 114.3, "fault_declined": null} +{"case_id": "fault-ambiguity", "trial": 1, "expected": "HALTED", "execution_outcome": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "execution_profile": "standard", "production_eligible": false, "success": false, "model_calls": 0, "total_ms": 107118.46779240295, "failed_step_id": "step_040", "failed_error": "OCR safety refusal for step 'step_040' (click 'Save new patient'): 2 OCR target candidates remain after retained-evidence disambiguation \u2014 no action was admitted", "oracle": "no_mutation", "trial_wall_s": 116.2, "fault_declined": null} +{"case_id": "fault-wrong-identity", "trial": 1, "expected": "HALTED", "execution_outcome": "HALTED", "transaction_outcome": "REJECTED_POLICY", "execution_profile": "standard", "production_eligible": false, "success": false, "model_calls": 0, "total_ms": 105054.26554195583, "failed_step_id": "step_040", "failed_error": "Identity check failed for step 'step_040' (click 'Save new patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's \u2014 expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Merge Into Existing Record\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}' (coverage 0.00) \u2014 refusing to act; run aborted", "oracle": "no_mutation", "trial_wall_s": 114.2, "fault_declined": null} +{"case_id": "fault-stale-identity", "trial": 1, "expected": "HALTED", "execution_outcome": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "execution_profile": "standard", "production_eligible": false, "success": false, "model_calls": 0, "total_ms": 105835.64783399925, "failed_step_id": "step_040", "failed_error": "Could not resolve target for step 'step_040' (click 'Save new patient'): all resolution rungs failed", "oracle": "no_mutation", "trial_wall_s": 114.6, "fault_declined": null} +{"case_id": "fault-weak-effect", "trial": 1, "expected": "HALTED", "execution_outcome": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "execution_profile": "standard", "production_eligible": false, "success": false, "model_calls": 0, "total_ms": 104456.41754195094, "failed_step_id": "step_040", "failed_error": "Effect verifier strength changed after admission: immediate_screen evidence cannot satisfy the required qualified effect tier \u2014 refusing to actuate; run aborted", "oracle": "no_mutation", "trial_wall_s": 113.1, "fault_declined": null} +{"case_id": "fault-missing-effect", "trial": 1, "expected": "HALTED", "execution_outcome": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "execution_profile": "standard", "production_eligible": false, "success": false, "model_calls": 0, "total_ms": 104748.88883298263, "failed_step_id": "step_040", "failed_error": "Step 'step_040' (click 'Save new patient') declares 12 system-of-record effect(s) but no EffectVerifier is configured for this run \u2014 refusing to perform an unverifiable consequential write (deployment/configuration error); run aborted", "oracle": "no_mutation", "trial_wall_s": 113.3, "fault_declined": null} +{"pixels_only": true, "case_id": "representative", "trial": 1, "passed": false, "failure": "StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"pixels_only": true, "case_id": "fault-ambiguity", "trial": 1, "passed": false, "failure": "StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"pixels_only": true, "case_id": "fault-wrong-identity", "trial": 1, "passed": false, "failure": "StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"pixels_only": true, "case_id": "fault-stale-identity", "trial": 1, "passed": false, "failure": "StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"pixels_only": true, "case_id": "fault-weak-effect", "trial": 1, "passed": false, "failure": "StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"pixels_only": true, "case_id": "fault-missing-effect", "trial": 1, "passed": false, "failure": "StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +pixels-only pass (informational): 0/6 (0%) trials behaved as required with structure lookups disabled; most common failure: StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path +qualified lookups: structure on a local surface +PASS: qualification for 'openemr-create-synthetic-patient' + identity coverage 1/1; effect coverage 1/1; cases 6/6 +qualification-result/v1 aa579696dcbf3c1b: passed=True silent_incorrect_success=0 over_halt=0 executor_model_calls=0 verifier_model_calls=0 +no admission envelope: the qualification-admission/v1 envelope needs at least 3 trials per case; this campaign ran 1 +[openadapt-production-relabel] 26 ref-00026 malformed_case claimed=stopped oracle=correct -> stopped_saved final=correct 1024.5s load=43.5 +[openadapt-production-relabel] 27 ref-00027 common_surname claimed=done oracle=correct -> correct final=correct 122.3s load=15.4 +[openadapt-production-relabel] 28 ref-00028 clean claimed=done oracle=correct -> correct final=correct 123.3s load=10.2 +[openadapt-production-relabel] 29 ref-00029 concurrent_same claimed=stopped oracle=correct -> right_stop final=correct 242.2s load=10.7 +[openadapt-production-relabel] 30 ref-00030 common_surname claimed=done oracle=correct -> correct final=correct 122.6s load=7.1 +[openadapt-production-relabel] 31 ref-00031 clean claimed=done oracle=correct -> correct final=correct 122.1s load=8.6 +[openadapt-production-relabel] 32 ref-00032 missing_optional claimed=stopped oracle=absent -> data_stop final=correct 10.4s load=6.1 +[openadapt-production-relabel] 33 ref-00033 common_surname claimed=done oracle=correct -> correct final=correct 122.5s load=5.9 +[openadapt-production-relabel] 34 ref-00034 dup_existing claimed=stopped oracle=correct -> right_stop final=correct 241.6s load=9.0 +[openadapt-production-relabel] 35 ref-00035 clean claimed=done oracle=correct -> correct final=correct 122.0s load=6.9 +[openadapt-production-relabel] 36 ref-00036 clean claimed=done oracle=correct -> correct final=correct 121.8s load=9.8 +[openadapt-production-relabel] 37 ref-00037 clean claimed=done oracle=correct -> correct final=correct 121.1s load=7.1 +wait_settled: screen did not settle within 3.0s (0/2 stable frames); proceeding with the most recent frame +[openadapt-production-relabel] 38 ref-00038 slow_save claimed=done oracle=correct -> correct final=correct 126.8s load=6.6 +[openadapt-production-relabel] 39 ref-00039 clean claimed=done oracle=correct -> correct final=correct 121.3s load=9.3 +[openadapt-production-relabel] 40 ref-00040 shared_dob claimed=done oracle=correct -> correct final=correct 122.2s load=8.6 +[openadapt-production-relabel] 41 ref-00041 shared_dob claimed=done oracle=correct -> correct final=correct 121.1s load=11.2 +[openadapt-production-relabel] 42 ref-00042 clean claimed=done oracle=correct -> correct final=correct 121.2s load=11.1 +[openadapt-production-relabel] 43 ref-00043 clean claimed=done oracle=correct -> correct final=correct 121.1s load=9.3 +[openadapt-production-relabel] 44 ref-00044 dup_resend claimed=stopped oracle=correct -> right_stop final=correct 9.6s load=10.3 +[openadapt-production-relabel] 45 ref-00045 dup_existing claimed=stopped oracle=correct -> right_stop final=correct 241.6s load=10.1 +[openadapt-production-relabel] 46 ref-00046 session_expiry claimed=done oracle=correct -> correct final=correct 123.3s load=40.1 +[openadapt-production-relabel] 47 ref-00047 clean claimed=done oracle=correct -> correct final=correct 123.0s load=67.8 +[openadapt-production-relabel] 48 ref-00048 clean claimed=done oracle=correct -> correct final=correct 121.6s load=95.2 +[openadapt-production-relabel] 49 ref-00049 clean claimed=done oracle=correct -> correct final=correct 121.3s load=45.4 +[openadapt-production-relabel] 50 ref-00050 clean claimed=done oracle=correct -> correct final=correct 121.5s load=11.9 +[openadapt-production-relabel] 51 ref-00051 clean claimed=done oracle=correct -> correct final=correct 121.5s load=7.4 +[openadapt-production-relabel] 52 ref-00052 dup_existing claimed=stopped oracle=correct -> right_stop final=correct 240.5s load=9.0 +[openadapt-production-relabel] 53 ref-00053 missing_optional claimed=stopped oracle=absent -> data_stop final=correct 10.3s load=9.0 +[openadapt-production-relabel] 54 ref-00054 common_surname claimed=done oracle=correct -> correct final=correct 123.3s load=9.9 +[openadapt-production-relabel] 55 ref-00055 missing_required claimed=stopped oracle=correct -> right_stop final=correct 9.9s load=10.4 +RUN EXIT 0 +down +Machine "openadapt-benchmark" stopped successfully +RELEASED Sun Oct 25 04:07:03 EDT 2026 diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/stops.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/stops.jsonl new file mode 100644 index 000000000..eda1f0a47 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/stops.jsonl @@ -0,0 +1,15 @@ +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00008", "exception": "missing_required", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00008", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 8, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00012", "exception": "concurrent_same", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00012", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 12, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00019", "exception": "malformed_dob", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00019", "oracle": "absent", "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 19, "transaction_outcome": null} +{"anything_wrong": false, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00020", "exception": "clean", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00020", "oracle": "absent", "outcome": "false_stop", "product_status": "HALTED / RECONCILIATION_REQUIRED", "repair": {}, "seq": 20, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00021", "exception": "dup_resend", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00021", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 21, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00024", "exception": "ambiguous_same_person", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00024", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 24, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00026", "exception": "malformed_case", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00026", "oracle": "correct", "outcome": "stopped_saved", "product_status": "HALTED / RECONCILIATION_REQUIRED", "repair": {}, "seq": 26, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00029", "exception": "concurrent_same", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00029", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 29, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00032", "exception": "missing_optional", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00032", "oracle": "absent", "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 32, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00034", "exception": "dup_existing", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00034", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 34, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00044", "exception": "dup_resend", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00044", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 44, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00045", "exception": "dup_existing", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00045", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 45, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00052", "exception": "dup_existing", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00052", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 52, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00053", "exception": "missing_optional", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00053", "oracle": "absent", "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 53, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00055", "exception": "missing_required", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00055", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 55, "transaction_outcome": null} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/log-1792907498.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/log-1792907498.jsonl new file mode 100644 index 000000000..6b423f420 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/log-1792907498.jsonl @@ -0,0 +1,41 @@ +{"at":"2026-10-25T05:51:38.244746+00:00","counts_toward_problems":null,"decision":null,"kind":"opened","prev_sha256":"sha256:0000000000000000000000000000000000000000000000000000000000000000","reason":null,"run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":1,"sha256":"sha256:6abe3246de4e7287d14d86cfe3bb65a143ae8e952fee170b6391cfdf73715644","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":"sha256:bc3897d69addb7f0e3219d17fb3b70a64e503d29f543d5d2b270b4f0236209cc"} +{"at":"2026-10-25T05:54:09.647332+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:6abe3246de4e7287d14d86cfe3bb65a143ae8e952fee170b6391cfdf73715644","reason":null,"run_ref":"51ea4ea7abf8ddcdce00359e73ea17b65a00c6e453d86836537a390ec4c08def","schema_version":"openadapt.approval-mode-log-event/v1","seq":2,"sha256":"sha256:8d424c81b499c4577ac40e1d6e630962863fa2c42c97856519be052c577aea09","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T05:54:23.399405+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:8d424c81b499c4577ac40e1d6e630962863fa2c42c97856519be052c577aea09","reason":null,"run_ref":"51ea4ea7abf8ddcdce00359e73ea17b65a00c6e453d86836537a390ec4c08def","schema_version":"openadapt.approval-mode-log-event/v1","seq":3,"sha256":"sha256:58c95089263706a3eb242dfd62471828c0d6a65c0b6e0279cece63c20a434d2e","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T05:56:15.631538+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:58c95089263706a3eb242dfd62471828c0d6a65c0b6e0279cece63c20a434d2e","reason":null,"run_ref":"79dd15cef180446d4f51642d06936e18e500449b0e5f2c2eacb6ed9a4f3675fe","schema_version":"openadapt.approval-mode-log-event/v1","seq":4,"sha256":"sha256:9d5fad53102856eae0f3b959879fdfb289d12b0ddff6a163d7ac4fe097f8736f","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T05:56:29.457056+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:9d5fad53102856eae0f3b959879fdfb289d12b0ddff6a163d7ac4fe097f8736f","reason":null,"run_ref":"79dd15cef180446d4f51642d06936e18e500449b0e5f2c2eacb6ed9a4f3675fe","schema_version":"openadapt.approval-mode-log-event/v1","seq":5,"sha256":"sha256:36e2ea95e06d04d9317751f3e358bedd2d26929269566db480a173decd0213b7","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T05:58:26.318835+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:36e2ea95e06d04d9317751f3e358bedd2d26929269566db480a173decd0213b7","reason":null,"run_ref":"20fe8d0a3e1522299fee767f85b568f895e91c0b2493d383f55cf59aa6e03b1c","schema_version":"openadapt.approval-mode-log-event/v1","seq":6,"sha256":"sha256:65f545296977eeaefdd18dc23b56130deae6f0247e0ec3711e3ff074c8ce6275","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T05:58:41.293811+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:65f545296977eeaefdd18dc23b56130deae6f0247e0ec3711e3ff074c8ce6275","reason":null,"run_ref":"20fe8d0a3e1522299fee767f85b568f895e91c0b2493d383f55cf59aa6e03b1c","schema_version":"openadapt.approval-mode-log-event/v1","seq":7,"sha256":"sha256:8f8dd810c78c36892087d825afd240a8b8dc4f5ea58eaa15da2580a13ea93ccf","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:00:51.387754+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:8f8dd810c78c36892087d825afd240a8b8dc4f5ea58eaa15da2580a13ea93ccf","reason":null,"run_ref":"8e02d26e574af06c2858614af0983db5d4f924e5e684b78f3125b4f9b0f9b615","schema_version":"openadapt.approval-mode-log-event/v1","seq":8,"sha256":"sha256:2506b14284c4e77e650b7e37183552f222c7ba5e219acf17af806d9690c6ae23","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:01:07.942172+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:2506b14284c4e77e650b7e37183552f222c7ba5e219acf17af806d9690c6ae23","reason":null,"run_ref":"8e02d26e574af06c2858614af0983db5d4f924e5e684b78f3125b4f9b0f9b615","schema_version":"openadapt.approval-mode-log-event/v1","seq":9,"sha256":"sha256:3f01d1d086419e7c219fc9b559e1039402ede5b00f9c8c8f2431e0b323bd2c22","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:03:04.967820+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:3f01d1d086419e7c219fc9b559e1039402ede5b00f9c8c8f2431e0b323bd2c22","reason":null,"run_ref":"338c4d6b8efafe59514e81fa6ac01592faa2e50183d9f8414595318307424c31","schema_version":"openadapt.approval-mode-log-event/v1","seq":10,"sha256":"sha256:2ae1002eb00e695c9e2f4119ddaefb9f2cf9b8e4d36f46d029bf1085d4cdae0e","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:03:19.665317+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:2ae1002eb00e695c9e2f4119ddaefb9f2cf9b8e4d36f46d029bf1085d4cdae0e","reason":null,"run_ref":"338c4d6b8efafe59514e81fa6ac01592faa2e50183d9f8414595318307424c31","schema_version":"openadapt.approval-mode-log-event/v1","seq":11,"sha256":"sha256:f008a53d86bd865ae437e25b15577d2d8ed6952ee5e6f8a8576ded7b3468bb3e","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:05:18.180317+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:f008a53d86bd865ae437e25b15577d2d8ed6952ee5e6f8a8576ded7b3468bb3e","reason":null,"run_ref":"e3206e1a8105e37e91a716e16541d0ea69a2d0292f5c9997d01887014180c175","schema_version":"openadapt.approval-mode-log-event/v1","seq":12,"sha256":"sha256:1b012d99065eeec55df0c8b3b78558de887ef6a3285138b73d1d20a3cd013afc","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:05:32.783836+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:1b012d99065eeec55df0c8b3b78558de887ef6a3285138b73d1d20a3cd013afc","reason":null,"run_ref":"e3206e1a8105e37e91a716e16541d0ea69a2d0292f5c9997d01887014180c175","schema_version":"openadapt.approval-mode-log-event/v1","seq":13,"sha256":"sha256:3067d54c1e855207c21c6728d47b35fc5d48c687c1a1101e7f8091ecefc48404","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:07:30.090178+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:3067d54c1e855207c21c6728d47b35fc5d48c687c1a1101e7f8091ecefc48404","reason":null,"run_ref":"53ac24a3a04df7ec6634153d03915302255faa64c4b0d71d015274eaf8a82b4f","schema_version":"openadapt.approval-mode-log-event/v1","seq":14,"sha256":"sha256:a364213b8c03f7739b800db4e1d99120301a300f1e53a3cd57743b9183ad60bd","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:07:44.403939+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:a364213b8c03f7739b800db4e1d99120301a300f1e53a3cd57743b9183ad60bd","reason":null,"run_ref":"53ac24a3a04df7ec6634153d03915302255faa64c4b0d71d015274eaf8a82b4f","schema_version":"openadapt.approval-mode-log-event/v1","seq":15,"sha256":"sha256:45aaf1018165f917651554ad06588a77e2f1a61586444ca4b4f340bc8aee8f55","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:07:53.055400+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:45aaf1018165f917651554ad06588a77e2f1a61586444ca4b4f340bc8aee8f55","reason":"inputs_supplied","run_ref":"3d88647b87f0556982f2fc202399628cd5bf8a3ad3da19ba18e27c5f85bde0d0","schema_version":"openadapt.approval-mode-log-event/v1","seq":16,"sha256":"sha256:1c336a1744df5c1a6c87cac796065bf3d0f54f7ea270e445d9b4164031d73ac1","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:09:47.835253+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:1c336a1744df5c1a6c87cac796065bf3d0f54f7ea270e445d9b4164031d73ac1","reason":null,"run_ref":"e75dd3619e8ea9354afd11548421d79b35e88d58f651f356b6549145f4980166","schema_version":"openadapt.approval-mode-log-event/v1","seq":17,"sha256":"sha256:e18c08905ce17a9c78343b3e2a07cffb7fbfd70ae54fd3f9a2ef8ee5737de351","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:10:01.823677+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:e18c08905ce17a9c78343b3e2a07cffb7fbfd70ae54fd3f9a2ef8ee5737de351","reason":null,"run_ref":"e75dd3619e8ea9354afd11548421d79b35e88d58f651f356b6549145f4980166","schema_version":"openadapt.approval-mode-log-event/v1","seq":18,"sha256":"sha256:c5d35c575856b9a108054f4b5080e8d2da784de22510f96698ae81d015c82d9e","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:11:55.803103+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:c5d35c575856b9a108054f4b5080e8d2da784de22510f96698ae81d015c82d9e","reason":null,"run_ref":"0fefed9f5af00232e19f177be9c5cb9ddda1b8c81e458caa7e6c624d14cbe6b6","schema_version":"openadapt.approval-mode-log-event/v1","seq":19,"sha256":"sha256:74224cef4b331c7ec8eaa30bbffee2c0cce29d494ba185eec668f524d2e6789b","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:12:09.767935+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:74224cef4b331c7ec8eaa30bbffee2c0cce29d494ba185eec668f524d2e6789b","reason":null,"run_ref":"0fefed9f5af00232e19f177be9c5cb9ddda1b8c81e458caa7e6c624d14cbe6b6","schema_version":"openadapt.approval-mode-log-event/v1","seq":20,"sha256":"sha256:74e6a5a208be95deea12b8847cf5a60723babb656fee2c02ba723364f8e3e75c","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:14:02.482557+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:74e6a5a208be95deea12b8847cf5a60723babb656fee2c02ba723364f8e3e75c","reason":null,"run_ref":"6b9d0363d8785055b377a7fd5ba013bce25e7f04ee41cda0115f294d5e96561c","schema_version":"openadapt.approval-mode-log-event/v1","seq":21,"sha256":"sha256:28a84fe801234970f9ab782b3cc8188a9fbeee1b409c7e1961df1d4782802626","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:14:16.432804+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:28a84fe801234970f9ab782b3cc8188a9fbeee1b409c7e1961df1d4782802626","reason":null,"run_ref":"6b9d0363d8785055b377a7fd5ba013bce25e7f04ee41cda0115f294d5e96561c","schema_version":"openadapt.approval-mode-log-event/v1","seq":22,"sha256":"sha256:9ca011ca13c612888a3cc01c36bd4ea7c980ceb8cf677d46a8427727ce5f56be","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:16:22.144049+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:9ca011ca13c612888a3cc01c36bd4ea7c980ceb8cf677d46a8427727ce5f56be","reason":"halted_before_effect","run_ref":"1ec1c51a180a019974a065c1a0ff43856c673a5cc11bee13abd2a0b312801c23","schema_version":"openadapt.approval-mode-log-event/v1","seq":23,"sha256":"sha256:8dbe45d0828102212525ab7cbdf17595d4561732ced0fe5790da5e0e5e74c39c","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:16:22.145253+00:00","counts_toward_problems":null,"decision":null,"kind":"switched_off","prev_sha256":"sha256:8dbe45d0828102212525ab7cbdf17595d4561732ced0fe5790da5e0e5e74c39c","reason":"screen_changed","run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":24,"sha256":"sha256:043c802d6de42a09880e365eb749a69d8a9b6c778fec9a6e59551fde9f19e107","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:18:27.006637+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:043c802d6de42a09880e365eb749a69d8a9b6c778fec9a6e59551fde9f19e107","reason":"halted_before_effect","run_ref":"80eaa8882d2809e5feac9fbae6c0a92e951ef70d9b2db0fedd559307a27b5228","schema_version":"openadapt.approval-mode-log-event/v1","seq":25,"sha256":"sha256:8bcff4ca4d4cae81c361f49864dff3b6bdd0a179f782984c52e64c51db4acf16","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:20:34.413831+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:8bcff4ca4d4cae81c361f49864dff3b6bdd0a179f782984c52e64c51db4acf16","reason":null,"run_ref":"dbed6dfe9622e3dc3c450c38eb14ba2132cd27bd4f9cb0ae9efc91cb1f12817f","schema_version":"openadapt.approval-mode-log-event/v1","seq":26,"sha256":"sha256:0aaf07172650618f59c4285215b0651a7895f21c41729de0bcdb21cb2d298f89","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:22:42.428448+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:0aaf07172650618f59c4285215b0651a7895f21c41729de0bcdb21cb2d298f89","reason":null,"run_ref":"cf05433613a375c247c98872bf8e4c93618678dd0f868358f61c58d77f068ec1","schema_version":"openadapt.approval-mode-log-event/v1","seq":27,"sha256":"sha256:88ffd8d07fdc80f80bf0ecdd15d8dd5560f02b73ad8ffd427135a0c212018e93","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:24:48.728337+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:88ffd8d07fdc80f80bf0ecdd15d8dd5560f02b73ad8ffd427135a0c212018e93","reason":null,"run_ref":"70cd24b5c68e858d8b7bd114f33e3c2937323e94146b0e35b82372046d8cbde2","schema_version":"openadapt.approval-mode-log-event/v1","seq":28,"sha256":"sha256:2a346a9fea27ca8da21ebe856afc09a7a84dc3ec572f8c327d6df6a4b21a53ba","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:26:55.936985+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:2a346a9fea27ca8da21ebe856afc09a7a84dc3ec572f8c327d6df6a4b21a53ba","reason":null,"run_ref":"5a18b69a5356c84a8ebbd49f6428e72e08632de231ccde5d57ecad24a84f399a","schema_version":"openadapt.approval-mode-log-event/v1","seq":29,"sha256":"sha256:e1cc02be2593240e4ce788830358f0072002c7959aa32fb28a0ec3528b4b9cf2","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:29:02.514575+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:e1cc02be2593240e4ce788830358f0072002c7959aa32fb28a0ec3528b4b9cf2","reason":null,"run_ref":"a6af4188790a18e5c1af009c26438586669c6a003bacd5a34d23995758dc34c3","schema_version":"openadapt.approval-mode-log-event/v1","seq":30,"sha256":"sha256:ca99f8f346a5fa00058876daab040317cf3be323c318a0eabaa3c1540a865ce0","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:31:31.175154+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:ca99f8f346a5fa00058876daab040317cf3be323c318a0eabaa3c1540a865ce0","reason":null,"run_ref":"6eb7f4176be984a0506af4627e62fc6a0110ead8b49cdaff0549f2f367f4380b","schema_version":"openadapt.approval-mode-log-event/v1","seq":31,"sha256":"sha256:bc5e1b51d4ca35e0ba501ef7d7c62d618291995c20eec614e486656500e477ce","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:31:40.147025+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:bc5e1b51d4ca35e0ba501ef7d7c62d618291995c20eec614e486656500e477ce","reason":"rejected_policy","run_ref":"656e6b91e3b512ced572ac021d970a5572c4d3b4b2293fd1eee345f53778a9e5","schema_version":"openadapt.approval-mode-log-event/v1","seq":32,"sha256":"sha256:c55506dc194dfb5695e5b5d5b600feaf1bfc3552867956d466e6a4c8839baa24","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:34:18.241463+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:c55506dc194dfb5695e5b5d5b600feaf1bfc3552867956d466e6a4c8839baa24","reason":"reconciliation_required","run_ref":"506879994cb3eb697e68c4878984daaaf2c7f7f94f812c7ce92dfb95adeee025","schema_version":"openadapt.approval-mode-log-event/v1","seq":33,"sha256":"sha256:b6deddf9d7d5bee5765a29d422eb5ad917c21d828dbf013f8256479364c96ad3","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:36:21.888363+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:b6deddf9d7d5bee5765a29d422eb5ad917c21d828dbf013f8256479364c96ad3","reason":"halted_before_effect","run_ref":"72ab80ddac27e77e07af3cfd60658bb2683ee2d39a517aff95d1abd15ff80d17","schema_version":"openadapt.approval-mode-log-event/v1","seq":34,"sha256":"sha256:6668e1e7f1268389660fa37f01e266c1d791b0866fb6ff92019eacd10e62f802","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:38:22.674396+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:6668e1e7f1268389660fa37f01e266c1d791b0866fb6ff92019eacd10e62f802","reason":"halted_before_effect","run_ref":"69c57f936fe64278052cbb8e801aefeda0e571c9178f0a47a77edd50925dcd1c","schema_version":"openadapt.approval-mode-log-event/v1","seq":35,"sha256":"sha256:f55241224366d4017a52186416bad5e3a93995314b372f3cf6cf5be2bd803072","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:40:25.615648+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:f55241224366d4017a52186416bad5e3a93995314b372f3cf6cf5be2bd803072","reason":null,"run_ref":"c7823aba3b91e0fed088cd9074b0f72a953f4ac65dea1bdec48cf4330e00e7c7","schema_version":"openadapt.approval-mode-log-event/v1","seq":36,"sha256":"sha256:b2221eeaacafc76f7df64bce89490098629b1a4606d8a2ff7f055ea8d3ba721e","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:42:27.564863+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:b2221eeaacafc76f7df64bce89490098629b1a4606d8a2ff7f055ea8d3ba721e","reason":null,"run_ref":"10a75685b4ef4f269d3cf636512a18244a39fec90316db3d209a95d1d0242267","schema_version":"openadapt.approval-mode-log-event/v1","seq":37,"sha256":"sha256:d8174232da7a2599fb3363a3dc2279fd45156c173a45659dffc02383c6d7358d","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:44:54.827755+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:d8174232da7a2599fb3363a3dc2279fd45156c173a45659dffc02383c6d7358d","reason":"halted_before_effect","run_ref":"64da47f40b5f552c01d94686cadddf87c631f540fcdb97268b389be6b89dc844","schema_version":"openadapt.approval-mode-log-event/v1","seq":38,"sha256":"sha256:ae2a33036d46144ffe7960361a7016f602442450f5428d733446e8da086ebcff","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:47:25.230025+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:ae2a33036d46144ffe7960361a7016f602442450f5428d733446e8da086ebcff","reason":"halted_before_effect","run_ref":"e0f6570f23ec3159d18bc48727a4ce4755f20cc9e206309425beb354fad2098b","schema_version":"openadapt.approval-mode-log-event/v1","seq":39,"sha256":"sha256:77b994bb94dba051ec00f3c1ee67a126e7293cf6b0d58c592705c561424be216","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:49:30.256728+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:77b994bb94dba051ec00f3c1ee67a126e7293cf6b0d58c592705c561424be216","reason":null,"run_ref":"9ceccb7a62d42bccba097faec2ad23263a736c1566cf368821dec8052efdda46","schema_version":"openadapt.approval-mode-log-event/v1","seq":40,"sha256":"sha256:645cfb07159d78d0b134e6eb09803699e27bb7620770e4aa1561e28e9da2244b","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} +{"at":"2026-10-25T06:51:27.653114+00:00","counts_toward_problems":true,"decision":"stop_before_saving","kind":"item_finished","prev_sha256":"sha256:645cfb07159d78d0b134e6eb09803699e27bb7620770e4aa1561e28e9da2244b","reason":"right_record","run_ref":"e34d4cbb30a9af3f46b948a6176a862bad863cd5e8c7659bdb674dfabffbfe06","schema_version":"openadapt.approval-mode-log-event/v1","seq":41,"sha256":"sha256:e65f72cec91cc6b77bd1092dfec70565ec1eb54cbf1f9abe276006bd1140eb51","switch_id":"switch-lifecycle-proof-a3f60b4a247c-1792907498","switch_record_sha256":null} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/log-1792911871.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/log-1792911871.jsonl new file mode 100644 index 000000000..758c9329d --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/log-1792911871.jsonl @@ -0,0 +1,36 @@ +{"at":"2026-10-25T07:04:31.808600+00:00","counts_toward_problems":null,"decision":null,"kind":"opened","prev_sha256":"sha256:0000000000000000000000000000000000000000000000000000000000000000","reason":null,"run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":1,"sha256":"sha256:fc0abbb520aa5ce4e8d94132d8208faf4a4ba4e5237e19ecedaba9c7b505b666","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":"sha256:f4cefffbb0933f2a97e7aae74c19ce279c4a7e0b104fbb8006ded651c64169f3"} +{"at":"2026-10-25T07:06:35.211960+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:fc0abbb520aa5ce4e8d94132d8208faf4a4ba4e5237e19ecedaba9c7b505b666","reason":"reconciliation_required","run_ref":"1421bbd121532b341d127dbc42394bc87c63340ceb3016e1953213283c2b9efb","schema_version":"openadapt.approval-mode-log-event/v1","seq":2,"sha256":"sha256:e5ac7f0b516fb970d74feb5c5a7c3839299a6f8f74030b21c92454084f8c019e","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:06:35.212427+00:00","counts_toward_problems":null,"decision":null,"kind":"switched_off","prev_sha256":"sha256:e5ac7f0b516fb970d74feb5c5a7c3839299a6f8f74030b21c92454084f8c019e","reason":"uncertain_result","run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":3,"sha256":"sha256:1d64870b4f66fd3b9984dbb4655a9bd318a99b460aca2b6ee8e2d3a4e3d92f0d","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:08:38.126887+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:1d64870b4f66fd3b9984dbb4655a9bd318a99b460aca2b6ee8e2d3a4e3d92f0d","reason":null,"run_ref":"350943707441941bcc1c6fa5bba14581ffb3bd6173be7abb73bdec91b1b7eafb","schema_version":"openadapt.approval-mode-log-event/v1","seq":4,"sha256":"sha256:5d453662bad44c69f9fbadd9b34603e61c4ba332c8c239ab727cc29d5c76b029","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:10:41.957606+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:5d453662bad44c69f9fbadd9b34603e61c4ba332c8c239ab727cc29d5c76b029","reason":null,"run_ref":"b8e9827b4138a451066243564186ce978852cb5d37ca7515639c7d462bcdccd6","schema_version":"openadapt.approval-mode-log-event/v1","seq":5,"sha256":"sha256:e08ad81d83d7189053a987e11e6a1e684083ae7153284c23a861f8991aa84a9c","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:12:44.188129+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:e08ad81d83d7189053a987e11e6a1e684083ae7153284c23a861f8991aa84a9c","reason":"halted_before_effect","run_ref":"b645f1e069ecdd1d44b80cbe74335389b50850b8ef84b35dcfa0fc6db728a801","schema_version":"openadapt.approval-mode-log-event/v1","seq":6,"sha256":"sha256:278e90d26fd0d88adc47f43303bd3a79d0d3d1a8d3c9ce509a4fbbe426250de9","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:14:45.033328+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:278e90d26fd0d88adc47f43303bd3a79d0d3d1a8d3c9ce509a4fbbe426250de9","reason":"halted_before_effect","run_ref":"1c4864c39b48898208af37db149b9efd78c9d86cc899db54214b1b27ccc7bc08","schema_version":"openadapt.approval-mode-log-event/v1","seq":7,"sha256":"sha256:18c2d359ec4a7bd791b5121f57028a7888b3c52f0fe02aabae6798c92e12acc7","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:16:48.318460+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:18c2d359ec4a7bd791b5121f57028a7888b3c52f0fe02aabae6798c92e12acc7","reason":null,"run_ref":"b4e26c8fe43c7190327d21b2e45495b209e19d09f03fcb0560fda93d07ae5f29","schema_version":"openadapt.approval-mode-log-event/v1","seq":8,"sha256":"sha256:ae39e02523163e30d4d3683de03134aefe4e7ddf27dd3a5a2dcacc0a86bfd817","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:18:50.973638+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:ae39e02523163e30d4d3683de03134aefe4e7ddf27dd3a5a2dcacc0a86bfd817","reason":null,"run_ref":"53f3d846f51c5877c7b833bd63ac047c496231561dfcf1af6599a1d2f3138b10","schema_version":"openadapt.approval-mode-log-event/v1","seq":9,"sha256":"sha256:671ce8eed6ad3aaeec3a49f66616e3bdd62b6d57d57c47a5df236376c0d34e95","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:18:59.083116+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:671ce8eed6ad3aaeec3a49f66616e3bdd62b6d57d57c47a5df236376c0d34e95","reason":"rejected_policy","run_ref":"09bf37f4fcbcbec0e89a1e825ac08b7ce14fa45d20cc703dffdc868efc864f74","schema_version":"openadapt.approval-mode-log-event/v1","seq":10,"sha256":"sha256:fd15ec465d63663bbe67b58686132f74ab1a5438bbdab8be8ba4f2720e1797a5","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:21:04.754085+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:fd15ec465d63663bbe67b58686132f74ab1a5438bbdab8be8ba4f2720e1797a5","reason":null,"run_ref":"ab1f6c07f2f4ffe2aea5493c6e2302193398e8b7fe604ce1129a13a4edb77da9","schema_version":"openadapt.approval-mode-log-event/v1","seq":11,"sha256":"sha256:f5c8f0437d2b00e60f07dbc1f0f5c9dcab0b025a2f9d77071b1b5879f2a19c03","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:23:06.037278+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:f5c8f0437d2b00e60f07dbc1f0f5c9dcab0b025a2f9d77071b1b5879f2a19c03","reason":"halted_before_effect","run_ref":"ba87c994a329ff394cdcd7c73b8374711c52c9ce062969f50413061481e98f44","schema_version":"openadapt.approval-mode-log-event/v1","seq":12,"sha256":"sha256:89dc3284430d64bd1efb0c07b5779c218e5eb76d54b1203963634d733bd75840","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:25:06.808469+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:89dc3284430d64bd1efb0c07b5779c218e5eb76d54b1203963634d733bd75840","reason":"halted_before_effect","run_ref":"1bf0b5c89ca055f096f882ce1676d778d573ec55f16b61c5ba0538848f895048","schema_version":"openadapt.approval-mode-log-event/v1","seq":13,"sha256":"sha256:8bc30796f18af7cd1ccee2a38486c47e1a18c6a6ecd66642c7c3b0bdc1f067c1","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:27:09.485965+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:8bc30796f18af7cd1ccee2a38486c47e1a18c6a6ecd66642c7c3b0bdc1f067c1","reason":null,"run_ref":"673667d7e74e2dec1a7fd932ead2729aeb59aa16a63a3c80c42ef60326f9e2bf","schema_version":"openadapt.approval-mode-log-event/v1","seq":14,"sha256":"sha256:603594ae7b69704efd5b692c949ad79b049f4cd43a5c49aee8e42233a8741557","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:29:11.803261+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:603594ae7b69704efd5b692c949ad79b049f4cd43a5c49aee8e42233a8741557","reason":null,"run_ref":"ca42e19a3e402494b4b885747b25ba2a1024b65c31d5498beeb81bad7c1b8e3b","schema_version":"openadapt.approval-mode-log-event/v1","seq":15,"sha256":"sha256:7431736a196ed0668b5ba4edc6dc3815c3a70a6c92ff64d43d8ea71d7cc7235b","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:31:13.458023+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:7431736a196ed0668b5ba4edc6dc3815c3a70a6c92ff64d43d8ea71d7cc7235b","reason":null,"run_ref":"c1696a1b00164fab61b958d3b057a3f13ecff626e4ceaf564178ef21b367ec35","schema_version":"openadapt.approval-mode-log-event/v1","seq":16,"sha256":"sha256:2208189b4bff4c7167f58c3039ed70228dd909c78d35fa8b762d946762fa48eb","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:33:20.814237+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:2208189b4bff4c7167f58c3039ed70228dd909c78d35fa8b762d946762fa48eb","reason":null,"run_ref":"0cf3955887f8098873b3a59671eae94e4e742bc11e9b36d9665984b9ca0b4af5","schema_version":"openadapt.approval-mode-log-event/v1","seq":17,"sha256":"sha256:9f3114fe5b2a43b4b218c434f20ba606594fddfddeb0f7877630eade99bb02cc","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:35:22.781512+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:9f3114fe5b2a43b4b218c434f20ba606594fddfddeb0f7877630eade99bb02cc","reason":null,"run_ref":"6f3b07eaa6cc72a3dbe1a1a933fc18f8621b6f09767900b99f2bab4fa6061dc6","schema_version":"openadapt.approval-mode-log-event/v1","seq":18,"sha256":"sha256:0cf2c86cd30db269f1a3a58f031252f362d8d84d6349a709785f25041f5f844e","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:37:25.543405+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:0cf2c86cd30db269f1a3a58f031252f362d8d84d6349a709785f25041f5f844e","reason":null,"run_ref":"fe8e793d1fadd9fc7294f314a7fd5fa13e52d7e382b489a925c5ba73a8a5baa9","schema_version":"openadapt.approval-mode-log-event/v1","seq":19,"sha256":"sha256:4a9277c2ef9565f7daec491299fddf1fd0df56b4e496984f6f6b970cf6549c4f","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:39:27.165643+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:4a9277c2ef9565f7daec491299fddf1fd0df56b4e496984f6f6b970cf6549c4f","reason":null,"run_ref":"8e83d560c65da6d983f39de6b5d61a6dd1ce59a9c1c18acb142213a50e1181a6","schema_version":"openadapt.approval-mode-log-event/v1","seq":20,"sha256":"sha256:0c1e8a0f5da126881c77d52cf6d7421dfd7683b0059657bb8a4a7197dfeb4baa","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:41:28.865242+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:0c1e8a0f5da126881c77d52cf6d7421dfd7683b0059657bb8a4a7197dfeb4baa","reason":null,"run_ref":"af0e2836f575e3d4fa2bfa7f2abbf84533a70d846466e0b85fe286422ece2c05","schema_version":"openadapt.approval-mode-log-event/v1","seq":21,"sha256":"sha256:4d545a02518447d50952d691ad7e13f46ef6f7d40c14e797fdad631d8101c2f9","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:43:30.486507+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:4d545a02518447d50952d691ad7e13f46ef6f7d40c14e797fdad631d8101c2f9","reason":null,"run_ref":"c945da393f2bc45d095a6c640c16a4946be5bf8f64176208ee01b894f219fc58","schema_version":"openadapt.approval-mode-log-event/v1","seq":22,"sha256":"sha256:14297e4691e168776c265ed6fadc64014262a0f915a044b3982cdb89db38a127","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:43:38.501465+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:14297e4691e168776c265ed6fadc64014262a0f915a044b3982cdb89db38a127","reason":"rejected_policy","run_ref":"299692e02311140c2555ba36e3206a041993a2f15b7cf07cb8125611c14d0e2c","schema_version":"openadapt.approval-mode-log-event/v1","seq":23,"sha256":"sha256:8641292398928b9b022409f934dc414aec0405f2060b2e157e71cd88b1edc799","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:45:40.977768+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:8641292398928b9b022409f934dc414aec0405f2060b2e157e71cd88b1edc799","reason":"halted_before_effect","run_ref":"6719c84f3cbb9747236c2606d2270156de065d0b37a5b5db16cca23629181d13","schema_version":"openadapt.approval-mode-log-event/v1","seq":24,"sha256":"sha256:53016a7a6fa25902a230847bcb7138f6139e7a9e5564eb881fbd0c960a8617ea","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:47:42.479682+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:53016a7a6fa25902a230847bcb7138f6139e7a9e5564eb881fbd0c960a8617ea","reason":"halted_before_effect","run_ref":"d3d5ede07904c6816414b550eaa59e7bd2c36adead6d6d39c043810588c05f8b","schema_version":"openadapt.approval-mode-log-event/v1","seq":25,"sha256":"sha256:f63e44a1cae7cb3a7e3eeb013d3d826ac45b5a9a5ba53b031938b2154c7c7d87","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:49:46.571627+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:f63e44a1cae7cb3a7e3eeb013d3d826ac45b5a9a5ba53b031938b2154c7c7d87","reason":null,"run_ref":"2be26bc377545d42b480ed96cd91d7cd654bbd9f125b369c20a19436603cc7aa","schema_version":"openadapt.approval-mode-log-event/v1","seq":26,"sha256":"sha256:44b708c4669109c9aa8ebd0b67d868c7d4e7df04039d6e950cce28a2bf33ca77","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:51:50.130335+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:44b708c4669109c9aa8ebd0b67d868c7d4e7df04039d6e950cce28a2bf33ca77","reason":null,"run_ref":"36bb4dcedb3e213eca984ab9cd8cff90f5c381c1dd633044b6694f97d30df2a1","schema_version":"openadapt.approval-mode-log-event/v1","seq":27,"sha256":"sha256:9c6443281ec65940d797cb0db8c3ca226810b65dfad5b48caa64968e970358e3","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:53:52.279407+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:9c6443281ec65940d797cb0db8c3ca226810b65dfad5b48caa64968e970358e3","reason":null,"run_ref":"2f8b1ee31463b856c1fc53e0dd70bd602ad2db25ab3cedb61c73dc6be0a2f5ad","schema_version":"openadapt.approval-mode-log-event/v1","seq":28,"sha256":"sha256:2bebd088b6aa731d2fab46137b682f782fbedbedd7a6da766e11a4a33d685f40","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:55:54.111113+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:2bebd088b6aa731d2fab46137b682f782fbedbedd7a6da766e11a4a33d685f40","reason":null,"run_ref":"698ac988bc889e2989e8ba95dcec3292d2a6edc516cf8a4b88e6eb925167d302","schema_version":"openadapt.approval-mode-log-event/v1","seq":29,"sha256":"sha256:140c1d858bb795a9f32f642bc13938609368dbf61a5a7a2f345d1aa9c58a0639","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:57:56.108089+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:140c1d858bb795a9f32f642bc13938609368dbf61a5a7a2f345d1aa9c58a0639","reason":null,"run_ref":"26f0975a3dd31c27c1983888bccf40bf995c529df03d5e3329d53781b8bb5411","schema_version":"openadapt.approval-mode-log-event/v1","seq":30,"sha256":"sha256:5180bd657c27b0ce92e1f946c98f753063fe233c7244209f28b5f96d0939195c","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T07:59:58.228006+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:5180bd657c27b0ce92e1f946c98f753063fe233c7244209f28b5f96d0939195c","reason":null,"run_ref":"38e1e10fcff35d924145923abaceea9d8e85f69d0bed2929605cf2ffcf2025ec","schema_version":"openadapt.approval-mode-log-event/v1","seq":31,"sha256":"sha256:63f3b21a90201fd7f07170b2a8cbe5036c8f408afcbeacbe869cacc72560040d","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T08:01:58.270015+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:63f3b21a90201fd7f07170b2a8cbe5036c8f408afcbeacbe869cacc72560040d","reason":"halted_before_effect","run_ref":"2a1798da5ed0a9fc9ff928d891c9fe8d9e2846cde797a0425075da52ef0d62bf","schema_version":"openadapt.approval-mode-log-event/v1","seq":32,"sha256":"sha256:6006335d802626c02baf723b6154904454c5bd6d05c21538ea304bb76e259470","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T08:03:59.059161+00:00","counts_toward_problems":true,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:6006335d802626c02baf723b6154904454c5bd6d05c21538ea304bb76e259470","reason":"halted_before_effect","run_ref":"0a514cfdf5721d94e4e4e8bb48313639762737698b575e26347a3dcde72c892e","schema_version":"openadapt.approval-mode-log-event/v1","seq":33,"sha256":"sha256:775938cbd0697efe868ba170e205661240b3e9827aafba2175c9cf41faab94f5","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T08:04:07.267690+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:775938cbd0697efe868ba170e205661240b3e9827aafba2175c9cf41faab94f5","reason":"rejected_policy","run_ref":"99dbf99060b1381143d2323e5a43c726d3998a688094f69264b40d0e35bd0bf3","schema_version":"openadapt.approval-mode-log-event/v1","seq":34,"sha256":"sha256:ac71e6fc1d2508304b48b1f4114701c67c8e3fb324415b64f8feb384d00a9cef","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T08:06:13.732571+00:00","counts_toward_problems":false,"decision":"approved","kind":"item_finished","prev_sha256":"sha256:ac71e6fc1d2508304b48b1f4114701c67c8e3fb324415b64f8feb384d00a9cef","reason":null,"run_ref":"e21dd8c4266609e20f9c91939c5ac350919bf5f70f6207ffc99aec3bcbba8497","schema_version":"openadapt.approval-mode-log-event/v1","seq":35,"sha256":"sha256:79d89173c7209c7203927ed78ea64f4af56057e96c3d549babcd0c674475c276","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} +{"at":"2026-10-25T08:06:22.180303+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:79d89173c7209c7203927ed78ea64f4af56057e96c3d549babcd0c674475c276","reason":"inputs_supplied","run_ref":"857f11eb918d903e174acc3dca1ef39d2ac1d11a9d90a6afb03992f949feb258","schema_version":"openadapt.approval-mode-log-event/v1","seq":36,"sha256":"sha256:1c91597a61704a1063f1586d9ec6442d7afbda449a63c2aedab8d9a894f58b34","switch_id":"switch-lifecycle-proof-959971d5e5ef-1792911871","switch_record_sha256":null} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/switch.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/switch.json new file mode 100644 index 000000000..3dbcc4027 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/switch.json @@ -0,0 +1,42 @@ +{ + "log": "/Users/abrichr/oa/scratch/production-lifecycle/runs/soak-after-policy-2/arms/openadapt-production-relabel/switch/log-1792911871.jsonl", + "record": { + "allowed_interstitials": {}, + "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", + "channel": "desktop_run_it_list_with_header", + "dedicated_user_ref": "hmac-sha256:416c28d5858aff6dc46c5f2e1f00ead21c20ceaa4a64e3d4a1b8330b23f89f7e", + "environment_digest": "sha256:2dc00aa5bd8d4cb971fc11d724d7bae63aaa300f8cfe636298f68d5500913df5", + "org_id": "org-lifecycle-proof", + "profile": "regulated", + "rung_floor": { + "step_000": "structural", + "step_003": "structural", + "step_006": "structural", + "step_009": "structural", + "step_012": "structural", + "step_016": "structural", + "step_018": "structural", + "step_021": "structural", + "step_024": "structural", + "step_027": "structural", + "step_030": "structural", + "step_033": "structural", + "step_036": "structural", + "step_039": "structural", + "step_040": "structural" + }, + "runner_id": "lifecycle-proof-runner-1", + "schema_version": "openadapt.approval-mode-switch/v1", + "switch_id": "switch-lifecycle-proof-959971d5e5ef-1792911871", + "thresholds": { + "problems_in_a_row": 3, + "problems_in_window": 5, + "problems_window": 20, + "status_max_age_s": 900 + }, + "verifier_identities": [ + "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2" + ], + "workflow_id": "workflow-openemr-referral" + } +} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/workload.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/workload.jsonl new file mode 100644 index 000000000..88d7f9d32 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/workload.jsonl @@ -0,0 +1,69 @@ +{"days": 10, "exception_mix": {"ambiguous_new_person": 0.02, "ambiguous_same_person": 0.02, "common_surname": 0.06, "concurrent_other": 0.02, "concurrent_same": 0.015, "dup_existing": 0.03, "dup_resend": 0.03, "failed_save": 0.015, "malformed_case": 0.02, "malformed_dob": 0.02, "missing_optional": 0.02, "missing_required": 0.02, "session_expiry": 0.02, "shared_dob": 0.08, "slow_save": 0.02}, "items": 55, "seed": 7, "type": "workload", "version": "lifecycle-workload/2026-10-24.1"} +{"DOB": "1941-02-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ana.fairwick.9000@example.invalid", "fname": "Ana", "lname": "Fairwick", "phone_home": "555-0174", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "276 QUARRY HILL DRIVE", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1939-02-14", "city": "EXAMPLETON", "country_code": "USA", "email": "theo.radley.9001@example.invalid", "fname": "Theo", "lname": "Radley", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "216 QUARRY HILL DRIVE", "title": "Ms.", "type": "existing_chart"} +{"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.oakwood.9002@example.invalid", "fname": "Rosalind", "lname": "Oakwood", "phone_home": "555-0106", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "323 WILLOW BEND ROAD", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1972-07-05", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.birchfield.9003@example.invalid", "fname": "Bram", "lname": "Birchfield", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "278 QUARRY HILL DRIVE", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1959-06-04", "city": "EXAMPLETON", "country_code": "USA", "email": "gideon.galwick.9004@example.invalid", "fname": "Gideon", "lname": "Galwick", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "282 QUARRY HILL DRIVE", "title": "Ms.", "type": "existing_chart"} +{"DOB": "1975-08-19", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenridge.9005@example.invalid", "fname": "Odile", "lname": "Quenridge", "phone_home": "555-0138", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "474 WAY", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1945-10-10", "city": "EXAMPLETON", "country_code": "USA", "email": "yuki.galwick.9006@example.invalid", "fname": "Yuki", "lname": "Galwick", "phone_home": "555-0193", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "270 WAY", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1950-09-14", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jessmere.9007@example.invalid", "fname": "Oren", "lname": "Jessmere", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "86 AVENUE MILL ROAD", "title": "Ms.", "type": "existing_chart"} +{"DOB": "1975-06-23", "city": "EXAMPLETON", "country_code": "USA", "email": "henrik.birchmore.9008@example.invalid", "fname": "Henrik", "lname": "Birchmore", "phone_home": "555-0108", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "181 WAY", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.jesston.9009@example.invalid", "fname": "Arlo", "lname": "Jesston", "phone_home": "555-0136", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "361 BEACON TERRACE STATION", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.jessmere.9011@example.invalid", "fname": "Odile", "lname": "Jessmere", "phone_home": "555-0121", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "471 WAY", "title": "Ms.", "type": "existing_chart"} +{"day": 4, "first_seq": 26, "kind": "relabel_save", "type": "drift_scheduled"} +{"app": "openemr", "day": 0, "item_id": "ref-00001", "params": {"DOB": "1990-09-09", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.jesswood.1@example.invalid", "fname": "Rosalind", "lname": "Jesswood", "phone_home": "555-0187", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "363 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 1, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Rosalind\nLast name: Jesswood\nDate of birth: 1990-09-09\nSex: Female\nStreet: 363 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0187\nEmail: rosalind.jesswood.1@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1990-09-09", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.jesswood.1@example.invalid", "fname": "Rosalind", "lname": "Jesswood", "phone_home": "555-0187", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "363 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00001", "person": {"DOB": "1990-09-09", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.jesswood.1@example.invalid", "fname": "Rosalind", "lname": "Jesswood", "phone_home": "555-0187", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "363 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 1}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00002", "params": {"DOB": "1957-03-08", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.fairwick.2@example.invalid", "fname": "Bram", "lname": "Fairwick", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "339 STREET CEDAR ROW", "title": "Ms."}, "seq": 2, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Bram\nLast name: Fairwick\nDate of birth: 1957-03-08\nSex: Female\nStreet: 339 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0162\nEmail: bram.fairwick.2@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1957-03-08", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.fairwick.2@example.invalid", "fname": "Bram", "lname": "Fairwick", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "339 STREET CEDAR ROW", "title": "Ms."}, "item_id": "ref-00002", "person": {"DOB": "1957-03-08", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.fairwick.2@example.invalid", "fname": "Bram", "lname": "Fairwick", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "339 STREET CEDAR ROW", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 2}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00003", "params": {"DOB": "1935-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "liesel.iversridge.3@example.invalid", "fname": "Liesel", "lname": "Iversridge", "phone_home": "555-0116", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "275 AVENUE MILL ROAD", "title": "Mr."}, "seq": 3, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Liesel\nLast name: Iversridge\nDate of birth: 1935-03-14\nSex: Male\nStreet: 275 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0116\nEmail: liesel.iversridge.3@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1935-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "liesel.iversridge.3@example.invalid", "fname": "Liesel", "lname": "Iversridge", "phone_home": "555-0116", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "275 AVENUE MILL ROAD", "title": "Mr."}, "item_id": "ref-00003", "person": {"DOB": "1935-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "liesel.iversridge.3@example.invalid", "fname": "Liesel", "lname": "Iversridge", "phone_home": "555-0116", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "275 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 3}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00004", "params": {"DOB": "1985-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.birchmere.4@example.invalid", "fname": "Fergus", "lname": "Birchmere", "phone_home": "555-0181", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "203 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 4, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Fergus\nLast name: Birchmere\nDate of birth: 1985-07-13\nSex: Male\nStreet: 203 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0181\nEmail: fergus.birchmere.4@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1985-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.birchmere.4@example.invalid", "fname": "Fergus", "lname": "Birchmere", "phone_home": "555-0181", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "203 QUARRY HILL DRIVE", "title": "Mr."}, "item_id": "ref-00004", "person": {"DOB": "1985-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.birchmere.4@example.invalid", "fname": "Fergus", "lname": "Birchmere", "phone_home": "555-0181", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "203 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 4}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00005", "params": {"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldley.5@example.invalid", "fname": "Rafael", "lname": "Caldley", "phone_home": "555-0100", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "176 WILLOW BEND ROAD", "title": "Ms."}, "seq": 5, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Rafael\nLast name: Caldley\nDate of birth: 1943-01-24\nSex: Female\nStreet: 176 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0100\nEmail: rafael.caldley.5@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "shared_dob", "inject": [], "intended": {"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldley.5@example.invalid", "fname": "Rafael", "lname": "Caldley", "phone_home": "555-0100", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "176 WILLOW BEND ROAD", "title": "Ms."}, "item_id": "ref-00005", "person": {"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldley.5@example.invalid", "fname": "Rafael", "lname": "Caldley", "phone_home": "555-0100", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "176 WILLOW BEND ROAD", "title": "Ms."}, "rationale": "born on the same day as an existing chart; a different person", "seq": 5}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00006", "params": {"DOB": "04/20/1944", "city": "EXAMPLETON", "country_code": "USA", "email": "priya.marwell.6@example.invalid", "fname": "Priya", "lname": "Marwell", "phone_home": "555-0144", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "194 LANTERN COURT FERRY", "title": "Mrs."}, "seq": 6, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Priya\nLast name: Marwell\nDate of birth: 04/20/1944\nSex: Female\nStreet: 194 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0144\nEmail: priya.marwell.6@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "malformed_dob", "inject": [], "intended": {"DOB": "1944-04-20", "city": "EXAMPLETON", "country_code": "USA", "email": "priya.marwell.6@example.invalid", "fname": "Priya", "lname": "Marwell", "phone_home": "555-0144", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "194 LANTERN COURT FERRY", "title": "Mrs."}, "item_id": "ref-00006", "person": {"DOB": "1944-04-20", "city": "EXAMPLETON", "country_code": "USA", "email": "priya.marwell.6@example.invalid", "fname": "Priya", "lname": "Marwell", "phone_home": "555-0144", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "194 LANTERN COURT FERRY", "title": "Mrs."}, "rationale": "date of birth written MM/DD/YYYY; the true date is ISO", "seq": 6}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00007", "params": {"DOB": "1997-08-16", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.ellwick.7@example.invalid", "fname": "Mateo", "lname": "Ellwick", "phone_home": "555-0118", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "249 BEACON TERRACE STATION", "title": "Ms."}, "seq": 7, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Mateo\nLast name: Ellwick\nDate of birth: 1997-08-16\nSex: Female\nStreet: 249 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0118\nEmail: mateo.ellwick.7@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1997-08-16", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.ellwick.7@example.invalid", "fname": "Mateo", "lname": "Ellwick", "phone_home": "555-0118", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "249 BEACON TERRACE STATION", "title": "Ms."}, "item_id": "ref-00007", "person": {"DOB": "1997-08-16", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.ellwick.7@example.invalid", "fname": "Mateo", "lname": "Ellwick", "phone_home": "555-0118", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "249 BEACON TERRACE STATION", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 7}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00008", "params": {"city": "EXAMPLETON", "country_code": "USA", "email": "bo.jessby.8@example.invalid", "fname": "Bo", "lname": "Jessby", "phone_home": "555-0188", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "107 AVENUE MILL ROAD", "title": "Mr."}, "seq": 8, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Bo\nLast name: Jessby\nDate of birth: \nSex: Male\nStreet: 107 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0188\nEmail: bo.jessby.8@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "missing_required", "inject": [], "intended": null, "item_id": "ref-00008", "person": {"DOB": "1955-09-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.jessby.8@example.invalid", "fname": "Bo", "lname": "Jessby", "phone_home": "555-0188", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "107 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "no date of birth; return the referral to the sender", "seq": 8}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00009", "params": {"DOB": "1946-12-28", "city": "EXAMPLETON", "country_code": "USA", "email": "marcus.stanby.9@example.invalid", "fname": "Marcus", "lname": "Stanby", "phone_home": "555-0145", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "135 AVENUE MILL ROAD", "title": "Mr."}, "seq": 9, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Marcus\nLast name: Stanby\nDate of birth: 1946-12-28\nSex: Male\nStreet: 135 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0145\nEmail: marcus.stanby.9@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1946-12-28", "city": "EXAMPLETON", "country_code": "USA", "email": "marcus.stanby.9@example.invalid", "fname": "Marcus", "lname": "Stanby", "phone_home": "555-0145", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "135 AVENUE MILL ROAD", "title": "Mr."}, "item_id": "ref-00009", "person": {"DOB": "1946-12-28", "city": "EXAMPLETON", "country_code": "USA", "email": "marcus.stanby.9@example.invalid", "fname": "Marcus", "lname": "Stanby", "phone_home": "555-0145", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "135 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 9}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00010", "params": {"DOB": "1963-10-26", "city": "EXAMPLETON", "country_code": "USA", "email": "kwame.stanwood.10@example.invalid", "fname": "Kwame", "lname": "Stanwood", "phone_home": "555-0151", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "405 STREET CEDAR ROW", "title": "Mr."}, "seq": 10, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Kwame\nLast name: Stanwood\nDate of birth: 1963-10-26\nSex: Male\nStreet: 405 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0151\nEmail: kwame.stanwood.10@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1963-10-26", "city": "EXAMPLETON", "country_code": "USA", "email": "kwame.stanwood.10@example.invalid", "fname": "Kwame", "lname": "Stanwood", "phone_home": "555-0151", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "405 STREET CEDAR ROW", "title": "Mr."}, "item_id": "ref-00010", "person": {"DOB": "1963-10-26", "city": "EXAMPLETON", "country_code": "USA", "email": "kwame.stanwood.10@example.invalid", "fname": "Kwame", "lname": "Stanwood", "phone_home": "555-0151", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "405 STREET CEDAR ROW", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 10}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00011", "params": {"DOB": "1980-12-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.galmere.11@example.invalid", "fname": "Bram", "lname": "Galmere", "phone_home": "555-0133", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "16 BEACON TERRACE STATION", "title": "Mr."}, "seq": 11, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Bram\nLast name: Galmere\nDate of birth: 1980-12-01\nSex: Male\nStreet: 16 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0133\nEmail: bram.galmere.11@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1980-12-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.galmere.11@example.invalid", "fname": "Bram", "lname": "Galmere", "phone_home": "555-0133", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "16 BEACON TERRACE STATION", "title": "Mr."}, "item_id": "ref-00011", "person": {"DOB": "1980-12-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.galmere.11@example.invalid", "fname": "Bram", "lname": "Galmere", "phone_home": "555-0133", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "16 BEACON TERRACE STATION", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 11}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00012", "params": {"DOB": "1979-06-03", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.langstead.12@example.invalid", "fname": "Anouk", "lname": "Langstead", "phone_home": "555-0160", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "114 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 12, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Anouk\nLast name: Langstead\nDate of birth: 1979-06-03\nSex: Male\nStreet: 114 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0160\nEmail: anouk.langstead.12@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "concurrent_same", "inject": [{"event": "other_clerk_creates", "person": {"DOB": "1979-06-03", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.langstead.12@example.invalid", "fname": "Anouk", "lname": "Langstead", "phone_home": "555-0160", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "114 QUARRY HILL DRIVE", "title": "Mr."}, "when": "before_item"}], "intended": null, "item_id": "ref-00012", "person": {"DOB": "1979-06-03", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.langstead.12@example.invalid", "fname": "Anouk", "lname": "Langstead", "phone_home": "555-0160", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "114 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "another clerk registered this patient moments earlier", "seq": 12}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00013", "params": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 13, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Odile\nLast name: Quenwood\nDate of birth: 1996-11-12\nSex: Female\nStreet: 411 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0149\nEmail: odile.quenwood.13@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "concurrent_other", "inject": [{"event": "other_clerk_edits_unrelated", "when": "during_item"}], "intended": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "item_id": "ref-00013", "person": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "another clerk edits an unrelated chart meanwhile", "seq": 13}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00014", "params": {"DOB": "1990-11-11", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.quenley.14@example.invalid", "fname": "Rafael", "lname": "Quenley", "phone_home": "555-0151", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "46 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 14, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Rafael\nLast name: Quenley\nDate of birth: 1990-11-11\nSex: Female\nStreet: 46 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0151\nEmail: rafael.quenley.14@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1990-11-11", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.quenley.14@example.invalid", "fname": "Rafael", "lname": "Quenley", "phone_home": "555-0151", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "46 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00014", "person": {"DOB": "1990-11-11", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.quenley.14@example.invalid", "fname": "Rafael", "lname": "Quenley", "phone_home": "555-0151", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "46 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 14}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00015", "params": {"DOB": "1951-01-05", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.fairwell.15@example.invalid", "fname": "Arlo", "lname": "Fairwell", "phone_home": "555-0178", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "304 WAY", "title": "Ms."}, "seq": 15, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Arlo\nLast name: Fairwell\nDate of birth: 1951-01-05\nSex: Female\nStreet: 304 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0178\nEmail: arlo.fairwell.15@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1951-01-05", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.fairwell.15@example.invalid", "fname": "Arlo", "lname": "Fairwell", "phone_home": "555-0178", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "304 WAY", "title": "Ms."}, "item_id": "ref-00015", "person": {"DOB": "1951-01-05", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.fairwell.15@example.invalid", "fname": "Arlo", "lname": "Fairwell", "phone_home": "555-0178", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "304 WAY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 15}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00016", "params": {"DOB": "1951-01-01", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.langridge.16@example.invalid", "fname": "Mateo", "lname": "Langridge", "phone_home": "555-0155", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 16, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Mateo\nLast name: Langridge\nDate of birth: 1951-01-01\nSex: Female\nStreet: 411 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0155\nEmail: mateo.langridge.16@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1951-01-01", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.langridge.16@example.invalid", "fname": "Mateo", "lname": "Langridge", "phone_home": "555-0155", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "item_id": "ref-00016", "person": {"DOB": "1951-01-01", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.langridge.16@example.invalid", "fname": "Mateo", "lname": "Langridge", "phone_home": "555-0155", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 16}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00017", "params": {"DOB": "1967-04-10", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.hartton.17@example.invalid", "fname": "Rafael", "lname": "Hartton", "phone_home": "555-0133", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "258 STREET CEDAR ROW", "title": "Mrs."}, "seq": 17, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Rafael\nLast name: Hartton\nDate of birth: 1967-04-10\nSex: Female\nStreet: 258 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0133\nEmail: rafael.hartton.17@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1967-04-10", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.hartton.17@example.invalid", "fname": "Rafael", "lname": "Hartton", "phone_home": "555-0133", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "258 STREET CEDAR ROW", "title": "Mrs."}, "item_id": "ref-00017", "person": {"DOB": "1967-04-10", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.hartton.17@example.invalid", "fname": "Rafael", "lname": "Hartton", "phone_home": "555-0133", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "258 STREET CEDAR ROW", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 17}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00018", "params": {"DOB": "1993-11-19", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.caldford.18@example.invalid", "fname": "Wen", "lname": "Caldford", "phone_home": "555-0168", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "419 ORCHARD LANE HARBOR", "title": "Mr."}, "seq": 18, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Wen\nLast name: Caldford\nDate of birth: 1993-11-19\nSex: Male\nStreet: 419 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0168\nEmail: wen.caldford.18@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1993-11-19", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.caldford.18@example.invalid", "fname": "Wen", "lname": "Caldford", "phone_home": "555-0168", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "419 ORCHARD LANE HARBOR", "title": "Mr."}, "item_id": "ref-00018", "person": {"DOB": "1993-11-19", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.caldford.18@example.invalid", "fname": "Wen", "lname": "Caldford", "phone_home": "555-0168", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "419 ORCHARD LANE HARBOR", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 18}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00019", "params": {"DOB": "10/01/1958", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "seq": 19, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Fergus\nLast name: Ashbrook\nDate of birth: 10/01/1958\nSex: Male\nStreet: 399 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0118\nEmail: fergus.ashbrook.19@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "malformed_dob", "inject": [], "intended": {"DOB": "1958-10-01", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "item_id": "ref-00019", "person": {"DOB": "1958-10-01", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "rationale": "date of birth written MM/DD/YYYY; the true date is ISO", "seq": 19}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00020", "params": {"DOB": "1976-11-17", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.ellford.20@example.invalid", "fname": "Jasper", "lname": "Ellford", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "273 WAY", "title": "Ms."}, "seq": 20, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Jasper\nLast name: Ellford\nDate of birth: 1976-11-17\nSex: Female\nStreet: 273 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0171\nEmail: jasper.ellford.20@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "clean", "inject": [], "intended": {"DOB": "1976-11-17", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.ellford.20@example.invalid", "fname": "Jasper", "lname": "Ellford", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "273 WAY", "title": "Ms."}, "item_id": "ref-00020", "person": {"DOB": "1976-11-17", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.ellford.20@example.invalid", "fname": "Jasper", "lname": "Ellford", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "273 WAY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 20}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00021", "params": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 21, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Odile\nLast name: Quenwood\nDate of birth: 1996-11-12\nSex: Female\nStreet: 411 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0149\nEmail: odile.quenwood.13@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "dup_resend", "inject": [], "intended": null, "item_id": "ref-00021", "person": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "a resend of ref-00013", "seq": 21}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00022", "params": {"DOB": "1970-08-17", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.radwood.22@example.invalid", "fname": "Fergus", "lname": "Radwood", "phone_home": "555-0189", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "275 WAY", "title": "Ms."}, "seq": 22, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Fergus\nLast name: Radwood\nDate of birth: 1970-08-17\nSex: Female\nStreet: 275 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0189\nEmail: fergus.radwood.22@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "clean", "inject": [], "intended": {"DOB": "1970-08-17", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.radwood.22@example.invalid", "fname": "Fergus", "lname": "Radwood", "phone_home": "555-0189", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "275 WAY", "title": "Ms."}, "item_id": "ref-00022", "person": {"DOB": "1970-08-17", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.radwood.22@example.invalid", "fname": "Fergus", "lname": "Radwood", "phone_home": "555-0189", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "275 WAY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 22}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00023", "params": {"DOB": "1992-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.thornford.23@example.invalid", "fname": "Soren", "lname": "Thornford", "phone_home": "555-0140", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "64 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 23, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Soren\nLast name: Thornford\nDate of birth: 1992-03-14\nSex: Female\nStreet: 64 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0140\nEmail: soren.thornford.23@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "clean", "inject": [], "intended": {"DOB": "1992-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.thornford.23@example.invalid", "fname": "Soren", "lname": "Thornford", "phone_home": "555-0140", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "64 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00023", "person": {"DOB": "1992-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.thornford.23@example.invalid", "fname": "Soren", "lname": "Thornford", "phone_home": "555-0140", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "64 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 23}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00024", "params": {"DOB": "1937-08-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 24, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ida\nLast name: Norwick\nDate of birth: 1937-08-13\nSex: Male\nStreet: 88 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0107\nEmail: ida.norwick.9010@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "ambiguous_same_person", "inject": [], "intended": null, "item_id": "ref-00024", "person": {"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "same person as an existing chart; the date of birth has a typo", "seq": 24}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00025", "params": {"DOB": "1994-04-24", "city": "EXAMPLETON", "country_code": "USA", "email": "esme.iversbrook.25@example.invalid", "fname": "Esme", "lname": "Iversbrook", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "489 QUARRY HILL DRIVE", "title": "Mrs."}, "seq": 25, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Esme\nLast name: Iversbrook\nDate of birth: 1994-04-24\nSex: Female\nStreet: 489 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0162\nEmail: esme.iversbrook.25@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "clean", "inject": [], "intended": {"DOB": "1994-04-24", "city": "EXAMPLETON", "country_code": "USA", "email": "esme.iversbrook.25@example.invalid", "fname": "Esme", "lname": "Iversbrook", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "489 QUARRY HILL DRIVE", "title": "Mrs."}, "item_id": "ref-00025", "person": {"DOB": "1994-04-24", "city": "EXAMPLETON", "country_code": "USA", "email": "esme.iversbrook.25@example.invalid", "fname": "Esme", "lname": "Iversbrook", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "489 QUARRY HILL DRIVE", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 25}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00026", "params": {"DOB": "1990-09-13", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.hartbrook.26@example.invalid", "fname": " FARIDA ", "lname": "HARTBROOK ", "phone_home": "555-0145", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "175 ORCHARD LANE HARBOR", "title": "Ms."}, "seq": 26, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: FARIDA \nLast name: HARTBROOK \nDate of birth: 1990-09-13\nSex: Female\nStreet: 175 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0145\nEmail: farida.hartbrook.26@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "malformed_case", "inject": [], "intended": {"DOB": "1990-09-13", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.hartbrook.26@example.invalid", "fname": "Farida", "lname": "Hartbrook", "phone_home": "555-0145", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "175 ORCHARD LANE HARBOR", "title": "Ms."}, "item_id": "ref-00026", "person": {"DOB": "1990-09-13", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.hartbrook.26@example.invalid", "fname": "Farida", "lname": "Hartbrook", "phone_home": "555-0145", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "175 ORCHARD LANE HARBOR", "title": "Ms."}, "rationale": "names in capitals with stray spaces", "seq": 26}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00027", "params": {"DOB": "1978-09-15", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.birchmore.27@example.invalid", "fname": "Jasper", "lname": "Birchmore", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "227 WILLOW BEND ROAD", "title": "Mrs."}, "seq": 27, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Jasper\nLast name: Birchmore\nDate of birth: 1978-09-15\nSex: Female\nStreet: 227 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0142\nEmail: jasper.birchmore.27@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "common_surname", "inject": [], "intended": {"DOB": "1978-09-15", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.birchmore.27@example.invalid", "fname": "Jasper", "lname": "Birchmore", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "227 WILLOW BEND ROAD", "title": "Mrs."}, "item_id": "ref-00027", "person": {"DOB": "1978-09-15", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.birchmore.27@example.invalid", "fname": "Jasper", "lname": "Birchmore", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "227 WILLOW BEND ROAD", "title": "Mrs."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 27}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00028", "params": {"DOB": "1964-02-03", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.caldwick.28@example.invalid", "fname": "Fergus", "lname": "Caldwick", "phone_home": "555-0199", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "137 BEACON TERRACE STATION", "title": "Ms."}, "seq": 28, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Fergus\nLast name: Caldwick\nDate of birth: 1964-02-03\nSex: Female\nStreet: 137 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0199\nEmail: fergus.caldwick.28@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "clean", "inject": [], "intended": {"DOB": "1964-02-03", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.caldwick.28@example.invalid", "fname": "Fergus", "lname": "Caldwick", "phone_home": "555-0199", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "137 BEACON TERRACE STATION", "title": "Ms."}, "item_id": "ref-00028", "person": {"DOB": "1964-02-03", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.caldwick.28@example.invalid", "fname": "Fergus", "lname": "Caldwick", "phone_home": "555-0199", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "137 BEACON TERRACE STATION", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 28}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00029", "params": {"DOB": "1986-03-18", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.oakwell.29@example.invalid", "fname": "Wen", "lname": "Oakwell", "phone_home": "555-0111", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "472 WAY", "title": "Mr."}, "seq": 29, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Wen\nLast name: Oakwell\nDate of birth: 1986-03-18\nSex: Male\nStreet: 472 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0111\nEmail: wen.oakwell.29@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "concurrent_same", "inject": [{"event": "other_clerk_creates", "person": {"DOB": "1986-03-18", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.oakwell.29@example.invalid", "fname": "Wen", "lname": "Oakwell", "phone_home": "555-0111", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "472 WAY", "title": "Mr."}, "when": "before_item"}], "intended": null, "item_id": "ref-00029", "person": {"DOB": "1986-03-18", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.oakwell.29@example.invalid", "fname": "Wen", "lname": "Oakwell", "phone_home": "555-0111", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "472 WAY", "title": "Mr."}, "rationale": "another clerk registered this patient moments earlier", "seq": 29}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00030", "params": {"DOB": "1944-05-01", "city": "EXAMPLETON", "country_code": "USA", "email": "hollis.jesston.30@example.invalid", "fname": "Hollis", "lname": "Jesston", "phone_home": "555-0110", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "326 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 30, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Hollis\nLast name: Jesston\nDate of birth: 1944-05-01\nSex: Male\nStreet: 326 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0110\nEmail: hollis.jesston.30@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "common_surname", "inject": [], "intended": {"DOB": "1944-05-01", "city": "EXAMPLETON", "country_code": "USA", "email": "hollis.jesston.30@example.invalid", "fname": "Hollis", "lname": "Jesston", "phone_home": "555-0110", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "326 QUARRY HILL DRIVE", "title": "Mr."}, "item_id": "ref-00030", "person": {"DOB": "1944-05-01", "city": "EXAMPLETON", "country_code": "USA", "email": "hollis.jesston.30@example.invalid", "fname": "Hollis", "lname": "Jesston", "phone_home": "555-0110", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "326 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 30}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00031", "params": {"DOB": "1993-01-11", "city": "EXAMPLETON", "country_code": "USA", "email": "grace.jessby.31@example.invalid", "fname": "Grace", "lname": "Jessby", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "285 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 31, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Grace\nLast name: Jessby\nDate of birth: 1993-01-11\nSex: Female\nStreet: 285 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0179\nEmail: grace.jessby.31@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "clean", "inject": [], "intended": {"DOB": "1993-01-11", "city": "EXAMPLETON", "country_code": "USA", "email": "grace.jessby.31@example.invalid", "fname": "Grace", "lname": "Jessby", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "285 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00031", "person": {"DOB": "1993-01-11", "city": "EXAMPLETON", "country_code": "USA", "email": "grace.jessby.31@example.invalid", "fname": "Grace", "lname": "Jessby", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "285 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 31}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00032", "params": {"DOB": "1955-05-02", "city": "EXAMPLETON", "country_code": "USA", "email": "ilse.iverswick.32@example.invalid", "fname": "Ilse", "lname": "Iverswick", "phone_home": "", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "94 STREET CEDAR ROW", "title": "Mrs."}, "seq": 32, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Ilse\nLast name: Iverswick\nDate of birth: 1955-05-02\nSex: Female\nStreet: 94 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: \nEmail: ilse.iverswick.32@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "missing_optional", "inject": [], "intended": {"DOB": "1955-05-02", "city": "EXAMPLETON", "country_code": "USA", "email": "ilse.iverswick.32@example.invalid", "fname": "Ilse", "lname": "Iverswick", "phone_home": "", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "94 STREET CEDAR ROW", "title": "Mrs."}, "item_id": "ref-00032", "person": {"DOB": "1955-05-02", "city": "EXAMPLETON", "country_code": "USA", "email": "ilse.iverswick.32@example.invalid", "fname": "Ilse", "lname": "Iverswick", "phone_home": "", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "94 STREET CEDAR ROW", "title": "Mrs."}, "rationale": "no home phone; register without one", "seq": 32}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00033", "params": {"DOB": "1999-11-06", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.fairwick.33@example.invalid", "fname": "Odile", "lname": "Fairwick", "phone_home": "555-0132", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "140 AVENUE MILL ROAD", "title": "Mr."}, "seq": 33, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Odile\nLast name: Fairwick\nDate of birth: 1999-11-06\nSex: Male\nStreet: 140 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0132\nEmail: odile.fairwick.33@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "common_surname", "inject": [], "intended": {"DOB": "1999-11-06", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.fairwick.33@example.invalid", "fname": "Odile", "lname": "Fairwick", "phone_home": "555-0132", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "140 AVENUE MILL ROAD", "title": "Mr."}, "item_id": "ref-00033", "person": {"DOB": "1999-11-06", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.fairwick.33@example.invalid", "fname": "Odile", "lname": "Fairwick", "phone_home": "555-0132", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "140 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 33}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00034", "params": {"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 34, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ida\nLast name: Norwick\nDate of birth: 1937-08-12\nSex: Male\nStreet: 88 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0107\nEmail: ida.norwick.9010@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "dup_existing", "inject": [], "intended": null, "item_id": "ref-00034", "person": {"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "this patient already has a chart", "seq": 34}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00035", "params": {"DOB": "1999-05-23", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.stanbrook.35@example.invalid", "fname": "Leilani", "lname": "Stanbrook", "phone_home": "555-0125", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "112 STREET CEDAR ROW", "title": "Mr."}, "seq": 35, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Leilani\nLast name: Stanbrook\nDate of birth: 1999-05-23\nSex: Male\nStreet: 112 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0125\nEmail: leilani.stanbrook.35@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "clean", "inject": [], "intended": {"DOB": "1999-05-23", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.stanbrook.35@example.invalid", "fname": "Leilani", "lname": "Stanbrook", "phone_home": "555-0125", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "112 STREET CEDAR ROW", "title": "Mr."}, "item_id": "ref-00035", "person": {"DOB": "1999-05-23", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.stanbrook.35@example.invalid", "fname": "Leilani", "lname": "Stanbrook", "phone_home": "555-0125", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "112 STREET CEDAR ROW", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 35}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00036", "params": {"DOB": "1979-01-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.ellstead.36@example.invalid", "fname": "Ida", "lname": "Ellstead", "phone_home": "555-0180", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "68 WILLOW BEND ROAD", "title": "Mr."}, "seq": 36, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ida\nLast name: Ellstead\nDate of birth: 1979-01-27\nSex: Male\nStreet: 68 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0180\nEmail: ida.ellstead.36@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "clean", "inject": [], "intended": {"DOB": "1979-01-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.ellstead.36@example.invalid", "fname": "Ida", "lname": "Ellstead", "phone_home": "555-0180", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "68 WILLOW BEND ROAD", "title": "Mr."}, "item_id": "ref-00036", "person": {"DOB": "1979-01-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.ellstead.36@example.invalid", "fname": "Ida", "lname": "Ellstead", "phone_home": "555-0180", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "68 WILLOW BEND ROAD", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 36}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00037", "params": {"DOB": "1942-02-22", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.oakcombe.37@example.invalid", "fname": "Soren", "lname": "Oakcombe", "phone_home": "555-0176", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "432 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 37, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Soren\nLast name: Oakcombe\nDate of birth: 1942-02-22\nSex: Female\nStreet: 432 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0176\nEmail: soren.oakcombe.37@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "clean", "inject": [], "intended": {"DOB": "1942-02-22", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.oakcombe.37@example.invalid", "fname": "Soren", "lname": "Oakcombe", "phone_home": "555-0176", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "432 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00037", "person": {"DOB": "1942-02-22", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.oakcombe.37@example.invalid", "fname": "Soren", "lname": "Oakcombe", "phone_home": "555-0176", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "432 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 37}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00038", "params": {"DOB": "1958-03-09", "city": "EXAMPLETON", "country_code": "USA", "email": "dmitri.birchfield.38@example.invalid", "fname": "Dmitri", "lname": "Birchfield", "phone_home": "555-0146", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "230 WILLOW BEND ROAD", "title": "Mr."}, "seq": 38, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Dmitri\nLast name: Birchfield\nDate of birth: 1958-03-09\nSex: Male\nStreet: 230 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0146\nEmail: dmitri.birchfield.38@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "slow_save", "inject": [{"event": "slow_save", "seconds": 6, "when": "during_item"}], "intended": {"DOB": "1958-03-09", "city": "EXAMPLETON", "country_code": "USA", "email": "dmitri.birchfield.38@example.invalid", "fname": "Dmitri", "lname": "Birchfield", "phone_home": "555-0146", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "230 WILLOW BEND ROAD", "title": "Mr."}, "item_id": "ref-00038", "person": {"DOB": "1958-03-09", "city": "EXAMPLETON", "country_code": "USA", "email": "dmitri.birchfield.38@example.invalid", "fname": "Dmitri", "lname": "Birchfield", "phone_home": "555-0146", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "230 WILLOW BEND ROAD", "title": "Mr."}, "rationale": "the save is slow", "seq": 38}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00039", "params": {"DOB": "1939-05-07", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.langby.39@example.invalid", "fname": "Rosalind", "lname": "Langby", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "184 LANTERN COURT FERRY", "title": "Ms."}, "seq": 39, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Rosalind\nLast name: Langby\nDate of birth: 1939-05-07\nSex: Female\nStreet: 184 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0142\nEmail: rosalind.langby.39@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "clean", "inject": [], "intended": {"DOB": "1939-05-07", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.langby.39@example.invalid", "fname": "Rosalind", "lname": "Langby", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "184 LANTERN COURT FERRY", "title": "Ms."}, "item_id": "ref-00039", "person": {"DOB": "1939-05-07", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.langby.39@example.invalid", "fname": "Rosalind", "lname": "Langby", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "184 LANTERN COURT FERRY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 39}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00040", "params": {"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.jesswood.40@example.invalid", "fname": "Mateo", "lname": "Jesswood", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "4 QUARRY HILL DRIVE", "title": "Mrs."}, "seq": 40, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Mateo\nLast name: Jesswood\nDate of birth: 1950-04-21\nSex: Female\nStreet: 4 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0111\nEmail: mateo.jesswood.40@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "shared_dob", "inject": [], "intended": {"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.jesswood.40@example.invalid", "fname": "Mateo", "lname": "Jesswood", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "4 QUARRY HILL DRIVE", "title": "Mrs."}, "item_id": "ref-00040", "person": {"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.jesswood.40@example.invalid", "fname": "Mateo", "lname": "Jesswood", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "4 QUARRY HILL DRIVE", "title": "Mrs."}, "rationale": "born on the same day as an existing chart; a different person", "seq": 40}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00041", "params": {"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ines.norwell.41@example.invalid", "fname": "Ines", "lname": "Norwell", "phone_home": "555-0184", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "121 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 41, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Ines\nLast name: Norwell\nDate of birth: 1966-07-13\nSex: Female\nStreet: 121 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0184\nEmail: ines.norwell.41@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "shared_dob", "inject": [], "intended": {"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ines.norwell.41@example.invalid", "fname": "Ines", "lname": "Norwell", "phone_home": "555-0184", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "121 QUARRY HILL DRIVE", "title": "Ms."}, "item_id": "ref-00041", "person": {"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ines.norwell.41@example.invalid", "fname": "Ines", "lname": "Norwell", "phone_home": "555-0184", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "121 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "born on the same day as an existing chart; a different person", "seq": 41}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00042", "params": {"DOB": "1998-03-10", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.norley.42@example.invalid", "fname": "Anouk", "lname": "Norley", "phone_home": "555-0191", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "372 LANTERN COURT FERRY", "title": "Mr."}, "seq": 42, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Anouk\nLast name: Norley\nDate of birth: 1998-03-10\nSex: Male\nStreet: 372 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0191\nEmail: anouk.norley.42@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "clean", "inject": [], "intended": {"DOB": "1998-03-10", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.norley.42@example.invalid", "fname": "Anouk", "lname": "Norley", "phone_home": "555-0191", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "372 LANTERN COURT FERRY", "title": "Mr."}, "item_id": "ref-00042", "person": {"DOB": "1998-03-10", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.norley.42@example.invalid", "fname": "Anouk", "lname": "Norley", "phone_home": "555-0191", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "372 LANTERN COURT FERRY", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 42}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00043", "params": {"DOB": "2002-09-19", "city": "EXAMPLETON", "country_code": "USA", "email": "dalia.oakbrook.43@example.invalid", "fname": "Dalia", "lname": "Oakbrook", "phone_home": "555-0110", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "429 WILLOW BEND ROAD", "title": "Ms."}, "seq": 43, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Dalia\nLast name: Oakbrook\nDate of birth: 2002-09-19\nSex: Female\nStreet: 429 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0110\nEmail: dalia.oakbrook.43@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "clean", "inject": [], "intended": {"DOB": "2002-09-19", "city": "EXAMPLETON", "country_code": "USA", "email": "dalia.oakbrook.43@example.invalid", "fname": "Dalia", "lname": "Oakbrook", "phone_home": "555-0110", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "429 WILLOW BEND ROAD", "title": "Ms."}, "item_id": "ref-00043", "person": {"DOB": "2002-09-19", "city": "EXAMPLETON", "country_code": "USA", "email": "dalia.oakbrook.43@example.invalid", "fname": "Dalia", "lname": "Oakbrook", "phone_home": "555-0110", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "429 WILLOW BEND ROAD", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 43}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00044", "params": {"DOB": "10/01/1958", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "seq": 44, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Fergus\nLast name: Ashbrook\nDate of birth: 10/01/1958\nSex: Male\nStreet: 399 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0118\nEmail: fergus.ashbrook.19@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "dup_resend", "inject": [], "intended": null, "item_id": "ref-00044", "person": {"DOB": "1958-10-01", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "rationale": "a resend of ref-00019", "seq": 44}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00045", "params": {"DOB": "1959-06-04", "city": "EXAMPLETON", "country_code": "USA", "email": "gideon.galwick.9004@example.invalid", "fname": "Gideon", "lname": "Galwick", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "282 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 45, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Gideon\nLast name: Galwick\nDate of birth: 1959-06-04\nSex: Female\nStreet: 282 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0179\nEmail: gideon.galwick.9004@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "dup_existing", "inject": [], "intended": null, "item_id": "ref-00045", "person": {"DOB": "1959-06-04", "city": "EXAMPLETON", "country_code": "USA", "email": "gideon.galwick.9004@example.invalid", "fname": "Gideon", "lname": "Galwick", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "282 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "this patient already has a chart", "seq": 45}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00046", "params": {"DOB": "1998-07-03", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.hartgate.46@example.invalid", "fname": "Odile", "lname": "Hartgate", "phone_home": "555-0178", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "247 BEACON TERRACE STATION", "title": "Mr."}, "seq": 46, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Odile\nLast name: Hartgate\nDate of birth: 1998-07-03\nSex: Male\nStreet: 247 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0178\nEmail: odile.hartgate.46@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "session_expiry", "inject": [{"event": "force_logout", "when": "before_item"}], "intended": {"DOB": "1998-07-03", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.hartgate.46@example.invalid", "fname": "Odile", "lname": "Hartgate", "phone_home": "555-0178", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "247 BEACON TERRACE STATION", "title": "Mr."}, "item_id": "ref-00046", "person": {"DOB": "1998-07-03", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.hartgate.46@example.invalid", "fname": "Odile", "lname": "Hartgate", "phone_home": "555-0178", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "247 BEACON TERRACE STATION", "title": "Mr."}, "rationale": "sessions ended just before the item", "seq": 46}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00047", "params": {"DOB": "1977-05-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldbrook.47@example.invalid", "fname": "Rafael", "lname": "Caldbrook", "phone_home": "555-0101", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "382 BEACON TERRACE STATION", "title": "Ms."}, "seq": 47, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Rafael\nLast name: Caldbrook\nDate of birth: 1977-05-21\nSex: Female\nStreet: 382 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0101\nEmail: rafael.caldbrook.47@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "clean", "inject": [], "intended": {"DOB": "1977-05-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldbrook.47@example.invalid", "fname": "Rafael", "lname": "Caldbrook", "phone_home": "555-0101", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "382 BEACON TERRACE STATION", "title": "Ms."}, "item_id": "ref-00047", "person": {"DOB": "1977-05-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldbrook.47@example.invalid", "fname": "Rafael", "lname": "Caldbrook", "phone_home": "555-0101", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "382 BEACON TERRACE STATION", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 47}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00048", "params": {"DOB": "1962-11-16", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.jesswick.48@example.invalid", "fname": "Leilani", "lname": "Jesswick", "phone_home": "555-0159", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "150 BEACON TERRACE STATION", "title": "Mrs."}, "seq": 48, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Leilani\nLast name: Jesswick\nDate of birth: 1962-11-16\nSex: Female\nStreet: 150 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0159\nEmail: leilani.jesswick.48@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "clean", "inject": [], "intended": {"DOB": "1962-11-16", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.jesswick.48@example.invalid", "fname": "Leilani", "lname": "Jesswick", "phone_home": "555-0159", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "150 BEACON TERRACE STATION", "title": "Mrs."}, "item_id": "ref-00048", "person": {"DOB": "1962-11-16", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.jesswick.48@example.invalid", "fname": "Leilani", "lname": "Jesswick", "phone_home": "555-0159", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "150 BEACON TERRACE STATION", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 48}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00049", "params": {"DOB": "1974-02-16", "city": "EXAMPLETON", "country_code": "USA", "email": "tomas.stanstead.49@example.invalid", "fname": "Tomas", "lname": "Stanstead", "phone_home": "555-0109", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "10 BEACON TERRACE STATION", "title": "Mrs."}, "seq": 49, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Tomas\nLast name: Stanstead\nDate of birth: 1974-02-16\nSex: Female\nStreet: 10 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0109\nEmail: tomas.stanstead.49@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "clean", "inject": [], "intended": {"DOB": "1974-02-16", "city": "EXAMPLETON", "country_code": "USA", "email": "tomas.stanstead.49@example.invalid", "fname": "Tomas", "lname": "Stanstead", "phone_home": "555-0109", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "10 BEACON TERRACE STATION", "title": "Mrs."}, "item_id": "ref-00049", "person": {"DOB": "1974-02-16", "city": "EXAMPLETON", "country_code": "USA", "email": "tomas.stanstead.49@example.invalid", "fname": "Tomas", "lname": "Stanstead", "phone_home": "555-0109", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "10 BEACON TERRACE STATION", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 49}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00050", "params": {"DOB": "1961-04-03", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jesswick.50@example.invalid", "fname": "Oren", "lname": "Jesswick", "phone_home": "555-0195", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "299 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 50, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Oren\nLast name: Jesswick\nDate of birth: 1961-04-03\nSex: Male\nStreet: 299 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0195\nEmail: oren.jesswick.50@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "clean", "inject": [], "intended": {"DOB": "1961-04-03", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jesswick.50@example.invalid", "fname": "Oren", "lname": "Jesswick", "phone_home": "555-0195", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "299 QUARRY HILL DRIVE", "title": "Mr."}, "item_id": "ref-00050", "person": {"DOB": "1961-04-03", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jesswick.50@example.invalid", "fname": "Oren", "lname": "Jesswick", "phone_home": "555-0195", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "299 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 50}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00051", "params": {"DOB": "1949-12-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.ellwood.51@example.invalid", "fname": "Ola", "lname": "Ellwood", "phone_home": "555-0150", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "120 WAY", "title": "Mr."}, "seq": 51, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ola\nLast name: Ellwood\nDate of birth: 1949-12-12\nSex: Male\nStreet: 120 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0150\nEmail: ola.ellwood.51@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "clean", "inject": [], "intended": {"DOB": "1949-12-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.ellwood.51@example.invalid", "fname": "Ola", "lname": "Ellwood", "phone_home": "555-0150", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "120 WAY", "title": "Mr."}, "item_id": "ref-00051", "person": {"DOB": "1949-12-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.ellwood.51@example.invalid", "fname": "Ola", "lname": "Ellwood", "phone_home": "555-0150", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "120 WAY", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 51}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00052", "params": {"DOB": "1975-08-19", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenridge.9005@example.invalid", "fname": "Odile", "lname": "Quenridge", "phone_home": "555-0138", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "474 WAY", "title": "Mr."}, "seq": 52, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Odile\nLast name: Quenridge\nDate of birth: 1975-08-19\nSex: Male\nStreet: 474 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0138\nEmail: odile.quenridge.9005@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "dup_existing", "inject": [], "intended": null, "item_id": "ref-00052", "person": {"DOB": "1975-08-19", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenridge.9005@example.invalid", "fname": "Odile", "lname": "Quenridge", "phone_home": "555-0138", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "474 WAY", "title": "Mr."}, "rationale": "this patient already has a chart", "seq": 52}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00053", "params": {"DOB": "1978-07-04", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.ashby.53@example.invalid", "fname": "Bo", "lname": "Ashby", "phone_home": "", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "483 STREET CEDAR ROW", "title": "Mr."}, "seq": 53, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Bo\nLast name: Ashby\nDate of birth: 1978-07-04\nSex: Male\nStreet: 483 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: \nEmail: bo.ashby.53@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "missing_optional", "inject": [], "intended": {"DOB": "1978-07-04", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.ashby.53@example.invalid", "fname": "Bo", "lname": "Ashby", "phone_home": "", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "483 STREET CEDAR ROW", "title": "Mr."}, "item_id": "ref-00053", "person": {"DOB": "1978-07-04", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.ashby.53@example.invalid", "fname": "Bo", "lname": "Ashby", "phone_home": "", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "483 STREET CEDAR ROW", "title": "Mr."}, "rationale": "no home phone; register without one", "seq": 53}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00054", "params": {"DOB": "1984-10-03", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.galwick.54@example.invalid", "fname": "Ola", "lname": "Galwick", "phone_home": "555-0106", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "186 ORCHARD LANE HARBOR", "title": "Mr."}, "seq": 54, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ola\nLast name: Galwick\nDate of birth: 1984-10-03\nSex: Male\nStreet: 186 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0106\nEmail: ola.galwick.54@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "common_surname", "inject": [], "intended": {"DOB": "1984-10-03", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.galwick.54@example.invalid", "fname": "Ola", "lname": "Galwick", "phone_home": "555-0106", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "186 ORCHARD LANE HARBOR", "title": "Mr."}, "item_id": "ref-00054", "person": {"DOB": "1984-10-03", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.galwick.54@example.invalid", "fname": "Ola", "lname": "Galwick", "phone_home": "555-0106", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "186 ORCHARD LANE HARBOR", "title": "Mr."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 54}, "type": "item"} +{"app": "openemr", "day": 9, "item_id": "ref-00055", "params": {"city": "EXAMPLETON", "country_code": "USA", "email": "farida.jessstead.55@example.invalid", "fname": "Farida", "lname": "Jessstead", "phone_home": "555-0198", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "263 AVENUE MILL ROAD", "title": "Ms."}, "seq": 55, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Farida\nLast name: Jessstead\nDate of birth: \nSex: Female\nStreet: 263 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0198\nEmail: farida.jessstead.55@example.invalid\nCountry: USA\n", "truth": {"day": 9, "exception": "missing_required", "inject": [], "intended": null, "item_id": "ref-00055", "person": {"DOB": "1966-05-14", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.jessstead.55@example.invalid", "fname": "Farida", "lname": "Jessstead", "phone_home": "555-0198", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "263 AVENUE MILL ROAD", "title": "Ms."}, "rationale": "no date of birth; return the referral to the sender", "seq": 55}, "type": "item"} From 93f7f44a2228ddc42c4a6fb99a839447bc8bf02c Mon Sep 17 00:00:00 2001 From: abrichr <richard.abrich@mldsai.com> Date: Sun, 25 Oct 2026 04:24:54 -0400 Subject: [PATCH 13/16] measure: the final run on main + #1516 is blocked at admission (census halts a pixel-resolved form field) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --- .../README.md | 54 +++++++++++++++++++ .../probe-census-off-QUALIFICATION.md | 13 +++++ .../run.log | 52 ++++++++++++++++++ 3 files changed, 119 insertions(+) create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/README.md create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/probe-census-off-QUALIFICATION.md create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/run.log diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/README.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/README.md new file mode 100644 index 000000000..ba263ba48 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/README.md @@ -0,0 +1,54 @@ +# Final run on main + #1516: blocked at admission (2026-10-25) + +This was meant to be the third 55-item run of the same stream as +[`production-2026-10-25-rerun`](../production-2026-10-25-rerun/README.md), +on origin/main 6dc0be40e plus #1516 (4b635f2d6) plus the harness. Branch +`measure/production-lifecycle-final` at **9eb8912a0**. Host load was 20.9 +at the start, below the 40 limit. + +No item ran. The program could not be admitted, so there are no +throughput numbers and no Phase 0 verdict from this run. + +## What failed + +Admission qualification, representative case, 2 of 2 attempts: + +> Step 'step_015' (scroll by (0, 300)): closed-loop scroll exhausted its +> budget (600px of 750px allowed, 2.5x the recorded distance) without the +> anchor of step 'step_016' (click recorded visual target) resolving + +The same program admitted and ran at 38fc21afb. + +## Cause + +9042f1603 (#1504, "halt before a write when the rows cannot be counted") +added a candidate census to every verified identity check. Logging the +census during the representative case: + +| Step | Mode | Ladder verdict | After census | +| --- | --- | --- | --- | +| step_000 to step_012 | structured | verified | verified (`not_a_row`) | +| step_016 | pixel | verified | **abstain, `identity_uncounted`** | + +step_016 is a click on a form field, resolved by its pixel template. The +OCR census can't count rows there (`cannot_count`), and a save follows, so +the census turns the verified match into a halt. The closed-loop scroll +reads that as "anchor not in view" and keeps scrolling until its budget +runs out. + +The commit message says a target that teach time recorded as a form field +or control is `not_a_row`, and its verdict stands. The code applies that +exemption only when `check.mode == "structured"` +(`Replayer._apply_candidate_census`). So a pixel-resolved form field is +treated as an uncountable row. + +With the census turned off for the probe (no other change), the +representative case verified (`probe-census-off-QUALIFICATION.md`; the +other five cases weren't run in the probe, so that file reads FAIL). That +is a diagnosis only. It isn't a fix and wasn't used for any measurement. + +## Files + +- `run.log`: the console output, with the commit and the traceback. +- `probe-census-off-QUALIFICATION.md`: the representative case with the + census disabled. diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/probe-census-off-QUALIFICATION.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/probe-census-off-QUALIFICATION.md new file mode 100644 index 000000000..68755b35e --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/probe-census-off-QUALIFICATION.md @@ -0,0 +1,13 @@ +# Qualification result + +- Verdict: FAIL +- Campaign time: 137.9 s for 1 trials +- Not certified +- Surface: `local`; lookups used: structure +- Pixels-only pass (for information): 0/1 (0%) trials behaved as required with structure lookups disabled; most common failure: StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path + +| Case | Trial | Expected | Observed | Read-back | Model calls | Engine ms | +|---|---|---|---|---|---|---| +| representative | 1 | VERIFIED | VERIFIED | exact_record | 0 | 104798 | + +The case results are signed with per-campaign local test keys. They prove this campaign in this environment, nothing more. diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/run.log b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/run.log new file mode 100644 index 000000000..d112e3a6d --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/run.log @@ -0,0 +1,52 @@ +~/oa/scratch/production-lifecycle/final-run.sh:6: no matches found: ~/oa/scratch/fixture-lease/held-* +~/oa/scratch/production-lifecycle/final-run.sh:6: no matches found: ~/oa/scratch/fixture-lease/held-* +LEASE TAKEN Sun Oct 25 04:13:56 EDT 2026 + 4:13 up 59 days, 8:50, 68 users, load averages: 20.85 19.17 19.75 +/dev/disk3s5 1858 1766 43 98% 25827549 458164720 5% /System/Volumes/Data +Starting machine "openadapt-benchmark" + +This machine is currently configured in rootless mode. If your containers +require root permissions (e.g. ports < 1024), or if you run into compatibility +issues with non-podman clients, you can switch using the following command: + + podman machine set --rootful openadapt-benchmark + +API forwarding listening on: /var/folders/35/pqjnmmwx24d2mtf4frt5dhcc0000gn/T/podman/openadapt-benchmark-api.sock + +The system helper service is not installed; the default Docker API socket +address can't be used by podman. If you would like to install it, run the following commands: + + sudo /opt/homebrew/Cellar/podman/6.0.1_1/bin/podman-mac-helper install + podman machine stop openadapt-benchmark; podman machine start openadapt-benchmark + +You can still connect Docker API clients by setting DOCKER_HOST using the +following command in your terminal session: + + export DOCKER_HOST='unix:///var/folders/35/pqjnmmwx24d2mtf4frt5dhcc0000gn/T/podman/openadapt-benchmark-api.sock' + +Machine "openadapt-benchmark" started successfully +COMMIT 9eb8912a07082a8a914a275aeb1a3ec5a67e53d1 +saved ~/oa/scratch/compose-proof/openemr-state/fresh-oauth-keys.sql +[openadapt-production-relabel] resetting the app to its baseline +[openadapt-production-relabel] setup +~/oa/worktrees/lifecycle-rerun/packages/flow/openadapt_flow/report.py:283: PlaintextPHIWarning: Writing REPORT.md with PLAINTEXT identity-like text: PHI scrubbing is not active (OPENADAPT_FLOW_SCRUB=auto and the 'privacy' extra is not installed). This shareable report may contain patient name/DOB/MRN. Install it (pip install 'openadapt-flow[privacy]' && python -m spacy download en_core_web_sm) and set OPENADAPT_FLOW_SCRUB=on to scrub and fail closed. + _warn_if_plaintext_phi(report) +Traceback (most recent call last): + File "<frozen runpy>", line 198, in _run_module_as_main + File "<frozen runpy>", line 88, in _run_code + File "~/oa/worktrees/lifecycle-rerun/packages/flow/benchmark/lifecycle/run.py", line 468, in <module> + raise SystemExit(main()) + ^^^^^^ + File "~/oa/worktrees/lifecycle-rerun/packages/flow/benchmark/lifecycle/run.py", line 447, in main + run_arm( + File "~/oa/worktrees/lifecycle-rerun/packages/flow/benchmark/lifecycle/run.py", line 183, in run_arm + for phase in arm.setup(env, operator): + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "~/oa/worktrees/lifecycle-rerun/packages/flow/benchmark/lifecycle/production_arm.py", line 227, in setup + proof.phase_admit(ctx, source, self.trials) + File "~/oa/worktrees/lifecycle-rerun/packages/flow/benchmark/lifecycle_proof/run.py", line 586, in phase_admit + qual = qualify( + ^^^^^^^^ + File "~/oa/worktrees/lifecycle-rerun/packages/flow/openadapt_flow/qualify/campaign.py", line 1509, in qualify + raise QualifyError(f"{case_id} trial {trial}: {failure}") +openadapt_flow.qualify.campaign.QualifyError: representative trial 1: observed HALTED, expected VERIFIED (Step 'step_015' (scroll by (0, 300)): closed-loop scroll exhausted its budget (600px of 750px allowed, 2.5x the recorded distance) without the anchor of step 'step_016' (click recorded visual target) resolving — target never came into view; run aborted) From 0c80f647e56b74b0226d3b88a2a4eb4bdee4a773 Mon Sep 17 00:00:00 2001 From: abrichr <richard.abrich@mldsai.com> Date: Sun, 25 Oct 2026 08:50:07 -0400 Subject: [PATCH 14/16] measure: the final run on main + #1516 (55 items; 3.17x by hand at 3 min/item, 0 silent wrongs; Phase 0 gate met) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --- .../production-2026-10-25-final/README.md | 175 +++++++++ .../production-2026-10-25-final/REPORT.md | 71 ++++ .../arm-ledger.jsonl | 24 ++ .../production-2026-10-25-final/ledger.jsonl | 80 ++++ .../production-2026-10-25-final/results.json | 346 ++++++++++++++++++ .../production-2026-10-25-final/run.log | 95 +++++ .../production-2026-10-25-final/stops.jsonl | 14 + .../switch/log-1792924549.jsonl | 51 +++ .../switch/log-1792928598.jsonl | 56 +++ .../switch/switch.json | 42 +++ .../workload.jsonl | 69 ++++ 11 files changed, 1023 insertions(+) create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/README.md create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/REPORT.md create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/arm-ledger.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/ledger.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/results.json create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/run.log create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/stops.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/log-1792924549.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/log-1792928598.jsonl create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/switch.json create mode 100644 packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/workload.jsonl diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/README.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/README.md new file mode 100644 index 000000000..bc217d340 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/README.md @@ -0,0 +1,175 @@ +# Production configuration on local OpenEMR: the final run on main (2026-10-25) + +This is the same 55-item stream and app change as +[`production-2026-10-24`](../production-2026-10-24/README.md) and +[`production-2026-10-25-rerun`](../production-2026-10-25-rerun/README.md): +seed 7, 10 simulated days, workload `lifecycle-workload/2026-10-24.1`, and the +save button relabeled before item 26. This time every fix is on main except +the record-channel duplicate check (#1516, still a draft). + +## What was measured + +Branch `measure/production-lifecycle-final` at **8bfd7f6af** (`run.log` +records it): + +| Piece | Commit | +| --- | --- | +| origin/main, including #1514, #1517 (switch policy at its merged head) and #1557 (the census fix) | 78ff5ad00 | +| #1516, record-channel duplicate check over FHIR | 4b635f2d6 | +| Soak harness and arm (per-item timeout, re-arm offer, FHIR fixture patches) | this branch | + +The configuration is the re-run's: + +- **Profile and approval:** Regulated profile, `problems_only` approval, + durable runs, pipelined read-back, repair on. +- **Admission:** the program was admitted afresh, with the duplicate check on + the record channel over FHIR and the date of birth as a typed `date`. +- **Intake and recovery:** intake converted each date to ISO, relabel + recovery was on, and the scripted operator signed any re-arm it was + offered. +- **Limits:** a 2700 s per-item timeout and a one-hour ledger watchdog. Neither + fired. +- **Fixture:** a fresh OpenEMR stack, with its OAuth keys restored after every + reset. + +No model was called. The #1513 deviation (an older #1517 commit) doesn't +apply here: #1517 is merged. + +## Results + +At x1 of the cost model (approval 20 s, stop 90 s, reconcile 120 s, repair +review 120 s, plus a 30 s interrupt on every request). These are run-only +operator minutes. + +**Headline: 1.055 verified items per operator-minute, 3.17 times the by-hand +rate at 3 minutes per item.** That is 51 verified items over 48.33 operator +minutes, or 0.956 when the 5.0 setup minutes are included. + +| By hand, minutes per item | Verified items per operator-minute | By hand per operator-minute | Ratio | +| ---: | ---: | ---: | ---: | +| 3 (the cost model) | 1.055 | 0.333 | 3.17 | +| 5 | 0.905 | 0.200 | 4.53 | +| 8 | 0.746 | 0.125 | 5.97 | +| 10 | 0.668 | 0.100 | 6.68 | + +No by-hand time was measured from a person. Every other charge stays at x1, +and the run's own hand entries are charged at each by-hand time. + +| | before (27 items) | first after (55) | re-run (55) | **this run (55)** | +| --- | ---: | ---: | ---: | ---: | +| Verified items per operator-minute | 0.033 | 0.327 | 0.658 | **1.055** | +| Charts the program saved and the oracle confirmed | 0 | 30 | 40 | **41** | +| Items right without hand entry (incl. correct non-saves) | 4 | 41 | 51 | **51** | +| Items entered by hand | 23 | 14 | 4 | **4** | +| False stops per 100 items | 70.4 | 16.4 | 1.8 | **0** (95% CI 0-9.4% of 37 clean items) | +| All stops per 100 items | 100 | 45.5 | 27.3 | **25.5** | +| Silent wrong (claimed done, oracle wrong) | 0 | 0 of 30 | 0 of 40 | **0 of 41** (95% CI 0-8.6%) | +| Approvals | | | 33 | **1** | +| Items right at the end | 27 of 27 | 53 of 55 | 55 of 55 | **55 of 55** | +| Operator minutes (run) | 123.0 | 125.5 | 77.5 | **48.3** | +| Median item time | 227 s | 119 s | 123 s | **121 s** | +| Host 1-minute load, median / max | 7.0 / 76.1 | 8.0 / 102.5 | 10.3 / 95.2 | **6.5 / 46.5** | + +Where the 48.3 operator minutes went: + +| Kind | Minutes | +| --- | ---: | +| 10 stops skipped (right stops) | 20.0 | +| 4 stops entered by hand | 20.0 | +| Fresh admission after the app change | 5.0 | +| Repair review, relabel | 2.5 | +| Approval: 1 (item 26) | 0.8 | +| Reconciliation | 0 | +| Re-arms | 0 | + +**Re-arm minutes: 0.** The old version's switch turned off at item 26 +(`screen_changed`, a program problem). The repaired version was admitted +afresh with its own switch, which stayed on through item 55. No re-arm was +needed or offered. + +### Phase 0 gate: met + +The gate is at least 2 times hand entry at 3 minutes per item, with 0 silent +wrongs. This run reached 3.17 times, with 0 silent wrongs in 41 items claimed +done (judged by direct SQL, never by the product's verdict). The per-touch +charges are the cost model's assumptions, not timings from real operators +(see `REPORT.md`). + +### Items timed with host load above 40 + +Items 7 to 10 ran while the host's 1-minute load was above 40. These are the +start and end loads: + +| Item | Exception | Load at start / end | Outcome | Item time | +| ---: | --- | --- | --- | ---: | +| 7 | clean | 7.0 / 45.6 | correct | 121.0 s | +| 8 | missing required field | 45.6 / 46.5 | right stop | 9.7 s | +| 9 | clean | 46.5 / 43.3 | correct | 121.0 s | +| 10 | clean | 43.3 / 11.0 | correct | 120.1 s | + +They are counted in the numbers above. Their item times match the rest of the +run. Without them the rate is 48 verified over 46.33 operator minutes, which +is 1.036 per operator-minute, or 3.11 times hand entry. + +### Stops, by cause (14 of 55) + +- **Right stops: 10.** + - **8 real duplicates:** + - 3 charts that already existed; + - 2 registered moments earlier by another clerk; + - 2 resends (1 at the record-channel check, 1 by an item check before + the run started); + - the same person with a mistyped date of birth. + - **2 with no date of birth.** These were refused before any step. +- **Data stops: 3.** + - A date of birth that reads either way (item 19). It was refused before + any step. + - 2 referrals with no home phone (items 32 and 53). The program refuses + them as an empty input although a blank phone is allowed. +- **False stops: 0.** +- **Item 26: stopped by the harness, not by the product.** The report's judge + counts it as a data stop. What happened: + 1. The first run refused the relabeled save button. Its identity check + failed, which is the expected stop after an app change. + 2. The relabel repair was reviewed and accepted, re-qualified (6 cases) and + admitted afresh. + 3. On the re-run the gate asked a person to approve the save. The scripted + operator approved, but the harness wrote the answer unsigned and claimed + a `cloud_aal2` sign-in. + 4. Since ea96cc4e7 (on main from 2026-10-21, not in the re-run's commit), an + approval counts only when a registered approver key has signed it. The + answer was refused (`auth_method_unverified`), and the gate stopped + before saving (`gate_error`). Nothing was written, nothing was retried, + and the item was entered by hand. + + This is the right refusal by the product and a defect in the harness. It + costs this run one verified item and 5.0 minutes of hand entry, so the + headline **under-states** the program by that much. The harness fix is to + sign the scripted approval with a test approver key on the run's pinned + roster. + +### Misses + +None. Every item's final state was right (55 of 55), and no duplicate was +saved. The new patients who share a last name (4) or a date of birth (3) with +an existing chart were all registered correctly, with no person. + +### After the app change + +- 0 of the 30 items from item 26 on false-stopped. +- Item 27 verified with no person, 1,124.7 s after the change. +- The change took 7.5 operator minutes: the repair review (2.5) and the fresh + admission (5.0). + +## Files + +Everything is computed from `ledger.jsonl` +(`python -m benchmark.lifecycle.report <dir>`): + +- `ledger.jsonl`, `workload.jsonl`, `results.json`, `REPORT.md`, + `stops.jsonl`; +- `arm-ledger.jsonl`; +- `switch/`: the switch record and both logs (the original version's and the + repaired version's); +- `run.log`: the console output, with the merge wait, the commit, and every + item line. diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/REPORT.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/REPORT.md new file mode 100644 index 000000000..f341dc82d --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/REPORT.md @@ -0,0 +1,71 @@ +# Lifecycle soak report + +Protocol `lifecycle/2026-10-20.1`, workload `lifecycle-workload/2026-10-24.1`, seed 7, 55 referrals over 10 simulated days. Engine commit `8bfd7f6af841`. App: openemr 8.0.0.3, synthetic data only. Cost model `lifecycle-cost/2026-10-20.1`. + +## Arm `openadapt-production-relabel` + +- **Verified items per operator-minute: 1.055** (51 verified of 55 items over 48.33 operator minutes; 0.956 with the 5.0 setup minutes). By hand: 0.333 an operator-minute. +- False stops per 100 items: 0.0; all stops per 100 items: 25.45; operator minutes per stop: 2.86. +- After the app change `relabel_save` (item 26): 0 of 30 items false-stopped, 7.5 operator minutes of maintenance (stops, repair reviews); first verified item after it: 27, 1124.7 s after the change. + +| By hand, minutes per item | Verified per operator-minute | By hand per operator-minute | Ratio | +|---:|---:|---:|---:| +| 3 | 1.055 | 0.333 | 3.17 | +| 5 | 0.905 | 0.2 | 4.53 | +| 8 | 0.746 | 0.125 | 5.97 | +| 10 | 0.668 | 0.1 | 6.68 | + +- Duplicate-check stops: 7; field shared with an existing chart: {"none at start": 1, "lname+DOB": 4, "lname": 1, "first name only": 1}; judged {"right_stop": 7}; exception kinds {"concurrent_same": 2, "dup_resend": 1, "ambiguous_same_person": 1, "dup_existing": 3}. +- Stops judged `data_stop`, by cause: identity check failed (relabeled control) 1, other: REJECTED_POLICY HALTED / REJECTED_POLICY 3. +- Stops judged `right_stop`, by cause: duplicate check listed a chart 7, other: REJECTED_POLICY HALTED / REJECTED_POLICY 3. +- Cost-model bands, verified per operator-minute: x0.5 2.11, x1 1.055, x2 0.528. + +| | x0.5 | x1 | x2 | +|---|---:|---:|---:| +| Verified completed items per operator-hour | 114.75 | 57.38 | 28.69 | +| ... if every silent wrong is later found and fixed | 114.75 | 57.38 | 28.69 | +| All-manual items per operator-hour | 40 | 20 | 10 | +| Operator work removed vs all-manual | 67.7% | 67.7% | 67.7% | +| Setup minutes | 2.5 | 5 | 10 | +| Per-item operator minutes (mean) | 0.371 | 0.742 | 1.485 | +| Maintenance minutes (all UI changes) | 3.75 | 7.5 | 15 | +| Operator hours in total | 0.444 | 0.889 | 1.778 | + +- Items: 55; verified completed without hand entry: 51; right in the end: 55; done by hand: 4. +- False stops: 0 of 37 clean items, 0.0% (95% CI 0.0-9.4%); 0 of them with a UI change in force. +- Silent wrong: 0 of 41 items claimed done, 0.0% (95% CI 0.0-8.6%) (judged by direct SQL, never the product's verdict). +- Operator requests: {"stop": 14, "repair_review": 1, "approval": 1}; actions: {"skip": 10, "do_by_hand": 4, "accept_repair": 1, "approve": 1}. +- Outcomes: {"correct": 41, "right_stop": 10, "data_stop": 4}. +- Wall: 7698.4 s of item time, median 120.6 s an item; host 1-minute load median 6.5, max 46.5. +- Model calls 0, list-price cost $0.0. + +Outcome by exception: + +| Exception | Outcomes | +|---|---| +| ambiguous_same_person | right_stop 1 | +| clean | correct 30 | +| common_surname | correct 4 | +| concurrent_other | correct 1 | +| concurrent_same | right_stop 2 | +| dup_existing | right_stop 3 | +| dup_resend | right_stop 2 | +| malformed_case | data_stop 1 | +| malformed_dob | correct 1, data_stop 1 | +| missing_optional | data_stop 2 | +| missing_required | right_stop 2 | +| session_expiry | correct 1 | +| shared_dob | correct 3 | +| slow_save | correct 1 | + +After each UI change (items until the next change): + +| Change | From item | Items | Outcomes | +|---|---:|---:|---| +| relabel_save | 26 | 30 | correct 21, data_stop 3, right_stop 6 | + +## Assumptions + +Operator seconds per touch (`lifecycle-cost/2026-10-20.1`): admit 300, approval 20, compile_review 600, interrupt 30, manual_entry 180, question 60, reconcile 120, repair_review 120, stop 90, teach_prep 300. Every request also pays the interrupt charge. Bands scale every number. + +No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds). diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/arm-ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/arm-ledger.jsonl new file mode 100644 index 000000000..ab8dfac75 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/arm-ledger.jsonl @@ -0,0 +1,24 @@ +{"at": 1792923752.031, "certification_invalidated": true, "encrypted": true, "encrypted_digest": "ae3bd5f235967f85210153918e8a6a84ea1dbaf1055a6dc8ae843c4c1976ec42", "kind": "admit.encrypt", "source_digest": "15971da038a14cf1c51e661ad66cc692ce165372dd2eac327a4b4a439cc93777"} +{"at": 1792923886.64, "kind": "admit.qualify.log", "line": "{\"case_id\": \"representative\", \"trial\": 1, \"expected\": \"VERIFIED\", \"execution_outcome\": \"VERIFIED\", \"transaction_outcome\": \"VERIFIED\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": true, \"model_calls\": 0, \"total_ms\": 105415.71941692382, \"failed_step_id\": null, \"failed_erro"} +{"at": 1792924002.493, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-ambiguity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 107260.61029173434, \"failed_step_id\": \"step_04"} +{"at": 1792924123.827, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-wrong-identity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"REJECTED_POLICY\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 111706.46883314475, \"failed_step_id\": \"step_04"} +{"at": 1792924239.446, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-stale-identity\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 107138.87079199776, \"failed_step_id\": \"st"} +{"at": 1792924358.456, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-weak-effect\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 110065.77695766464, \"failed_step_id\": \"step_"} +{"at": 1792924487.41, "kind": "admit.qualify.log", "line": "{\"case_id\": \"fault-missing-effect\", \"trial\": 1, \"expected\": \"HALTED\", \"execution_outcome\": \"HALTED\", \"transaction_outcome\": \"HALTED_BEFORE_EFFECT\", \"execution_profile\": \"standard\", \"production_eligible\": false, \"success\": false, \"model_calls\": 0, \"total_ms\": 120408.4137910977, \"failed_step_id\": \"ste"} +{"at": 1792924495.447, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"representative\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792924503.291, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-ambiguity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792924510.924, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-wrong-identity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792924518.572, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-stale-identity\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792924526.308, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-weak-effect\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792924533.899, "kind": "admit.qualify.log", "line": "{\"pixels_only\": true, \"case_id\": \"fault-missing-effect\", \"trial\": 1, \"passed\": false, \"failure\": \"StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path\"}"} +{"at": 1792924533.899, "kind": "admit.qualify.log", "line": "pixels-only pass (informational): 0/6 (0%) trials behaved as required with structure lookups disabled; most common failure: StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"at": 1792924534.217, "kind": "admit.qualify.log", "line": "qualified lookups: structure on a local surface"} +{"at": 1792924534.438, "kind": "admit.qualify.log", "line": "PASS: qualification for 'openemr-create-synthetic-patient'\n identity coverage 1/1; effect coverage 1/1; cases 6/6"} +{"at": 1792924534.438, "kind": "admit.qualify.log", "line": "qualification-result/v1 d39bd4b8b22bbc93: passed=True silent_incorrect_success=0 over_halt=0 executor_model_calls=0 verifier_model_calls=0"} +{"at": 1792924540.882, "kind": "admit.qualify.log", "line": "no admission envelope: the qualification-admission/v1 envelope needs at least 3 trials per case; this campaign ran 1"} +{"at": 1792924547.382, "certified": true, "digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "kind": "admit.qualify", "passed": true, "rows": [{"case_id": "representative", "expected": "VERIFIED", "transaction_outcome": "VERIFIED", "trial": 1}, {"case_id": "fault-ambiguity", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-wrong-identity", "expected": "HALTED", "transaction_outcome": "REJECTED_POLICY", "trial": 1}, {"case_id": "fault-stale-identity", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-weak-effect", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-missing-effect", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}], "seconds": 799.4} +{"at": 1792924547.383, "kind": "admit", "pinned_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "seconds": 799.4} +{"at": 1792924549.624, "bundle": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-6d9c18d67786-1792924549"} +{"at": 1792927836.399, "candidate": "/Users/abrichr/oa/scratch/production-lifecycle/runs/soak-final-2/arms/openadapt-production-relabel/items/ref-00026-relabel/candidate", "kind": "drift.requalify.start"} +{"at": 1792928593.695, "kind": "drift.requalify.end"} +{"at": 1792928598.086, "bundle": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-6935ae303537-1792928598"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/ledger.jsonl new file mode 100644 index 000000000..b280b5220 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/ledger.jsonl @@ -0,0 +1,80 @@ +{"app": {"api_url": "https://127.0.0.1:9400", "app": "openemr", "baseline_sha256": "015bef02fb30530e2ed64c17e8035623a39801a9008f2df307eaf53e420e98ba", "images": {"mariadb": "mariadb:11.8@sha256:efb4959ef2c835cd735dbc388eb9ad6aab0c78dd64febcd51bc17481111890c4", "openemr": "openemr/openemr:8.0.0.3@sha256:0aa4d3d52b22fa69986c087e7c99e9854d8dfd70440634eb7c8af0e08f19f3ab"}, "project": "openadapt-openemr-compose", "ui_url": "http://127.0.0.1:9401", "version": "8.0.0.3"}, "argv": null, "arm": "", "cost_model": {"admit_s": 300.0, "approval_s": 20.0, "calibration": "No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds).", "compile_review_s": 600.0, "interrupt_s": 30.0, "manual_entry_s": 180.0, "question_s": 60.0, "reconcile_s": 120.0, "repair_review_s": 120.0, "stop_s": 90.0, "teach_prep_s": 300.0, "version": "lifecycle-cost/2026-10-20.1"}, "cpus": 12, "days": 10, "engine_commit": "8bfd7f6af84135425ae55dddc09abdcb3dface23", "host": "MacBook-Pro-5", "items": 55, "platform": "macOS-15.7.3-arm64-arm-64bit", "protocol": "lifecycle/2026-10-20.1", "seed": 7, "stop_after": null, "t": 1792923736.107, "type": "run_start", "workload": "lifecycle-workload/2026-10-24.1"} +{"arm": "openadapt-production-relabel", "arm_spec": "benchmark.lifecycle.production_arm:make", "describe": {"api_tier": "where admissible (refused on the OpenEMR referral by its own proposal; the GUI save runs)", "approval": "problems_only (local stand-in for Cloud's switch status)", "authorization": "governed run gate on the certified, encrypted bundle", "checkpoint_store": "encrypted", "configuration": "benchmark/lifecycle_proof (proof-15)", "duplicate_check": "no_duplicate_candidate on step_039 (rows tr.oneresult; a row with the item's last name or date of birth stops the item)", "durable": true, "intake_dates": true, "model_calls": "none on any path", "pin": "admitted digest; repaired versions only through signed lineage", "policy": "clinical-write", "profile": "regulated", "qualification_trials": 1, "readback": "pipelined, window 1; the harness waits for each check", "rearm": "operator signs when offered", "recovery": "relabel", "repair": "self-repair on a halt before any effect (rule-based agent, no model)", "typed_dob": true}, "existing_ids": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], "interface": "lifecycle-arm/1", "options": {"duplicate_check": true, "intake_dates": true, "rearm": true, "recovery": "relabel", "typed_dob": true}, "t": 1792923746.459, "type": "arm_start"} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "teach and compile happened before this run (the certified referral bundle); onboarding effort is measured in benchmark/onboarding_effort", "phase": "admit", "pinned_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "reused_from": null, "stage": "setup", "t": 1792924549.627, "type": "phase", "wall_s": 802.4} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "problems_only switch opened locally, as Cloud would", "phase": "switch", "stage": "setup", "t": 1792924549.628, "type": "phase", "wall_s": 0.3} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00001"}, "drift_active": [], "evidence": "items/ref-00001", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.92, "injected": [], "item_id": "ref-00001", "load_1m": 4.3, "load_1m_end": 5.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["13"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 1, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792924670.654, "type": "item_result", "wall_s": 120.52} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00002"}, "drift_active": [], "evidence": "items/ref-00002", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.31, "injected": [], "item_id": "ref-00002", "load_1m": 5.0, "load_1m_end": 5.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["14"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 2, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 1}, "t": 1792924792.073, "type": "item_result", "wall_s": 120.92} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00003"}, "drift_active": [], "evidence": "items/ref-00003", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.33, "injected": [], "item_id": "ref-00003", "load_1m": 5.4, "load_1m_end": 5.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["15"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 3, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792924913.499, "type": "item_result", "wall_s": 120.94} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00004"}, "drift_active": [], "evidence": "items/ref-00004", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.88, "injected": [], "item_id": "ref-00004", "load_1m": 5.1, "load_1m_end": 4.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["16"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 4, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792925034.477, "type": "item_result", "wall_s": 120.46} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00005"}, "drift_active": [], "evidence": "items/ref-00005", "exception": "shared_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.85, "injected": [], "item_id": "ref-00005", "load_1m": 4.6, "load_1m_end": 5.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["17"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 5, "shares_with_existing": {"DOB": 1, "fname": 0, "lname": 0}, "t": 1792925155.429, "type": "item_result", "wall_s": 120.46} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "intake_dates": {"DOB": {"conversion": "MM/DD/YYYY to ISO (20 can only be the day)", "raw": "04/20/1944", "value": "1944-04-20"}}, "run_dir": "items/ref-00006"}, "drift_active": [], "evidence": "items/ref-00006", "exception": "malformed_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.96, "injected": [], "item_id": "ref-00006", "load_1m": 5.4, "load_1m_end": 7.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["18"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 6, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792925276.487, "type": "item_result", "wall_s": 120.58} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00007"}, "drift_active": [], "evidence": "items/ref-00007", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.46, "injected": [], "item_id": "ref-00007", "load_1m": 7.0, "load_1m_end": 45.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["19"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 7, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792925398.05, "type": "item_result", "wall_s": 121.05} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00008", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "skip_no_chart_wanted", "seq": 8, "surface": "openadapt-flow explain / approve / resume", "t": 1792925407.901, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00008", "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00008", "exception": "missing_required", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 10.1, "injected": [], "item_id": "ref-00008", "load_1m": 45.6, "load_1m_end": 46.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 8, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792925408.256, "type": "item_result", "wall_s": 9.75} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00009"}, "drift_active": [], "evidence": "items/ref-00009", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.37, "injected": [], "item_id": "ref-00009", "load_1m": 46.5, "load_1m_end": 43.3, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["20"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 9, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792925529.719, "type": "item_result", "wall_s": 120.97} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00010"}, "drift_active": [], "evidence": "items/ref-00010", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.52, "injected": [], "item_id": "ref-00010", "load_1m": 43.3, "load_1m_end": 11.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["21"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 10, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792925650.34, "type": "item_result", "wall_s": 120.14} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00011"}, "drift_active": [], "evidence": "items/ref-00011", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.59, "injected": [], "item_id": "ref-00011", "load_1m": 11.0, "load_1m_end": 6.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["22"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 11, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792925771.022, "type": "item_result", "wall_s": 120.18} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00012", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310ce5f-5990-4380-914d-5ef9b371725c (same fi", "rule": "skip_no_chart_wanted", "seq": 12, "surface": "openadapt-flow explain / approve / resume", "t": 1792926011.33, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 1, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310ce5f-5990-4380-914d-5ef9b371725c (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310ce5f-5990-4380-914d-5ef9b371725c (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00012", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00012", "exception": "concurrent_same", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 240.13, "injected": [{"chart_id": "23", "event": "other_clerk_creates"}], "item_id": "ref-00012", "load_1m": 6.9, "load_1m_end": 6.2, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 12, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792926011.744, "type": "item_result", "wall_s": 239.72} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00013"}, "drift_active": [], "evidence": "items/ref-00013", "exception": "concurrent_other", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.15, "injected": [{"event": "other_clerk_edits_unrelated", "phone_home": "555-0113", "touched_ids": ["14"]}], "item_id": "ref-00013", "load_1m": 6.2, "load_1m_end": 6.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["24"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 13, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792926132.006, "type": "item_result", "wall_s": 119.77} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00014"}, "drift_active": [], "evidence": "items/ref-00014", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.43, "injected": [], "item_id": "ref-00014", "load_1m": 6.4, "load_1m_end": 8.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["25"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 14, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792926252.54, "type": "item_result", "wall_s": 120.01} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00015"}, "drift_active": [], "evidence": "items/ref-00015", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.57, "injected": [], "item_id": "ref-00015", "load_1m": 8.6, "load_1m_end": 7.2, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["26"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 15, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792926373.213, "type": "item_result", "wall_s": 120.16} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00016"}, "drift_active": [], "evidence": "items/ref-00016", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.74, "injected": [], "item_id": "ref-00016", "load_1m": 7.2, "load_1m_end": 8.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["27"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 16, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792926494.059, "type": "item_result", "wall_s": 120.35} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00017"}, "drift_active": [], "evidence": "items/ref-00017", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.67, "injected": [], "item_id": "ref-00017", "load_1m": 8.6, "load_1m_end": 7.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["28"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 17, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792926614.824, "type": "item_result", "wall_s": 120.26} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 2, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00018"}, "drift_active": [], "evidence": "items/ref-00018", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.42, "injected": [], "item_id": "ref-00018", "load_1m": 7.9, "load_1m_end": 7.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["29"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 18, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792926735.336, "type": "item_result", "wall_s": 120.03} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "30"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00019", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "enter_by_hand", "seq": 19, "surface": "openadapt-flow explain / approve / resume", "t": 1792926745.593, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "intake_dates": {"DOB": {"error": "ambiguous date '10/01/1958': day and month can't be told apart; declare the source's format (MM/DD/YYYY or DD/MM/YYYY)", "raw": "10/01/1958"}}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00019", "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": [], "evidence": "items/ref-00019", "exception": "malformed_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 10.44, "injected": [], "item_id": "ref-00019", "load_1m": 7.0, "load_1m_end": 6.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 19, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792926745.881, "type": "item_result", "wall_s": 10.16} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00020"}, "drift_active": [], "evidence": "items/ref-00020", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.39, "injected": [], "item_id": "ref-00020", "load_1m": 6.8, "load_1m_end": 6.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["31"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 20, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792926866.362, "type": "item_result", "wall_s": 120.0} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00021", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310d071-5f19-443f-abea-6a200d2ef994 (same fi", "rule": "skip_no_chart_wanted", "seq": 21, "surface": "openadapt-flow explain / approve / resume", "t": 1792927105.631, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310d071-5f19-443f-abea-6a200d2ef994 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310d071-5f19-443f-abea-6a200d2ef994 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00021", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00021", "exception": "dup_resend", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 239.58, "injected": [], "item_id": "ref-00021", "load_1m": 6.4, "load_1m_end": 4.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 21, "shares_with_existing": {"DOB": 1, "fname": 3, "lname": 1}, "t": 1792927106.045, "type": "item_result", "wall_s": 239.17} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00022"}, "drift_active": [], "evidence": "items/ref-00022", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.33, "injected": [], "item_id": "ref-00022", "load_1m": 4.7, "load_1m_end": 6.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["32"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 22, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792927226.479, "type": "item_result", "wall_s": 119.93} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00023"}, "drift_active": [], "evidence": "items/ref-00023", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.62, "injected": [], "item_id": "ref-00023", "load_1m": 6.5, "load_1m_end": 6.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["33"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 23, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792927347.193, "type": "item_result", "wall_s": 120.22} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00024", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: close, a chart may be this patient; a person decides: close record a310c24c-701e-4396-a0ce-ea10291", "rule": "skip_no_chart_wanted", "seq": 24, "surface": "openadapt-flow explain / approve / resume", "t": 1792927586.641, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 3, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: close, a chart may be this patient; a person decides: close record a310c24c-701e-4396-a0ce-ea10291ce631 (same or similar", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: close, a chart may be this patient; a person decides: close record a310c24c-701e-4396-a0ce-ea10291ce631 (same or similar", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00024", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": [], "evidence": "items/ref-00024", "exception": "ambiguous_same_person", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 239.74, "injected": [], "item_id": "ref-00024", "load_1m": 6.0, "load_1m_end": 6.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 24, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 1}, "t": 1792927587.032, "type": "item_result", "wall_s": 239.35} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00025"}, "drift_active": [], "evidence": "items/ref-00025", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.4, "injected": [], "item_id": "ref-00025", "load_1m": 6.0, "load_1m_end": 6.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["34"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 25, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792927707.524, "type": "item_result", "wall_s": 119.99} +{"applied": {"kind": "relabel_save", "labels": {"Confirm Create New Patient": "Save new patient"}}, "arm": "openadapt-production-relabel", "day": 4, "first_seq": 26, "kind": "relabel_save", "t": 1792927707.682, "type": "drift_applied"} +{"action": "accept_repair", "arm": "openadapt-production-relabel", "charged_s": 150.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"certified_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "fresh_admission": "the repair changes the program's record check; it needs a person's fresh admission", "probes_passed": true, "release_changed_files": ["/var/www/localhost/htdocs/openemr/interface/new/new_search_popup.php"], "requalified_cases": 6}, "item_id": "ref-00026", "kind": "repair_review", "operator": "scripted", "reason": "step_040: the control now reads 'Save new patient' instead of 'Confirm Create New Patient'; its id, kind and form are unchanged (the recorded identity hash matches with only the label swapped back)", "rule": "repair_drift_and_probes_passed", "seq": 26, "surface": "openadapt-flow repair relabel (review card)", "t": 1792928597.819, "type": "operator"} +{"action": "approve", "arm": "openadapt-production-relabel", "charged_s": 50.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"probes_passed": false, "step_id": "step_040"}, "item_id": "ref-00026", "kind": "approval", "operator": "scripted", "reason": "ApprovalMode.PROBLEMS_ONLY: click 'Save new patient'", "rule": "approve_intended_write", "seq": 26, "surface": "approval_mode:item-approval (Desktop Run it)", "t": 1792928702.485, "type": "operator"} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "35"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "stop_before_saving", "decision_reason": "gate_error", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00026", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Approval mode: this item stopped before saving (gate_error: gate_error). Nothing was retried.", "rule": "enter_by_hand", "seq": 26, "surface": "openadapt-flow explain / approve / resume", "t": 1792928710.956, "type": "operator"} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "fresh admission of the re-qualified copy: the repair changes the program's record check; it needs a person's fresh admission", "phase": "admit", "seq": 26, "stage": "maintenance", "t": 1792928711.057, "type": "phase", "wall_s": 0.0, "within_item": "ref-00026"} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "phase": "relabel_requalify", "seq": 26, "stage": "maintenance", "t": 1792928711.057, "type": "phase", "wall_s": 762.6, "within_item": "ref-00026"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "stop_before_saving", "decision_reason": "gate_error", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item stopped before saving (gate_error: gate_error). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "stop_before_saving", "decision_reason": "right_record", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Identity check failed for step 'step_040' (click 'Confirm Create New Patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's \u2014 expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_c", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "item": "ref-00026", "lineage_hop": null, "proposal": "step_040: the control now reads 'Save new patient' instead of 'Confirm Create New Patient'; its id, kind and form are unchanged (the recorded identity hash matches with only the label swapped back)", "reason": "the repair changes the program's record check; it needs a person's fresh admission", "release": {"changed": ["/var/www/localhost/htdocs/openemr/interface/new/new_search_popup.php"], "lock": "environment.release-1.lock.json"}, "rerun": {"approval": {"decision": "stop_before_saving", "decision_reason": "gate_error", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Approval mode: this item stopped before saving (gate_error: gate_error). Nothing was retried.", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_040", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "review": {"action": "accept_repair", "charged_s": 150.0}, "seconds_to_item_done": 885.6, "seconds_to_readmitted": 773.1, "status": "fresh_admission", "timings": {"person_wait_s": 0.0, "requalify_s": 762.6}}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00026", "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00026", "exception": "malformed_case", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 1003.47, "injected": [], "item_id": "ref-00026", "load_1m": 6.6, "load_1m_end": 6.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "data_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 26, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792928711.259, "type": "item_result", "wall_s": 1003.17} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00027"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00027", "exception": "common_surname", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.02, "injected": [], "item_id": "ref-00027", "load_1m": 6.0, "load_1m_end": 6.3, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["36"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 27, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 1}, "t": 1792928832.373, "type": "item_result", "wall_s": 120.6} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00028"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00028", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 122.29, "injected": [], "item_id": "ref-00028", "load_1m": 6.3, "load_1m_end": 5.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["37"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 28, "shares_with_existing": {"DOB": 0, "fname": 3, "lname": 0}, "t": 1792928954.769, "type": "item_result", "wall_s": 121.89} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00029", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310e159-4563-4766-bc53-a61905677aaa (same fi", "rule": "skip_no_chart_wanted", "seq": 29, "surface": "openadapt-flow explain / approve / resume", "t": 1792929198.928, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310e159-4563-4766-bc53-a61905677aaa (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310e159-4563-4766-bc53-a61905677aaa (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00029", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00029", "exception": "concurrent_same", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 243.98, "injected": [{"chart_id": "38", "event": "other_clerk_creates"}], "item_id": "ref-00029", "load_1m": 5.6, "load_1m_end": 34.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 29, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792929199.356, "type": "item_result", "wall_s": 243.55} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 4, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00030"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00030", "exception": "common_surname", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.56, "injected": [], "item_id": "ref-00030", "load_1m": 34.6, "load_1m_end": 11.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["39"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 30, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 1}, "t": 1792929321.018, "type": "item_result", "wall_s": 121.14} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00031"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00031", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.4, "injected": [], "item_id": "ref-00031", "load_1m": 11.0, "load_1m_end": 9.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["40"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 31, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792929442.527, "type": "item_result", "wall_s": 121.01} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "41"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00032", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "enter_by_hand", "seq": 32, "surface": "openadapt-flow explain / approve / resume", "t": 1792929453.327, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00032", "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00032", "exception": "missing_optional", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 10.99, "injected": [], "item_id": "ref-00032", "load_1m": 9.7, "load_1m_end": 9.4, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 32, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792929453.616, "type": "item_result", "wall_s": 10.7} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00033"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00033", "exception": "common_surname", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.11, "injected": [], "item_id": "ref-00033", "load_1m": 9.4, "load_1m_end": 6.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["42"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 33, "shares_with_existing": {"DOB": 0, "fname": 3, "lname": 2}, "t": 1792929574.842, "type": "item_result", "wall_s": 120.71} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00034", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310c24c-701e-4396-a0ce-ea10291ce631 (same fi", "rule": "skip_no_chart_wanted", "seq": 34, "surface": "openadapt-flow explain / approve / resume", "t": 1792929815.509, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310c24c-701e-4396-a0ce-ea10291ce631 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310c24c-701e-4396-a0ce-ea10291ce631 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00034", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00034", "exception": "dup_existing", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 240.98, "injected": [], "item_id": "ref-00034", "load_1m": 6.1, "load_1m_end": 5.6, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 34, "shares_with_existing": {"DOB": 1, "fname": 1, "lname": 1}, "t": 1792929815.919, "type": "item_result", "wall_s": 240.57} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00035"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00035", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.93, "injected": [], "item_id": "ref-00035", "load_1m": 5.6, "load_1m_end": 6.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["43"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 35, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792929936.947, "type": "item_result", "wall_s": 120.49} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 5, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00036"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00036", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.98, "injected": [], "item_id": "ref-00036", "load_1m": 6.5, "load_1m_end": 5.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["44"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 36, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792930058.027, "type": "item_result", "wall_s": 120.58} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00037"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00037", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.47, "injected": [], "item_id": "ref-00037", "load_1m": 5.8, "load_1m_end": 7.2, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["45"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 37, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792930179.602, "type": "item_result", "wall_s": 121.07} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": ["oa_lifecycle_fault"], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00038"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00038", "exception": "slow_save", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 126.74, "injected": [{"event": "slow_save", "trigger": "IF NEW.email = 'dmitri.birchfield.38@example.invalid' THEN SET @oa_slept = SLEEP(6); END IF;"}], "item_id": "ref-00038", "load_1m": 7.2, "load_1m_end": 6.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["46"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 38, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 1}, "t": 1792930306.446, "type": "item_result", "wall_s": 126.23} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00039"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00039", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.32, "injected": [], "item_id": "ref-00039", "load_1m": 6.5, "load_1m_end": 7.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["47"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 39, "shares_with_existing": {"DOB": 0, "fname": 2, "lname": 0}, "t": 1792930427.867, "type": "item_result", "wall_s": 120.91} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00040"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00040", "exception": "shared_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.42, "injected": [], "item_id": "ref-00040", "load_1m": 7.1, "load_1m_end": 6.2, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["48"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 40, "shares_with_existing": {"DOB": 1, "fname": 2, "lname": 1}, "t": 1792930549.39, "type": "item_result", "wall_s": 121.02} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00041"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00041", "exception": "shared_dob", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.14, "injected": [], "item_id": "ref-00041", "load_1m": 6.2, "load_1m_end": 5.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["49"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 41, "shares_with_existing": {"DOB": 1, "fname": 0, "lname": 0}, "t": 1792930670.629, "type": "item_result", "wall_s": 120.75} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 6, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00042"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00042", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.43, "injected": [], "item_id": "ref-00042", "load_1m": 5.5, "load_1m_end": 8.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["50"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 42, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792930792.167, "type": "item_result", "wall_s": 121.03} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00043"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00043", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 122.45, "injected": [], "item_id": "ref-00043", "load_1m": 8.1, "load_1m_end": 13.0, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["51"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 43, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792930914.715, "type": "item_result", "wall_s": 122.02} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00044", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "skip_no_chart_wanted", "seq": 44, "surface": "openadapt-flow explain / approve / resume", "t": 1792930924.627, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "intake_dates": {"DOB": {"error": "ambiguous date '10/01/1958': day and month can't be told apart; declare the source's format (MM/DD/YYYY or DD/MM/YYYY)", "raw": "10/01/1958"}}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00044", "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00044", "exception": "dup_resend", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 10.16, "injected": [], "item_id": "ref-00044", "load_1m": 12.4, "load_1m_end": 11.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 44, "shares_with_existing": {"DOB": 0, "fname": 4, "lname": 1}, "t": 1792930924.986, "type": "item_result", "wall_s": 9.81} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00045", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310c248-3a97-428c-8009-c88900cf0118 (same fi", "rule": "skip_no_chart_wanted", "seq": 45, "surface": "openadapt-flow explain / approve / resume", "t": 1792931166.461, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310c248-3a97-428c-8009-c88900cf0118 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310c248-3a97-428c-8009-c88900cf0118 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00045", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00045", "exception": "dup_existing", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 242.12, "injected": [], "item_id": "ref-00045", "load_1m": 11.9, "load_1m_end": 9.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 45, "shares_with_existing": {"DOB": 1, "fname": 1, "lname": 2}, "t": 1792931167.213, "type": "item_result", "wall_s": 241.37} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00046"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00046", "exception": "session_expiry", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.42, "injected": [{"event": "force_logout", "sessions_ended": 642}], "item_id": "ref-00046", "load_1m": 9.7, "load_1m_end": 7.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["52"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 46, "shares_with_existing": {"DOB": 0, "fname": 4, "lname": 0}, "t": 1792931288.903, "type": "item_result", "wall_s": 121.01} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00047"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00047", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.95, "injected": [], "item_id": "ref-00047", "load_1m": 7.1, "load_1m_end": 5.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["53"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 47, "shares_with_existing": {"DOB": 0, "fname": 3, "lname": 0}, "t": 1792931409.959, "type": "item_result", "wall_s": 120.55} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 7, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00048"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00048", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.31, "injected": [], "item_id": "ref-00048", "load_1m": 5.8, "load_1m_end": 5.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["54"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 48, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792931531.371, "type": "item_result", "wall_s": 120.89} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00049"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00049", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.9, "injected": [], "item_id": "ref-00049", "load_1m": 5.1, "load_1m_end": 5.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["55"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 49, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792931652.376, "type": "item_result", "wall_s": 120.48} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00050"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00050", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.22, "injected": [], "item_id": "ref-00050", "load_1m": 5.9, "load_1m_end": 6.8, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["56"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 50, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 1}, "t": 1792931773.699, "type": "item_result", "wall_s": 120.82} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00051"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00051", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 121.35, "injected": [], "item_id": "ref-00051", "load_1m": 6.8, "load_1m_end": 5.5, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["57"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 51, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792931895.145, "type": "item_result", "wall_s": 120.95} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00052", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310c248-e8c8-4a5f-a114-5b3eda0e45d8 (same fi", "rule": "skip_no_chart_wanted", "seq": 52, "surface": "openadapt-flow explain / approve / resume", "t": 1792932135.077, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310c248-e8c8-4a5f-a114-5b3eda0e45d8 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": "Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (record check via fhir: exact, a chart for this patient exists: exact record a310c248-e8c8-4a5f-a114-5b3eda0e45d8 (same first name, last name an", "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "step_039", "success": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "relabel": {"proposed": false, "why": "input may have reached step_039; only a step that never acted is repaired"}, "route": {"route": "repair", "why": ""}, "run_dir": "items/ref-00052", "self_repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00052", "exception": "dup_existing", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 240.23, "injected": [], "item_id": "ref-00052", "load_1m": 5.5, "load_1m_end": 6.1, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "seq": 52, "shares_with_existing": {"DOB": 1, "fname": 5, "lname": 1}, "t": 1792932135.479, "type": "item_result", "wall_s": 239.84} +{"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "58"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00053", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "enter_by_hand", "seq": 53, "surface": "openadapt-flow explain / approve / resume", "t": 1792932145.662, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "problem", "decision_reason": "rejected_policy", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00053", "stops": [{"decision": "do_by_hand", "rule": "enter_by_hand"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00053", "exception": "missing_optional", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 10.38, "injected": [], "item_id": "ref-00053", "load_1m": 6.1, "load_1m_end": 5.9, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "absent", "why": "no new chart"}, "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 53, "shares_with_existing": {"DOB": 0, "fname": 0, "lname": 0}, "t": 1792932145.959, "type": "item_result", "wall_s": 10.09} +{"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 8, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00054"}, "drift_active": ["relabel_save"], "evidence": "items/ref-00054", "exception": "common_surname", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 120.91, "injected": [], "item_id": "ref-00054", "load_1m": 5.9, "load_1m_end": 5.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["59"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 54, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 2}, "t": 1792932266.974, "type": "item_result", "wall_s": 120.51} +{"action": "skip", "arm": "openadapt-production-relabel", "charged_s": 120.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "REJECTED_POLICY"}, "item_id": "ref-00055", "kind": "stop", "operator": "scripted", "reason": "REJECTED_POLICY: ", "rule": "skip_no_chart_wanted", "seq": 55, "surface": "openadapt-flow explain / approve / resume", "t": 1792932276.606, "type": "operator"} +{"arm": "openadapt-production-relabel", "chart_wanted": false, "claimed": "stopped", "cleared": [], "cost_usd": 0.0, "day": 9, "detail": {"final": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "first_run": {"approval": {"decision": "approval_required", "decision_reason": "inputs_supplied", "mode": "problems_only", "needs_person": true}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "execution_outcome": "HALTED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": null, "save_step": "<params>", "success": false, "transaction_outcome": "REJECTED_POLICY"}, "relabel": {"proposed": false, "why": "the run did not halt at a step"}, "route": {"route": "person", "why": "the run ended REJECTED_POLICY"}, "run_dir": "items/ref-00055", "stops": [{"decision": "skip", "rule": "skip_no_chart_wanted"}]}, "drift_active": ["relabel_save"], "evidence": "items/ref-00055", "exception": "missing_required", "final": {"new_charts": 0, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 9.87, "injected": [], "item_id": "ref-00055", "load_1m": 5.7, "load_1m_end": 6.7, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 0, "new_ids": [], "verdict": "correct", "why": "no new chart"}, "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "seq": 55, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792932276.942, "type": "item_result", "wall_s": 9.54} +{"arm": "openadapt-production-relabel", "t": 1792932277.22, "type": "arm_end"} +{"arm": "openadapt-production-relabel", "t": 1792932277.222, "type": "run_end"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/results.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/results.json new file mode 100644 index 000000000..b56935167 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/results.json @@ -0,0 +1,346 @@ +{ + "arms": { + "openadapt-production-relabel": { + "bands": { + "x0.5": { + "maintenance_min": 3.75, + "manual_only_hours": 1.375, + "manual_only_items_per_hour": 40.0, + "operator_hours": 0.444, + "operator_hours_with_cleanup": 0.444, + "per_item_operator_min": 0.371, + "per_item_operator_min_total": 20.42, + "setup_min": 2.5, + "verified_completed_per_operator_hour": 114.75, + "verified_completed_per_operator_hour_with_cleanup": 114.75, + "work_removed_fraction": 0.677 + }, + "x1": { + "maintenance_min": 7.5, + "manual_only_hours": 2.75, + "manual_only_items_per_hour": 20.0, + "operator_hours": 0.889, + "operator_hours_with_cleanup": 0.889, + "per_item_operator_min": 0.742, + "per_item_operator_min_total": 40.83, + "setup_min": 5.0, + "verified_completed_per_operator_hour": 57.38, + "verified_completed_per_operator_hour_with_cleanup": 57.38, + "work_removed_fraction": 0.677 + }, + "x2": { + "maintenance_min": 15.0, + "manual_only_hours": 5.5, + "manual_only_items_per_hour": 10.0, + "operator_hours": 1.778, + "operator_hours_with_cleanup": 1.778, + "per_item_operator_min": 1.485, + "per_item_operator_min_total": 81.67, + "setup_min": 10.0, + "verified_completed_per_operator_hour": 28.69, + "verified_completed_per_operator_hour_with_cleanup": 28.69, + "work_removed_fraction": 0.677 + } + }, + "by_exception": { + "ambiguous_same_person": { + "right_stop": 1 + }, + "clean": { + "correct": 30 + }, + "common_surname": { + "correct": 4 + }, + "concurrent_other": { + "correct": 1 + }, + "concurrent_same": { + "right_stop": 2 + }, + "dup_existing": { + "right_stop": 3 + }, + "dup_resend": { + "right_stop": 2 + }, + "malformed_case": { + "data_stop": 1 + }, + "malformed_dob": { + "correct": 1, + "data_stop": 1 + }, + "missing_optional": { + "data_stop": 2 + }, + "missing_required": { + "right_stop": 2 + }, + "session_expiry": { + "correct": 1 + }, + "shared_dob": { + "correct": 3 + }, + "slow_save": { + "correct": 1 + } + }, + "complete": true, + "cost_model": "lifecycle-cost/2026-10-20.1", + "describe": { + "api_tier": "where admissible (refused on the OpenEMR referral by its own proposal; the GUI save runs)", + "approval": "problems_only (local stand-in for Cloud's switch status)", + "authorization": "governed run gate on the certified, encrypted bundle", + "checkpoint_store": "encrypted", + "configuration": "benchmark/lifecycle_proof (proof-15)", + "duplicate_check": "no_duplicate_candidate on step_039 (rows tr.oneresult; a row with the item's last name or date of birth stops the item)", + "durable": true, + "intake_dates": true, + "model_calls": "none on any path", + "pin": "admitted digest; repaired versions only through signed lineage", + "policy": "clinical-write", + "profile": "regulated", + "qualification_trials": 1, + "readback": "pipelined, window 1; the harness waits for each check", + "rearm": "operator signs when offered", + "recovery": "relabel", + "repair": "self-repair on a halt before any effect (rule-based agent, no model)", + "typed_dob": true + }, + "done_by_hand": 4, + "false_stop_rate": { + "ci95": [ + 0.0, + 0.0941 + ], + "definition": "stops with nothing written on items whose data was right and that carried no item-level fault, over all such items", + "k": 0, + "n": 37, + "rate": 0.0, + "with_ui_change_in_force": 0 + }, + "final_correct": 55, + "headline": { + "bands": { + "x0.5": { + "after_app_change": [ + { + "first_seq": 26, + "first_verified_seq": 27, + "items_false_stopped": 0, + "items_in_window": 30, + "kind": "relabel_save", + "maintenance_operator_min": 3.75, + "seconds_to_running_again": 1124.7 + } + ], + "operator_min_per_stop": 1.43, + "operator_min_run": 24.17, + "operator_min_setup": 2.5, + "verified_per_operator_minute": 2.11, + "verified_per_operator_minute_with_setup": 1.912 + }, + "x1": { + "after_app_change": [ + { + "first_seq": 26, + "first_verified_seq": 27, + "items_false_stopped": 0, + "items_in_window": 30, + "kind": "relabel_save", + "maintenance_operator_min": 7.5, + "seconds_to_running_again": 1124.7 + } + ], + "operator_min_per_stop": 2.86, + "operator_min_run": 48.33, + "operator_min_setup": 5.0, + "verified_per_operator_minute": 1.055, + "verified_per_operator_minute_with_setup": 0.956 + }, + "x2": { + "after_app_change": [ + { + "first_seq": 26, + "first_verified_seq": 27, + "items_false_stopped": 0, + "items_in_window": 30, + "kind": "relabel_save", + "maintenance_operator_min": 15.0, + "seconds_to_running_again": 1124.7 + } + ], + "operator_min_per_stop": 5.71, + "operator_min_run": 96.67, + "operator_min_setup": 10.0, + "verified_per_operator_minute": 0.528, + "verified_per_operator_minute_with_setup": 0.478 + } + }, + "by_hand_sensitivity": [ + { + "by_hand_min_per_item": 3, + "by_hand_per_operator_minute": 0.333, + "operator_min_run": 48.3, + "operator_min_stream_by_hand": 165, + "ratio_to_by_hand": 3.17, + "verified_per_operator_minute": 1.055 + }, + { + "by_hand_min_per_item": 5, + "by_hand_per_operator_minute": 0.2, + "operator_min_run": 56.3, + "operator_min_stream_by_hand": 275, + "ratio_to_by_hand": 4.53, + "verified_per_operator_minute": 0.905 + }, + { + "by_hand_min_per_item": 8, + "by_hand_per_operator_minute": 0.125, + "operator_min_run": 68.3, + "operator_min_stream_by_hand": 440, + "ratio_to_by_hand": 5.97, + "verified_per_operator_minute": 0.746 + }, + { + "by_hand_min_per_item": 10, + "by_hand_per_operator_minute": 0.1, + "operator_min_run": 76.3, + "operator_min_stream_by_hand": 550, + "ratio_to_by_hand": 6.68, + "verified_per_operator_minute": 0.668 + } + ], + "definition": "verified completed items (oracle-correct, not done by hand) per operator-minute; operator minutes are every charged approval, stop, reconciliation, resume, repair review and item done by hand, plus maintenance; *_with_setup also charges admission", + "duplicate_rule_stops": { + "by_exception": { + "ambiguous_same_person": 1, + "concurrent_same": 2, + "dup_existing": 3, + "dup_resend": 1 + }, + "by_outcome": { + "right_stop": 7 + }, + "by_shared_field": { + "first name only": 1, + "lname": 1, + "lname+DOB": 4, + "none at start": 1 + }, + "items": 7, + "note": "fields the item shared with a chart that existed when it started; charts created during the run by earlier items count too" + }, + "false_stops_per_100_items": 0.0, + "items": 55, + "manual_entry_min": 3.0, + "stops_by_cause": { + "data_stop": { + "identity check failed (relabeled control)": 1, + "other: REJECTED_POLICY HALTED / REJECTED_POLICY": 3 + }, + "right_stop": { + "duplicate check listed a chart": 7, + "other: REJECTED_POLICY HALTED / REJECTED_POLICY": 3 + } + }, + "stops_per_100_items": 25.45, + "verified_completed": 51 + }, + "items": 55, + "model": { + "calls": 0, + "cost_usd": 0.0 + }, + "operator_actions": { + "accept_repair": 1, + "approve": 1, + "do_by_hand": 4, + "skip": 10 + }, + "operator_requests": { + "approval": 1, + "repair_review": 1, + "stop": 14 + }, + "outcomes": { + "correct": 41, + "data_stop": 4, + "right_stop": 10 + }, + "per_drift": { + "relabel_save": { + "first_seq": 26, + "items": 30, + "outcomes": { + "correct": 21, + "data_stop": 3, + "right_stop": 6 + }, + "repair_reviews": 1 + } + }, + "silent_wrong_rate": { + "ci95": [ + 0.0, + 0.0857 + ], + "definition": "items the arm claimed done that the independent oracle judged wrong, over all items the arm claimed done", + "k": 0, + "n": 41, + "of_all_items": 0.0, + "rate": 0.0 + }, + "stops": 14, + "verified_completed": 51, + "wall": { + "load_1m_max": 46.5, + "load_1m_median": 6.5, + "median_item_s": 120.6, + "total_s": 7698.4 + } + } + }, + "run": { + "app": { + "api_url": "https://127.0.0.1:9400", + "app": "openemr", + "baseline_sha256": "015bef02fb30530e2ed64c17e8035623a39801a9008f2df307eaf53e420e98ba", + "images": { + "mariadb": "mariadb:11.8@sha256:efb4959ef2c835cd735dbc388eb9ad6aab0c78dd64febcd51bc17481111890c4", + "openemr": "openemr/openemr:8.0.0.3@sha256:0aa4d3d52b22fa69986c087e7c99e9854d8dfd70440634eb7c8af0e08f19f3ab" + }, + "project": "openadapt-openemr-compose", + "ui_url": "http://127.0.0.1:9401", + "version": "8.0.0.3" + }, + "argv": null, + "cost_model": { + "admit_s": 300.0, + "approval_s": 20.0, + "calibration": "No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds).", + "compile_review_s": 600.0, + "interrupt_s": 30.0, + "manual_entry_s": 180.0, + "question_s": 60.0, + "reconcile_s": 120.0, + "repair_review_s": 120.0, + "stop_s": 90.0, + "teach_prep_s": 300.0, + "version": "lifecycle-cost/2026-10-20.1" + }, + "cpus": 12, + "days": 10, + "engine_commit": "8bfd7f6af84135425ae55dddc09abdcb3dface23", + "host": "MacBook-Pro-5", + "items": 55, + "platform": "macOS-15.7.3-arm64-arm-64bit", + "protocol": "lifecycle/2026-10-20.1", + "seed": 7, + "stop_after": null, + "type": "run_start", + "workload": "lifecycle-workload/2026-10-24.1" + } +} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/run.log b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/run.log new file mode 100644 index 000000000..b2e856772 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/run.log @@ -0,0 +1,95 @@ +1557 MERGED Sun Oct 25 06:22:11 EDT 2026 +Auto-merging packages/flow/openadapt_flow/runtime/replayer.py +MAIN 78ff5ad0086b265b29d911b5787d45a9c3a2fd5d 1516 4b635f2d6e1e318c3fdb62c99c777c4ce0037a68 +remote: +remote: GitHub found 298 vulnerabilities on OpenAdaptAI/OpenAdapt's default branch (36 critical, 149 high, 95 moderate, 18 low). To find out more, visit: +remote: https://github.com/OpenAdaptAI/OpenAdapt/security/dependabot +remote: +LEASE TAKEN Sun Oct 25 06:22:14 EDT 2026 + 6:22 up 59 days, 10:58, 68 users, load averages: 3.44 3.97 4.46 +/dev/disk3s5 1858 1766 43 98% 25844451 455341480 5% /System/Volumes/Data +Starting machine "openadapt-benchmark" +Error: unable to start "openadapt-benchmark": already running +COMMIT 8bfd7f6af84135425ae55dddc09abdcb3dface23 +saved ~/oa/scratch/compose-proof/openemr-state/fresh-oauth-keys.sql +[openadapt-production-relabel] resetting the app to its baseline +[openadapt-production-relabel] setup +[openadapt-production-relabel] 1 ref-00001 clean claimed=done oracle=correct -> correct final=correct 120.5s load=4.3 +[openadapt-production-relabel] 2 ref-00002 clean claimed=done oracle=correct -> correct final=correct 120.9s load=5.0 +[openadapt-production-relabel] 3 ref-00003 clean claimed=done oracle=correct -> correct final=correct 120.9s load=5.4 +[openadapt-production-relabel] 4 ref-00004 clean claimed=done oracle=correct -> correct final=correct 120.5s load=5.1 +[openadapt-production-relabel] 5 ref-00005 shared_dob claimed=done oracle=correct -> correct final=correct 120.5s load=4.6 +[openadapt-production-relabel] 6 ref-00006 malformed_dob claimed=done oracle=correct -> correct final=correct 120.6s load=5.4 +[openadapt-production-relabel] 7 ref-00007 clean claimed=done oracle=correct -> correct final=correct 121.0s load=7.0 +[openadapt-production-relabel] 8 ref-00008 missing_required claimed=stopped oracle=correct -> right_stop final=correct 9.7s load=45.6 +[openadapt-production-relabel] 9 ref-00009 clean claimed=done oracle=correct -> correct final=correct 121.0s load=46.5 +[openadapt-production-relabel] 10 ref-00010 clean claimed=done oracle=correct -> correct final=correct 120.1s load=43.3 +[openadapt-production-relabel] 11 ref-00011 clean claimed=done oracle=correct -> correct final=correct 120.2s load=11.0 +[openadapt-production-relabel] 12 ref-00012 concurrent_same claimed=stopped oracle=correct -> right_stop final=correct 239.7s load=6.9 +[openadapt-production-relabel] 13 ref-00013 concurrent_other claimed=done oracle=correct -> correct final=correct 119.8s load=6.2 +[openadapt-production-relabel] 14 ref-00014 clean claimed=done oracle=correct -> correct final=correct 120.0s load=6.4 +[openadapt-production-relabel] 15 ref-00015 clean claimed=done oracle=correct -> correct final=correct 120.2s load=8.6 +[openadapt-production-relabel] 16 ref-00016 clean claimed=done oracle=correct -> correct final=correct 120.3s load=7.2 +[openadapt-production-relabel] 17 ref-00017 clean claimed=done oracle=correct -> correct final=correct 120.3s load=8.6 +[openadapt-production-relabel] 18 ref-00018 clean claimed=done oracle=correct -> correct final=correct 120.0s load=7.9 +[openadapt-production-relabel] 19 ref-00019 malformed_dob claimed=stopped oracle=absent -> data_stop final=correct 10.2s load=7.0 +[openadapt-production-relabel] 20 ref-00020 clean claimed=done oracle=correct -> correct final=correct 120.0s load=6.8 +[openadapt-production-relabel] 21 ref-00021 dup_resend claimed=stopped oracle=correct -> right_stop final=correct 239.2s load=6.4 +[openadapt-production-relabel] 22 ref-00022 clean claimed=done oracle=correct -> correct final=correct 119.9s load=4.7 +[openadapt-production-relabel] 23 ref-00023 clean claimed=done oracle=correct -> correct final=correct 120.2s load=6.5 +[openadapt-production-relabel] 24 ref-00024 ambiguous_same_person claimed=stopped oracle=correct -> right_stop final=correct 239.4s load=6.0 +[openadapt-production-relabel] 25 ref-00025 clean claimed=done oracle=correct -> correct final=correct 120.0s load=6.0 +[openadapt-production-relabel] day 4: UI change 'relabel_save' from item 26 +{"case_id": "representative", "trial": 1, "expected": "VERIFIED", "execution_outcome": "VERIFIED", "transaction_outcome": "VERIFIED", "execution_profile": "standard", "production_eligible": false, "success": true, "model_calls": 0, "total_ms": 104752.00483389199, "failed_step_id": null, "failed_error": null, "oracle": "exact_record", "trial_wall_s": 112.7, "fault_declined": null} +{"case_id": "fault-ambiguity", "trial": 1, "expected": "HALTED", "execution_outcome": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "execution_profile": "standard", "production_eligible": false, "success": false, "model_calls": 0, "total_ms": 106436.76083395258, "failed_step_id": "step_040", "failed_error": "OCR safety refusal for step 'step_040' (click 'Save new patient'): 2 OCR target candidates remain after retained-evidence disambiguation \u2014 no action was admitted", "oracle": "no_mutation", "trial_wall_s": 115.1, "fault_declined": null} +{"case_id": "fault-wrong-identity", "trial": 1, "expected": "HALTED", "execution_outcome": "HALTED", "transaction_outcome": "REJECTED_POLICY", "execution_profile": "standard", "production_eligible": false, "success": false, "model_calls": 0, "total_ms": 104392.64870807528, "failed_step_id": "step_040", "failed_error": "Identity check failed for step 'step_040' (click 'Save new patient'): a target was found positionally (rung 'structural', confidence 1.00) but its surrounding text does not match the recorded target's \u2014 expected '<structured identity template>', observed '{\"form_path\":\"/interface/new/new_comprehensive.php\",\"label\":\"Merge Into Existing Record\",\"target_id\":\"confirm_create\",\"target_kind\":\"action\"}' (coverage 0.00) \u2014 refusing to act; run aborted", "oracle": "no_mutation", "trial_wall_s": 113.1, "fault_declined": null} +{"case_id": "fault-stale-identity", "trial": 1, "expected": "HALTED", "execution_outcome": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "execution_profile": "standard", "production_eligible": false, "success": false, "model_calls": 0, "total_ms": 107051.4600831084, "failed_step_id": "step_040", "failed_error": "Could not resolve target for step 'step_040' (click 'Save new patient'): all resolution rungs failed", "oracle": "no_mutation", "trial_wall_s": 115.2, "fault_declined": null} +{"case_id": "fault-weak-effect", "trial": 1, "expected": "HALTED", "execution_outcome": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "execution_profile": "standard", "production_eligible": false, "success": false, "model_calls": 0, "total_ms": 103503.47008276731, "failed_step_id": "step_040", "failed_error": "Effect verifier strength changed after admission: immediate_screen evidence cannot satisfy the required qualified effect tier \u2014 refusing to actuate; run aborted", "oracle": "no_mutation", "trial_wall_s": 111.8, "fault_declined": null} +{"case_id": "fault-missing-effect", "trial": 1, "expected": "HALTED", "execution_outcome": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "execution_profile": "standard", "production_eligible": false, "success": false, "model_calls": 0, "total_ms": 103195.2403751202, "failed_step_id": "step_040", "failed_error": "Step 'step_040' (click 'Save new patient') declares 12 system-of-record effect(s) but no EffectVerifier is configured for this run \u2014 refusing to perform an unverifiable consequential write (deployment/configuration error); run aborted", "oracle": "no_mutation", "trial_wall_s": 111.5, "fault_declined": null} +{"pixels_only": true, "case_id": "representative", "trial": 1, "passed": false, "failure": "StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"pixels_only": true, "case_id": "fault-ambiguity", "trial": 1, "passed": false, "failure": "StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"pixels_only": true, "case_id": "fault-wrong-identity", "trial": 1, "passed": false, "failure": "StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"pixels_only": true, "case_id": "fault-stale-identity", "trial": 1, "passed": false, "failure": "StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"pixels_only": true, "case_id": "fault-weak-effect", "trial": 1, "passed": false, "failure": "StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +{"pixels_only": true, "case_id": "fault-missing-effect", "trial": 1, "passed": false, "failure": "StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path"} +pixels-only pass (informational): 0/6 (0%) trials behaved as required with structure lookups disabled; most common failure: StateDiverged: refusing a durable checkpoint with invalid action evidence: production action lacks a closed runtime actuation path +qualified lookups: structure on a local surface +PASS: qualification for 'openemr-create-synthetic-patient' + identity coverage 1/1; effect coverage 1/1; cases 6/6 +qualification-result/v1 5e8f1005bbbddc8c: passed=True silent_incorrect_success=0 over_halt=0 executor_model_calls=0 verifier_model_calls=0 +no admission envelope: the qualification-admission/v1 envelope needs at least 3 trials per case; this campaign ran 1 +[openadapt-production-relabel] 26 ref-00026 malformed_case claimed=stopped oracle=absent -> data_stop final=correct 1003.2s load=6.6 +[openadapt-production-relabel] 27 ref-00027 common_surname claimed=done oracle=correct -> correct final=correct 120.6s load=6.0 +[openadapt-production-relabel] 28 ref-00028 clean claimed=done oracle=correct -> correct final=correct 121.9s load=6.3 +[openadapt-production-relabel] 29 ref-00029 concurrent_same claimed=stopped oracle=correct -> right_stop final=correct 243.5s load=5.6 +[openadapt-production-relabel] 30 ref-00030 common_surname claimed=done oracle=correct -> correct final=correct 121.1s load=34.6 +[openadapt-production-relabel] 31 ref-00031 clean claimed=done oracle=correct -> correct final=correct 121.0s load=11.0 +[openadapt-production-relabel] 32 ref-00032 missing_optional claimed=stopped oracle=absent -> data_stop final=correct 10.7s load=9.7 +[openadapt-production-relabel] 33 ref-00033 common_surname claimed=done oracle=correct -> correct final=correct 120.7s load=9.4 +[openadapt-production-relabel] 34 ref-00034 dup_existing claimed=stopped oracle=correct -> right_stop final=correct 240.6s load=6.1 +[openadapt-production-relabel] 35 ref-00035 clean claimed=done oracle=correct -> correct final=correct 120.5s load=5.6 +[openadapt-production-relabel] 36 ref-00036 clean claimed=done oracle=correct -> correct final=correct 120.6s load=6.5 +[openadapt-production-relabel] 37 ref-00037 clean claimed=done oracle=correct -> correct final=correct 121.1s load=5.8 +wait_settled: screen did not settle within 3.0s (0/2 stable frames); proceeding with the most recent frame +[openadapt-production-relabel] 38 ref-00038 slow_save claimed=done oracle=correct -> correct final=correct 126.2s load=7.2 +[openadapt-production-relabel] 39 ref-00039 clean claimed=done oracle=correct -> correct final=correct 120.9s load=6.5 +[openadapt-production-relabel] 40 ref-00040 shared_dob claimed=done oracle=correct -> correct final=correct 121.0s load=7.1 +[openadapt-production-relabel] 41 ref-00041 shared_dob claimed=done oracle=correct -> correct final=correct 120.7s load=6.2 +[openadapt-production-relabel] 42 ref-00042 clean claimed=done oracle=correct -> correct final=correct 121.0s load=5.5 +[openadapt-production-relabel] 43 ref-00043 clean claimed=done oracle=correct -> correct final=correct 122.0s load=8.1 +[openadapt-production-relabel] 44 ref-00044 dup_resend claimed=stopped oracle=correct -> right_stop final=correct 9.8s load=12.4 +[openadapt-production-relabel] 45 ref-00045 dup_existing claimed=stopped oracle=correct -> right_stop final=correct 241.4s load=11.9 +[openadapt-production-relabel] 46 ref-00046 session_expiry claimed=done oracle=correct -> correct final=correct 121.0s load=9.7 +[openadapt-production-relabel] 47 ref-00047 clean claimed=done oracle=correct -> correct final=correct 120.6s load=7.1 +[openadapt-production-relabel] 48 ref-00048 clean claimed=done oracle=correct -> correct final=correct 120.9s load=5.8 +[openadapt-production-relabel] 49 ref-00049 clean claimed=done oracle=correct -> correct final=correct 120.5s load=5.1 +[openadapt-production-relabel] 50 ref-00050 clean claimed=done oracle=correct -> correct final=correct 120.8s load=5.9 +[openadapt-production-relabel] 51 ref-00051 clean claimed=done oracle=correct -> correct final=correct 120.9s load=6.8 +[openadapt-production-relabel] 52 ref-00052 dup_existing claimed=stopped oracle=correct -> right_stop final=correct 239.8s load=5.5 +[openadapt-production-relabel] 53 ref-00053 missing_optional claimed=stopped oracle=absent -> data_stop final=correct 10.1s load=6.1 +[openadapt-production-relabel] 54 ref-00054 common_surname claimed=done oracle=correct -> correct final=correct 120.5s load=5.9 +[openadapt-production-relabel] 55 ref-00055 missing_required claimed=stopped oracle=correct -> right_stop final=correct 9.5s load=5.7 +RUN EXIT 0 +down +Machine "openadapt-benchmark" stopped successfully +RELEASED Sun Oct 25 08:45:22 EDT 2026 diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/stops.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/stops.jsonl new file mode 100644 index 000000000..7e1292958 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/stops.jsonl @@ -0,0 +1,14 @@ +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00008", "exception": "missing_required", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00008", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 8, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00012", "exception": "concurrent_same", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00012", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 12, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00019", "exception": "malformed_dob", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00019", "oracle": "absent", "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 19, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00021", "exception": "dup_resend", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00021", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 21, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": [], "evidence": "items/ref-00024", "exception": "ambiguous_same_person", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00024", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 24, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00026", "exception": "malformed_case", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00026", "oracle": "absent", "outcome": "data_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {}, "seq": 26, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00029", "exception": "concurrent_same", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00029", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 29, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00032", "exception": "missing_optional", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00032", "oracle": "absent", "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 32, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00034", "exception": "dup_existing", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00034", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 34, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00044", "exception": "dup_resend", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00044", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 44, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00045", "exception": "dup_existing", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00045", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 45, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00052", "exception": "dup_existing", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00052", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / HALTED_BEFORE_EFFECT", "repair": {"readmitted": null, "reason": "input reached step_039, a step that saves; never repaired", "status": "not_repairable"}, "seq": 52, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00053", "exception": "missing_optional", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00053", "oracle": "absent", "outcome": "data_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 53, "transaction_outcome": null} +{"anything_wrong": true, "app": "openemr", "arm": "openadapt-production-relabel", "drift_active": ["relabel_save"], "evidence": "items/ref-00055", "exception": "missing_required", "execution_outcome": null, "final": "correct", "halt_reason": null, "halt_step": null, "item_id": "ref-00055", "oracle": "correct", "outcome": "right_stop", "product_status": "HALTED / REJECTED_POLICY", "repair": {}, "seq": 55, "transaction_outcome": null} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/log-1792924549.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/log-1792924549.jsonl new file mode 100644 index 000000000..1f48bdaf0 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/log-1792924549.jsonl @@ -0,0 +1,51 @@ +{"at":"2026-10-25T10:35:49.623782+00:00","counts_toward_problems":null,"decision":null,"kind":"opened","prev_sha256":"sha256:0000000000000000000000000000000000000000000000000000000000000000","reason":null,"run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":1,"sha256":"sha256:8569a221f4d4f1480b2f660fcb3459ae1ef6623d778d50961a58f853dfb00533","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":"sha256:a2bff8ed76728e08c9a2daaf86e6d6ed73eddde226805014a265ac72ac542876"} +{"at":"2026-10-25T10:37:36.870890+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:8569a221f4d4f1480b2f660fcb3459ae1ef6623d778d50961a58f853dfb00533","reason":null,"run_ref":"3f0a3e1cf69f6d747df92a0d7fd047302299e6e1dbbbcf8872a8b8397c8835e5","schema_version":"openadapt.approval-mode-log-event/v1","seq":2,"sha256":"sha256:2a991223b12763838667bc590a453c16dfbe102f318216e96b7e64c54c948477","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:37:50.243785+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:2a991223b12763838667bc590a453c16dfbe102f318216e96b7e64c54c948477","reason":null,"run_ref":"3f0a3e1cf69f6d747df92a0d7fd047302299e6e1dbbbcf8872a8b8397c8835e5","schema_version":"openadapt.approval-mode-log-event/v1","seq":3,"sha256":"sha256:55fe93a60939946b405ad60126a61c3a04701d6510d65e40b9c8b9def6f270e4","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:39:38.370394+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:55fe93a60939946b405ad60126a61c3a04701d6510d65e40b9c8b9def6f270e4","reason":null,"run_ref":"dff996f15274bc4b00fb4d28d81c236ba44ce45f42af7f3cb59580333c279b11","schema_version":"openadapt.approval-mode-log-event/v1","seq":4,"sha256":"sha256:19bb37fbffec152f04927f17a495036a21d8ad3c4fc19c4655511b827c29ee95","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:39:51.669992+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:19bb37fbffec152f04927f17a495036a21d8ad3c4fc19c4655511b827c29ee95","reason":null,"run_ref":"dff996f15274bc4b00fb4d28d81c236ba44ce45f42af7f3cb59580333c279b11","schema_version":"openadapt.approval-mode-log-event/v1","seq":5,"sha256":"sha256:78b8d8c77bf18032cfc3c8013065e802e82e13efff601aa7f0fd431133cd676c","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:41:39.776736+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:78b8d8c77bf18032cfc3c8013065e802e82e13efff601aa7f0fd431133cd676c","reason":null,"run_ref":"36bb8c80e7a6800d2141bf201e5f7b76151fe58b384796b0282499cedcebc172","schema_version":"openadapt.approval-mode-log-event/v1","seq":6,"sha256":"sha256:c7f0b6bf49cb622b57f6d12225f05fdabc8f534e96dab9663f93ba488890686a","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:41:53.095241+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:c7f0b6bf49cb622b57f6d12225f05fdabc8f534e96dab9663f93ba488890686a","reason":null,"run_ref":"36bb8c80e7a6800d2141bf201e5f7b76151fe58b384796b0282499cedcebc172","schema_version":"openadapt.approval-mode-log-event/v1","seq":7,"sha256":"sha256:d16b44a070547c8d647ae518c650efe19aa1d986c83e7a54c92e86f06431b31f","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:43:40.854956+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:d16b44a070547c8d647ae518c650efe19aa1d986c83e7a54c92e86f06431b31f","reason":null,"run_ref":"ef9e51272ddf3c6d36b438b3152c64dafe05c0aade4c8b737516f99fd7d8f1b8","schema_version":"openadapt.approval-mode-log-event/v1","seq":8,"sha256":"sha256:8035f2b8f1e300ba243e6806c7cd3c2f243b819c6208bdbb09c28ab5e45be9a6","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:43:54.043183+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:8035f2b8f1e300ba243e6806c7cd3c2f243b819c6208bdbb09c28ab5e45be9a6","reason":null,"run_ref":"ef9e51272ddf3c6d36b438b3152c64dafe05c0aade4c8b737516f99fd7d8f1b8","schema_version":"openadapt.approval-mode-log-event/v1","seq":9,"sha256":"sha256:4061eee05ab37471a81b4c37728428fee483d6fa7202fd0f173503f3c79bdd03","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:45:41.632426+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:4061eee05ab37471a81b4c37728428fee483d6fa7202fd0f173503f3c79bdd03","reason":null,"run_ref":"929070e8bd664f8624b4ca13dc81e544ba94674c0d9bfcfecef5a8ae675466ba","schema_version":"openadapt.approval-mode-log-event/v1","seq":10,"sha256":"sha256:20d47b15a61ebf6ecc3198582fcb872dacbfa958a076d1c23e416bfec9d8f707","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:45:55.028629+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:20d47b15a61ebf6ecc3198582fcb872dacbfa958a076d1c23e416bfec9d8f707","reason":null,"run_ref":"929070e8bd664f8624b4ca13dc81e544ba94674c0d9bfcfecef5a8ae675466ba","schema_version":"openadapt.approval-mode-log-event/v1","seq":11,"sha256":"sha256:074d728480a6ee6fd14090812d14e90afdfba862691531b085cbbb598585deeb","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:47:42.708540+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:074d728480a6ee6fd14090812d14e90afdfba862691531b085cbbb598585deeb","reason":null,"run_ref":"c9a128ec1e7231960cdbd80ab9450ae269e4e88ddaf150cbc3cb46b65cbafd7d","schema_version":"openadapt.approval-mode-log-event/v1","seq":12,"sha256":"sha256:8d64479c4a8e3be05cd651a76e8793930035231e47f29d5d01c14f0bd1185aa6","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:47:56.086848+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:8d64479c4a8e3be05cd651a76e8793930035231e47f29d5d01c14f0bd1185aa6","reason":null,"run_ref":"c9a128ec1e7231960cdbd80ab9450ae269e4e88ddaf150cbc3cb46b65cbafd7d","schema_version":"openadapt.approval-mode-log-event/v1","seq":13,"sha256":"sha256:9bb6dc0df69a0d54c35615a7c6a651d48715eb3a77eea7363f4c51986d58068c","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:49:44.318720+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:9bb6dc0df69a0d54c35615a7c6a651d48715eb3a77eea7363f4c51986d58068c","reason":null,"run_ref":"a1b4410fa2191f45299c7740287ad468176f37876279430957febfbd729f0439","schema_version":"openadapt.approval-mode-log-event/v1","seq":14,"sha256":"sha256:c08e8961c15c771b3ce6ed5deb13c077ebbed94eef4be85d8cf5db4649b5a164","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:49:57.622811+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:c08e8961c15c771b3ce6ed5deb13c077ebbed94eef4be85d8cf5db4649b5a164","reason":null,"run_ref":"a1b4410fa2191f45299c7740287ad468176f37876279430957febfbd729f0439","schema_version":"openadapt.approval-mode-log-event/v1","seq":15,"sha256":"sha256:876a5e00139d8236cfaf0f705aeebbfc1b3ceefbf7f10d6eed89edde31ee21d8","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:50:05.769743+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:876a5e00139d8236cfaf0f705aeebbfc1b3ceefbf7f10d6eed89edde31ee21d8","reason":"inputs_supplied","run_ref":"0f4e43e3393af3676c23724440579540148013aa0b605d430de507b71a417995","schema_version":"openadapt.approval-mode-log-event/v1","seq":16,"sha256":"sha256:1995c3cfa95aca5398c60718065ea276fc7ee10ac9e70e0ec05549c529643e98","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:51:56.053289+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:1995c3cfa95aca5398c60718065ea276fc7ee10ac9e70e0ec05549c529643e98","reason":null,"run_ref":"ebec0cd475ea2b201a345334b089090d989b577335e5a683115f8a758d9ebf13","schema_version":"openadapt.approval-mode-log-event/v1","seq":17,"sha256":"sha256:1ce42b88ad6f9754be739fd39ebf98019b2576dbc24ad80cd44909d517ea2741","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:52:09.313211+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:1ce42b88ad6f9754be739fd39ebf98019b2576dbc24ad80cd44909d517ea2741","reason":null,"run_ref":"ebec0cd475ea2b201a345334b089090d989b577335e5a683115f8a758d9ebf13","schema_version":"openadapt.approval-mode-log-event/v1","seq":18,"sha256":"sha256:ee321536ca5893266769a86a942e9a4606bd8764547a5a49b880fcd6c434bcf2","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:53:56.683942+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:ee321536ca5893266769a86a942e9a4606bd8764547a5a49b880fcd6c434bcf2","reason":null,"run_ref":"99ef6252122e2af83bb1dad17767bcc67ee16fcc10cec8c72d2239fb05058d77","schema_version":"openadapt.approval-mode-log-event/v1","seq":19,"sha256":"sha256:a9056234f36b5132961f6fc66d239ce89c44d9c5d908f425f483d3894881d61e","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:54:09.940800+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:a9056234f36b5132961f6fc66d239ce89c44d9c5d908f425f483d3894881d61e","reason":null,"run_ref":"99ef6252122e2af83bb1dad17767bcc67ee16fcc10cec8c72d2239fb05058d77","schema_version":"openadapt.approval-mode-log-event/v1","seq":20,"sha256":"sha256:f14176e9aa8d528b58b5c7feff433cd3e17a85b48a14753a0cfab504e068faf6","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:55:57.334050+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:f14176e9aa8d528b58b5c7feff433cd3e17a85b48a14753a0cfab504e068faf6","reason":null,"run_ref":"90d50692601c5d940fb67f481b6d56e8ce14c5d9801701977415a8f6b0c821a2","schema_version":"openadapt.approval-mode-log-event/v1","seq":21,"sha256":"sha256:4c9add6d54bb3b4c0b487df4aa7b3aa0a922e070c28f0ed7752dc5a78e980dfb","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:56:10.604879+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:4c9add6d54bb3b4c0b487df4aa7b3aa0a922e070c28f0ed7752dc5a78e980dfb","reason":null,"run_ref":"90d50692601c5d940fb67f481b6d56e8ce14c5d9801701977415a8f6b0c821a2","schema_version":"openadapt.approval-mode-log-event/v1","seq":22,"sha256":"sha256:b24c9cd131d3f94b6b9320f8d0ccd4ffd018914e878fa7593d10f49ad23e5db2","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T10:58:10.927159+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:b24c9cd131d3f94b6b9320f8d0ccd4ffd018914e878fa7593d10f49ad23e5db2","reason":"halted_before_effect","run_ref":"232583af53034afceaa6643beb07983c08ac2cecb99549888a01f27c865812d0","schema_version":"openadapt.approval-mode-log-event/v1","seq":23,"sha256":"sha256:3d9f6d079fd14f68f0ac182e17dd6b5b3421afc48485ecdaccb453c882fc48c4","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:00:11.178331+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:3d9f6d079fd14f68f0ac182e17dd6b5b3421afc48485ecdaccb453c882fc48c4","reason":"halted_before_effect","run_ref":"a1ebe71097253e8c6cb24f668d916774786d8faddab54257898fc8fcdf294a9e","schema_version":"openadapt.approval-mode-log-event/v1","seq":24,"sha256":"sha256:9455e9e01d3714d5ccca82028460c1972cb8b57409276abf68c096971a153fca","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:01:58.442405+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:9455e9e01d3714d5ccca82028460c1972cb8b57409276abf68c096971a153fca","reason":null,"run_ref":"b0cc31baea4b1e80b1eb821f8e39bedfdb9783e2daafc70e768ddcace7592437","schema_version":"openadapt.approval-mode-log-event/v1","seq":25,"sha256":"sha256:0aa5eee2c02bd5f15d3d3e18df10c5dbf2b442d6de96435a28ace2deccbfb818","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:02:11.611727+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:0aa5eee2c02bd5f15d3d3e18df10c5dbf2b442d6de96435a28ace2deccbfb818","reason":null,"run_ref":"b0cc31baea4b1e80b1eb821f8e39bedfdb9783e2daafc70e768ddcace7592437","schema_version":"openadapt.approval-mode-log-event/v1","seq":26,"sha256":"sha256:c654ca58fc0d5e107b1fddc36781ec76cee73caa58364805f8fe95b970e9f88e","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:03:58.958852+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:c654ca58fc0d5e107b1fddc36781ec76cee73caa58364805f8fe95b970e9f88e","reason":null,"run_ref":"16c1b2fcb9a270d73d67deddde8271e63a99bdf29c602dd46a6fdf18d4551c8d","schema_version":"openadapt.approval-mode-log-event/v1","seq":27,"sha256":"sha256:6726777993ac7b83009a1db1f8cc06c063fd3f5bce3ec35e6821b704a9b425b7","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:04:12.098688+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:6726777993ac7b83009a1db1f8cc06c063fd3f5bce3ec35e6821b704a9b425b7","reason":null,"run_ref":"16c1b2fcb9a270d73d67deddde8271e63a99bdf29c602dd46a6fdf18d4551c8d","schema_version":"openadapt.approval-mode-log-event/v1","seq":28,"sha256":"sha256:6f48ea230c5f2d41777ce1f75b79e87d7946ac7f61a02f6d42a3b30f2250a16d","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:05:59.534881+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:6f48ea230c5f2d41777ce1f75b79e87d7946ac7f61a02f6d42a3b30f2250a16d","reason":null,"run_ref":"39c3cf8fd6c8c28f840180c428acb83c180e3e85b9ce974b119dbc4ae20c2d29","schema_version":"openadapt.approval-mode-log-event/v1","seq":29,"sha256":"sha256:fef0ff903fa2f20f12643c321f8135bf798401d6bb9b99a72b5522096081bec0","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:06:12.792371+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:fef0ff903fa2f20f12643c321f8135bf798401d6bb9b99a72b5522096081bec0","reason":null,"run_ref":"39c3cf8fd6c8c28f840180c428acb83c180e3e85b9ce974b119dbc4ae20c2d29","schema_version":"openadapt.approval-mode-log-event/v1","seq":30,"sha256":"sha256:64307092658fe5bf8b708aa49400148f4eb1f18bce1569570c370c3625987685","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:08:00.353770+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:64307092658fe5bf8b708aa49400148f4eb1f18bce1569570c370c3625987685","reason":null,"run_ref":"9d9f55d0dd76e839849ca2e22d29217b09824a017b74e9c4b667be191597cba2","schema_version":"openadapt.approval-mode-log-event/v1","seq":31,"sha256":"sha256:5d69741c515d1e76e55c081f80bb1b74085f95876d2a264af141faec57a3ab07","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:08:13.649071+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:5d69741c515d1e76e55c081f80bb1b74085f95876d2a264af141faec57a3ab07","reason":null,"run_ref":"9d9f55d0dd76e839849ca2e22d29217b09824a017b74e9c4b667be191597cba2","schema_version":"openadapt.approval-mode-log-event/v1","seq":32,"sha256":"sha256:dd7ff6c9b899750242cffc2d134e6bc02c9dea8bca765a9c376fac23fe46fefb","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:10:01.070564+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:dd7ff6c9b899750242cffc2d134e6bc02c9dea8bca765a9c376fac23fe46fefb","reason":null,"run_ref":"7d511a8b2bb3ed876caaedfe48fbc8666a772a273bfeb4360603ca558cff1f35","schema_version":"openadapt.approval-mode-log-event/v1","seq":33,"sha256":"sha256:46892f83d68ce4621863388a788a55efd917ae6371437288043ba9ef0bf84d14","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:10:14.407602+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:46892f83d68ce4621863388a788a55efd917ae6371437288043ba9ef0bf84d14","reason":null,"run_ref":"7d511a8b2bb3ed876caaedfe48fbc8666a772a273bfeb4360603ca558cff1f35","schema_version":"openadapt.approval-mode-log-event/v1","seq":34,"sha256":"sha256:99e87d768df1db2341fc0ad571b6aa165e66f97a4856e52788ab8d6bf72049bf","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:12:01.737820+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:99e87d768df1db2341fc0ad571b6aa165e66f97a4856e52788ab8d6bf72049bf","reason":null,"run_ref":"876fe86cf1a1eae9a3afed23b8969951a778247f1a95af48c7d9b3b6c9db9a61","schema_version":"openadapt.approval-mode-log-event/v1","seq":35,"sha256":"sha256:53d435c840405e1ad81f751e939f34e7f12a2595159814696e397673c82984a2","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:12:14.938339+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:53d435c840405e1ad81f751e939f34e7f12a2595159814696e397673c82984a2","reason":null,"run_ref":"876fe86cf1a1eae9a3afed23b8969951a778247f1a95af48c7d9b3b6c9db9a61","schema_version":"openadapt.approval-mode-log-event/v1","seq":36,"sha256":"sha256:fcf2fa2bce35da75059c1e4262512e106e573c04ae216a2ec74425de556b7d0d","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:12:22.856406+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:fcf2fa2bce35da75059c1e4262512e106e573c04ae216a2ec74425de556b7d0d","reason":"rejected_policy","run_ref":"26f0ed8eeb93be7d0ece42c556d4a19f287095b48873a4e1517460849eaea686","schema_version":"openadapt.approval-mode-log-event/v1","seq":37,"sha256":"sha256:4dbaaa427187dc2d2c72ddeb3e4fc08ee272b91e510631b69d1ccf14940060de","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:14:12.776362+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:4dbaaa427187dc2d2c72ddeb3e4fc08ee272b91e510631b69d1ccf14940060de","reason":null,"run_ref":"a48f7ce06d441c444fefedb34492c3bba0c7454204931ef310c940b2f3e4f1a0","schema_version":"openadapt.approval-mode-log-event/v1","seq":38,"sha256":"sha256:4adc32de27db17e93dde49d90159035bdb44abf7acb6daf3a0219744840c2b42","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:14:25.964838+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:4adc32de27db17e93dde49d90159035bdb44abf7acb6daf3a0219744840c2b42","reason":null,"run_ref":"a48f7ce06d441c444fefedb34492c3bba0c7454204931ef310c940b2f3e4f1a0","schema_version":"openadapt.approval-mode-log-event/v1","seq":39,"sha256":"sha256:9abbfa24315497b4af600ced16ed0b1ec9cffa1514d9184398c163928df5d3a4","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:16:24.520562+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:9abbfa24315497b4af600ced16ed0b1ec9cffa1514d9184398c163928df5d3a4","reason":"halted_before_effect","run_ref":"9c2cc8f310686e664dba845f0f541f678389d79e4cde2093e7d829cb3ffc0a2c","schema_version":"openadapt.approval-mode-log-event/v1","seq":40,"sha256":"sha256:3f2f0d5717affcfa5022b87c0e129ae8859ecd3fdc7a0b296ac8bfc798bb7698","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:18:25.479287+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:3f2f0d5717affcfa5022b87c0e129ae8859ecd3fdc7a0b296ac8bfc798bb7698","reason":"halted_before_effect","run_ref":"ef31ea21b298d5a11a014f3af568945a0587bf32e9c285cd466f6b8927c38843","schema_version":"openadapt.approval-mode-log-event/v1","seq":41,"sha256":"sha256:7e0d87ff97c416941f6e900e00c89b7e81decf4499de6591e49dd4685c44d053","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:20:12.804321+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:7e0d87ff97c416941f6e900e00c89b7e81decf4499de6591e49dd4685c44d053","reason":null,"run_ref":"d925f58c2c05eb4a8d4966aad3e858ab1f4522d122e1a3093d6d47e8d83a7d5d","schema_version":"openadapt.approval-mode-log-event/v1","seq":42,"sha256":"sha256:152e2c721de177c7140963727accb9c03c430638fdd46423b28e21c14ce70415","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:20:26.069037+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:152e2c721de177c7140963727accb9c03c430638fdd46423b28e21c14ce70415","reason":null,"run_ref":"d925f58c2c05eb4a8d4966aad3e858ab1f4522d122e1a3093d6d47e8d83a7d5d","schema_version":"openadapt.approval-mode-log-event/v1","seq":43,"sha256":"sha256:f2d85b6d18459793da2cd678b00bb7609128f134ef0a9e6f44adcc7f96a330d3","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:22:13.560751+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:f2d85b6d18459793da2cd678b00bb7609128f134ef0a9e6f44adcc7f96a330d3","reason":null,"run_ref":"3c8ddffc6363feef2ff6243a2cf92f6ee62cbafc8ae55ccd9af1ca99a99b6fe4","schema_version":"openadapt.approval-mode-log-event/v1","seq":44,"sha256":"sha256:3e3dbe4d11722bbe4be3e84dae9341055925e21801a8f2c4cc265e3dee34faad","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:22:26.780637+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:3e3dbe4d11722bbe4be3e84dae9341055925e21801a8f2c4cc265e3dee34faad","reason":null,"run_ref":"3c8ddffc6363feef2ff6243a2cf92f6ee62cbafc8ae55ccd9af1ca99a99b6fe4","schema_version":"openadapt.approval-mode-log-event/v1","seq":45,"sha256":"sha256:201c7419c5cbe63a0d1ad1cb9d3e62d3d39cba8baab13de01f4b7772e1eba091","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:24:26.158121+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:201c7419c5cbe63a0d1ad1cb9d3e62d3d39cba8baab13de01f4b7772e1eba091","reason":"halted_before_effect","run_ref":"66ceb6f6032b904fe9e25c65350a890494f2e44f74ad1ae9c7240e1cba9d6595","schema_version":"openadapt.approval-mode-log-event/v1","seq":46,"sha256":"sha256:1ed30fc065757cb617925454cb80e9d36a839b12a424bc0e05793c5e4dfa9a26","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:26:26.490165+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:1ed30fc065757cb617925454cb80e9d36a839b12a424bc0e05793c5e4dfa9a26","reason":"halted_before_effect","run_ref":"f7b577d1a4f698f5d2a33ea63dfcb5cbc75a664182fbb5d83b2763d0f00f00e4","schema_version":"openadapt.approval-mode-log-event/v1","seq":47,"sha256":"sha256:0ec44f6a48a86bd2cde6fdf51a1e6ce5bb5e2551dd562f393484baed3492445d","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:28:13.904945+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:0ec44f6a48a86bd2cde6fdf51a1e6ce5bb5e2551dd562f393484baed3492445d","reason":null,"run_ref":"2645786b222f698d50c95315d2c4d8838f8b06c3da54ac5bdc12cdaf8466f675","schema_version":"openadapt.approval-mode-log-event/v1","seq":48,"sha256":"sha256:7fdc854c4c41a60fceb9347f9d7d95d5fa9f408084f7fe31536b1f48f134ed88","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:28:27.101363+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:7fdc854c4c41a60fceb9347f9d7d95d5fa9f408084f7fe31536b1f48f134ed88","reason":null,"run_ref":"2645786b222f698d50c95315d2c4d8838f8b06c3da54ac5bdc12cdaf8466f675","schema_version":"openadapt.approval-mode-log-event/v1","seq":49,"sha256":"sha256:d437221c7a441f7b87fd8f70eb904820b9a883ad9dedfb628746cb78d7ef7ce7","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:30:22.483822+00:00","counts_toward_problems":true,"decision":"stop_before_saving","kind":"item_finished","prev_sha256":"sha256:d437221c7a441f7b87fd8f70eb904820b9a883ad9dedfb628746cb78d7ef7ce7","reason":"right_record","run_ref":"1d552bfaac194e9b04d714b99c6cbd93efa624995877de27a320d62bd0f0e435","schema_version":"openadapt.approval-mode-log-event/v1","seq":50,"sha256":"sha256:3ac82dd9c116bc08dee6e8626c6407c12357d50fd5e8e5518ebfeb4eab14a759","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} +{"at":"2026-10-25T11:30:22.485370+00:00","counts_toward_problems":null,"decision":null,"kind":"switched_off","prev_sha256":"sha256:3ac82dd9c116bc08dee6e8626c6407c12357d50fd5e8e5518ebfeb4eab14a759","reason":"screen_changed","run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":51,"sha256":"sha256:bdbca92aad070d9d9451210037b5bb7b7a41ea7fee46e743ce06b0ad3782c603","switch_id":"switch-lifecycle-proof-6d9c18d67786-1792924549","switch_record_sha256":null} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/log-1792928598.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/log-1792928598.jsonl new file mode 100644 index 000000000..0ba111132 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/log-1792928598.jsonl @@ -0,0 +1,56 @@ +{"at":"2026-10-25T11:43:18.085807+00:00","counts_toward_problems":null,"decision":null,"kind":"opened","prev_sha256":"sha256:0000000000000000000000000000000000000000000000000000000000000000","reason":null,"run_ref":null,"schema_version":"openadapt.approval-mode-log-event/v1","seq":1,"sha256":"sha256:712d0a9fe7ea71b5a76048109efa566b3d27e8e6a5ca9221e5b14f4de1cd00af","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":"sha256:4c5fcd25035934bdac1da8af7d6422c14337c74f89130a78011e3810d426f0c9"} +{"at":"2026-10-25T11:45:10.189214+00:00","counts_toward_problems":false,"decision":"stop_before_saving","kind":"item_finished","prev_sha256":"sha256:712d0a9fe7ea71b5a76048109efa566b3d27e8e6a5ca9221e5b14f4de1cd00af","reason":"gate_error","run_ref":"8986f2038230851dcd79d37a0615e1161f99def82e00319ac8f70a6f8cd48821","schema_version":"openadapt.approval-mode-log-event/v1","seq":2,"sha256":"sha256:bc2c391ae50e585aa4dd1e9357b0aad91f64419e89c4b0cb0c4702d5ca60d6ec","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T11:46:58.733821+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:bc2c391ae50e585aa4dd1e9357b0aad91f64419e89c4b0cb0c4702d5ca60d6ec","reason":null,"run_ref":"fb8e315bf6076df1e213b8d557179935c491f600d4d66411f07be581009bbfd5","schema_version":"openadapt.approval-mode-log-event/v1","seq":3,"sha256":"sha256:d788d4fd23410e07745617d3325ff09d3fa2b7373dbd8f7ca8f62ab32f3d5eed","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T11:47:11.942257+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:d788d4fd23410e07745617d3325ff09d3fa2b7373dbd8f7ca8f62ab32f3d5eed","reason":null,"run_ref":"fb8e315bf6076df1e213b8d557179935c491f600d4d66411f07be581009bbfd5","schema_version":"openadapt.approval-mode-log-event/v1","seq":4,"sha256":"sha256:f1ed430be1fd20b71bebb5ae364d9cfa03eeab0a684987ce4e54d115f21453a8","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T11:49:00.906725+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:f1ed430be1fd20b71bebb5ae364d9cfa03eeab0a684987ce4e54d115f21453a8","reason":null,"run_ref":"1df1dd4959f9fe2ce4c46115562858c045a60b82fdac433eada6e2d5788ffe13","schema_version":"openadapt.approval-mode-log-event/v1","seq":5,"sha256":"sha256:4ef2fc38f6aaa6da42e9f9ade864227b6d06e29e30f0e4b9ccd23296a8eadec0","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T11:49:14.354557+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:4ef2fc38f6aaa6da42e9f9ade864227b6d06e29e30f0e4b9ccd23296a8eadec0","reason":null,"run_ref":"1df1dd4959f9fe2ce4c46115562858c045a60b82fdac433eada6e2d5788ffe13","schema_version":"openadapt.approval-mode-log-event/v1","seq":6,"sha256":"sha256:0b2a6a53439036f3969ac0d10d836ca1d53f6c8318716a44cdb31b32251c9bd1","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T11:51:17.981316+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:0b2a6a53439036f3969ac0d10d836ca1d53f6c8318716a44cdb31b32251c9bd1","reason":"halted_before_effect","run_ref":"54b086628ed07fcf2dbe2c16310b5b53cbf36eba3df6168fbfab655130c3a2ed","schema_version":"openadapt.approval-mode-log-event/v1","seq":7,"sha256":"sha256:ce822da74524bc9b03d4e4a56e9692c390021069b5fb7763715e5aeabbdae2f2","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T11:53:18.776398+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:ce822da74524bc9b03d4e4a56e9692c390021069b5fb7763715e5aeabbdae2f2","reason":"halted_before_effect","run_ref":"0df53950bf0feec541d7cb13819bb06520c9540b91b7e0405dfe7cfdd5917a63","schema_version":"openadapt.approval-mode-log-event/v1","seq":8,"sha256":"sha256:7840566298106dae4bb721aadd420ca50217929a1edde6c8bb5a4a613403c293","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T11:55:07.247341+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:7840566298106dae4bb721aadd420ca50217929a1edde6c8bb5a4a613403c293","reason":null,"run_ref":"c137dd3e6642db6703245b56e7017c137b2b24bb11b75e6cc1e67ddfebac6751","schema_version":"openadapt.approval-mode-log-event/v1","seq":9,"sha256":"sha256:290b6f4f5042bac4a5d16319ac100dbdc9db388d12a7b67d5e132179b30b186b","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T11:55:20.591620+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:290b6f4f5042bac4a5d16319ac100dbdc9db388d12a7b67d5e132179b30b186b","reason":null,"run_ref":"c137dd3e6642db6703245b56e7017c137b2b24bb11b75e6cc1e67ddfebac6751","schema_version":"openadapt.approval-mode-log-event/v1","seq":10,"sha256":"sha256:1bd65cf0beb6219999fc9277fbdc5da1052bee22512a5f35c80e0029b76c52c7","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T11:57:08.814272+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:1bd65cf0beb6219999fc9277fbdc5da1052bee22512a5f35c80e0029b76c52c7","reason":null,"run_ref":"23299e1387735db132c23eceb40ff94deb69c466f195a8428eda4c27e82b0943","schema_version":"openadapt.approval-mode-log-event/v1","seq":11,"sha256":"sha256:2df88308d7e627a9b08ecbd0cff3505ef6365f0c348497a2d5fb21e258389249","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T11:57:22.121881+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:2df88308d7e627a9b08ecbd0cff3505ef6365f0c348497a2d5fb21e258389249","reason":null,"run_ref":"23299e1387735db132c23eceb40ff94deb69c466f195a8428eda4c27e82b0943","schema_version":"openadapt.approval-mode-log-event/v1","seq":12,"sha256":"sha256:089aaecc1e02a89d6c8079a8f538429672a7815517237c30cee5d731e1c7170d","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T11:57:30.071519+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:089aaecc1e02a89d6c8079a8f538429672a7815517237c30cee5d731e1c7170d","reason":"rejected_policy","run_ref":"f1f0d4daa54699f4a6fb30e3c209d450a58021c51b97d6b76760991ef4cc914a","schema_version":"openadapt.approval-mode-log-event/v1","seq":13,"sha256":"sha256:6cb6a66dad97d46f61fb14873bdc258c66a92a0a82a6121a85c089b234acb852","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T11:59:21.338140+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:6cb6a66dad97d46f61fb14873bdc258c66a92a0a82a6121a85c089b234acb852","reason":null,"run_ref":"d6cb0c3d8f27d49efd79f22147f0ed8345618cf8a7ea098f059e457af704c167","schema_version":"openadapt.approval-mode-log-event/v1","seq":14,"sha256":"sha256:9be6675bcafde383d995d5ee67451ef9beee1451e4c5e4bf5056a4fa85ac1c94","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T11:59:34.423675+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:9be6675bcafde383d995d5ee67451ef9beee1451e4c5e4bf5056a4fa85ac1c94","reason":null,"run_ref":"d6cb0c3d8f27d49efd79f22147f0ed8345618cf8a7ea098f059e457af704c167","schema_version":"openadapt.approval-mode-log-event/v1","seq":15,"sha256":"sha256:30560e979661368c614a23c69f76e635707f575a518a596a287d89f70265edac","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:01:34.998462+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:30560e979661368c614a23c69f76e635707f575a518a596a287d89f70265edac","reason":"halted_before_effect","run_ref":"aec024b3b69680057fbeac699fdca0f004bbd0cadbf7b76e2d35ebef208c6163","schema_version":"openadapt.approval-mode-log-event/v1","seq":16,"sha256":"sha256:3eb0d95324607ab0f446a8a4c03d648d50cf45535c3514f522e94cc60d24706c","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:03:35.358394+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:3eb0d95324607ab0f446a8a4c03d648d50cf45535c3514f522e94cc60d24706c","reason":"halted_before_effect","run_ref":"7d0b507e27ff97e3b355712cf3f9d73d6bc5de7337395a7246087895bf62b6ce","schema_version":"openadapt.approval-mode-log-event/v1","seq":17,"sha256":"sha256:9b3f505550d3b6a7379788b1ffdfd29d0b4c9d5d3e22b12d97a45e4005c275e1","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:05:23.321911+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:9b3f505550d3b6a7379788b1ffdfd29d0b4c9d5d3e22b12d97a45e4005c275e1","reason":null,"run_ref":"51f1935a5c85139b8fa51f29f39bfb974f4fe6141695fe8b17741c00ff24c193","schema_version":"openadapt.approval-mode-log-event/v1","seq":18,"sha256":"sha256:ff5e541c9dfdda51d15485b4101b285c43c3babe7daac793aec070b0250341fa","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:05:36.497022+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:ff5e541c9dfdda51d15485b4101b285c43c3babe7daac793aec070b0250341fa","reason":null,"run_ref":"51f1935a5c85139b8fa51f29f39bfb974f4fe6141695fe8b17741c00ff24c193","schema_version":"openadapt.approval-mode-log-event/v1","seq":19,"sha256":"sha256:73e15f6cd8948cf6d50cd8758c9afd264e4d199e7662c2d9c09332d24597d489","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:07:24.437675+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:73e15f6cd8948cf6d50cd8758c9afd264e4d199e7662c2d9c09332d24597d489","reason":null,"run_ref":"e57f952a865bda098f22771c8286e041d889552598f33629e29e72dd15396598","schema_version":"openadapt.approval-mode-log-event/v1","seq":20,"sha256":"sha256:36ec5c4e603cbdbeddb0a734804970202e3b91c205ff5b10708c3f3c3101642f","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:07:37.612334+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:36ec5c4e603cbdbeddb0a734804970202e3b91c205ff5b10708c3f3c3101642f","reason":null,"run_ref":"e57f952a865bda098f22771c8286e041d889552598f33629e29e72dd15396598","schema_version":"openadapt.approval-mode-log-event/v1","seq":21,"sha256":"sha256:7207e12c9b28dbcdc2f69c477189ec8571edfc2c4da7ba76d1052631094d1aaf","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:09:25.962791+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:7207e12c9b28dbcdc2f69c477189ec8571edfc2c4da7ba76d1052631094d1aaf","reason":null,"run_ref":"ef5e883ef51b8be6ec4b854e7b409db7ffefebf882b0a5abd95300530eae72ad","schema_version":"openadapt.approval-mode-log-event/v1","seq":22,"sha256":"sha256:821a7d95d68927716b3f1cbc8890c8bdddfe2f0ca263cec56bc163f3f404ce07","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:09:39.189767+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:821a7d95d68927716b3f1cbc8890c8bdddfe2f0ca263cec56bc163f3f404ce07","reason":null,"run_ref":"ef5e883ef51b8be6ec4b854e7b409db7ffefebf882b0a5abd95300530eae72ad","schema_version":"openadapt.approval-mode-log-event/v1","seq":23,"sha256":"sha256:33eb665605761263ec7ccb5b4813640b677dad04383c416266faaebb1cabc564","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:11:27.025514+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:33eb665605761263ec7ccb5b4813640b677dad04383c416266faaebb1cabc564","reason":null,"run_ref":"fafbb3f2a21a73ccd57dfd28a110c0099e094efcef4abeb48f158df464103003","schema_version":"openadapt.approval-mode-log-event/v1","seq":24,"sha256":"sha256:f0316104884e74cdd0dd55d02b5671e229dbcaf07912a11a6deb60e7f797a62d","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:11:45.918047+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:f0316104884e74cdd0dd55d02b5671e229dbcaf07912a11a6deb60e7f797a62d","reason":null,"run_ref":"fafbb3f2a21a73ccd57dfd28a110c0099e094efcef4abeb48f158df464103003","schema_version":"openadapt.approval-mode-log-event/v1","seq":25,"sha256":"sha256:2ee16eea44971c24a85a40e8de48b271f8be31a512cfaae7f1b10131962da8fc","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:13:34.141145+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:2ee16eea44971c24a85a40e8de48b271f8be31a512cfaae7f1b10131962da8fc","reason":null,"run_ref":"4544bb227cd8172233ebe3dd78bd9f2b4e774c0e6438d8cfbe9e3f408323e00c","schema_version":"openadapt.approval-mode-log-event/v1","seq":26,"sha256":"sha256:d3ed43fbeb1693ac14da74eeea397cac5eef9864a6e0a21c7d5d37c05992ea20","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:13:47.444635+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:d3ed43fbeb1693ac14da74eeea397cac5eef9864a6e0a21c7d5d37c05992ea20","reason":null,"run_ref":"4544bb227cd8172233ebe3dd78bd9f2b4e774c0e6438d8cfbe9e3f408323e00c","schema_version":"openadapt.approval-mode-log-event/v1","seq":27,"sha256":"sha256:e0cc5b568410a6f84633a8012a95570eea9a39619459cca7a269049b0d3d1ec2","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:15:35.686803+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:e0cc5b568410a6f84633a8012a95570eea9a39619459cca7a269049b0d3d1ec2","reason":null,"run_ref":"53ba5ced272791592a704b7f4b5018d0934bd0d32289f58bd1d24145eae6911e","schema_version":"openadapt.approval-mode-log-event/v1","seq":28,"sha256":"sha256:57442739e64100d0da678cde704a6a463aa1985efed5a8ac31b2def2c3862ba8","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:15:48.982547+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:57442739e64100d0da678cde704a6a463aa1985efed5a8ac31b2def2c3862ba8","reason":null,"run_ref":"53ba5ced272791592a704b7f4b5018d0934bd0d32289f58bd1d24145eae6911e","schema_version":"openadapt.approval-mode-log-event/v1","seq":29,"sha256":"sha256:40b3dd7134734f5fa14d5870e21ce80bde59e60390de63dda7361fca619cbf4d","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:17:36.876813+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:40b3dd7134734f5fa14d5870e21ce80bde59e60390de63dda7361fca619cbf4d","reason":null,"run_ref":"4fdeaff60211c2118c977f19d6343abd4afc2db68f4550883e8ae3f74f9e651a","schema_version":"openadapt.approval-mode-log-event/v1","seq":30,"sha256":"sha256:e557069052352bf64caee9045cd0a72bd27e1058cc8798eed0822e608eb161c0","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:17:50.216842+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:e557069052352bf64caee9045cd0a72bd27e1058cc8798eed0822e608eb161c0","reason":null,"run_ref":"4fdeaff60211c2118c977f19d6343abd4afc2db68f4550883e8ae3f74f9e651a","schema_version":"openadapt.approval-mode-log-event/v1","seq":31,"sha256":"sha256:1c36e0cab2ab47f66986804cecc16daa15f690d161556ab79618548e0f01038d","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:19:38.264377+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:1c36e0cab2ab47f66986804cecc16daa15f690d161556ab79618548e0f01038d","reason":null,"run_ref":"33959ac4c0b94e9baad9d914c79b750e9ef980cf2669ef729a4a560aaf9aaf04","schema_version":"openadapt.approval-mode-log-event/v1","seq":32,"sha256":"sha256:d9bf96ae422a5a38ce0408148c1046e1788ca631159278965ed1b354590b6e40","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:19:51.749340+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:d9bf96ae422a5a38ce0408148c1046e1788ca631159278965ed1b354590b6e40","reason":null,"run_ref":"33959ac4c0b94e9baad9d914c79b750e9ef980cf2669ef729a4a560aaf9aaf04","schema_version":"openadapt.approval-mode-log-event/v1","seq":33,"sha256":"sha256:4e79d7d545ee76275fd5f5422532182445af8c6351a3720b53bb832ea183e56e","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:21:40.751569+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:4e79d7d545ee76275fd5f5422532182445af8c6351a3720b53bb832ea183e56e","reason":null,"run_ref":"e11143141ed3eb90e7d1510a1fb3cb83344746f66c6b805ca5bd44e6001ed025","schema_version":"openadapt.approval-mode-log-event/v1","seq":34,"sha256":"sha256:9650ce151de9b2022f0aa7876934d2f3708187ecc362c3e6fa098f22a95bd839","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:21:54.274311+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:9650ce151de9b2022f0aa7876934d2f3708187ecc362c3e6fa098f22a95bd839","reason":null,"run_ref":"e11143141ed3eb90e7d1510a1fb3cb83344746f66c6b805ca5bd44e6001ed025","schema_version":"openadapt.approval-mode-log-event/v1","seq":35,"sha256":"sha256:100766f47b38921f8ff229f47a258c22ee95adb402c5e783e118f513e4c3d5cd","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:22:02.421722+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:100766f47b38921f8ff229f47a258c22ee95adb402c5e783e118f513e4c3d5cd","reason":"rejected_policy","run_ref":"d1626ffdf64bc40302fe9220a6ea85773426c9afac36700341f9c0b540dbbad8","schema_version":"openadapt.approval-mode-log-event/v1","seq":36,"sha256":"sha256:e209a57f8361f3c560e59ad0bf50067798d9e311e503ddaccc0dc9e03e734949","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:24:06.118735+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:e209a57f8361f3c560e59ad0bf50067798d9e311e503ddaccc0dc9e03e734949","reason":"halted_before_effect","run_ref":"28dcca4dab530565a6df9865e3cf96b896c84e041b0fa6b2a0fb04e881181bf1","schema_version":"openadapt.approval-mode-log-event/v1","seq":37,"sha256":"sha256:8daa4da1b44a503f0da25d7b84a9d1863b517fc91b65ba0b9b9bc3709b18ccff","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:26:06.173389+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:8daa4da1b44a503f0da25d7b84a9d1863b517fc91b65ba0b9b9bc3709b18ccff","reason":"halted_before_effect","run_ref":"3e5f7b807b4ea8072761323f45e57a7e08a2db4cd946d7cd78729f17647d0f2f","schema_version":"openadapt.approval-mode-log-event/v1","seq":38,"sha256":"sha256:bcb3c32b24d4ebc0707ef176554db0e75a09438277c0d8df6e54f79dd542f55a","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:27:55.241556+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:bcb3c32b24d4ebc0707ef176554db0e75a09438277c0d8df6e54f79dd542f55a","reason":null,"run_ref":"cbb3058081cb87f6370129fc892a89099d1332d8880513a03b61d9e65208a448","schema_version":"openadapt.approval-mode-log-event/v1","seq":39,"sha256":"sha256:c26a63c1752216374827b0c3128b80b20824e32da11ff6faefef43eeb307ba3c","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:28:08.482739+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:c26a63c1752216374827b0c3128b80b20824e32da11ff6faefef43eeb307ba3c","reason":null,"run_ref":"cbb3058081cb87f6370129fc892a89099d1332d8880513a03b61d9e65208a448","schema_version":"openadapt.approval-mode-log-event/v1","seq":40,"sha256":"sha256:9ebcd0ddab4238480f3ecbdf1872a56a9e0852772b80b8d247bdb8511c60ad92","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:29:56.317592+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:9ebcd0ddab4238480f3ecbdf1872a56a9e0852772b80b8d247bdb8511c60ad92","reason":null,"run_ref":"0e2c8ba08dff013491cea27b911f7f5e400ea1c77ab6cbaf9d18e0f52d1f89ed","schema_version":"openadapt.approval-mode-log-event/v1","seq":41,"sha256":"sha256:bb25652c09772980af3029c9b5abc1db96ca80af80da298e0711a853042e374f","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:30:09.551185+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:bb25652c09772980af3029c9b5abc1db96ca80af80da298e0711a853042e374f","reason":null,"run_ref":"0e2c8ba08dff013491cea27b911f7f5e400ea1c77ab6cbaf9d18e0f52d1f89ed","schema_version":"openadapt.approval-mode-log-event/v1","seq":42,"sha256":"sha256:def0189bbc8ef9b3f9ace6be821a4f9d9b39efa19cc5da9d2bb0e93e88f57fc1","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:31:57.661984+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:def0189bbc8ef9b3f9ace6be821a4f9d9b39efa19cc5da9d2bb0e93e88f57fc1","reason":null,"run_ref":"dd9a5f3a5349072a6f7b1dd7d7b3a629286a19afddf72f849089ab5ea1d7de80","schema_version":"openadapt.approval-mode-log-event/v1","seq":43,"sha256":"sha256:4523c771c2db05ee233649a21575c90f420583e78de0db7cd69235a6297ab929","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:32:10.932955+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:4523c771c2db05ee233649a21575c90f420583e78de0db7cd69235a6297ab929","reason":null,"run_ref":"dd9a5f3a5349072a6f7b1dd7d7b3a629286a19afddf72f849089ab5ea1d7de80","schema_version":"openadapt.approval-mode-log-event/v1","seq":44,"sha256":"sha256:f34b31e75893ecc8b8f8e5c84fbc2e2186e2194f06eb7fcecf101ffdcd4c50d4","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:33:58.648038+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:f34b31e75893ecc8b8f8e5c84fbc2e2186e2194f06eb7fcecf101ffdcd4c50d4","reason":null,"run_ref":"0d515a87c73469af90254272c234147e0ba06ac90de56cf4ecc1886a13033061","schema_version":"openadapt.approval-mode-log-event/v1","seq":45,"sha256":"sha256:a7308e6704538f66c723120cb699ce53f743be973ed170a4b743614ebd5b337a","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:34:11.947816+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:a7308e6704538f66c723120cb699ce53f743be973ed170a4b743614ebd5b337a","reason":null,"run_ref":"0d515a87c73469af90254272c234147e0ba06ac90de56cf4ecc1886a13033061","schema_version":"openadapt.approval-mode-log-event/v1","seq":46,"sha256":"sha256:0ec1adc5d11adaca3c3e25b131ba35a865fdbd4d8449a8f7b8e0afa93fd7be1d","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:35:59.906687+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:0ec1adc5d11adaca3c3e25b131ba35a865fdbd4d8449a8f7b8e0afa93fd7be1d","reason":null,"run_ref":"84615594537960a18455101b24542bce752d609d1eefeff7cfc5fb49b5530405","schema_version":"openadapt.approval-mode-log-event/v1","seq":47,"sha256":"sha256:70311c7d1417d0d2b19b0256527652ac276eb016dda66926f580c2df9bd93f8f","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:36:13.276211+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:70311c7d1417d0d2b19b0256527652ac276eb016dda66926f580c2df9bd93f8f","reason":null,"run_ref":"84615594537960a18455101b24542bce752d609d1eefeff7cfc5fb49b5530405","schema_version":"openadapt.approval-mode-log-event/v1","seq":48,"sha256":"sha256:184279d71cd1ec6369ecf6214be5df7a92141db4f2d25202c5fc7d4bacfd8afe","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:38:01.415253+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:184279d71cd1ec6369ecf6214be5df7a92141db4f2d25202c5fc7d4bacfd8afe","reason":null,"run_ref":"a212d8820170191f57886e8a9fe761f7b5788a87ace8421aba663511ad4c5e18","schema_version":"openadapt.approval-mode-log-event/v1","seq":49,"sha256":"sha256:bb86cfd68048a77ba7333928eebb0f7565b6bbb98482c27835213755e756c11f","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:38:14.733005+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:bb86cfd68048a77ba7333928eebb0f7565b6bbb98482c27835213755e756c11f","reason":null,"run_ref":"a212d8820170191f57886e8a9fe761f7b5788a87ace8421aba663511ad4c5e18","schema_version":"openadapt.approval-mode-log-event/v1","seq":50,"sha256":"sha256:91cb242298b1cb5ed192f121b092f87b3d16f68e6be930e70736c3815baa5c90","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:40:15.118893+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:91cb242298b1cb5ed192f121b092f87b3d16f68e6be930e70736c3815baa5c90","reason":"halted_before_effect","run_ref":"d45fe0ce7d045eeed84407ba344d2efd2a5e6d80f678eafe89d2dc47d9faf71b","schema_version":"openadapt.approval-mode-log-event/v1","seq":51,"sha256":"sha256:ab3c70d3b7fd87478c3972a2910bc24bda27afabf0bde616178cc611c1e47d1b","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:42:14.925960+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:ab3c70d3b7fd87478c3972a2910bc24bda27afabf0bde616178cc611c1e47d1b","reason":"halted_before_effect","run_ref":"a10517081e86d58daf5554aaac993d4a36ec11987d5b75a8bf42a71104a6163d","schema_version":"openadapt.approval-mode-log-event/v1","seq":52,"sha256":"sha256:564c8384c2b2988560f559ada2c537f40d5c57e7ea515613c567480bd5be758e","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:42:22.928681+00:00","counts_toward_problems":false,"decision":"problem","kind":"item_finished","prev_sha256":"sha256:564c8384c2b2988560f559ada2c537f40d5c57e7ea515613c567480bd5be758e","reason":"rejected_policy","run_ref":"7da27397dfa61df983069a10bee551b8c4c0fbef19420f8cb578807a6cff199f","schema_version":"openadapt.approval-mode-log-event/v1","seq":53,"sha256":"sha256:57641b93df6f3d222f6865b64e92471dc4b3db3a0fe73e3c7b353fbdc840b619","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:44:13.277473+00:00","counts_toward_problems":null,"decision":null,"kind":"item_started","prev_sha256":"sha256:57641b93df6f3d222f6865b64e92471dc4b3db3a0fe73e3c7b353fbdc840b619","reason":null,"run_ref":"353b4f38105091428677e542de7e6b8351f10bddf6d0b4dc87b67b16964c90ae","schema_version":"openadapt.approval-mode-log-event/v1","seq":54,"sha256":"sha256:f751ca56ace7adf48686456748156f58e96be8b00e225ce1aee757c7a50359ec","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:44:26.558135+00:00","counts_toward_problems":false,"decision":"no_person","kind":"item_finished","prev_sha256":"sha256:f751ca56ace7adf48686456748156f58e96be8b00e225ce1aee757c7a50359ec","reason":null,"run_ref":"353b4f38105091428677e542de7e6b8351f10bddf6d0b4dc87b67b16964c90ae","schema_version":"openadapt.approval-mode-log-event/v1","seq":55,"sha256":"sha256:7210bc01c1038abbf5192b6857046b91b5230b42c392cd66a3b997e1c1ecb74f","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} +{"at":"2026-10-25T12:44:34.506824+00:00","counts_toward_problems":false,"decision":"approval_required","kind":"item_finished","prev_sha256":"sha256:7210bc01c1038abbf5192b6857046b91b5230b42c392cd66a3b997e1c1ecb74f","reason":"inputs_supplied","run_ref":"bb7bc1876734341d9a707860aa46e3abe776b29249b0b89467c9c283ff4570ea","schema_version":"openadapt.approval-mode-log-event/v1","seq":56,"sha256":"sha256:10e6bed9bf2803314fb024713299fe2450705785b3b3469f87c7fd4bd1ba17ea","switch_id":"switch-lifecycle-proof-6935ae303537-1792928598","switch_record_sha256":null} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/switch.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/switch.json new file mode 100644 index 000000000..cd11116d9 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/switch.json @@ -0,0 +1,42 @@ +{ + "log": "/Users/abrichr/oa/scratch/production-lifecycle/runs/soak-final-2/arms/openadapt-production-relabel/switch/log-1792928598.jsonl", + "record": { + "allowed_interstitials": {}, + "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", + "channel": "desktop_run_it_list_with_header", + "dedicated_user_ref": "hmac-sha256:416c28d5858aff6dc46c5f2e1f00ead21c20ceaa4a64e3d4a1b8330b23f89f7e", + "environment_digest": "sha256:2dc00aa5bd8d4cb971fc11d724d7bae63aaa300f8cfe636298f68d5500913df5", + "org_id": "org-lifecycle-proof", + "profile": "regulated", + "rung_floor": { + "step_000": "structural", + "step_003": "structural", + "step_006": "structural", + "step_009": "structural", + "step_012": "structural", + "step_016": "structural", + "step_018": "structural", + "step_021": "structural", + "step_024": "structural", + "step_027": "structural", + "step_030": "structural", + "step_033": "structural", + "step_036": "structural", + "step_039": "structural", + "step_040": "structural" + }, + "runner_id": "lifecycle-proof-runner-1", + "schema_version": "openadapt.approval-mode-switch/v1", + "switch_id": "switch-lifecycle-proof-6935ae303537-1792928598", + "thresholds": { + "problems_in_a_row": 3, + "problems_in_window": 5, + "problems_window": 20, + "status_max_age_s": 900 + }, + "verifier_identities": [ + "sha256:7b0a4449cf2d6e07c6d1b7ce218f052e7bc3dafb5008903b4cb79aa697062fd2" + ], + "workflow_id": "workflow-openemr-referral" + } +} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/workload.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/workload.jsonl new file mode 100644 index 000000000..88d7f9d32 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/workload.jsonl @@ -0,0 +1,69 @@ +{"days": 10, "exception_mix": {"ambiguous_new_person": 0.02, "ambiguous_same_person": 0.02, "common_surname": 0.06, "concurrent_other": 0.02, "concurrent_same": 0.015, "dup_existing": 0.03, "dup_resend": 0.03, "failed_save": 0.015, "malformed_case": 0.02, "malformed_dob": 0.02, "missing_optional": 0.02, "missing_required": 0.02, "session_expiry": 0.02, "shared_dob": 0.08, "slow_save": 0.02}, "items": 55, "seed": 7, "type": "workload", "version": "lifecycle-workload/2026-10-24.1"} +{"DOB": "1941-02-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ana.fairwick.9000@example.invalid", "fname": "Ana", "lname": "Fairwick", "phone_home": "555-0174", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "276 QUARRY HILL DRIVE", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1939-02-14", "city": "EXAMPLETON", "country_code": "USA", "email": "theo.radley.9001@example.invalid", "fname": "Theo", "lname": "Radley", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "216 QUARRY HILL DRIVE", "title": "Ms.", "type": "existing_chart"} +{"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.oakwood.9002@example.invalid", "fname": "Rosalind", "lname": "Oakwood", "phone_home": "555-0106", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "323 WILLOW BEND ROAD", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1972-07-05", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.birchfield.9003@example.invalid", "fname": "Bram", "lname": "Birchfield", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "278 QUARRY HILL DRIVE", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1959-06-04", "city": "EXAMPLETON", "country_code": "USA", "email": "gideon.galwick.9004@example.invalid", "fname": "Gideon", "lname": "Galwick", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "282 QUARRY HILL DRIVE", "title": "Ms.", "type": "existing_chart"} +{"DOB": "1975-08-19", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenridge.9005@example.invalid", "fname": "Odile", "lname": "Quenridge", "phone_home": "555-0138", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "474 WAY", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1945-10-10", "city": "EXAMPLETON", "country_code": "USA", "email": "yuki.galwick.9006@example.invalid", "fname": "Yuki", "lname": "Galwick", "phone_home": "555-0193", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "270 WAY", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1950-09-14", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jessmere.9007@example.invalid", "fname": "Oren", "lname": "Jessmere", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "86 AVENUE MILL ROAD", "title": "Ms.", "type": "existing_chart"} +{"DOB": "1975-06-23", "city": "EXAMPLETON", "country_code": "USA", "email": "henrik.birchmore.9008@example.invalid", "fname": "Henrik", "lname": "Birchmore", "phone_home": "555-0108", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "181 WAY", "title": "Mrs.", "type": "existing_chart"} +{"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.jesston.9009@example.invalid", "fname": "Arlo", "lname": "Jesston", "phone_home": "555-0136", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "361 BEACON TERRACE STATION", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr.", "type": "existing_chart"} +{"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.jessmere.9011@example.invalid", "fname": "Odile", "lname": "Jessmere", "phone_home": "555-0121", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "471 WAY", "title": "Ms.", "type": "existing_chart"} +{"day": 4, "first_seq": 26, "kind": "relabel_save", "type": "drift_scheduled"} +{"app": "openemr", "day": 0, "item_id": "ref-00001", "params": {"DOB": "1990-09-09", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.jesswood.1@example.invalid", "fname": "Rosalind", "lname": "Jesswood", "phone_home": "555-0187", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "363 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 1, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Rosalind\nLast name: Jesswood\nDate of birth: 1990-09-09\nSex: Female\nStreet: 363 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0187\nEmail: rosalind.jesswood.1@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1990-09-09", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.jesswood.1@example.invalid", "fname": "Rosalind", "lname": "Jesswood", "phone_home": "555-0187", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "363 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00001", "person": {"DOB": "1990-09-09", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.jesswood.1@example.invalid", "fname": "Rosalind", "lname": "Jesswood", "phone_home": "555-0187", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "363 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 1}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00002", "params": {"DOB": "1957-03-08", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.fairwick.2@example.invalid", "fname": "Bram", "lname": "Fairwick", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "339 STREET CEDAR ROW", "title": "Ms."}, "seq": 2, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Bram\nLast name: Fairwick\nDate of birth: 1957-03-08\nSex: Female\nStreet: 339 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0162\nEmail: bram.fairwick.2@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1957-03-08", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.fairwick.2@example.invalid", "fname": "Bram", "lname": "Fairwick", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "339 STREET CEDAR ROW", "title": "Ms."}, "item_id": "ref-00002", "person": {"DOB": "1957-03-08", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.fairwick.2@example.invalid", "fname": "Bram", "lname": "Fairwick", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "339 STREET CEDAR ROW", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 2}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00003", "params": {"DOB": "1935-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "liesel.iversridge.3@example.invalid", "fname": "Liesel", "lname": "Iversridge", "phone_home": "555-0116", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "275 AVENUE MILL ROAD", "title": "Mr."}, "seq": 3, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Liesel\nLast name: Iversridge\nDate of birth: 1935-03-14\nSex: Male\nStreet: 275 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0116\nEmail: liesel.iversridge.3@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1935-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "liesel.iversridge.3@example.invalid", "fname": "Liesel", "lname": "Iversridge", "phone_home": "555-0116", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "275 AVENUE MILL ROAD", "title": "Mr."}, "item_id": "ref-00003", "person": {"DOB": "1935-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "liesel.iversridge.3@example.invalid", "fname": "Liesel", "lname": "Iversridge", "phone_home": "555-0116", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "275 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 3}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00004", "params": {"DOB": "1985-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.birchmere.4@example.invalid", "fname": "Fergus", "lname": "Birchmere", "phone_home": "555-0181", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "203 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 4, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Fergus\nLast name: Birchmere\nDate of birth: 1985-07-13\nSex: Male\nStreet: 203 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0181\nEmail: fergus.birchmere.4@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "clean", "inject": [], "intended": {"DOB": "1985-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.birchmere.4@example.invalid", "fname": "Fergus", "lname": "Birchmere", "phone_home": "555-0181", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "203 QUARRY HILL DRIVE", "title": "Mr."}, "item_id": "ref-00004", "person": {"DOB": "1985-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.birchmere.4@example.invalid", "fname": "Fergus", "lname": "Birchmere", "phone_home": "555-0181", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "203 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 4}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00005", "params": {"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldley.5@example.invalid", "fname": "Rafael", "lname": "Caldley", "phone_home": "555-0100", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "176 WILLOW BEND ROAD", "title": "Ms."}, "seq": 5, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Rafael\nLast name: Caldley\nDate of birth: 1943-01-24\nSex: Female\nStreet: 176 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0100\nEmail: rafael.caldley.5@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "shared_dob", "inject": [], "intended": {"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldley.5@example.invalid", "fname": "Rafael", "lname": "Caldley", "phone_home": "555-0100", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "176 WILLOW BEND ROAD", "title": "Ms."}, "item_id": "ref-00005", "person": {"DOB": "1943-01-24", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldley.5@example.invalid", "fname": "Rafael", "lname": "Caldley", "phone_home": "555-0100", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "176 WILLOW BEND ROAD", "title": "Ms."}, "rationale": "born on the same day as an existing chart; a different person", "seq": 5}, "type": "item"} +{"app": "openemr", "day": 0, "item_id": "ref-00006", "params": {"DOB": "04/20/1944", "city": "EXAMPLETON", "country_code": "USA", "email": "priya.marwell.6@example.invalid", "fname": "Priya", "lname": "Marwell", "phone_home": "555-0144", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "194 LANTERN COURT FERRY", "title": "Mrs."}, "seq": 6, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Priya\nLast name: Marwell\nDate of birth: 04/20/1944\nSex: Female\nStreet: 194 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0144\nEmail: priya.marwell.6@example.invalid\nCountry: USA\n", "truth": {"day": 0, "exception": "malformed_dob", "inject": [], "intended": {"DOB": "1944-04-20", "city": "EXAMPLETON", "country_code": "USA", "email": "priya.marwell.6@example.invalid", "fname": "Priya", "lname": "Marwell", "phone_home": "555-0144", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "194 LANTERN COURT FERRY", "title": "Mrs."}, "item_id": "ref-00006", "person": {"DOB": "1944-04-20", "city": "EXAMPLETON", "country_code": "USA", "email": "priya.marwell.6@example.invalid", "fname": "Priya", "lname": "Marwell", "phone_home": "555-0144", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "194 LANTERN COURT FERRY", "title": "Mrs."}, "rationale": "date of birth written MM/DD/YYYY; the true date is ISO", "seq": 6}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00007", "params": {"DOB": "1997-08-16", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.ellwick.7@example.invalid", "fname": "Mateo", "lname": "Ellwick", "phone_home": "555-0118", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "249 BEACON TERRACE STATION", "title": "Ms."}, "seq": 7, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Mateo\nLast name: Ellwick\nDate of birth: 1997-08-16\nSex: Female\nStreet: 249 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0118\nEmail: mateo.ellwick.7@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1997-08-16", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.ellwick.7@example.invalid", "fname": "Mateo", "lname": "Ellwick", "phone_home": "555-0118", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "249 BEACON TERRACE STATION", "title": "Ms."}, "item_id": "ref-00007", "person": {"DOB": "1997-08-16", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.ellwick.7@example.invalid", "fname": "Mateo", "lname": "Ellwick", "phone_home": "555-0118", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "249 BEACON TERRACE STATION", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 7}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00008", "params": {"city": "EXAMPLETON", "country_code": "USA", "email": "bo.jessby.8@example.invalid", "fname": "Bo", "lname": "Jessby", "phone_home": "555-0188", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "107 AVENUE MILL ROAD", "title": "Mr."}, "seq": 8, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Bo\nLast name: Jessby\nDate of birth: \nSex: Male\nStreet: 107 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0188\nEmail: bo.jessby.8@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "missing_required", "inject": [], "intended": null, "item_id": "ref-00008", "person": {"DOB": "1955-09-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.jessby.8@example.invalid", "fname": "Bo", "lname": "Jessby", "phone_home": "555-0188", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "107 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "no date of birth; return the referral to the sender", "seq": 8}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00009", "params": {"DOB": "1946-12-28", "city": "EXAMPLETON", "country_code": "USA", "email": "marcus.stanby.9@example.invalid", "fname": "Marcus", "lname": "Stanby", "phone_home": "555-0145", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "135 AVENUE MILL ROAD", "title": "Mr."}, "seq": 9, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Marcus\nLast name: Stanby\nDate of birth: 1946-12-28\nSex: Male\nStreet: 135 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0145\nEmail: marcus.stanby.9@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1946-12-28", "city": "EXAMPLETON", "country_code": "USA", "email": "marcus.stanby.9@example.invalid", "fname": "Marcus", "lname": "Stanby", "phone_home": "555-0145", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "135 AVENUE MILL ROAD", "title": "Mr."}, "item_id": "ref-00009", "person": {"DOB": "1946-12-28", "city": "EXAMPLETON", "country_code": "USA", "email": "marcus.stanby.9@example.invalid", "fname": "Marcus", "lname": "Stanby", "phone_home": "555-0145", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "135 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 9}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00010", "params": {"DOB": "1963-10-26", "city": "EXAMPLETON", "country_code": "USA", "email": "kwame.stanwood.10@example.invalid", "fname": "Kwame", "lname": "Stanwood", "phone_home": "555-0151", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "405 STREET CEDAR ROW", "title": "Mr."}, "seq": 10, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Kwame\nLast name: Stanwood\nDate of birth: 1963-10-26\nSex: Male\nStreet: 405 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0151\nEmail: kwame.stanwood.10@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1963-10-26", "city": "EXAMPLETON", "country_code": "USA", "email": "kwame.stanwood.10@example.invalid", "fname": "Kwame", "lname": "Stanwood", "phone_home": "555-0151", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "405 STREET CEDAR ROW", "title": "Mr."}, "item_id": "ref-00010", "person": {"DOB": "1963-10-26", "city": "EXAMPLETON", "country_code": "USA", "email": "kwame.stanwood.10@example.invalid", "fname": "Kwame", "lname": "Stanwood", "phone_home": "555-0151", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "405 STREET CEDAR ROW", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 10}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00011", "params": {"DOB": "1980-12-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.galmere.11@example.invalid", "fname": "Bram", "lname": "Galmere", "phone_home": "555-0133", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "16 BEACON TERRACE STATION", "title": "Mr."}, "seq": 11, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Bram\nLast name: Galmere\nDate of birth: 1980-12-01\nSex: Male\nStreet: 16 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0133\nEmail: bram.galmere.11@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "clean", "inject": [], "intended": {"DOB": "1980-12-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.galmere.11@example.invalid", "fname": "Bram", "lname": "Galmere", "phone_home": "555-0133", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "16 BEACON TERRACE STATION", "title": "Mr."}, "item_id": "ref-00011", "person": {"DOB": "1980-12-01", "city": "EXAMPLETON", "country_code": "USA", "email": "bram.galmere.11@example.invalid", "fname": "Bram", "lname": "Galmere", "phone_home": "555-0133", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "16 BEACON TERRACE STATION", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 11}, "type": "item"} +{"app": "openemr", "day": 1, "item_id": "ref-00012", "params": {"DOB": "1979-06-03", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.langstead.12@example.invalid", "fname": "Anouk", "lname": "Langstead", "phone_home": "555-0160", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "114 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 12, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Anouk\nLast name: Langstead\nDate of birth: 1979-06-03\nSex: Male\nStreet: 114 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0160\nEmail: anouk.langstead.12@example.invalid\nCountry: USA\n", "truth": {"day": 1, "exception": "concurrent_same", "inject": [{"event": "other_clerk_creates", "person": {"DOB": "1979-06-03", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.langstead.12@example.invalid", "fname": "Anouk", "lname": "Langstead", "phone_home": "555-0160", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "114 QUARRY HILL DRIVE", "title": "Mr."}, "when": "before_item"}], "intended": null, "item_id": "ref-00012", "person": {"DOB": "1979-06-03", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.langstead.12@example.invalid", "fname": "Anouk", "lname": "Langstead", "phone_home": "555-0160", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "114 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "another clerk registered this patient moments earlier", "seq": 12}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00013", "params": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 13, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Odile\nLast name: Quenwood\nDate of birth: 1996-11-12\nSex: Female\nStreet: 411 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0149\nEmail: odile.quenwood.13@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "concurrent_other", "inject": [{"event": "other_clerk_edits_unrelated", "when": "during_item"}], "intended": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "item_id": "ref-00013", "person": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "another clerk edits an unrelated chart meanwhile", "seq": 13}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00014", "params": {"DOB": "1990-11-11", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.quenley.14@example.invalid", "fname": "Rafael", "lname": "Quenley", "phone_home": "555-0151", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "46 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 14, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Rafael\nLast name: Quenley\nDate of birth: 1990-11-11\nSex: Female\nStreet: 46 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0151\nEmail: rafael.quenley.14@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1990-11-11", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.quenley.14@example.invalid", "fname": "Rafael", "lname": "Quenley", "phone_home": "555-0151", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "46 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00014", "person": {"DOB": "1990-11-11", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.quenley.14@example.invalid", "fname": "Rafael", "lname": "Quenley", "phone_home": "555-0151", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "46 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 14}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00015", "params": {"DOB": "1951-01-05", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.fairwell.15@example.invalid", "fname": "Arlo", "lname": "Fairwell", "phone_home": "555-0178", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "304 WAY", "title": "Ms."}, "seq": 15, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Arlo\nLast name: Fairwell\nDate of birth: 1951-01-05\nSex: Female\nStreet: 304 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0178\nEmail: arlo.fairwell.15@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1951-01-05", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.fairwell.15@example.invalid", "fname": "Arlo", "lname": "Fairwell", "phone_home": "555-0178", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "304 WAY", "title": "Ms."}, "item_id": "ref-00015", "person": {"DOB": "1951-01-05", "city": "EXAMPLETON", "country_code": "USA", "email": "arlo.fairwell.15@example.invalid", "fname": "Arlo", "lname": "Fairwell", "phone_home": "555-0178", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "304 WAY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 15}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00016", "params": {"DOB": "1951-01-01", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.langridge.16@example.invalid", "fname": "Mateo", "lname": "Langridge", "phone_home": "555-0155", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 16, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Mateo\nLast name: Langridge\nDate of birth: 1951-01-01\nSex: Female\nStreet: 411 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0155\nEmail: mateo.langridge.16@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1951-01-01", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.langridge.16@example.invalid", "fname": "Mateo", "lname": "Langridge", "phone_home": "555-0155", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "item_id": "ref-00016", "person": {"DOB": "1951-01-01", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.langridge.16@example.invalid", "fname": "Mateo", "lname": "Langridge", "phone_home": "555-0155", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 16}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00017", "params": {"DOB": "1967-04-10", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.hartton.17@example.invalid", "fname": "Rafael", "lname": "Hartton", "phone_home": "555-0133", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "258 STREET CEDAR ROW", "title": "Mrs."}, "seq": 17, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Rafael\nLast name: Hartton\nDate of birth: 1967-04-10\nSex: Female\nStreet: 258 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0133\nEmail: rafael.hartton.17@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1967-04-10", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.hartton.17@example.invalid", "fname": "Rafael", "lname": "Hartton", "phone_home": "555-0133", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "258 STREET CEDAR ROW", "title": "Mrs."}, "item_id": "ref-00017", "person": {"DOB": "1967-04-10", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.hartton.17@example.invalid", "fname": "Rafael", "lname": "Hartton", "phone_home": "555-0133", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "258 STREET CEDAR ROW", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 17}, "type": "item"} +{"app": "openemr", "day": 2, "item_id": "ref-00018", "params": {"DOB": "1993-11-19", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.caldford.18@example.invalid", "fname": "Wen", "lname": "Caldford", "phone_home": "555-0168", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "419 ORCHARD LANE HARBOR", "title": "Mr."}, "seq": 18, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Wen\nLast name: Caldford\nDate of birth: 1993-11-19\nSex: Male\nStreet: 419 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0168\nEmail: wen.caldford.18@example.invalid\nCountry: USA\n", "truth": {"day": 2, "exception": "clean", "inject": [], "intended": {"DOB": "1993-11-19", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.caldford.18@example.invalid", "fname": "Wen", "lname": "Caldford", "phone_home": "555-0168", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "419 ORCHARD LANE HARBOR", "title": "Mr."}, "item_id": "ref-00018", "person": {"DOB": "1993-11-19", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.caldford.18@example.invalid", "fname": "Wen", "lname": "Caldford", "phone_home": "555-0168", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "419 ORCHARD LANE HARBOR", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 18}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00019", "params": {"DOB": "10/01/1958", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "seq": 19, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Fergus\nLast name: Ashbrook\nDate of birth: 10/01/1958\nSex: Male\nStreet: 399 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0118\nEmail: fergus.ashbrook.19@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "malformed_dob", "inject": [], "intended": {"DOB": "1958-10-01", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "item_id": "ref-00019", "person": {"DOB": "1958-10-01", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "rationale": "date of birth written MM/DD/YYYY; the true date is ISO", "seq": 19}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00020", "params": {"DOB": "1976-11-17", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.ellford.20@example.invalid", "fname": "Jasper", "lname": "Ellford", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "273 WAY", "title": "Ms."}, "seq": 20, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Jasper\nLast name: Ellford\nDate of birth: 1976-11-17\nSex: Female\nStreet: 273 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0171\nEmail: jasper.ellford.20@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "clean", "inject": [], "intended": {"DOB": "1976-11-17", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.ellford.20@example.invalid", "fname": "Jasper", "lname": "Ellford", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "273 WAY", "title": "Ms."}, "item_id": "ref-00020", "person": {"DOB": "1976-11-17", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.ellford.20@example.invalid", "fname": "Jasper", "lname": "Ellford", "phone_home": "555-0171", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "273 WAY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 20}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00021", "params": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 21, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Odile\nLast name: Quenwood\nDate of birth: 1996-11-12\nSex: Female\nStreet: 411 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0149\nEmail: odile.quenwood.13@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "dup_resend", "inject": [], "intended": null, "item_id": "ref-00021", "person": {"DOB": "1996-11-12", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenwood.13@example.invalid", "fname": "Odile", "lname": "Quenwood", "phone_home": "555-0149", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "411 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "a resend of ref-00013", "seq": 21}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00022", "params": {"DOB": "1970-08-17", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.radwood.22@example.invalid", "fname": "Fergus", "lname": "Radwood", "phone_home": "555-0189", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "275 WAY", "title": "Ms."}, "seq": 22, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Fergus\nLast name: Radwood\nDate of birth: 1970-08-17\nSex: Female\nStreet: 275 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0189\nEmail: fergus.radwood.22@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "clean", "inject": [], "intended": {"DOB": "1970-08-17", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.radwood.22@example.invalid", "fname": "Fergus", "lname": "Radwood", "phone_home": "555-0189", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "275 WAY", "title": "Ms."}, "item_id": "ref-00022", "person": {"DOB": "1970-08-17", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.radwood.22@example.invalid", "fname": "Fergus", "lname": "Radwood", "phone_home": "555-0189", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "275 WAY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 22}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00023", "params": {"DOB": "1992-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.thornford.23@example.invalid", "fname": "Soren", "lname": "Thornford", "phone_home": "555-0140", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "64 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 23, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Soren\nLast name: Thornford\nDate of birth: 1992-03-14\nSex: Female\nStreet: 64 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0140\nEmail: soren.thornford.23@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "clean", "inject": [], "intended": {"DOB": "1992-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.thornford.23@example.invalid", "fname": "Soren", "lname": "Thornford", "phone_home": "555-0140", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "64 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00023", "person": {"DOB": "1992-03-14", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.thornford.23@example.invalid", "fname": "Soren", "lname": "Thornford", "phone_home": "555-0140", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "64 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 23}, "type": "item"} +{"app": "openemr", "day": 3, "item_id": "ref-00024", "params": {"DOB": "1937-08-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 24, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ida\nLast name: Norwick\nDate of birth: 1937-08-13\nSex: Male\nStreet: 88 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0107\nEmail: ida.norwick.9010@example.invalid\nCountry: USA\n", "truth": {"day": 3, "exception": "ambiguous_same_person", "inject": [], "intended": null, "item_id": "ref-00024", "person": {"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "same person as an existing chart; the date of birth has a typo", "seq": 24}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00025", "params": {"DOB": "1994-04-24", "city": "EXAMPLETON", "country_code": "USA", "email": "esme.iversbrook.25@example.invalid", "fname": "Esme", "lname": "Iversbrook", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "489 QUARRY HILL DRIVE", "title": "Mrs."}, "seq": 25, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Esme\nLast name: Iversbrook\nDate of birth: 1994-04-24\nSex: Female\nStreet: 489 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0162\nEmail: esme.iversbrook.25@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "clean", "inject": [], "intended": {"DOB": "1994-04-24", "city": "EXAMPLETON", "country_code": "USA", "email": "esme.iversbrook.25@example.invalid", "fname": "Esme", "lname": "Iversbrook", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "489 QUARRY HILL DRIVE", "title": "Mrs."}, "item_id": "ref-00025", "person": {"DOB": "1994-04-24", "city": "EXAMPLETON", "country_code": "USA", "email": "esme.iversbrook.25@example.invalid", "fname": "Esme", "lname": "Iversbrook", "phone_home": "555-0162", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "489 QUARRY HILL DRIVE", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 25}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00026", "params": {"DOB": "1990-09-13", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.hartbrook.26@example.invalid", "fname": " FARIDA ", "lname": "HARTBROOK ", "phone_home": "555-0145", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "175 ORCHARD LANE HARBOR", "title": "Ms."}, "seq": 26, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: FARIDA \nLast name: HARTBROOK \nDate of birth: 1990-09-13\nSex: Female\nStreet: 175 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0145\nEmail: farida.hartbrook.26@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "malformed_case", "inject": [], "intended": {"DOB": "1990-09-13", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.hartbrook.26@example.invalid", "fname": "Farida", "lname": "Hartbrook", "phone_home": "555-0145", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "175 ORCHARD LANE HARBOR", "title": "Ms."}, "item_id": "ref-00026", "person": {"DOB": "1990-09-13", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.hartbrook.26@example.invalid", "fname": "Farida", "lname": "Hartbrook", "phone_home": "555-0145", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "175 ORCHARD LANE HARBOR", "title": "Ms."}, "rationale": "names in capitals with stray spaces", "seq": 26}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00027", "params": {"DOB": "1978-09-15", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.birchmore.27@example.invalid", "fname": "Jasper", "lname": "Birchmore", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "227 WILLOW BEND ROAD", "title": "Mrs."}, "seq": 27, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Jasper\nLast name: Birchmore\nDate of birth: 1978-09-15\nSex: Female\nStreet: 227 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0142\nEmail: jasper.birchmore.27@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "common_surname", "inject": [], "intended": {"DOB": "1978-09-15", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.birchmore.27@example.invalid", "fname": "Jasper", "lname": "Birchmore", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "227 WILLOW BEND ROAD", "title": "Mrs."}, "item_id": "ref-00027", "person": {"DOB": "1978-09-15", "city": "EXAMPLETON", "country_code": "USA", "email": "jasper.birchmore.27@example.invalid", "fname": "Jasper", "lname": "Birchmore", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "227 WILLOW BEND ROAD", "title": "Mrs."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 27}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00028", "params": {"DOB": "1964-02-03", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.caldwick.28@example.invalid", "fname": "Fergus", "lname": "Caldwick", "phone_home": "555-0199", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "137 BEACON TERRACE STATION", "title": "Ms."}, "seq": 28, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Fergus\nLast name: Caldwick\nDate of birth: 1964-02-03\nSex: Female\nStreet: 137 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0199\nEmail: fergus.caldwick.28@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "clean", "inject": [], "intended": {"DOB": "1964-02-03", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.caldwick.28@example.invalid", "fname": "Fergus", "lname": "Caldwick", "phone_home": "555-0199", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "137 BEACON TERRACE STATION", "title": "Ms."}, "item_id": "ref-00028", "person": {"DOB": "1964-02-03", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.caldwick.28@example.invalid", "fname": "Fergus", "lname": "Caldwick", "phone_home": "555-0199", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "137 BEACON TERRACE STATION", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 28}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00029", "params": {"DOB": "1986-03-18", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.oakwell.29@example.invalid", "fname": "Wen", "lname": "Oakwell", "phone_home": "555-0111", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "472 WAY", "title": "Mr."}, "seq": 29, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Wen\nLast name: Oakwell\nDate of birth: 1986-03-18\nSex: Male\nStreet: 472 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0111\nEmail: wen.oakwell.29@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "concurrent_same", "inject": [{"event": "other_clerk_creates", "person": {"DOB": "1986-03-18", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.oakwell.29@example.invalid", "fname": "Wen", "lname": "Oakwell", "phone_home": "555-0111", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "472 WAY", "title": "Mr."}, "when": "before_item"}], "intended": null, "item_id": "ref-00029", "person": {"DOB": "1986-03-18", "city": "EXAMPLETON", "country_code": "USA", "email": "wen.oakwell.29@example.invalid", "fname": "Wen", "lname": "Oakwell", "phone_home": "555-0111", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "472 WAY", "title": "Mr."}, "rationale": "another clerk registered this patient moments earlier", "seq": 29}, "type": "item"} +{"app": "openemr", "day": 4, "item_id": "ref-00030", "params": {"DOB": "1944-05-01", "city": "EXAMPLETON", "country_code": "USA", "email": "hollis.jesston.30@example.invalid", "fname": "Hollis", "lname": "Jesston", "phone_home": "555-0110", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "326 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 30, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Hollis\nLast name: Jesston\nDate of birth: 1944-05-01\nSex: Male\nStreet: 326 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0110\nEmail: hollis.jesston.30@example.invalid\nCountry: USA\n", "truth": {"day": 4, "exception": "common_surname", "inject": [], "intended": {"DOB": "1944-05-01", "city": "EXAMPLETON", "country_code": "USA", "email": "hollis.jesston.30@example.invalid", "fname": "Hollis", "lname": "Jesston", "phone_home": "555-0110", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "326 QUARRY HILL DRIVE", "title": "Mr."}, "item_id": "ref-00030", "person": {"DOB": "1944-05-01", "city": "EXAMPLETON", "country_code": "USA", "email": "hollis.jesston.30@example.invalid", "fname": "Hollis", "lname": "Jesston", "phone_home": "555-0110", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "326 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 30}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00031", "params": {"DOB": "1993-01-11", "city": "EXAMPLETON", "country_code": "USA", "email": "grace.jessby.31@example.invalid", "fname": "Grace", "lname": "Jessby", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "285 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 31, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Grace\nLast name: Jessby\nDate of birth: 1993-01-11\nSex: Female\nStreet: 285 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0179\nEmail: grace.jessby.31@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "clean", "inject": [], "intended": {"DOB": "1993-01-11", "city": "EXAMPLETON", "country_code": "USA", "email": "grace.jessby.31@example.invalid", "fname": "Grace", "lname": "Jessby", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "285 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00031", "person": {"DOB": "1993-01-11", "city": "EXAMPLETON", "country_code": "USA", "email": "grace.jessby.31@example.invalid", "fname": "Grace", "lname": "Jessby", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "285 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 31}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00032", "params": {"DOB": "1955-05-02", "city": "EXAMPLETON", "country_code": "USA", "email": "ilse.iverswick.32@example.invalid", "fname": "Ilse", "lname": "Iverswick", "phone_home": "", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "94 STREET CEDAR ROW", "title": "Mrs."}, "seq": 32, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Ilse\nLast name: Iverswick\nDate of birth: 1955-05-02\nSex: Female\nStreet: 94 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: \nEmail: ilse.iverswick.32@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "missing_optional", "inject": [], "intended": {"DOB": "1955-05-02", "city": "EXAMPLETON", "country_code": "USA", "email": "ilse.iverswick.32@example.invalid", "fname": "Ilse", "lname": "Iverswick", "phone_home": "", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "94 STREET CEDAR ROW", "title": "Mrs."}, "item_id": "ref-00032", "person": {"DOB": "1955-05-02", "city": "EXAMPLETON", "country_code": "USA", "email": "ilse.iverswick.32@example.invalid", "fname": "Ilse", "lname": "Iverswick", "phone_home": "", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "94 STREET CEDAR ROW", "title": "Mrs."}, "rationale": "no home phone; register without one", "seq": 32}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00033", "params": {"DOB": "1999-11-06", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.fairwick.33@example.invalid", "fname": "Odile", "lname": "Fairwick", "phone_home": "555-0132", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "140 AVENUE MILL ROAD", "title": "Mr."}, "seq": 33, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Odile\nLast name: Fairwick\nDate of birth: 1999-11-06\nSex: Male\nStreet: 140 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0132\nEmail: odile.fairwick.33@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "common_surname", "inject": [], "intended": {"DOB": "1999-11-06", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.fairwick.33@example.invalid", "fname": "Odile", "lname": "Fairwick", "phone_home": "555-0132", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "140 AVENUE MILL ROAD", "title": "Mr."}, "item_id": "ref-00033", "person": {"DOB": "1999-11-06", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.fairwick.33@example.invalid", "fname": "Odile", "lname": "Fairwick", "phone_home": "555-0132", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "140 AVENUE MILL ROAD", "title": "Mr."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 33}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00034", "params": {"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 34, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ida\nLast name: Norwick\nDate of birth: 1937-08-12\nSex: Male\nStreet: 88 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0107\nEmail: ida.norwick.9010@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "dup_existing", "inject": [], "intended": null, "item_id": "ref-00034", "person": {"DOB": "1937-08-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.norwick.9010@example.invalid", "fname": "Ida", "lname": "Norwick", "phone_home": "555-0107", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "88 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "this patient already has a chart", "seq": 34}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00035", "params": {"DOB": "1999-05-23", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.stanbrook.35@example.invalid", "fname": "Leilani", "lname": "Stanbrook", "phone_home": "555-0125", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "112 STREET CEDAR ROW", "title": "Mr."}, "seq": 35, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Leilani\nLast name: Stanbrook\nDate of birth: 1999-05-23\nSex: Male\nStreet: 112 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0125\nEmail: leilani.stanbrook.35@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "clean", "inject": [], "intended": {"DOB": "1999-05-23", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.stanbrook.35@example.invalid", "fname": "Leilani", "lname": "Stanbrook", "phone_home": "555-0125", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "112 STREET CEDAR ROW", "title": "Mr."}, "item_id": "ref-00035", "person": {"DOB": "1999-05-23", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.stanbrook.35@example.invalid", "fname": "Leilani", "lname": "Stanbrook", "phone_home": "555-0125", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "112 STREET CEDAR ROW", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 35}, "type": "item"} +{"app": "openemr", "day": 5, "item_id": "ref-00036", "params": {"DOB": "1979-01-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.ellstead.36@example.invalid", "fname": "Ida", "lname": "Ellstead", "phone_home": "555-0180", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "68 WILLOW BEND ROAD", "title": "Mr."}, "seq": 36, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ida\nLast name: Ellstead\nDate of birth: 1979-01-27\nSex: Male\nStreet: 68 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0180\nEmail: ida.ellstead.36@example.invalid\nCountry: USA\n", "truth": {"day": 5, "exception": "clean", "inject": [], "intended": {"DOB": "1979-01-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.ellstead.36@example.invalid", "fname": "Ida", "lname": "Ellstead", "phone_home": "555-0180", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "68 WILLOW BEND ROAD", "title": "Mr."}, "item_id": "ref-00036", "person": {"DOB": "1979-01-27", "city": "EXAMPLETON", "country_code": "USA", "email": "ida.ellstead.36@example.invalid", "fname": "Ida", "lname": "Ellstead", "phone_home": "555-0180", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "68 WILLOW BEND ROAD", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 36}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00037", "params": {"DOB": "1942-02-22", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.oakcombe.37@example.invalid", "fname": "Soren", "lname": "Oakcombe", "phone_home": "555-0176", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "432 ORCHARD LANE HARBOR", "title": "Mrs."}, "seq": 37, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Soren\nLast name: Oakcombe\nDate of birth: 1942-02-22\nSex: Female\nStreet: 432 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0176\nEmail: soren.oakcombe.37@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "clean", "inject": [], "intended": {"DOB": "1942-02-22", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.oakcombe.37@example.invalid", "fname": "Soren", "lname": "Oakcombe", "phone_home": "555-0176", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "432 ORCHARD LANE HARBOR", "title": "Mrs."}, "item_id": "ref-00037", "person": {"DOB": "1942-02-22", "city": "EXAMPLETON", "country_code": "USA", "email": "soren.oakcombe.37@example.invalid", "fname": "Soren", "lname": "Oakcombe", "phone_home": "555-0176", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "432 ORCHARD LANE HARBOR", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 37}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00038", "params": {"DOB": "1958-03-09", "city": "EXAMPLETON", "country_code": "USA", "email": "dmitri.birchfield.38@example.invalid", "fname": "Dmitri", "lname": "Birchfield", "phone_home": "555-0146", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "230 WILLOW BEND ROAD", "title": "Mr."}, "seq": 38, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Dmitri\nLast name: Birchfield\nDate of birth: 1958-03-09\nSex: Male\nStreet: 230 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0146\nEmail: dmitri.birchfield.38@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "slow_save", "inject": [{"event": "slow_save", "seconds": 6, "when": "during_item"}], "intended": {"DOB": "1958-03-09", "city": "EXAMPLETON", "country_code": "USA", "email": "dmitri.birchfield.38@example.invalid", "fname": "Dmitri", "lname": "Birchfield", "phone_home": "555-0146", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "230 WILLOW BEND ROAD", "title": "Mr."}, "item_id": "ref-00038", "person": {"DOB": "1958-03-09", "city": "EXAMPLETON", "country_code": "USA", "email": "dmitri.birchfield.38@example.invalid", "fname": "Dmitri", "lname": "Birchfield", "phone_home": "555-0146", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "230 WILLOW BEND ROAD", "title": "Mr."}, "rationale": "the save is slow", "seq": 38}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00039", "params": {"DOB": "1939-05-07", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.langby.39@example.invalid", "fname": "Rosalind", "lname": "Langby", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "184 LANTERN COURT FERRY", "title": "Ms."}, "seq": 39, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Rosalind\nLast name: Langby\nDate of birth: 1939-05-07\nSex: Female\nStreet: 184 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0142\nEmail: rosalind.langby.39@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "clean", "inject": [], "intended": {"DOB": "1939-05-07", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.langby.39@example.invalid", "fname": "Rosalind", "lname": "Langby", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "184 LANTERN COURT FERRY", "title": "Ms."}, "item_id": "ref-00039", "person": {"DOB": "1939-05-07", "city": "EXAMPLETON", "country_code": "USA", "email": "rosalind.langby.39@example.invalid", "fname": "Rosalind", "lname": "Langby", "phone_home": "555-0142", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "184 LANTERN COURT FERRY", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 39}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00040", "params": {"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.jesswood.40@example.invalid", "fname": "Mateo", "lname": "Jesswood", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "4 QUARRY HILL DRIVE", "title": "Mrs."}, "seq": 40, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Mateo\nLast name: Jesswood\nDate of birth: 1950-04-21\nSex: Female\nStreet: 4 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0111\nEmail: mateo.jesswood.40@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "shared_dob", "inject": [], "intended": {"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.jesswood.40@example.invalid", "fname": "Mateo", "lname": "Jesswood", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "4 QUARRY HILL DRIVE", "title": "Mrs."}, "item_id": "ref-00040", "person": {"DOB": "1950-04-21", "city": "EXAMPLETON", "country_code": "USA", "email": "mateo.jesswood.40@example.invalid", "fname": "Mateo", "lname": "Jesswood", "phone_home": "555-0111", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "4 QUARRY HILL DRIVE", "title": "Mrs."}, "rationale": "born on the same day as an existing chart; a different person", "seq": 40}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00041", "params": {"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ines.norwell.41@example.invalid", "fname": "Ines", "lname": "Norwell", "phone_home": "555-0184", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "121 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 41, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Ines\nLast name: Norwell\nDate of birth: 1966-07-13\nSex: Female\nStreet: 121 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0184\nEmail: ines.norwell.41@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "shared_dob", "inject": [], "intended": {"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ines.norwell.41@example.invalid", "fname": "Ines", "lname": "Norwell", "phone_home": "555-0184", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "121 QUARRY HILL DRIVE", "title": "Ms."}, "item_id": "ref-00041", "person": {"DOB": "1966-07-13", "city": "EXAMPLETON", "country_code": "USA", "email": "ines.norwell.41@example.invalid", "fname": "Ines", "lname": "Norwell", "phone_home": "555-0184", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "121 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "born on the same day as an existing chart; a different person", "seq": 41}, "type": "item"} +{"app": "openemr", "day": 6, "item_id": "ref-00042", "params": {"DOB": "1998-03-10", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.norley.42@example.invalid", "fname": "Anouk", "lname": "Norley", "phone_home": "555-0191", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "372 LANTERN COURT FERRY", "title": "Mr."}, "seq": 42, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Anouk\nLast name: Norley\nDate of birth: 1998-03-10\nSex: Male\nStreet: 372 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0191\nEmail: anouk.norley.42@example.invalid\nCountry: USA\n", "truth": {"day": 6, "exception": "clean", "inject": [], "intended": {"DOB": "1998-03-10", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.norley.42@example.invalid", "fname": "Anouk", "lname": "Norley", "phone_home": "555-0191", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "372 LANTERN COURT FERRY", "title": "Mr."}, "item_id": "ref-00042", "person": {"DOB": "1998-03-10", "city": "EXAMPLETON", "country_code": "USA", "email": "anouk.norley.42@example.invalid", "fname": "Anouk", "lname": "Norley", "phone_home": "555-0191", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "372 LANTERN COURT FERRY", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 42}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00043", "params": {"DOB": "2002-09-19", "city": "EXAMPLETON", "country_code": "USA", "email": "dalia.oakbrook.43@example.invalid", "fname": "Dalia", "lname": "Oakbrook", "phone_home": "555-0110", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "429 WILLOW BEND ROAD", "title": "Ms."}, "seq": 43, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Dalia\nLast name: Oakbrook\nDate of birth: 2002-09-19\nSex: Female\nStreet: 429 WILLOW BEND ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0110\nEmail: dalia.oakbrook.43@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "clean", "inject": [], "intended": {"DOB": "2002-09-19", "city": "EXAMPLETON", "country_code": "USA", "email": "dalia.oakbrook.43@example.invalid", "fname": "Dalia", "lname": "Oakbrook", "phone_home": "555-0110", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "429 WILLOW BEND ROAD", "title": "Ms."}, "item_id": "ref-00043", "person": {"DOB": "2002-09-19", "city": "EXAMPLETON", "country_code": "USA", "email": "dalia.oakbrook.43@example.invalid", "fname": "Dalia", "lname": "Oakbrook", "phone_home": "555-0110", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "429 WILLOW BEND ROAD", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 43}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00044", "params": {"DOB": "10/01/1958", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "seq": 44, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Fergus\nLast name: Ashbrook\nDate of birth: 10/01/1958\nSex: Male\nStreet: 399 LANTERN COURT FERRY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0118\nEmail: fergus.ashbrook.19@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "dup_resend", "inject": [], "intended": null, "item_id": "ref-00044", "person": {"DOB": "1958-10-01", "city": "EXAMPLETON", "country_code": "USA", "email": "fergus.ashbrook.19@example.invalid", "fname": "Fergus", "lname": "Ashbrook", "phone_home": "555-0118", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "399 LANTERN COURT FERRY", "title": "Mr."}, "rationale": "a resend of ref-00019", "seq": 44}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00045", "params": {"DOB": "1959-06-04", "city": "EXAMPLETON", "country_code": "USA", "email": "gideon.galwick.9004@example.invalid", "fname": "Gideon", "lname": "Galwick", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "282 QUARRY HILL DRIVE", "title": "Ms."}, "seq": 45, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Gideon\nLast name: Galwick\nDate of birth: 1959-06-04\nSex: Female\nStreet: 282 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0179\nEmail: gideon.galwick.9004@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "dup_existing", "inject": [], "intended": null, "item_id": "ref-00045", "person": {"DOB": "1959-06-04", "city": "EXAMPLETON", "country_code": "USA", "email": "gideon.galwick.9004@example.invalid", "fname": "Gideon", "lname": "Galwick", "phone_home": "555-0179", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "282 QUARRY HILL DRIVE", "title": "Ms."}, "rationale": "this patient already has a chart", "seq": 45}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00046", "params": {"DOB": "1998-07-03", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.hartgate.46@example.invalid", "fname": "Odile", "lname": "Hartgate", "phone_home": "555-0178", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "247 BEACON TERRACE STATION", "title": "Mr."}, "seq": 46, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Odile\nLast name: Hartgate\nDate of birth: 1998-07-03\nSex: Male\nStreet: 247 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0178\nEmail: odile.hartgate.46@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "session_expiry", "inject": [{"event": "force_logout", "when": "before_item"}], "intended": {"DOB": "1998-07-03", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.hartgate.46@example.invalid", "fname": "Odile", "lname": "Hartgate", "phone_home": "555-0178", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "247 BEACON TERRACE STATION", "title": "Mr."}, "item_id": "ref-00046", "person": {"DOB": "1998-07-03", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.hartgate.46@example.invalid", "fname": "Odile", "lname": "Hartgate", "phone_home": "555-0178", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "247 BEACON TERRACE STATION", "title": "Mr."}, "rationale": "sessions ended just before the item", "seq": 46}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00047", "params": {"DOB": "1977-05-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldbrook.47@example.invalid", "fname": "Rafael", "lname": "Caldbrook", "phone_home": "555-0101", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "382 BEACON TERRACE STATION", "title": "Ms."}, "seq": 47, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Rafael\nLast name: Caldbrook\nDate of birth: 1977-05-21\nSex: Female\nStreet: 382 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0101\nEmail: rafael.caldbrook.47@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "clean", "inject": [], "intended": {"DOB": "1977-05-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldbrook.47@example.invalid", "fname": "Rafael", "lname": "Caldbrook", "phone_home": "555-0101", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "382 BEACON TERRACE STATION", "title": "Ms."}, "item_id": "ref-00047", "person": {"DOB": "1977-05-21", "city": "EXAMPLETON", "country_code": "USA", "email": "rafael.caldbrook.47@example.invalid", "fname": "Rafael", "lname": "Caldbrook", "phone_home": "555-0101", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "382 BEACON TERRACE STATION", "title": "Ms."}, "rationale": "a new referral; register it", "seq": 47}, "type": "item"} +{"app": "openemr", "day": 7, "item_id": "ref-00048", "params": {"DOB": "1962-11-16", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.jesswick.48@example.invalid", "fname": "Leilani", "lname": "Jesswick", "phone_home": "555-0159", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "150 BEACON TERRACE STATION", "title": "Mrs."}, "seq": 48, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Leilani\nLast name: Jesswick\nDate of birth: 1962-11-16\nSex: Female\nStreet: 150 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0159\nEmail: leilani.jesswick.48@example.invalid\nCountry: USA\n", "truth": {"day": 7, "exception": "clean", "inject": [], "intended": {"DOB": "1962-11-16", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.jesswick.48@example.invalid", "fname": "Leilani", "lname": "Jesswick", "phone_home": "555-0159", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "150 BEACON TERRACE STATION", "title": "Mrs."}, "item_id": "ref-00048", "person": {"DOB": "1962-11-16", "city": "EXAMPLETON", "country_code": "USA", "email": "leilani.jesswick.48@example.invalid", "fname": "Leilani", "lname": "Jesswick", "phone_home": "555-0159", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "150 BEACON TERRACE STATION", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 48}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00049", "params": {"DOB": "1974-02-16", "city": "EXAMPLETON", "country_code": "USA", "email": "tomas.stanstead.49@example.invalid", "fname": "Tomas", "lname": "Stanstead", "phone_home": "555-0109", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "10 BEACON TERRACE STATION", "title": "Mrs."}, "seq": 49, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mrs.\nFirst name: Tomas\nLast name: Stanstead\nDate of birth: 1974-02-16\nSex: Female\nStreet: 10 BEACON TERRACE STATION\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0109\nEmail: tomas.stanstead.49@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "clean", "inject": [], "intended": {"DOB": "1974-02-16", "city": "EXAMPLETON", "country_code": "USA", "email": "tomas.stanstead.49@example.invalid", "fname": "Tomas", "lname": "Stanstead", "phone_home": "555-0109", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "10 BEACON TERRACE STATION", "title": "Mrs."}, "item_id": "ref-00049", "person": {"DOB": "1974-02-16", "city": "EXAMPLETON", "country_code": "USA", "email": "tomas.stanstead.49@example.invalid", "fname": "Tomas", "lname": "Stanstead", "phone_home": "555-0109", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "10 BEACON TERRACE STATION", "title": "Mrs."}, "rationale": "a new referral; register it", "seq": 49}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00050", "params": {"DOB": "1961-04-03", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jesswick.50@example.invalid", "fname": "Oren", "lname": "Jesswick", "phone_home": "555-0195", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "299 QUARRY HILL DRIVE", "title": "Mr."}, "seq": 50, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Oren\nLast name: Jesswick\nDate of birth: 1961-04-03\nSex: Male\nStreet: 299 QUARRY HILL DRIVE\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0195\nEmail: oren.jesswick.50@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "clean", "inject": [], "intended": {"DOB": "1961-04-03", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jesswick.50@example.invalid", "fname": "Oren", "lname": "Jesswick", "phone_home": "555-0195", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "299 QUARRY HILL DRIVE", "title": "Mr."}, "item_id": "ref-00050", "person": {"DOB": "1961-04-03", "city": "EXAMPLETON", "country_code": "USA", "email": "oren.jesswick.50@example.invalid", "fname": "Oren", "lname": "Jesswick", "phone_home": "555-0195", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "299 QUARRY HILL DRIVE", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 50}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00051", "params": {"DOB": "1949-12-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.ellwood.51@example.invalid", "fname": "Ola", "lname": "Ellwood", "phone_home": "555-0150", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "120 WAY", "title": "Mr."}, "seq": 51, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ola\nLast name: Ellwood\nDate of birth: 1949-12-12\nSex: Male\nStreet: 120 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0150\nEmail: ola.ellwood.51@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "clean", "inject": [], "intended": {"DOB": "1949-12-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.ellwood.51@example.invalid", "fname": "Ola", "lname": "Ellwood", "phone_home": "555-0150", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "120 WAY", "title": "Mr."}, "item_id": "ref-00051", "person": {"DOB": "1949-12-12", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.ellwood.51@example.invalid", "fname": "Ola", "lname": "Ellwood", "phone_home": "555-0150", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "120 WAY", "title": "Mr."}, "rationale": "a new referral; register it", "seq": 51}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00052", "params": {"DOB": "1975-08-19", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenridge.9005@example.invalid", "fname": "Odile", "lname": "Quenridge", "phone_home": "555-0138", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "474 WAY", "title": "Mr."}, "seq": 52, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Odile\nLast name: Quenridge\nDate of birth: 1975-08-19\nSex: Male\nStreet: 474 WAY\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0138\nEmail: odile.quenridge.9005@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "dup_existing", "inject": [], "intended": null, "item_id": "ref-00052", "person": {"DOB": "1975-08-19", "city": "EXAMPLETON", "country_code": "USA", "email": "odile.quenridge.9005@example.invalid", "fname": "Odile", "lname": "Quenridge", "phone_home": "555-0138", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "474 WAY", "title": "Mr."}, "rationale": "this patient already has a chart", "seq": 52}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00053", "params": {"DOB": "1978-07-04", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.ashby.53@example.invalid", "fname": "Bo", "lname": "Ashby", "phone_home": "", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "483 STREET CEDAR ROW", "title": "Mr."}, "seq": 53, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Bo\nLast name: Ashby\nDate of birth: 1978-07-04\nSex: Male\nStreet: 483 STREET CEDAR ROW\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: \nEmail: bo.ashby.53@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "missing_optional", "inject": [], "intended": {"DOB": "1978-07-04", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.ashby.53@example.invalid", "fname": "Bo", "lname": "Ashby", "phone_home": "", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "483 STREET CEDAR ROW", "title": "Mr."}, "item_id": "ref-00053", "person": {"DOB": "1978-07-04", "city": "EXAMPLETON", "country_code": "USA", "email": "bo.ashby.53@example.invalid", "fname": "Bo", "lname": "Ashby", "phone_home": "", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "483 STREET CEDAR ROW", "title": "Mr."}, "rationale": "no home phone; register without one", "seq": 53}, "type": "item"} +{"app": "openemr", "day": 8, "item_id": "ref-00054", "params": {"DOB": "1984-10-03", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.galwick.54@example.invalid", "fname": "Ola", "lname": "Galwick", "phone_home": "555-0106", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "186 ORCHARD LANE HARBOR", "title": "Mr."}, "seq": 54, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Mr.\nFirst name: Ola\nLast name: Galwick\nDate of birth: 1984-10-03\nSex: Male\nStreet: 186 ORCHARD LANE HARBOR\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0106\nEmail: ola.galwick.54@example.invalid\nCountry: USA\n", "truth": {"day": 8, "exception": "common_surname", "inject": [], "intended": {"DOB": "1984-10-03", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.galwick.54@example.invalid", "fname": "Ola", "lname": "Galwick", "phone_home": "555-0106", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "186 ORCHARD LANE HARBOR", "title": "Mr."}, "item_id": "ref-00054", "person": {"DOB": "1984-10-03", "city": "EXAMPLETON", "country_code": "USA", "email": "ola.galwick.54@example.invalid", "fname": "Ola", "lname": "Galwick", "phone_home": "555-0106", "postal_code": "02139", "sex": "Male", "state_label": "Massachusetts", "street": "186 ORCHARD LANE HARBOR", "title": "Mr."}, "rationale": "shares a last name with an existing chart; a different person", "seq": 54}, "type": "item"} +{"app": "openemr", "day": 9, "item_id": "ref-00055", "params": {"city": "EXAMPLETON", "country_code": "USA", "email": "farida.jessstead.55@example.invalid", "fname": "Farida", "lname": "Jessstead", "phone_home": "555-0198", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "263 AVENUE MILL ROAD", "title": "Ms."}, "seq": 55, "source_text": "REFERRAL - new patient registration requested\n\nTitle: Ms.\nFirst name: Farida\nLast name: Jessstead\nDate of birth: \nSex: Female\nStreet: 263 AVENUE MILL ROAD\nCity: EXAMPLETON\nState: Massachusetts\nZIP: 02139\nHome phone: 555-0198\nEmail: farida.jessstead.55@example.invalid\nCountry: USA\n", "truth": {"day": 9, "exception": "missing_required", "inject": [], "intended": null, "item_id": "ref-00055", "person": {"DOB": "1966-05-14", "city": "EXAMPLETON", "country_code": "USA", "email": "farida.jessstead.55@example.invalid", "fname": "Farida", "lname": "Jessstead", "phone_home": "555-0198", "postal_code": "02139", "sex": "Female", "state_label": "Massachusetts", "street": "263 AVENUE MILL ROAD", "title": "Ms."}, "rationale": "no date of birth; return the referral to the sender", "seq": 55}, "type": "item"} From d55a9e507c1da018056963936325a2b2131aa257 Mon Sep 17 00:00:00 2001 From: abrichr <richard.abrich@mldsai.com> Date: Sun, 25 Oct 2026 09:09:53 -0400 Subject: [PATCH 15/16] measure: relative run paths in the soak evidence; Phase 0 criteria stated precisely The committed ledgers, switch records and run logs carried paths from the machine that ran the soak. They are now written relative to the run's root, and the harness writes them that way itself (benchmark/lifecycle/paths.py). The reports recompute to the same results.json. The READMEs now say which Phase 0 criteria each run measures: throughput and silent wrongs. Fault coverage is measured separately (#1539). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --- packages/flow/benchmark/lifecycle/paths.py | 76 +++++++++++++++++++ .../benchmark/lifecycle/production_arm.py | 8 +- .../results/production-2026-10-24/README.md | 8 +- .../after/arm-ledger.jsonl | 2 +- .../production-2026-10-24/after/ledger.jsonl | 4 +- .../after/switch/switch.json | 2 +- .../before/switch/switch.json | 2 +- .../recovery-smoke/arm-ledger.jsonl | 2 +- .../recovery-smoke/ledger.jsonl | 4 +- .../recovery-smoke/switch/switch.json | 2 +- .../README.md | 2 +- .../run.log | 24 +++--- .../production-2026-10-25-final/README.md | 25 ++++-- .../arm-ledger.jsonl | 2 +- .../production-2026-10-25-final/run.log | 2 +- .../switch/switch.json | 2 +- .../production-2026-10-25-rerun/README.md | 22 +++--- .../arm-ledger.jsonl | 2 +- .../production-2026-10-25-rerun/run.log | 2 +- .../switch/switch.json | 2 +- packages/flow/benchmark/lifecycle/run.py | 2 + .../flow/benchmark/lifecycle_proof/run.py | 9 ++- .../flow/tests/test_lifecycle_benchmark.py | 39 ++++++++++ 23 files changed, 194 insertions(+), 51 deletions(-) create mode 100644 packages/flow/benchmark/lifecycle/paths.py diff --git a/packages/flow/benchmark/lifecycle/paths.py b/packages/flow/benchmark/lifecycle/paths.py new file mode 100644 index 000000000..fc1916021 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/paths.py @@ -0,0 +1,76 @@ +"""Keep host paths out of committed evidence. + +Ledgers, switch records and console rows are committed to a public +repository, so a path on the machine that ran the soak is written relative +to the run's root (its ``--out`` directory). A path under the working +directory is written relative to it. Any other path under the home +directory or a temporary directory keeps only its name. Paths inside the app +(a container's ``/var/www/...``) are left alone. +""" + +from __future__ import annotations + +import os +import re +import tempfile +from pathlib import Path +from typing import Any + +OUTSIDE = "<outside-run>" + +_TEMP_ROOTS = ("/tmp/", "/private/tmp/", "/var/folders/", "/private/var/folders/") + + +def _private_prefixes() -> list[str]: + prefixes = {str(Path.home()), tempfile.gettempdir(), *(_TEMP_ROOTS)} + for prefix in list(prefixes): + prefixes.add(os.path.realpath(prefix)) + return sorted((p.rstrip("/") + "/" for p in prefixes if p), key=len, reverse=True) + + +def record_path(path: Any, root: Path | str) -> str: + """``path`` as committed evidence records it.""" + + text = str(path) + if not os.path.isabs(text): + return text + resolved = os.path.realpath(text) + home = os.path.realpath(str(Path.home())) + bases = [root] + cwd = os.path.realpath(os.getcwd()) + # A working directory at or above home would keep the user's name. + if not (home == cwd or home.startswith(cwd.rstrip("/") + "/")): + bases.append(cwd) + for base in bases: + base_real = os.path.realpath(str(base)) + for candidate in (text, resolved): + if candidate == base_real or candidate.startswith(base_real + "/"): + rel = os.path.relpath(candidate, base_real) + return "." if rel == "." else Path(rel).as_posix() + base_text = str(base).rstrip("/") + if text.startswith(base_text + "/"): + return Path(os.path.relpath(text, base_text)).as_posix() + if any(text.startswith(prefix) for prefix in _private_prefixes()): + return f"{OUTSIDE}/{Path(text).name}" + return text + + +def _pattern() -> re.Pattern[str]: + alternatives = "|".join(re.escape(p) for p in _private_prefixes()) + return re.compile(rf"(?:{alternatives})[^\s\"'`,;)\]}}]*") + + +def relative_paths(value: Any, root: Path | str) -> Any: + """``value`` with every host path, alone or inside text, made relative.""" + + if isinstance(value, Path): + return record_path(value, root) + if isinstance(value, str): + if os.path.isabs(value) and not any(ch.isspace() for ch in value): + return record_path(value, root) + return _pattern().sub(lambda m: record_path(m.group(0), root), value) + if isinstance(value, dict): + return {k: relative_paths(v, root) for k, v in value.items()} + if isinstance(value, (list, tuple)): + return [relative_paths(v, root) for v in value] + return value diff --git a/packages/flow/benchmark/lifecycle/production_arm.py b/packages/flow/benchmark/lifecycle/production_arm.py index 59c9452f7..874522f3f 100644 --- a/packages/flow/benchmark/lifecycle/production_arm.py +++ b/packages/flow/benchmark/lifecycle/production_arm.py @@ -46,6 +46,7 @@ from typing import Any, Optional from .arm import Env, ItemResult, OperatorRequest, WorkItem +from .paths import relative_paths DEFAULT_KEYS = Path.home() / "oa" / "scratch" / "compose-proof" / "keys" APPROVER_ID = "lifecycle-soak-operator" @@ -54,13 +55,16 @@ class _Ledger: """The arm's own detail log (the harness ledger holds the results).""" - def __init__(self, path: Path) -> None: + def __init__(self, path: Path, root: Optional[Path] = None) -> None: self.path = path + #: Paths in rows are written relative to the run's root. + self.root = root or path.parent path.parent.mkdir(parents=True, exist_ok=True) self._lock = threading.Lock() def add(self, kind: str, **fields: Any) -> None: row = {"at": round(time.time(), 3), "kind": kind, **fields} + row = relative_paths(row, self.root) with self._lock, self.path.open("a") as handle: handle.write(json.dumps(row, sort_keys=True, default=str) + "\n") @@ -202,7 +206,7 @@ def setup(self, env: Env, operator: Any) -> list[dict[str, Any]]: from benchmark.lifecycle_proof import run as proof out = env.workdir - ledger = _Ledger(out / "arm-ledger.jsonl") + ledger = _Ledger(out / "arm-ledger.jsonl", root=out.parent.parent) ctx = proof._context(out, self.keys_dir, ledger) # type: ignore[arg-type] person = OperatorPerson(ledger) person.operator = operator diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md index 0411a67fa..f319d8292 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md @@ -278,13 +278,15 @@ Each of `before/`, `after/` and `recovery-smoke/` holds: ## Reproduce -Take the fixture lease first (`~/oa/scratch/fixture-lease/README.md`). Then, +Run one Docker fixture at a time. Set `STATE_DIR` to a directory for the +fixture's state and `KEYS_DIR` to one for its test keys, both outside the +repository. Then, from `packages/flow`: ```bash export LIFECYCLE_OPENEMR_PROJECT=openadapt-openemr-compose LIFECYCLE_UI_PORT=9401 LIFECYCLE_API_PORT=9400 -export LIFECYCLE_OPENEMR_STATE=~/oa/scratch/compose-proof/openemr-state PYTHONPATH=.:../types -python -m benchmark.lifecycle_proof.run up --out /tmp/up --keys ~/oa/scratch/compose-proof/keys +export LIFECYCLE_OPENEMR_STATE=$STATE_DIR PYTHONPATH=.:../types +python -m benchmark.lifecycle_proof.run up --out runs/up --keys $KEYS_DIR python -m benchmark.lifecycle.run --app openemr --seed 7 --items 55 --days 10 --drift relabel_save@26 \ --arm benchmark.lifecycle.production_arm:make --arm-options '{"recovery":"none"}' --out <dir> python -m benchmark.lifecycle.run --app openemr --seed 7 --items 55 --days 10 --drift relabel_save@26 \ diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/arm-ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/arm-ledger.jsonl index d60f2ca2d..e4ca1a2a4 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/arm-ledger.jsonl +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/arm-ledger.jsonl @@ -15,7 +15,7 @@ {"action": "approve", "at": 1792877073.152, "item": "ref-00023", "kind": "person", "request_id": "46b574fc76814ef6a1948a242e44d572"} {"action": "approve", "at": 1792877427.578, "item": "ref-00025", "kind": "person", "request_id": "dfba91fbcde54b8db802b0ef7e02adcc"} {"action": "approve", "at": 1792877546.587, "item": "ref-00026", "kind": "person", "request_id": "44aba42af969451f91503f2008789b83"} -{"at": 1792877568.579, "candidate": "/Users/abrichr/oa/scratch/production-lifecycle/runs/soak-after-2/arms/openadapt-production-relabel/items/ref-00026-relabel/candidate", "kind": "drift.requalify.start"} +{"at": 1792877568.579, "candidate": "runs/soak-after-2/arms/openadapt-production-relabel/items/ref-00026-relabel/candidate", "kind": "drift.requalify.start"} {"at": 1792878326.425, "kind": "drift.requalify.end"} {"at": 1792878330.91, "bundle": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-c0a61b16b9d8-1792878330"} {"action": "approve", "at": 1792878434.742, "item": "ref-00026", "kind": "person", "request_id": "dd14459300104427a2ecf48db3c110e1"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/ledger.jsonl index ca3957d51..720cb399e 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/ledger.jsonl +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/ledger.jsonl @@ -1,6 +1,6 @@ {"app": {"api_url": "https://127.0.0.1:9400", "app": "openemr", "baseline_sha256": "015bef02fb30530e2ed64c17e8035623a39801a9008f2df307eaf53e420e98ba", "images": {"mariadb": "mariadb:11.8@sha256:efb4959ef2c835cd735dbc388eb9ad6aab0c78dd64febcd51bc17481111890c4", "openemr": "openemr/openemr:8.0.0.3@sha256:0aa4d3d52b22fa69986c087e7c99e9854d8dfd70440634eb7c8af0e08f19f3ab"}, "project": "openadapt-openemr-compose", "ui_url": "http://127.0.0.1:9401", "version": "8.0.0.3"}, "argv": null, "arm": "", "cost_model": {"admit_s": 300.0, "approval_s": 20.0, "calibration": "No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds).", "compile_review_s": 600.0, "interrupt_s": 30.0, "manual_entry_s": 180.0, "question_s": 60.0, "reconcile_s": 120.0, "repair_review_s": 120.0, "stop_s": 90.0, "teach_prep_s": 300.0, "version": "lifecycle-cost/2026-10-20.1"}, "cpus": 12, "days": 10, "engine_commit": "26947f9683d6b08809f9bea03c004c326092ef89", "host": "MacBook-Pro-5", "items": 55, "platform": "macOS-15.7.3-arm64-arm-64bit", "protocol": "lifecycle/2026-10-20.1", "seed": 7, "stop_after": null, "t": 1792873961.882, "type": "run_start", "workload": "lifecycle-workload/2026-10-24.1"} -{"arm": "openadapt-production-relabel", "arm_spec": "benchmark.lifecycle.production_arm:make", "describe": {"api_tier": "where admissible (refused on the OpenEMR referral by its own proposal; the GUI save runs)", "approval": "problems_only (local stand-in for Cloud's switch status)", "authorization": "governed run gate on the certified, encrypted bundle", "checkpoint_store": "encrypted", "configuration": "benchmark/lifecycle_proof (proof-15)", "duplicate_check": "no_duplicate_candidate on step_039 (rows tr.oneresult; a row with the item's last name or date of birth stops the item)", "durable": true, "model_calls": "none on any path", "pin": "admitted digest; repaired versions only through signed lineage", "policy": "clinical-write", "profile": "regulated", "qualification_trials": 1, "readback": "pipelined, window 1; the harness waits for each check", "recovery": "relabel", "repair": "self-repair on a halt before any effect (rule-based agent, no model)"}, "existing_ids": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], "interface": "lifecycle-arm/1", "options": {"admission_from": "/Users/abrichr/oa/scratch/production-lifecycle/runs/smoke-3b/arms/openadapt-production-relabel", "duplicate_check": true, "recovery": "relabel"}, "t": 1792873971.962, "type": "arm_start"} -{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "teach and compile happened before this run (the certified referral bundle); onboarding effort is measured in benchmark/onboarding_effort", "phase": "admit", "pinned_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "reused_from": {"digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "seconds": 796.3, "workdir": "/Users/abrichr/oa/scratch/production-lifecycle/runs/smoke-3b/arms/openadapt-production-relabel"}, "stage": "setup", "t": 1792873972.709, "type": "phase", "wall_s": 796.3} +{"arm": "openadapt-production-relabel", "arm_spec": "benchmark.lifecycle.production_arm:make", "describe": {"api_tier": "where admissible (refused on the OpenEMR referral by its own proposal; the GUI save runs)", "approval": "problems_only (local stand-in for Cloud's switch status)", "authorization": "governed run gate on the certified, encrypted bundle", "checkpoint_store": "encrypted", "configuration": "benchmark/lifecycle_proof (proof-15)", "duplicate_check": "no_duplicate_candidate on step_039 (rows tr.oneresult; a row with the item's last name or date of birth stops the item)", "durable": true, "model_calls": "none on any path", "pin": "admitted digest; repaired versions only through signed lineage", "policy": "clinical-write", "profile": "regulated", "qualification_trials": 1, "readback": "pipelined, window 1; the harness waits for each check", "recovery": "relabel", "repair": "self-repair on a halt before any effect (rule-based agent, no model)"}, "existing_ids": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], "interface": "lifecycle-arm/1", "options": {"admission_from": "runs/smoke-3b/arms/openadapt-production-relabel", "duplicate_check": true, "recovery": "relabel"}, "t": 1792873971.962, "type": "arm_start"} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "teach and compile happened before this run (the certified referral bundle); onboarding effort is measured in benchmark/onboarding_effort", "phase": "admit", "pinned_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "reused_from": {"digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "seconds": 796.3, "workdir": "runs/smoke-3b/arms/openadapt-production-relabel"}, "stage": "setup", "t": 1792873972.709, "type": "phase", "wall_s": 796.3} {"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "problems_only switch opened locally, as Cloud would", "phase": "switch", "stage": "setup", "t": 1792873972.709, "type": "phase", "wall_s": 0.3} {"arm": "openadapt-production-relabel", "chart_wanted": true, "claimed": "done", "cleared": [], "cost_usd": 0.0, "day": 0, "detail": {"final": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "first_run": {"approval": {"decision": "no_person", "decision_reason": null, "mode": "problems_only", "needs_person": false}, "bundle_content_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "execution_outcome": "VERIFIED", "execution_profile": "regulated", "halt": null, "model_calls": 0, "readback": [], "save_api_fallback": null, "save_effect_verified": true, "save_step": "step_040", "success": true, "transaction_outcome": "VERIFIED"}, "run_dir": "items/ref-00001"}, "drift_active": [], "evidence": "items/ref-00001", "exception": "clean", "final": {"new_charts": 1, "verdict": "correct"}, "final_oracle": "correct", "harness_wall_s": 122.74, "injected": [], "item_id": "ref-00001", "load_1m": 7.0, "load_1m_end": 7.2, "model_calls": 0, "oracle": {"collateral_ids": [], "new_charts": 1, "new_ids": ["13"], "verdict": "correct", "why": "one chart, every field right"}, "outcome": "correct", "product_status": "VERIFIED / VERIFIED", "seq": 1, "shares_with_existing": {"DOB": 0, "fname": 1, "lname": 0}, "t": 1792874095.554, "type": "item_result", "wall_s": 122.27} {"action": "do_by_hand", "arm": "openadapt-production-relabel", "by_hand": {"chart_id": "14"}, "charged_s": 300.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"approval": {"decision": "problem", "decision_reason": "halted_before_effect", "mode": "problems_only", "needs_person": true}, "resumable": false, "transaction_outcome": "HALTED_BEFORE_EFFECT"}, "item_id": "ref-00002", "kind": "stop", "operator": "scripted", "reason": "HALTED_BEFORE_EFFECT: Postconditions failed for step 'step_039' (click 'Create New Patient'): expected screen state not reached (semantic drift) \u2014 failed: no_duplicate_candidate (no listed row has this run's lname, DOB) \u2014 run aborted", "rule": "enter_by_hand", "seq": 2, "surface": "openadapt-flow explain / approve / resume", "t": 1792874337.568, "type": "operator"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/switch.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/switch.json index 76aa79a99..a89f1fe74 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/switch.json +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/switch.json @@ -1,5 +1,5 @@ { - "log": "/Users/abrichr/oa/scratch/production-lifecycle/runs/soak-after-2/arms/openadapt-production-relabel/switch/log-1792878330.jsonl", + "log": "runs/soak-after-2/arms/openadapt-production-relabel/switch/log-1792878330.jsonl", "record": { "allowed_interstitials": {}, "bundle_content_digest": "c0a61b16b9d895eb7f7abf2791634485db5afd59993b7e31f788739d9611697d", diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/switch/switch.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/switch/switch.json index 4de9574b5..1ed14775b 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/switch/switch.json +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/switch/switch.json @@ -1,5 +1,5 @@ { - "log": "/Users/abrichr/oa/scratch/production-lifecycle/runs/soak-before/arms/openadapt-production/switch/log-1792868032.jsonl", + "log": "runs/soak-before/arms/openadapt-production/switch/log-1792868032.jsonl", "record": { "allowed_interstitials": {}, "bundle_content_digest": "163eeff429c5e242828557cdc2a9c9cac033b4cf2c5679de955b63aaf3740d94", diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/arm-ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/arm-ledger.jsonl index f3edb188c..7e9894b3d 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/arm-ledger.jsonl +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/arm-ledger.jsonl @@ -1,5 +1,5 @@ {"at": 1792865787.129, "bundle": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-ecfb998b8ff7-1792865787"} -{"at": 1792865921.172, "candidate": "/Users/abrichr/oa/scratch/production-lifecycle/runs/smoke-5/arms/openadapt-production-relabel/items/ref-00001-relabel/candidate", "kind": "drift.requalify.start"} +{"at": 1792865921.172, "candidate": "runs/smoke-5/arms/openadapt-production-relabel/items/ref-00001-relabel/candidate", "kind": "drift.requalify.start"} {"at": 1792866766.734, "kind": "drift.requalify.end"} {"at": 1792866771.456, "bundle": "bbb693b01824f47b414b5dd54425f16502a7533c74e797116ff8f4f8a1925577", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-bbb693b01824-1792866771"} {"action": "approve", "at": 1792866901.352, "item": "ref-00001", "kind": "person", "request_id": "c33b11d19200406d954dea9c320b1781"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/ledger.jsonl index f4849213c..846dd0466 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/ledger.jsonl +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/ledger.jsonl @@ -1,6 +1,6 @@ {"app": {"api_url": "https://127.0.0.1:9400", "app": "openemr", "baseline_sha256": "015bef02fb30530e2ed64c17e8035623a39801a9008f2df307eaf53e420e98ba", "images": {"mariadb": "mariadb:11.8@sha256:efb4959ef2c835cd735dbc388eb9ad6aab0c78dd64febcd51bc17481111890c4", "openemr": "openemr/openemr:8.0.0.3@sha256:0aa4d3d52b22fa69986c087e7c99e9854d8dfd70440634eb7c8af0e08f19f3ab"}, "project": "openadapt-openemr-compose", "ui_url": "http://127.0.0.1:9401", "version": "8.0.0.3"}, "argv": null, "arm": "", "cost_model": {"admit_s": 300.0, "approval_s": 20.0, "calibration": "No timings from real operators exist yet. Desktop and the console record when a request was raised and when it was answered, but every answer on record was given by a script, so those gaps measure the harness, not a person. Until Desktop has real operator telemetry, the per-touch numbers below are assumptions: keystroke-level estimates for reading a card and clicking (approval), plus looking a record up in the app (stop, reconcile), and a typed-entry estimate for a 12-field registration form (manual entry: about 120 characters at 40 words a minute, plus reading the referral and the duplicate search). The interrupt charge is the resumption lag reported in interruption studies (tens of seconds).", "compile_review_s": 600.0, "interrupt_s": 30.0, "manual_entry_s": 180.0, "question_s": 60.0, "reconcile_s": 120.0, "repair_review_s": 120.0, "stop_s": 90.0, "teach_prep_s": 300.0, "version": "lifecycle-cost/2026-10-20.1"}, "cpus": 12, "days": 1, "engine_commit": "fd0bdcbac8078732334b66666929a15321fce3a1", "host": "MacBook-Pro-5", "items": 2, "platform": "macOS-15.7.3-arm64-arm-64bit", "protocol": "lifecycle/2026-10-20.1", "seed": 7, "stop_after": null, "t": 1792865776.128, "type": "run_start", "workload": "lifecycle-workload/2026-10-20.2"} -{"arm": "openadapt-production-relabel", "arm_spec": "benchmark.lifecycle.production_arm:make", "describe": {"api_tier": "where admissible (refused on the OpenEMR referral by its own proposal; the GUI save runs)", "approval": "problems_only (local stand-in for Cloud's switch status)", "authorization": "governed run gate on the certified, encrypted bundle", "checkpoint_store": "encrypted", "configuration": "benchmark/lifecycle_proof (proof-15)", "duplicate_check": "no_duplicate_candidate on step_039 (rows tr.oneresult; a row with the item's last name or date of birth stops the item)", "durable": true, "model_calls": "none on any path", "pin": "admitted digest; repaired versions only through signed lineage", "policy": "clinical-write", "profile": "regulated", "qualification_trials": 1, "readback": "pipelined, window 1; the harness waits for each check", "recovery": "relabel", "repair": "self-repair on a halt before any effect (rule-based agent, no model)"}, "existing_ids": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], "interface": "lifecycle-arm/1", "options": {"admission_from": "/Users/abrichr/oa/scratch/production-lifecycle/runs/smoke-3b/arms/openadapt-production-relabel", "duplicate_check": true, "recovery": "relabel"}, "t": 1792865786.389, "type": "arm_start"} -{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "teach and compile happened before this run (the certified referral bundle); onboarding effort is measured in benchmark/onboarding_effort", "phase": "admit", "pinned_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "reused_from": {"digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "seconds": 796.3, "workdir": "/Users/abrichr/oa/scratch/production-lifecycle/runs/smoke-3b/arms/openadapt-production-relabel"}, "stage": "setup", "t": 1792865787.132, "type": "phase", "wall_s": 796.3} +{"arm": "openadapt-production-relabel", "arm_spec": "benchmark.lifecycle.production_arm:make", "describe": {"api_tier": "where admissible (refused on the OpenEMR referral by its own proposal; the GUI save runs)", "approval": "problems_only (local stand-in for Cloud's switch status)", "authorization": "governed run gate on the certified, encrypted bundle", "checkpoint_store": "encrypted", "configuration": "benchmark/lifecycle_proof (proof-15)", "duplicate_check": "no_duplicate_candidate on step_039 (rows tr.oneresult; a row with the item's last name or date of birth stops the item)", "durable": true, "model_calls": "none on any path", "pin": "admitted digest; repaired versions only through signed lineage", "policy": "clinical-write", "profile": "regulated", "qualification_trials": 1, "readback": "pipelined, window 1; the harness waits for each check", "recovery": "relabel", "repair": "self-repair on a halt before any effect (rule-based agent, no model)"}, "existing_ids": ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"], "interface": "lifecycle-arm/1", "options": {"admission_from": "runs/smoke-3b/arms/openadapt-production-relabel", "duplicate_check": true, "recovery": "relabel"}, "t": 1792865786.389, "type": "arm_start"} +{"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "teach and compile happened before this run (the certified referral bundle); onboarding effort is measured in benchmark/onboarding_effort", "phase": "admit", "pinned_digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "reused_from": {"digest": "ecfb998b8ff70377159e0bbe6d2b8735369d971ff23483944e217eb8e3baaa7e", "seconds": 796.3, "workdir": "runs/smoke-3b/arms/openadapt-production-relabel"}, "stage": "setup", "t": 1792865787.132, "type": "phase", "wall_s": 796.3} {"arm": "openadapt-production-relabel", "attended_s": 0.0, "cost_usd": 0.0, "model_calls": 0, "note": "problems_only switch opened locally, as Cloud would", "phase": "switch", "stage": "setup", "t": 1792865787.132, "type": "phase", "wall_s": 0.3} {"applied": {"kind": "relabel_save", "labels": {"Confirm Create New Patient": "Save new patient"}}, "arm": "openadapt-production-relabel", "day": 0, "first_seq": 1, "kind": "relabel_save", "t": 1792865787.306, "type": "drift_applied"} {"action": "accept_repair", "arm": "openadapt-production-relabel", "charged_s": 150.0, "cost_model": "lifecycle-cost/2026-10-20.1", "detail": {"certified_digest": "bbb693b01824f47b414b5dd54425f16502a7533c74e797116ff8f4f8a1925577", "fresh_admission": "the repair changes the program's record check; it needs a person's fresh admission", "probes_passed": true, "release_changed_files": ["/var/www/localhost/htdocs/openemr/interface/new/new_search_popup.php"], "requalified_cases": 6}, "item_id": "ref-00001", "kind": "repair_review", "operator": "scripted", "reason": "step_040: the control now reads 'Save new patient' instead of 'Confirm Create New Patient'; its id, kind and form are unchanged (the recorded identity hash matches with only the label swapped back)", "rule": "repair_drift_and_probes_passed", "seq": 1, "surface": "openadapt-flow repair relabel (review card)", "t": 1792866771.172, "type": "operator"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/switch.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/switch.json index d4d3f40ed..913da14c1 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/switch.json +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/switch.json @@ -1,5 +1,5 @@ { - "log": "/Users/abrichr/oa/scratch/production-lifecycle/runs/smoke-5/arms/openadapt-production-relabel/switch/log-1792866771.jsonl", + "log": "runs/smoke-5/arms/openadapt-production-relabel/switch/log-1792866771.jsonl", "record": { "allowed_interstitials": {}, "bundle_content_digest": "bbb693b01824f47b414b5dd54425f16502a7533c74e797116ff8f4f8a1925577", diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/README.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/README.md index ba263ba48..c4d37bd15 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/README.md +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/README.md @@ -7,7 +7,7 @@ on origin/main 6dc0be40e plus #1516 (4b635f2d6) plus the harness. Branch at the start, below the 40 limit. No item ran. The program could not be admitted, so there are no -throughput numbers and no Phase 0 verdict from this run. +throughput numbers and no Phase 0 result from this run. ## What failed diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/run.log b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/run.log index d112e3a6d..c9301652d 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/run.log +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/run.log @@ -1,5 +1,5 @@ -~/oa/scratch/production-lifecycle/final-run.sh:6: no matches found: ~/oa/scratch/fixture-lease/held-* -~/oa/scratch/production-lifecycle/final-run.sh:6: no matches found: ~/oa/scratch/fixture-lease/held-* +final-run.sh:6: no matches found: $LEASE_DIR/held-* +final-run.sh:6: no matches found: $LEASE_DIR/held-* LEASE TAKEN Sun Oct 25 04:13:56 EDT 2026 4:13 up 59 days, 8:50, 68 users, load averages: 20.85 19.17 19.75 /dev/disk3s5 1858 1766 43 98% 25827549 458164720 5% /System/Volumes/Data @@ -11,7 +11,7 @@ issues with non-podman clients, you can switch using the following command: podman machine set --rootful openadapt-benchmark -API forwarding listening on: /var/folders/35/pqjnmmwx24d2mtf4frt5dhcc0000gn/T/podman/openadapt-benchmark-api.sock +API forwarding listening on: $PODMAN_API_SOCK The system helper service is not installed; the default Docker API socket address can't be used by podman. If you would like to install it, run the following commands: @@ -22,31 +22,31 @@ address can't be used by podman. If you would like to install it, run the follow You can still connect Docker API clients by setting DOCKER_HOST using the following command in your terminal session: - export DOCKER_HOST='unix:///var/folders/35/pqjnmmwx24d2mtf4frt5dhcc0000gn/T/podman/openadapt-benchmark-api.sock' + export DOCKER_HOST='unix://$PODMAN_API_SOCK' Machine "openadapt-benchmark" started successfully COMMIT 9eb8912a07082a8a914a275aeb1a3ec5a67e53d1 -saved ~/oa/scratch/compose-proof/openemr-state/fresh-oauth-keys.sql +saved $LIFECYCLE_OPENEMR_STATE/fresh-oauth-keys.sql [openadapt-production-relabel] resetting the app to its baseline [openadapt-production-relabel] setup -~/oa/worktrees/lifecycle-rerun/packages/flow/openadapt_flow/report.py:283: PlaintextPHIWarning: Writing REPORT.md with PLAINTEXT identity-like text: PHI scrubbing is not active (OPENADAPT_FLOW_SCRUB=auto and the 'privacy' extra is not installed). This shareable report may contain patient name/DOB/MRN. Install it (pip install 'openadapt-flow[privacy]' && python -m spacy download en_core_web_sm) and set OPENADAPT_FLOW_SCRUB=on to scrub and fail closed. +packages/flow/openadapt_flow/report.py:283: PlaintextPHIWarning: Writing REPORT.md with PLAINTEXT identity-like text: PHI scrubbing is not active (OPENADAPT_FLOW_SCRUB=auto and the 'privacy' extra is not installed). This shareable report may contain patient name/DOB/MRN. Install it (pip install 'openadapt-flow[privacy]' && python -m spacy download en_core_web_sm) and set OPENADAPT_FLOW_SCRUB=on to scrub and fail closed. _warn_if_plaintext_phi(report) Traceback (most recent call last): File "<frozen runpy>", line 198, in _run_module_as_main File "<frozen runpy>", line 88, in _run_code - File "~/oa/worktrees/lifecycle-rerun/packages/flow/benchmark/lifecycle/run.py", line 468, in <module> + File "packages/flow/benchmark/lifecycle/run.py", line 468, in <module> raise SystemExit(main()) ^^^^^^ - File "~/oa/worktrees/lifecycle-rerun/packages/flow/benchmark/lifecycle/run.py", line 447, in main + File "packages/flow/benchmark/lifecycle/run.py", line 447, in main run_arm( - File "~/oa/worktrees/lifecycle-rerun/packages/flow/benchmark/lifecycle/run.py", line 183, in run_arm + File "packages/flow/benchmark/lifecycle/run.py", line 183, in run_arm for phase in arm.setup(env, operator): ^^^^^^^^^^^^^^^^^^^^^^^^ - File "~/oa/worktrees/lifecycle-rerun/packages/flow/benchmark/lifecycle/production_arm.py", line 227, in setup + File "packages/flow/benchmark/lifecycle/production_arm.py", line 227, in setup proof.phase_admit(ctx, source, self.trials) - File "~/oa/worktrees/lifecycle-rerun/packages/flow/benchmark/lifecycle_proof/run.py", line 586, in phase_admit + File "packages/flow/benchmark/lifecycle_proof/run.py", line 586, in phase_admit qual = qualify( ^^^^^^^^ - File "~/oa/worktrees/lifecycle-rerun/packages/flow/openadapt_flow/qualify/campaign.py", line 1509, in qualify + File "packages/flow/openadapt_flow/qualify/campaign.py", line 1509, in qualify raise QualifyError(f"{case_id} trial {trial}: {failure}") openadapt_flow.qualify.campaign.QualifyError: representative trial 1: observed HALTED, expected VERIFIED (Step 'step_015' (scroll by (0, 300)): closed-loop scroll exhausted its budget (600px of 750px allowed, 2.5x the recorded distance) without the anchor of step 'step_016' (click recorded visual target) resolving — target never came into view; run aborted) diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/README.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/README.md index bc217d340..b088e817a 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/README.md +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/README.md @@ -87,13 +87,21 @@ Where the 48.3 operator minutes went: afresh with its own switch, which stayed on through item 55. No re-arm was needed or offered. -### Phase 0 gate: met +### Phase 0: throughput and silent-wrong criteria met -The gate is at least 2 times hand entry at 3 minutes per item, with 0 silent -wrongs. This run reached 3.17 times, with 0 silent wrongs in 41 items claimed -done (judged by direct SQL, never by the product's verdict). The per-touch -charges are the cost model's assumptions, not timings from real operators -(see `REPORT.md`). +Phase 0 has three criteria: at least 2 times hand entry at 3 minutes per +item, 0 silent wrongs, and at least 15 of 17 independent faults caught. This +run measures the first two: + +- **Throughput: met.** The run reached 3.17 times hand entry. +- **Silent wrongs: met.** There were 0 in the 41 items claimed done, judged by + direct SQL and never by the product's verdict. +- **Fault coverage: measured separately** (#1539, the independent fault + suite). This run says nothing about it, so it doesn't show that Phase 0 is + met overall. + +The per-touch charges are the cost model's assumptions, not timings from real +operators (see `REPORT.md`). ### Items timed with host load above 40 @@ -163,6 +171,11 @@ an existing chart were all registered correctly, with no person. ## Files +Paths in the committed files are relative to the run's root (`runs/<name>/`). +They were rewritten from the paths of the machine that ran the soak, and the +harness now writes them relative itself (`benchmark/lifecycle/paths.py`). The +report recomputes to the same `results.json`. + Everything is computed from `ledger.jsonl` (`python -m benchmark.lifecycle.report <dir>`): diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/arm-ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/arm-ledger.jsonl index ab8dfac75..2c64d373a 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/arm-ledger.jsonl +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/arm-ledger.jsonl @@ -19,6 +19,6 @@ {"at": 1792924547.382, "certified": true, "digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "kind": "admit.qualify", "passed": true, "rows": [{"case_id": "representative", "expected": "VERIFIED", "transaction_outcome": "VERIFIED", "trial": 1}, {"case_id": "fault-ambiguity", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-wrong-identity", "expected": "HALTED", "transaction_outcome": "REJECTED_POLICY", "trial": 1}, {"case_id": "fault-stale-identity", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-weak-effect", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}, {"case_id": "fault-missing-effect", "expected": "HALTED", "transaction_outcome": "HALTED_BEFORE_EFFECT", "trial": 1}], "seconds": 799.4} {"at": 1792924547.383, "kind": "admit", "pinned_digest": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "seconds": 799.4} {"at": 1792924549.624, "bundle": "6d9c18d67786b8d99fcf6a288ee7a06b3477b5f19d901a8a7f3895e9eebe56d8", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-6d9c18d67786-1792924549"} -{"at": 1792927836.399, "candidate": "/Users/abrichr/oa/scratch/production-lifecycle/runs/soak-final-2/arms/openadapt-production-relabel/items/ref-00026-relabel/candidate", "kind": "drift.requalify.start"} +{"at": 1792927836.399, "candidate": "runs/soak-final-2/arms/openadapt-production-relabel/items/ref-00026-relabel/candidate", "kind": "drift.requalify.start"} {"at": 1792928593.695, "kind": "drift.requalify.end"} {"at": 1792928598.086, "bundle": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-6935ae303537-1792928598"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/run.log b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/run.log index b2e856772..5e0704e25 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/run.log +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/run.log @@ -11,7 +11,7 @@ LEASE TAKEN Sun Oct 25 06:22:14 EDT 2026 Starting machine "openadapt-benchmark" Error: unable to start "openadapt-benchmark": already running COMMIT 8bfd7f6af84135425ae55dddc09abdcb3dface23 -saved ~/oa/scratch/compose-proof/openemr-state/fresh-oauth-keys.sql +saved $LIFECYCLE_OPENEMR_STATE/fresh-oauth-keys.sql [openadapt-production-relabel] resetting the app to its baseline [openadapt-production-relabel] setup [openadapt-production-relabel] 1 ref-00001 clean claimed=done oracle=correct -> correct final=correct 120.5s load=4.3 diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/switch.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/switch.json index cd11116d9..cc7e997fa 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/switch.json +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/switch.json @@ -1,5 +1,5 @@ { - "log": "/Users/abrichr/oa/scratch/production-lifecycle/runs/soak-final-2/arms/openadapt-production-relabel/switch/log-1792928598.jsonl", + "log": "runs/soak-final-2/arms/openadapt-production-relabel/switch/log-1792928598.jsonl", "record": { "allowed_interstitials": {}, "bundle_content_digest": "6935ae303537bf6d6806ed16f50a0aced834814b79fd5ed4a078e8abed54f669", diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/README.md b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/README.md index b4d08fbb7..caf87f3fc 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/README.md +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/README.md @@ -59,19 +59,21 @@ From item 13 on, every saved item waited for a person's approval: #1517's head classes these correctly, with tests. This run therefore **under-states** the policy's effect. The numbers below are as measured. -## Phase 0 gate: not met +## Phase 0 gate: throughput criterion not met -The gate is at least 2 times the by-hand rate at 3 minutes per item, with 0 -silent wrongs. This run measured **1.97 times**, just under 2, with **0 silent -wrongs**. So the gate is **not met** on this run: +Phase 0 has three criteria: at least 2 times the by-hand rate at 3 minutes +per item, 0 silent wrongs, and at least 15 of 17 independent faults caught. +This run measures the first two: -- the rate condition fails, by 0.03; -- the silent-wrong condition holds; -- the run used an older switch-policy commit (see the deviation below), so - the result understates the policy as merged. +- **Throughput: not met.** The run measured 1.97 times, 0.03 under 2. It used + an older switch-policy commit (see the deviation below), so the result + understates the policy as merged. +- **Silent wrongs: met.** There were 0. +- **Fault coverage: not measured here.** It is measured separately (#1539, + the independent fault suite). -A further 55-item run on main (with #1517 merged) plus #1516 is queued to -measure the policy as merged. +The final run on main ([`production-2026-10-25-final`](../production-2026-10-25-final/README.md)) +measures the policy as merged. ## Results diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/arm-ledger.jsonl b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/arm-ledger.jsonl index 73f0d470e..aa490c966 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/arm-ledger.jsonl +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/arm-ledger.jsonl @@ -30,7 +30,7 @@ {"action": "approve", "at": 1792910533.584, "item": "ref-00023", "kind": "person", "request_id": "9e2b9566b4df4258a1e5e33db751336a"} {"action": "approve", "at": 1792910956.424, "item": "ref-00025", "kind": "person", "request_id": "ddd8effde3c848f9a0d7f00f3d837ea3"} {"action": "approve", "at": 1792911079.295, "item": "ref-00026", "kind": "person", "request_id": "a52a4c0888544984ad5041f614f6c50f"} -{"at": 1792911101.848, "candidate": "/Users/abrichr/oa/scratch/production-lifecycle/runs/soak-after-policy-2/arms/openadapt-production-relabel/items/ref-00026-relabel/candidate", "kind": "drift.requalify.start"} +{"at": 1792911101.848, "candidate": "runs/soak-after-policy-2/arms/openadapt-production-relabel/items/ref-00026-relabel/candidate", "kind": "drift.requalify.start"} {"at": 1792911867.101, "kind": "drift.requalify.end"} {"at": 1792911871.809, "bundle": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", "dialogs": {}, "kind": "switch.open", "rung_floor": {"step_000": "structural", "step_003": "structural", "step_006": "structural", "step_009": "structural", "step_012": "structural", "step_016": "structural", "step_018": "structural", "step_021": "structural", "step_024": "structural", "step_027": "structural", "step_030": "structural", "step_033": "structural", "step_036": "structural", "step_039": "structural", "step_040": "structural"}, "switch_id": "switch-lifecycle-proof-959971d5e5ef-1792911871"} {"action": "approve", "at": 1792911976.769, "item": "ref-00026", "kind": "person", "request_id": "68dc2fec01b546dabf944349c7b295f3"} diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/run.log b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/run.log index 757a839c1..fd5460a95 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/run.log +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/run.log @@ -1,5 +1,5 @@ COMMIT 38fc21afbfff08275d77fd8f61972ad49c28cbf4 -saved /Users/abrichr/oa/scratch/compose-proof/openemr-state/fresh-oauth-keys.sql +saved $LIFECYCLE_OPENEMR_STATE/fresh-oauth-keys.sql [openadapt-production-relabel] resetting the app to its baseline [openadapt-production-relabel] setup [openadapt-production-relabel] 1 ref-00001 clean claimed=done oracle=correct -> correct final=correct 164.9s load=94.9 diff --git a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/switch.json b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/switch.json index 3dbcc4027..578e4bc4b 100644 --- a/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/switch.json +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/switch.json @@ -1,5 +1,5 @@ { - "log": "/Users/abrichr/oa/scratch/production-lifecycle/runs/soak-after-policy-2/arms/openadapt-production-relabel/switch/log-1792911871.jsonl", + "log": "runs/soak-after-policy-2/arms/openadapt-production-relabel/switch/log-1792911871.jsonl", "record": { "allowed_interstitials": {}, "bundle_content_digest": "959971d5e5efc1bbe5b0ffdc907d94be84c46fb0845b73ff1d9e492ff77aa75f", diff --git a/packages/flow/benchmark/lifecycle/run.py b/packages/flow/benchmark/lifecycle/run.py index c10f404b1..bfed0904d 100644 --- a/packages/flow/benchmark/lifecycle/run.py +++ b/packages/flow/benchmark/lifecycle/run.py @@ -28,6 +28,7 @@ from .metrics import classify from .operator import ScriptedOperator from .oracle import Oracle +from .paths import relative_paths from .workload import WORKLOAD_VERSION, Truth, Workload, generate HERE = Path(__file__).resolve().parent @@ -52,6 +53,7 @@ def __init__(self, path: Path) -> None: def write(self, row: dict[str, Any]) -> None: row = {"t": round(time.time(), 3), "arm": self.arm, **row} + row = relative_paths(row, self.path.parent) with self._lock: self._fh.write(json.dumps(row, sort_keys=True, default=str) + "\n") self._fh.flush() diff --git a/packages/flow/benchmark/lifecycle_proof/run.py b/packages/flow/benchmark/lifecycle_proof/run.py index 0e077e47e..142348081 100644 --- a/packages/flow/benchmark/lifecycle_proof/run.py +++ b/packages/flow/benchmark/lifecycle_proof/run.py @@ -59,6 +59,8 @@ from pathlib import Path from typing import Any, Optional +from benchmark.lifecycle.paths import relative_paths + HERE = Path(__file__).resolve().parent FLOW = HERE.parents[1] VERIFY_YAML = HERE / "verify.yaml" @@ -80,8 +82,9 @@ # -- small helpers ----------------------------------------------------------------- -def _write(path: Path, value: Any) -> None: +def _write(path: Path, value: Any, root: Optional[Path] = None) -> None: path.parent.mkdir(parents=True, exist_ok=True) + value = relative_paths(value, root or path.parent) path.write_text(json.dumps(value, indent=2, sort_keys=True, default=str) + "\n") @@ -94,11 +97,12 @@ class Ledger: def __init__(self, out: Path) -> None: self.path = out / "ledger.jsonl" + self.root = out self.path.parent.mkdir(parents=True, exist_ok=True) self._lock = threading.Lock() def add(self, kind: str, **fields: Any) -> None: - row = {"at": time.time(), "kind": kind, **fields} + row = relative_paths({"at": time.time(), "kind": kind, **fields}, self.root) with self._lock, self.path.open("a") as handle: handle.write(json.dumps(row, sort_keys=True, default=str) + "\n") print(json.dumps(row, default=str), flush=True) @@ -703,6 +707,7 @@ def phase_switch(ctx: dict[str, Any]) -> None: _write( out / "switch" / "switch.json", {"record": record.model_dump(mode="json"), "log": str(log_path)}, + root=out, ) ctx.update(switch_record=record, switch_log=log) ctx["ledger"].add( diff --git a/packages/flow/tests/test_lifecycle_benchmark.py b/packages/flow/tests/test_lifecycle_benchmark.py index 34dba0575..58fe525e4 100644 --- a/packages/flow/tests/test_lifecycle_benchmark.py +++ b/packages/flow/tests/test_lifecycle_benchmark.py @@ -176,3 +176,42 @@ def test_end_to_end_on_the_fake_app(tmp_path: Path) -> None: from lifecycle.report import results assert json.loads(json.dumps(results(out), sort_keys=True)) == res + + +def test_ledger_rows_never_carry_host_paths(tmp_path, monkeypatch): + """Committed evidence records run paths relative to the run's root.""" + + import json as _json + + from benchmark.lifecycle.paths import OUTSIDE, relative_paths + from benchmark.lifecycle.run import Ledger + + root = tmp_path / "runs" / "soak" + root.mkdir(parents=True) + candidate = root / "arms" / "arm-a" / "items" / "ref-00026-relabel" / "candidate" + elsewhere = tmp_path / "runs" / "other" / "arms" / "arm-a" + monkeypatch.chdir("/") + row = { + "candidate": str(candidate), + "workdir": elsewhere, + "reason": f"wrote {candidate} and stopped", + "release_changed_files": ["/var/www/localhost/htdocs/openemr/x.php"], + "argv": ["--out", "runs/soak"], + } + out = relative_paths(row, root) + assert out["candidate"] == "arms/arm-a/items/ref-00026-relabel/candidate" + assert out["workdir"] == f"{OUTSIDE}/arm-a" + assert ( + out["reason"] + == "wrote arms/arm-a/items/ref-00026-relabel/candidate and stopped" + ) + # Paths inside the app are evidence about the app, not the host. + assert out["release_changed_files"] == ["/var/www/localhost/htdocs/openemr/x.php"] + assert out["argv"] == ["--out", "runs/soak"] + + ledger = Ledger(root / "ledger.jsonl") + ledger.write({"type": "phase", "workdir": str(root / "arms" / "arm-a")}) + ledger.close() + written = _json.loads((root / "ledger.jsonl").read_text()) + assert written["workdir"] == "arms/arm-a" + assert str(tmp_path) not in (root / "ledger.jsonl").read_text() From 44beb0e48f8360ad535daad10119835933021c4f Mon Sep 17 00:00:00 2001 From: abrichr <richard.abrich@mldsai.com> Date: Sun, 25 Oct 2026 10:00:15 -0400 Subject: [PATCH 16/16] chore(flow): register the production soak evidence in the public artifact inventory Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --- packages/flow/public-artifacts.json | 39 +++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/packages/flow/public-artifacts.json b/packages/flow/public-artifacts.json index c8f2dafa6..c85a886db 100644 --- a/packages/flow/public-artifacts.json +++ b/packages/flow/public-artifacts.json @@ -166,6 +166,45 @@ "benchmark/lending_fault_model/resolution_ladder_results.json", "benchmark/lending_fault_model/results.json", "benchmark/lending_fault_model/swer_results.json", + "benchmark/lifecycle/results/production-2026-10-24/after/arm-ledger.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/after/ledger.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/after/results.json", + "benchmark/lifecycle/results/production-2026-10-24/after/stops.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/after/switch/log-1792873972.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/after/switch/log-1792878330.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/after/switch/switch.json", + "benchmark/lifecycle/results/production-2026-10-24/after/workload.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/before/arm-ledger.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/before/ledger.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/before/results.json", + "benchmark/lifecycle/results/production-2026-10-24/before/stops.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/before/switch/log-1792868032.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/before/switch/switch.json", + "benchmark/lifecycle/results/production-2026-10-24/before/workload.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/arm-ledger.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/ledger.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/results.json", + "benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/stops.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/log-1792865787.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/log-1792866771.jsonl", + "benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/switch.json", + "benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/workload.jsonl", + "benchmark/lifecycle/results/production-2026-10-25-final/arm-ledger.jsonl", + "benchmark/lifecycle/results/production-2026-10-25-final/ledger.jsonl", + "benchmark/lifecycle/results/production-2026-10-25-final/results.json", + "benchmark/lifecycle/results/production-2026-10-25-final/stops.jsonl", + "benchmark/lifecycle/results/production-2026-10-25-final/switch/log-1792924549.jsonl", + "benchmark/lifecycle/results/production-2026-10-25-final/switch/log-1792928598.jsonl", + "benchmark/lifecycle/results/production-2026-10-25-final/switch/switch.json", + "benchmark/lifecycle/results/production-2026-10-25-final/workload.jsonl", + "benchmark/lifecycle/results/production-2026-10-25-rerun/arm-ledger.jsonl", + "benchmark/lifecycle/results/production-2026-10-25-rerun/ledger.jsonl", + "benchmark/lifecycle/results/production-2026-10-25-rerun/results.json", + "benchmark/lifecycle/results/production-2026-10-25-rerun/stops.jsonl", + "benchmark/lifecycle/results/production-2026-10-25-rerun/switch/log-1792907498.jsonl", + "benchmark/lifecycle/results/production-2026-10-25-rerun/switch/log-1792911871.jsonl", + "benchmark/lifecycle/results/production-2026-10-25-rerun/switch/switch.json", + "benchmark/lifecycle/results/production-2026-10-25-rerun/workload.jsonl", "benchmark/lifecycle_proof/results/earlier-attempts/proof-12-ledger.jsonl", "benchmark/lifecycle_proof/results/earlier-attempts/proof-13-ledger.jsonl", "benchmark/lifecycle_proof/results/earlier-attempts/proof-14-ledger.jsonl",