Repository navigation
Conversation
replay with no --url (and no backend.url) served the bundled MockMed app; it now needs --demo-app for that, and refuses otherwise. --drift needs --demo-app. The launcher help, quickstart docs, the quickstart lifecycle script, e2e tests and Desktop's frozen smoke test pass it. The variant router's first-screen probe returns nothing without a URL. qualify accept's break-it gate ran every workflow's proposed oracle against MockMed (its banner text, /api/encounter, /api/db). It now builds the lie from the workflow: an in-process store that did not change, and a screen that shows the workflow's own success text, every typed value, and whatever a screen read looks for. The reference Execute worker ran the MockMed tutorial driver against any admission's target_url (resetting and reading it as MockMed). It now refuses such an admission before anything runs.
…argets Adversarial review of the fallback change: two tests replayed without a target (now --demo-app); --demo-app with an attached browser was silently ignored (now refused); a synthetic Execute admission that names a target_url was reported as verified without running (now refused before anything runs); the bug template shows --demo-app.
Member
Author
|
Independent adversarial review (separate AI reviewer, given the diff only). Verdict: no blocker. Break-it gate (
Replay: the refusal is correct.
Variant probe: returning None becomes a Execute: the only producer of Should-fix items, all fixed in 4f3212d:
After the fixes, the targeted tests pass: 100 passed (replay, variants, undo, privacy, API, Execute, qualification). |
Desktop's frozen engine pins a released Flow, which serves the demo app whenever no URL is given and doesn't know --demo-app.
abrichr
enabled auto-merge (squash)
November 4, 2026 00:14
# Conflicts: # packages/flow/CHANGELOG.md # packages/flow/openadapt_flow/qualification_oracle_gate.py
# Conflicts: # packages/flow/CHANGELOG.md
abrichr
disabled auto-merge
November 4, 2026 19:42
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of the engine generality work (audit: #1741, findings D10, D11 and D12). OpenAdapt's demo app (MockMed) had become the default target in three engine paths. Each path now names its target or refuses before acting.
Change
replay(D10). With no--urland nobackend.url,replayused to serve MockMed silently. That included Desktop replays whose staged config had no URL. Now it needs one of--url,backend.urlor--demo-app, and refuses otherwise.--driftrequires--demo-app, and--demo-appis refused together with a URL or an attached browser.api.replay(..., demo_app=True)matches. The launcher help, quickstart docs,quickstart_lifecycle.py, the e2e tests, the bug template and Desktop's frozen smoke test now pass--demo-app. When the variant router's first-screen probe has no URL, it now captures nothing, which halts asfirst_screen_unavailable.qualify acceptbreak-it gate (D11). The gate used to run every workflow's proposed oracle against a live MockMed: its banner text,/api/encounter, and/api/db. Now it builds the lie from the workflow itself. The store is an in-process read that did not change. The screen shows the workflow's own success text, every typed value, and whatever a screen read looks for. The fixture name is nowunchanged_store.target_url, resetting and reading that app as if it were MockMed. Now it refuses such an admission before running anything. A synthetic admission that names a target is refused too. Admissions with no target still run on the bundled demo app.Shown on the motivating app and another
Adversarial review
An independent reviewer compared old and new gate behaviour effect kind by effect kind and found the gate no weaker. They also confirmed the stub matches what
RestRecordVerifiercalls, so reads stay reachable and verdicts can't silently go INDETERMINATE. All of the reviewer's should-fix findings are applied in the second commit: two tests that replayed with no target,--demo-appwith an attached browser, and synthetic admissions that name a target.Tests
Replay, variants, undo, privacy, API, Execute and qualification tests: 100 passed. These ran on the host's shared CPU-slot wrapper with
-n 2. CI runs the full suite.This touches qualification and runtime entry points, and it is well under 1,000 code lines.