Bug fixes (this session):
- ProxyServer: network failures (timeout/DNS/unreachable) never emitted
ProxyRequestCompleted -> requests silently vanished from HTTP History and
never reached Target/SiteMap. Now emitted with status_code=0.
- TargetScreen._load_sitemap(): called nonexistent api.sitemap.hosts()
(only get_hosts() exists) -> scope set via Proxy->Target sync was wiped
on reload with nothing to restore.
- Repeater: remove_pane() awaited incorrectly -> stray blank tab on new
project; startup tab-load worker could resurrect a stale tab after a
project switch (generation token added).
- Proxy: color-filter cycler's _render() shadowed Textual's internal
Widget._render() -> crashed the whole app on any repaint.
UX changes:
- Proxy: comment editing moved from a persistent field to a modal (context
menu "View/Edit Comment" or click the marker in the list); color mark
cycler in FilterBar (click-to-cycle, mirrors MethodCycler); merged
Add-Tag/Set-Color into one "Mark color" action; removed Reload button.
- Repeater: Beautify now formats both Request and Response; removed Scope
and Load-from-Proxy buttons; renamed tab buttons to just "Tab".
- Target: added "Crawl Scope" / "Crawl Host" buttons wired to the existing
SpiderAPI (no separate Crawler module).
- Scanner: Passive button now uses an English tooltip instead of an
inline label.
Docs:
- README: demo/beta badge, terminal-compatibility note, links to a new
First Run guide and Plugin Development guide.
- Synced ru/zh/hi README translations with the English structure (badge,
screenshots, docs links, support section) and fixed broken intra-repo
links left over from an older single-folder layout.
- New FIRST_RUN.md and PLUGIN_DEVELOPMENT.md in all 4 languages
(en/ru/zh/hi).
Bump version 0.1.8 -> 0.1.9.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>