diff --git a/packages/flow/benchmark/lifecycle/README.md b/packages/flow/benchmark/lifecycle/README.md new file mode 100644 index 000000000..328021895 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/README.md @@ -0,0 +1,125 @@ +# 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). + +## The headline + +`results.json` (`arms..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 | +|---|---| +| `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 (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//` | 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/__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..8c11978c8 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/apps.py @@ -0,0 +1,589 @@ +"""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"; + - ``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 + 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 +#: 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" +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"), + "fixture": self.fx, + } + + 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;\n" + "DELIMITER //\n" + "CREATE TRIGGER openemr.oa_lifecycle_fault BEFORE INSERT ON openemr.patient_data " + f"FOR EACH ROW BEGIN {body} END//\n" + "DELIMITER ;\n" + ) + 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 == "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';" + "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..08fb0dd9d --- /dev/null +++ b/packages/flow/benchmark/lifecycle/metrics.py @@ -0,0 +1,443 @@ +"""The metric, computed only from the results ledger. + +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 + 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 dataclasses +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" + + +#: 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).""" + + 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 "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: + 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 + 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"] + ), + } + + 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, + } + 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 + 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 { + "by_hand_sensitivity": by_hand, + "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) + 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 { + "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(), + "headline": headline(), + } + + +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/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/operator.py b/packages/flow/benchmark/lifecycle/operator.py new file mode 100644 index 000000000..45dc9df43 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/operator.py @@ -0,0 +1,149 @@ +"""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 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": + 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/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 = "" + +_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 new file mode 100644 index 000000000..874522f3f --- /dev/null +++ b/packages/flow/benchmark/lifecycle/production_arm.py @@ -0,0 +1,909 @@ +"""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 +from .paths import relative_paths + +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, 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") + + +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") + #: 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)) + #: 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)) + #: 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}") + 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, + "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)" + if self.duplicate_check + else "recorded: text_present 'No matches were found.'" + ), + "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", root=out.parent.parent) + 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: + 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) + 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() + if self.rearm: + self._approver = self._approver_key() + ctx["approver_keys"] = self._approver[1] + 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))} + if self.intake_dates: + item = self._intake_dates(item, detail) + 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 _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 _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", approver_keys=keys + ) + 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-approver", + 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 + + 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 _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.""" + + 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] = {} + # 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"] + 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={ + "fresh_admission": review.fresh_admission, + "release_changed_files": release["changed"], + "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, + "release": release, + "seconds_to_readmitted": round(time.time() - t0, 1), + } + detail["relabel"] = record + self.recoveries.append(record) + 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). + 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": phases_extra + + [ + { + "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 + 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] + 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 + + +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 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/report.py b/packages/flow/benchmark/lifecycle/report.py new file mode 100644 index 000000000..d34a2623e --- /dev/null +++ b/packages/flow/benchmark/lifecycle/report.py @@ -0,0 +1,278 @@ +"""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"] + 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." + ) + 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( + 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( + f"{k} {v['verified_per_operator_minute']}" + for k, v in h["bands"].items() + ) + + ".", + "", + ] + lines += [ + "| | 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 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" + ) + (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/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..f319d8292 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/README.md @@ -0,0 +1,295 @@ +# 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 + +### 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 | +| 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 | +| 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 | + +### 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 | +| --- | ---: | +| 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 | + +**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: + +- **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 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 + +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 ` recomputes them); +- `stops.jsonl`; +- `arm-ledger.jsonl`: the arm's own events; +- `switch/`: the `problems_only` switch records and logs. + +## Reproduce + +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=$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 +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 +``` 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..730a540e1 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/REPORT.md @@ -0,0 +1,75 @@ +# 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. + +| 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. +- 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..e4ca1a2a4 --- /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": "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..720cb399e --- /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": "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"} +{"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": "", "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": "", "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": "", "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": "", "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": "", "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": "", "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": "", "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 '', 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": "", "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": "", "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": "", "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": "", "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": "", "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": "", "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": "", "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..728ea057d --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/results.json @@ -0,0 +1,370 @@ +{ + "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 + } + }, + "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": { + "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..a89f1fe74 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/after/switch/switch.json @@ -0,0 +1,42 @@ +{ + "log": "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..eeb656ca3 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/REPORT.md @@ -0,0 +1,69 @@ +# 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. + +| 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. +- 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": "", "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": "", "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 '', 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 '', 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 '', 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..b386fc1ef --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/results.json @@ -0,0 +1,339 @@ +{ + "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 + } + }, + "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": { + "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..1ed14775b --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/before/switch/switch.json @@ -0,0 +1,42 @@ +{ + "log": "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..7e9894b3d --- /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": "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..846dd0466 --- /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": "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"} +{"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 '', 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..913da14c1 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-24/recovery-smoke/switch/switch.json @@ -0,0 +1,42 @@ +{ + "log": "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/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..c4d37bd15 --- /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 result 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..c9301652d --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final-blocked/run.log @@ -0,0 +1,52 @@ +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 +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: $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: + + 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://$PODMAN_API_SOCK' + +Machine "openadapt-benchmark" started successfully +COMMIT 9eb8912a07082a8a914a275aeb1a3ec5a67e53d1 +saved $LIFECYCLE_OPENEMR_STATE/fresh-oauth-keys.sql +[openadapt-production-relabel] resetting the app to its baseline +[openadapt-production-relabel] setup +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 "", line 198, in _run_module_as_main + File "", line 88, in _run_code + File "packages/flow/benchmark/lifecycle/run.py", line 468, in + raise SystemExit(main()) + ^^^^^^ + File "packages/flow/benchmark/lifecycle/run.py", line 447, in main + run_arm( + File "packages/flow/benchmark/lifecycle/run.py", line 183, in run_arm + for phase in arm.setup(env, operator): + ^^^^^^^^^^^^^^^^^^^^^^^^ + File "packages/flow/benchmark/lifecycle/production_arm.py", line 227, in setup + proof.phase_admit(ctx, source, self.trials) + File "packages/flow/benchmark/lifecycle_proof/run.py", line 586, in phase_admit + qual = 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 new file mode 100644 index 000000000..b088e817a --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/README.md @@ -0,0 +1,188 @@ +# 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: throughput and silent-wrong criteria met + +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 + +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 + +Paths in the committed files are relative to the run's root (`runs//`). +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 `): + +- `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..2c64d373a --- /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": "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": "", "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": "", "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": "", "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": "", "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 '', 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": "", "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": "", "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": "", "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": "", "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": "", "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": "", "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": "", "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": "", "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..5e0704e25 --- /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 $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 +[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 '', 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..cc7e997fa --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-final/switch/switch.json @@ -0,0 +1,42 @@ +{ + "log": "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"} 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..caf87f3fc --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/README.md @@ -0,0 +1,183 @@ +# 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: throughput criterion not met + +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: + +- **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). + +The final run on main ([`production-2026-10-25-final`](../production-2026-10-25-final/README.md)) +measures 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 `): + +- `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..aa490c966 --- /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": "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": "", "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": "", "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": "", "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": "", "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": "", "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 '', 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": "", "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": "", "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": "", "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": "", "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": "", "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": "", "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": "", "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": "", "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": "", "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..fd5460a95 --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/run.log @@ -0,0 +1,83 @@ +COMMIT 38fc21afbfff08275d77fd8f61972ad49c28cbf4 +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 +[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 '', 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..578e4bc4b --- /dev/null +++ b/packages/flow/benchmark/lifecycle/results/production-2026-10-25-rerun/switch/switch.json @@ -0,0 +1,42 @@ +{ + "log": "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"} diff --git a/packages/flow/benchmark/lifecycle/run.py b/packages/flow/benchmark/lifecycle/run.py new file mode 100644 index 000000000..bfed0904d --- /dev/null +++ b/packages/flow/benchmark/lifecycle/run.py @@ -0,0 +1,417 @@ +"""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 .paths import relative_paths +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} + 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() + + 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, *result.detail.get("maintenance_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 + ) + # 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, + "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( + "--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) + + 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()) + ) + 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..1da1b159e --- /dev/null +++ b/packages/flow/benchmark/lifecycle/workload.py @@ -0,0 +1,368 @@ +"""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. +- ``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 +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-24.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, + # 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. +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() +#: 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" +).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 == "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 + 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/benchmark/lifecycle_proof/fixture.py b/packages/flow/benchmark/lifecycle_proof/fixture.py index 1e0867641..16d83c850 100644 --- a/packages/flow/benchmark/lifecycle_proof/fixture.py +++ b/packages/flow/benchmark/lifecycle_proof/fixture.py @@ -197,17 +197,22 @@ def point_hooks_here(self) -> None: if sock: os.environ["DOCKER_HOST"] = sock - def _exec(self, container: str, script: str, *, stdin: bytes = b"") -> str: + 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=120, + timeout=timeout, check=False, ) if proc.returncode != 0: raise RuntimeError(f"podman exec failed: {proc.stderr.decode()[-400:]}") - return proc.stdout.decode() + 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).""" @@ -237,20 +242,25 @@ def dump(self) -> Path: """The current charts, for putting back after a re-qualification.""" path = self.state_dir / "proof-data.sql" - sql = self._exec( + # 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 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_text(sql) + path.write_bytes(sql) path.chmod(0o600) return path def restore(self, path: Path) -> None: - self._exec( + 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]: diff --git a/packages/flow/benchmark/lifecycle_proof/run.py b/packages/flow/benchmark/lifecycle_proof/run.py index 00fba33db..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) @@ -334,13 +338,17 @@ def __init__( *, 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 - self.params = referral_params(key) + # 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 @@ -359,6 +367,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, @@ -369,7 +379,7 @@ def approval_gate(self, bundle: Path, page: Any) -> Any: header_maps_every_input=True, rows_well_formed=True, values_pass_types=True, - is_retry=False, + is_retry=self.is_retry, allow_repeat=False, record_key_seen_recently=False, caller_supplied_configuration=False, @@ -697,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( @@ -832,7 +843,12 @@ def phase_crash(ctx: dict[str, Any], keys_dir: Path) -> dict[str, Any]: return summary -def _resume(ctx: dict[str, Any], key: str, run_dir: Path) -> Any: +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 @@ -853,7 +869,7 @@ def _resume(ctx: dict[str, Any], key: str, run_dir: Path) -> Any: ) ctx["person"].touches += 1 ctx["ledger"].add("person", action="resume", item=key) - item = Item(ctx, key, run_dir) + item = Item(ctx, key, run_dir, params=params) backend, close = ctx["hooks"].open_session() try: replayer = Replayer( @@ -932,7 +948,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)) + item = Item(self.ctx, self.item.key, Path(run_dir), params=self.item.params) verifier = item.verifier() replayer = Replayer( session.backend, 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 ` + 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/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", diff --git a/packages/flow/tests/test_lifecycle_benchmark.py b/packages/flow/tests/test_lifecycle_benchmark.py new file mode 100644 index 000000000..58fe525e4 --- /dev/null +++ b/packages/flow/tests/test_lifecycle_benchmark.py @@ -0,0 +1,217 @@ +"""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 + + +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()