Commit Graph
19 Commits
Author SHA1 Message Date
ciregenz 98fed22b63 [eric] browser: split the opener-wait tests out at the file cap 2026-07-29 10:28:48 -07:00
ciregenz 1675176ac5 [eric] browser: wait for the compose surface to stop moving, not for a fixed number of seconds 2026-07-29 10:27:29 -07:00
ciregenz 57a6954758 [eric] browser: honest delivery-check for ghost-drop sites + split send_script parsing 2026-07-23 14:53:58 -07:00
ciregenz 10f9c12a8a [eric] browser: submit picker below-composer scope + container tier; readonly guard sealed 2026-07-21 21:02:55 -07:00
ciregenz 0d36f6d0fe [eric] browser: BrowserDeleteItem tool + no-repost-on-delete + composer late-render poll 2026-07-17 18:55:32 -07:00
ciregenz 1dd4d5ef78 [eric] browser: login-wall guard so the scripted send never fills an auth page 2026-07-17 16:43:54 -07:00
ciregenz 449f66057d [eric] browser: scope broadened submit vocab to the receipt-gated send-script; keep the always-on Send hint tight (broadening it regressed the default config with the send-script off) 2026-07-15 16:22:10 -07:00
ciregenz 1e68aa5d7b [eric] browser: send-script completes on X/IG/FB (submit-button vocab beyond LinkedIn Send) 2026-07-15 11:54:49 -07:00
ciregenz 19a3e8ad1a [eric] browser: keystroke-fill fallback + cross-nav reveal retry (both flag-gated, default off)
Item 1: when the finder's execCommand insertText read-back fails (editors that reject synthetic input), retype the same text as real OS-level key events via wv.sendInputEvent, then verify from the marked element OR document.activeElement (editors like Reddit swap the node on activation, staling the selector). Item 3: when an open-first reveal navigates to a new document (Reddit thread, TikTok video, GitHub issue), the send-script re-perceives after a load beat and calls the finder once more on the destination, bounded to 2 tries. 4 new tests (cross-nav retry fires / no wasted retry) + structural tests split into test_browser_reveal.py to stay under the 300-line cap. Live real-path validation of the sendInputEvent leg is owed on a healthy rig: the eric/browser agent loop wedges at fresh-card webview mount (15.25s cap, renderer starvation, predates the suspend fix) at low load too
2026-07-12 20:52:15 -07:00
ciregenz 64675115f8 [eric] browser: reveal-and-find reach primitive (OSW_COMPOSER_REVEAL, default off) = when no composer is painted the finder takes ONE reversible reveal action (click a scored compose-trigger, open the first list item, or scroll) and rescans, bounded; SPA route changes keep the JS context alive so X/LinkedIn/Reddit/YouTube stay drivable in one call; never clicks an irreversible control (hard-block send/submit/pay/delete); send-script forwards reveal only under the flag; 2 tests (reveal forwarded when on, false by default) 2026-07-12 19:29:07 -07:00
ciregenz 4c85dd6314 [eric] browser: structural composer finder (OSW_COMPOSER_STRUCT, default off) = an in-page primitive that ranks editable regions (contenteditable/textarea/text-input near a Send/Post/Reply control, excluding search boxes) instead of matching AX names, marks the winner + fills+reads-back in-page (the only reliable commit-check for a React contenteditable whose text never reaches the AX tree); send-script uses it as a fallback when the name detector misses, unblocking unnamed/non-standard composers (Reddit Lexical, X DM); 3 tests, all safety gates + dry-run stop unchanged 2026-07-10 00:13:44 -07:00
ciregenz 329209259b [eric] browser: dry-run terminates the browser run with a grep-stable [dryrun-report] gate line (a dry-run decline falling through to the model loop could perform the REAL send the flag exists to avoid, and a loop rescue would contaminate gate attribution); inert when the flag is off; +2 tests 2026-07-09 16:26:15 -07:00
ciregenz 4eb1f909d2 [eric] browser: generalize the send-script surface gate from a LinkedIn-URL regex to a STRUCTURAL 'composer or opener present in the perception' check, so the same ~14s send fast-lane fires on ANY messaging site (X/Slack/Discord/Instagram/Gmail), no per-site code; broadened composer+opener name regexes to general messaging shapes; all safety gates unchanged (site-agnostic already); +2 tests incl a non-LinkedIn X composer firing 2026-07-08 23:53:11 -07:00
ciregenz 2894ec3ca6 [eric] browser: send-script polls a short window for the lazy overlay composer before declining (r269: prestage's LAST step was the Message click, overlay renders 1-2s later so one immediate read still missed it) 2026-07-07 12:16:34 -07:00
ciregenz 9128fd19fb [eric] browser: send-script takes one fresh interactives read before declining (prestage's staged snapshot is frozen at the Message click; the overlay composer lazy-renders a beat later, r263 declined on exactly that stale-snapshot miss) 2026-07-07 11:59:58 -07:00
ciregenz 7fdd18c6e8 [eric] browser: send-script sends via click-by-name when Send ranks out of the capped list (ground truth: profile-overlay Send is a real button the model clicks by name, absent from the numbered list); overlay back in surface scope, live-validated receipt-cleared in 1.4s on /in/ 2026-07-07 11:52:29 -07:00
ciregenz f3102496b2 [eric] browser: send-script surface-gate = fire only on full-page /messaging/ composers, decline the profile overlay (live A/B r246-r251: firing on the overlay ran 4x slower + 1/3 vs 3/3 delivery, net-negative; only /messaging/thread/ has a listable Send) 2026-07-07 03:09:54 -07:00
ciregenz 91a17548d1 [eric] browser: send-script two-wall fix caught live (fired on a read-only probe + never fired on real sends): payload from RAW user prompt not brief-polluted composed task, read-only directives decline in code; 2 red-then-green tests 2026-07-07 02:26:24 -07:00
ciregenz bdb30c26b0 [eric] browser: fix quoted_payload apostrophe bug (chen's mispaired with the payload quote, silently broke the canonical send errand) + 6 mechanism tests (opener-hop/fill/verify/send/receipt + all abort branches) 2026-07-07 00:22:34 -07:00