Inspect and debug browser pages from an Ace channel
iamnbutler opened ·
Ace development used browser DOM/accessibility snapshots, interaction, screenshots, uploads, console/network inspection, and responsive checks. #8 explicitly covers native browser Accessibility/pixels; DOM/browser-session integration needs its own capability.
## Acceptance
- [ ] Select an explicit browser and tab on the execution host; navigate, inspect DOM/accessibility, interact, and capture screenshots. *#163: exact tab selection, navigation, main-frame accessibility and viewport screenshots landed. Remaining: DOM input (click, fill, keys) with element references, DOM inspection, and iframe content.* - [ ] Inspect console errors and failed network requests; support file upload, viewport changes, and mobile/touch emulation used in the reviewed work. *Remaining.* - [ ] Keep the browser target identifiable across reconnects. Local and hosted execution must target the execution machine, not the viewing client. *#163: exact browser-instance and tab targets, execution-machine routing for local workers and workspace `Link`/`serve`, and refusal of replaced browsers. Remaining: managed launch and lifecycle of the dedicated browser, and a deployed hosted-object check.* - [ ] Return bounded text/images and actionable failures through the existing channel tool/history path. *Done for #163's tools; required for each remaining capability.* - [ ] From a native Ace channel, reproduce a real web UI defect, inspect its cause, fix its lane, and verify the result with retained evidence. *Remaining.*
Use an appropriate browser backend; external harness integration is not required. Follow the existing channel/host boundary, pi history ownership, and collaborator-agent switch.
## Status
First slice landed in #163 (`8ae23e4`, documented in `docs/browser-tools.md`): `browser_tabs`, `browser_navigate` and `browser_inspect` for Ace's dedicated loopback browser, with honest navigation outcomes and no replay after interruption. GitHub closed this issue automatically when #163 merged because the PR was linked as closing it; #163 itself says it doesn't close #50, and the acceptance above isn't met. The Browser Preview tab is the separate channel preview surface in #16.
Dogfooding MVP: #5. Related: #8, #16. [Review evidence](https://github.com/githubnext/ace2/issues/5#issuecomment-5986485157).
iamnbutlerreferenced this in Run and resume Codex and Claude Code in Ace channels #9last month on GitHub
iamnbutlerparent-issue-addedlast month on GitHub
iamnbutlerreferenced this in [Meta] Dogfood Ace end to end #5last month on GitHub
iamnbutlerreferenced this in fix(app): default the composer to agent mode and keep each channel's mode #88last month on GitHub
iamnbutlerreferenced this in fix(app): stream the reply draft inside the timeline instead of over it #114last month on GitHub
iamnbutlerreferenced this in feat(app): fold channels idle for 6 hours into an Inactive group #126last month on GitHub
iamnbutlerreferenced this in feat(app): group projects by repository with teammate channel sections #157last month on GitHub
iamnbutlerreferenced this in feat: list, inspect, and navigate tabs in a dedicated browser #163last month on GitHub
- IA
First slice: #163, open for review.
**Done in #163** - Pick an exact browser and tab on the execution host: `browser_tabs` lists only Ace's dedicated loopback browser, found through the `$ACE_HOME/browser` profile. A target is the browser instance ID plus Chrome's target ID; a replaced browser or a closed tab is refused, and tabs are never matched by URL, title, or position. - Navigate with honest outcomes: `browser_navigate` (http/https only) reports `started`, `same_document`, `download`, or `failed` from Chrome's answer, never readiness. An interrupted or unanswered navigation is `unknown` and is not replayed. - Inspect the page: the main frame's accessibility tree (bounded UTF-8) and a viewport JPEG, with loader IDs checked before and after. Partial evidence is kept when one part fails. - Local channels, compiled helper workers, and workspace `Link`/`serve` forwarding all run it on the execution machine. Results go through pi's existing history.
**Remaining** - DOM click, fill, and key input with element references. - Console errors and failed network requests. - File upload, viewport changes, and mobile or touch emulation. - Managed launch and lifecycle of the dedicated browser. - Iframe content. - Browser Preview tab. - A deployed hosted-object smoke test (only the real `Link`/`serve` path was exercised). - The acceptance item of reproducing a real web UI defect, fixing it in a lane, and verifying it with retained evidence.
- IA
#163 now also includes 8ff9cd2, which changes only wording: `unknown` means navigation delivery or the answer is uncertain, not that it reached the browser. The scope in my earlier comment hasn't changed.
iamnbutlerreferenced this in fix(ui): keep unsent composer drafts across restart #165last month on GitHub
iamnbutlerreferenced this in feat(app): add channel header agent and desktop access toggles #161last month on GitHub
iamnbutlerreferenced this in Show and change collaborator agent invocation in the app #158last month on GitHub
iamnbutlerreferenced this in fix(host): recover open transcript watches after channel workers restart #159last month on GitHub
- IA
Reopening. GitHub closed this automatically at 22:22:58Z when #163 merged, because the PR was linked as closing this issue. #163 says it is the first slice and doesn't close #50. The body now marks what #163 delivered against each acceptance item and keeps the remaining work: DOM input, console/network diagnostics, uploads, viewport and mobile/touch emulation, managed browser lifecycle, a deployed hosted-object check, and the end-to-end native-channel defect reproduce/fix/verify workflow.
iamnbutlerreopenedlast month on GitHub
iamnbutlerreferenced this in Open a lane's dev server from its channel #16last month on GitHub
iamnbutlerreferenced this in feat(app): rebuild Settings and top-anchor every dialog #171last month on GitHub
iamnbutlerreferenced this in fix(ui): render timeline text with the line breaks it was measured with #175last month on GitHub
iamnbutlerreferenced this in [Meta] Complete native computer use in Ace #8last month on GitHub