Repository navigation
Releases: shrimp-software/eoka
Releases · shrimp-software/eoka
Release list
v0.3.13
Refactor & Documentation
- -100 LOC: Dedup helpers (
send_void,sleep_ms,eval_str/eval_bool), merged redundant methods, type aliases for empty CDP structs - Single-pass
escape_js_string: Replaces 10 chained.replace()calls - Fix: Duplicate "Win64; x64" in Windows user agent generation
- Docs: Complete API coverage in README and CLAUDE.md — added Navigation, Network/Cookies, Configuration, Dialogs sections; fixed stale references
No API changes. All tests green.
v0.3.12
Lean pass
Dependencies trimmed:
rand→fastrand(4 fewer transitive deps)smallvecremoved- tokio features: 7 → 3 (
process,sync,time) - 38 → 32 unique transitive dependencies
Dead code removed (~150 LOC):
- 11 unused storage methods from
Page - 5 unused CDP types
Bug fixes:
- Pending entry leak on WebSocket write failure
- Pong RFC 6455 compliance (echo ping payload)
- 32-bit overflow guard in frame length parsing
go_forward()negative history index guard- DST-aware timezone offset precomputation
README simplified — removed verbose recipes section, tightened API reference
v0.3.11
What's Changed
Refactoring & Cleanup
- Extract
poll_until()helper, deduplicating 7wait_for_*methods - Extract
try_click_impl()to consolidate try-click error handling - Replace magic numbers with named constants (
INTERACTION_DELAY_MS) - Deduplicate
press_key()KeyDown/KeyUp via closure - Remove
smallvecdependency — useVecfor mouse paths - Remove
thread_localRNG wrapper —rand::rng()is already thread-safe
Bug Fixes & Hardening
- Fix
go_back()/go_forward()unchecked array index (use.get()) - Fix WebSocket reader loop infinite-spin on consecutive timeouts
- Fix
NetworkWatcherunbounded memory growth (10k cap with LRU eviction) - Fix
set_cookie/delete_cookiesilently swallowing URL errors - Fix proxy auth write failure silently hanging requests
- Fix
wait_for_network_idlecounter lost on page navigation - Fix DST
getTimezoneOffsettiming detection via precomputed offsets - Fix patched Chrome binary ~400MB disk leak on close
- Fix
escape_js_stringmissing\0,\u2028,\u2029 - Fix
evaluate_in_frameJS reserved word collision (fn→_exec) - Add WebSocket URL validation (
ws://prefix check) - Replace
eprintln!withtracing::error!in transport
New Features
- Add
Browser::connect_with_config()for custom config on existing Chrome instances
v0.3.7
Fixes
- Fix CDP reader thread deadlock: Changed
blocking_sendtotry_sendfor event channel, preventing backpressure from blocking the reader thread on heavy pages (e.g. Yahoo login with many iframes/tracking scripts) - Add reader loop resilience: Read timeouts, per-command timeouts, and pending request drain on disconnect
- Fix rand 0.10 compatibility: Replace
use rand::Rngwithuse rand::RngExtforrandom_bool/random_range
v0.3.4
v0.3.3
What's New
- File upload:
upload_file(),upload_files() - Select/dropdown:
select(),select_by_text(),select_multiple() - Hover:
hover(),human_hover()with Bezier curves - Keyboard shortcuts:
press_key("Ctrl+A"),select_all(),copy(),paste() - Proxy support: Configure via
StealthConfig
Breaking Changes
- Removed
press_enter(),press_tab(),press_escape()- usepress_key("Enter")etc.
Internal
- CI auto-formats with rustfmt
- Dependabot for dependency updates