GOAL: Get to a browser that we can use - sometimes scroll rightward / leftward don't work (i guess becuase at margin checks are incorrect) - could it just be a focus? - inputs and omnibox should scroll rightward when we type beyond their right margin (up to any maxlength) - chatgpt input on landing page doesn't render as input - hook modals for file upload. Next - also ensure we "size the remote" to a "good size" relative to our local TUI dimensions - allow copy (for visual breakout) - Nice to get to: rendering of autocomplete (and other live dom changes): shows but only if we trigger re-render with scroll, but then we can't click on the autocomplete options, even tho they register as clickable, or the clicks have no effect on remote Minor Polishing Bugs - Between page loads need to clear some state (getting node no longer exists, input elements from previous renders likely still being rendered) - some inputs persist over page navigation, new document creation. we need to clear them when DOM is cleared, document navigated. - Fix some elements are not highlighted on focus. Possible causes: 1. the element has bounds overlapping offscreen. - ensure gaps are "correct" (where they should be, not weird random space after inline, etc) - test13 - Clipped Child Text is not displayed on GUI but is not TUI - minor occlusion edge case bug - as usual follow our debug process: - find out why this happens with a targeted simple reproduction - solve the biggest cause we can - ddg srp: larry page - wikipedia info box. "Wikipedia" source link at end of paragraph is occluded down to "ia" - why? - GitHub code view, like a code file, doesn't work. Looks weird. RAW works beautifully tho. Marketing (excerpt, full plan elsewhere) - suggest pair with a font, recommend a certain terminal font that works well with displaying web contents Features - file upload - file download (to ~/Downloads) - enhance cursoring / scrolling - horizontal scroll into window, same for virt, before hit margin and trigger actual page scroll - special KEYS when not in focused inputs: - ] next tab, [ previous tab - / searching for elements on current page (highlight matches, n/N next/prev focus) - ? brings up commands help modal - d/u down and up (moves down the page a chunk - key based scroll) - bv - breakout visual (get login link for opening in browser, useful for solving captcha etc - two code key, gives you a special timed login link that gives you 1 minute of time, and you can only get two such every 5 minutes, and 3 such per 20 minutes, it disconnects you from visual and prevents any other visual connection once consumed) - CTRL_M / RIGHT MOUSE - context menu (open in new tab, open in incognito tab, clear history, nuke all history and site data, copy, paste, history - open chrome://history) - CTRL_A in inputs select all text with predictable results. - SHIFT cursor in inputs selects text. - CTRL_Q also quits. For release - add licensing checks to krnl as well! - capture loading events from browserbox and display a 2x2 or 3x2 cursor "square" at screen right (like Netscape loading logo), showing loading (maybe just cursor rotating inside it clockwise. 1.5 - 2 Hz - improve efficiency of rendering. - Only split snapshot on visible boxes. - as much as possible limit our data processing to only visible nodes and parts of tree we need to look at relevant to those - pre compute as much as possible. e.g. the hasClicableDescendants change with the #text box check dramatically increased cost and bigly slowed rendering perf. So fix that. And there's probably more to fix, too. -- Later -- i.e., to be omitted from initial public release - efficiency idea: - can we pre limit snapshot/split snapshot or process node to only visible boxes? - streamline critical path from processNode downward - add ALT text for media placeholders (maybe decide based on space available? Or just make space. Problem is alt text has not text layout boxes so we'd have to create our own, and handle wrapping and truncation etc) - put media placeholders behind a toggle. So normally it's off, but you can toggle it on to view it (toggle setting will rerender) - rendering of OOPIF (as that involves fetching target info from separate target and stitching together) - web side client for this text layout of the web -- Cutting Room (ideas that may not increase revenue and may perturb the simplicity of design) - CTRL_S - save page html (current as is from snapshot, or root outerHTML like from call func on) - LEFT MOUSE - on any normal clickable element (navigates/clicks it) (already have this). - SHIFT LEFT MOUSE - on any element shows some details about it (summary, alt for image, title for those that have it, etc) - CTRL_H - highlight mode, highlight a different region (different to focus). Commands when highlighted: d (delete), c (cutout - delete rest), s (append text to clips file), y (copy / yank / yoink - to clipboard). hjkl cursor around. io zoom in/out (of layers/z-index/stack), x (explode, show a details panel with node attributes, including alt/title) - loading spinner in top / bottom right (floating and "fade out") - "status line" in bottom left (show, then disappear after a second) - (+dn plugin) r - rip/record - start recording so page and all content you access from now will be accessible in your local archive even when offline (not available on thin client as there's no browser there) - CTRL_F - find in page and highlight. CTRL_G find next and scroll to it. SHIFT CTRL_G find previous and scroll to it.