-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
rote is (mostly) usable end-to-end today, but there is still product and robustness work to do before v1 feels complete.
This issue tracks the main areas we currently expect to tackle.
This is a living document. Items are refined, added, and restructured as we learn more during implementation.
Training model
- Column-order training: bind columns left to right instead of matching by value against all unbound columns. Rote watches for the next unbound column's value at each input event. Simpler model, enables resolution fallbacks, user controls order via spreadsheet column arrangement.
- Cascading resolution strategies: when the primary selector (e.g. element ID) doesn't resolve, fall back through increasingly general strategies. From strongest to weakest: exact ID → pattern-based ID (e.g.
{column1-value}-product-name) → CSS/XPath → tab order from a known starting point. The design should accommodate adding more sophisticated strategies (like pattern recognition on dynamic IDs) over time. First pass: exact ID and tab order as the two endpoints. Data model and training capture are done onnavigation-fallback— the recorder captures tab navigation paths during training, and each step carries an optionalNavigationPath(anchor element + key sequence). Pattern detection is deferred until we have real-world data on what dynamic IDs look like; diagnostic logging during fallback will provide that data. Remaining work: playback fallback implementation (try selectors, fall back to tab replay, surface to user via forced step mode). - Adaptive training via DOM verification: after end-of-row transition, check whether learned selectors still resolve. If yes, proceed to playback. If no, request a second training row. This connects to the resolution cascade — consistent IDs are the easy case; IDs that change based on previous columns are harder but detectable and encodable as patterns. Some sites may never be stable between rows — detect and communicate this.
- Verification and wait-condition capture during training
TUI and user workflow
- Table-centric layout: data table is the primary view for both training and playback, step detail behind a hotkey
- Train→playback transition: train row 1, then cell-by-cell playback for remaining rows
-
--urlflag for direct browser navigation into training - Streamlined flow: headers required (no data preview), single Enter gate (no Enter with
--url) - Playback speed controls: renamed Speed→Mode (1/2/3 keys for gating), added speed multiplier (+/- keys, 0.25×–4.0×), removed pause as separate concept
- Step detail pane (hotkey-toggled) showing recorded steps during training
- End-of-run summary screen
- Workflow save and export flow
- Empty-cell prompt UI
- New-field prompt UI
- Row-end confirmation menu in playback (options: next row, change speed, save workflow, quit)
Playback reliability
- End-of-row transition handling: capture what the user does between rows (submit, navigate back, click "add row") as part of the workflow
- Per-row navigation support: any column can trigger navigation (e.g. a URL that drives a multi-page process within a single row)
- Better timeout handling around browser operations
- Smarter retry behavior for navigation steps
- Validate workflow/data compatibility more explicitly
Browser management
- Browser profiles for authenticated sites: launch with a persistent user data directory so cookies and sessions survive across rote sessions. The user logs in once in the profile, then rote reuses that session for training and playback. Default profile created automatically at the platform data directory;
--profileflag not yet implemented. - Port management improvements
Robustness and ergonomics
- Configurable key timeouts
- Tighten Linux browser discovery
- Expand automated test coverage for edge cases
Packaging and release
- CI for build, test, lint, and formatting
- Release automation for macOS, Linux, and Windows binaries
- Establish versioning and changelog discipline for releases
Workflow reuse
- Load a saved workflow and replay against new data
- Workflow editing outside the TUI (JSON format is already human-readable)
This list is intentionally lightweight.
As work starts, individual items can break out into their own issues.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels