feat: add user-approved workflow locator healing - #2700
Conversation
|
@alectimison-maker is attempting to deploy a commit to the esokullu's projects Team on Vercel. A member of the Team first needs to authorize it. |
|
Review finding: no code-level merge blocker found; merge-worthy after rebasing onto current The important safety properties are present:
Validation: local #2698 has now merged and overlaps this PR in the Chrome and Firefox saved-workflow modules. Please rebase/resolve those conflicts while retaining both |
70c6286 to
ded3fed
Compare
|
Rebase completed onto current Post-rebase validation:
The PR is now conflict-free and GitHub reports it as mergeable. The remaining red Vercel status is still the deployment-authorization issue, not a code failure. |
Summary
Design
When deterministic replay cannot strictly match a saved target, WebBrain may
present up to five independently replayable semantic candidates.
The model never selects or persists a replacement. The user must explicitly
choose a candidate from a structured confirmation card. Timeout and unattended
auto-selection responses cannot authorize healing.
After approval, replay checks the page scope again and reads a fresh
accessibility tree. The selected semantic descriptor must still resolve to
exactly one current target before the action can run. This prevents an old
ref_idfrom being reused after the page changes while the user is deciding.The existing permission, submit-confirmation, execution, and postcondition
validation paths remain authoritative. A repair is returned for persistence
only when the action succeeds without inconclusive, stale, ambiguous,
wrong-target, or no-progress evidence.
The background applies all verified repairs atomically against the workflow's
previous
updatedAtvalue. Concurrent workflow edits win and are neveroverwritten.
Safety boundaries
ref_idvalues and selectors are never persistedTesting
node test/run.js: 1527 passed, 1 existing upstream failure26.2.2is newer than the latestchangelog entry
26.2.0Follow-up to #442