provide-terminal 2026-03-02
Shared input mode added, hijack module restructured into subpackages, and comprehensive test suites added with multiple race condition fixes
48 files · 3,985+ · 785-

Hijack Features

9 files changed
  • bridge.py Bridge updated for shared input mode and subpackage restructure
  • __init__.py Hub subpackage init (restructured from hub.py)
  • ownership.py Ownership tracking extracted to submodule
  • models.py Models updated for shared input mode
  • __init__.py Routes subpackage init (restructured)
  • rest.py REST routes extracted to subpackage
  • websockets.py WebSocket routes extracted to subpackage
  • hijack.html Hijack frontend updated for shared input mode
  • hijack.js Hijack JS updated for shared input mode
  • Shared input mode added to the hijack control plane; hijack module restructured from flat files into subpackages (hub/, routes/) and coverage tests added. instantiate architectural
    5 files
    • __init__.py
    • ownership.py
    • __init__.py
    • rest.py
    • websockets.py
8 files changed
  • test_hypothesis_hub.py Hypothesis property-based, fuzz, and concurrency tests for TermHub
  • test_e2e_telnet_gateway.py Telnet gateway E2E tests
  • test_e2e_live_hub_ws.py Live hub WebSocket E2E tests
  • test_e2e_ssh_gateway.py SSH gateway E2E tests
  • test_coverage_bridge.py Bridge coverage tests
  • test_coverage_hub_routes.py Hub routes coverage tests
  • test_hijack_shared.py Shared input mode tests
  • test_zzz_playwright_hijack.py Playwright hijack E2E tests (comprehensive)
  • Hypothesis property-based, fuzz, and concurrency tests added for TermHub to catch invariant violations under random inputs. qualify internal
    1 file
    • test_hypothesis_hub.py
  • Telnet gateway E2E tests added; review findings fixed; handoff updated. qualify internal
    1 file
    • test_e2e_telnet_gateway.py
  • Comprehensive E2E test suite added covering live hub WS, SSH gateway, and Playwright hijack flows. qualify internal
    3 files
    • test_e2e_live_hub_ws.py
    • test_e2e_ssh_gateway.py
    • test_zzz_playwright_hijack.py

Hijack Race Condition Fixes

5 files changed
  • __init__.py Hub: TOCTOU re-check, dead-socket cleanup, broadcast fix
  • ownership.py Ownership: guard resume against raced-in sessions
  • bridge.py Bridge: stale state cleared on worker reconnect
  • websockets.py WS routes: pause sent before claiming ownership in hijack_request
  • rest.py REST routes: guard resume on rest_active; return None on snapshot timeout
  • TOCTOU re-check added before resume in dead-socket and WS release paths. remediate internal
    2 files
    • __init__.py
    • websockets.py
  • notify gated on _do_resume; hijack state broadcast on worker disconnect. remediate behavioral
    1 file
    • __init__.py
  • Resume guarded against raced-in sessions; stale state cleared on worker reconnect. remediate internal
    2 files
    • ownership.py
    • bridge.py
  • WS hijack_request reordered to send pause before claiming ownership; browsers notified on dead-socket clear. remediate behavioral
    2 files
    • websockets.py
    • __init__.py
  • Resume sent to worker when dead-socket cleanup clears hijack owner. deprecate errata
    1 file
    • __init__.py
  • Resume guarded on rest_active; None returned on snapshot timeout; linting fixed. remediate errata
    1 file
    • rest.py
  • Dead-socket hijack owner cleared in broadcast; session re-validated before send. remediate behavioral
    2 files
    • __init__.py
    • websockets.py

Code Quality

2 files changed
  • rest.py hijack_step re-validation added; mypy clean; bandit clean
  • ansi.py ANSI module quality cleanup
  • hijack_step re-validation added; mypy and bandit diagnostics cleaned. specify internal
    2 files
    • rest.py
    • ansi.py

Dependencies

2 files changed
  • pyproject.toml hypothesis added to dev dependencies
  • uv.lock Lock updated for hypothesis
  • hypothesis added to dev dependencies to support property-based testing. baseline internal
    2 files
    • pyproject.toml
    • uv.lock