provide-terminal 2026-03-01
Hijack control plane hardened with bot-to-worker rename, ghost state elimination, and security hardening across 16 commits
29 files · 3,476+ · 2,619-

Hijack Hardening

8 files changed
  • base.py HijackableMixin: snapshot_req gating, stale lease read fixes, guard docs
  • bridge.py Bridge: clear hijacked state on recv_loop exit, rate-limit cleanup
  • hub.py Hub: ghost state elimination, lock-safety gaps closed, snapshot poll safety
  • models.py Models: _safe_int zero-value bug fix, REST release expiry check
  • routes.py Routes: dead _set_hijack_owner removed, ResizeObserver leak fixed
  • routes_rest.py REST routes: analyze ownership gate, payload size limits
  • routes_ws.py WS routes: spurious resume prevention, expiry-aware acquire checks
  • hijack.js Frontend: worker-online UI state, cooperative MI handling
  • Ghost state eliminated; stale lease reads and silent drops corrected. Worker disconnect now propagated to all browsers with stale leases cleared and worker-online UI state added. remediate behavioral
    3 files
    • hub.py
    • routes_ws.py
    • hijack.js
  • Lock-safety gaps in snapshot poll and send loop closed. remediate behavioral
    2 files
    • hub.py
    • bridge.py
  • Dead _set_hijack_owner removed, ResizeObserver leak fixed, regression tests added. qualify internal
    1 file
    • routes.py
  • snapshot_req gating hardened; stale lease read fixed; dead code disposed; guard documentation added. specify internal
    1 file
    • base.py
  • _safe_int zero-value bug corrected; REST release expiry check added; ownership gate analysis improved. remediate internal
    2 files
    • models.py
    • routes_rest.py
  • Spurious resume on contention prevented; expiry-aware acquire checks added; cooperative MI handling improved. remediate internal
    1 file
    • routes_ws.py
  • Swallowed exceptions logged; payload size limits added; integer cast guards added. remediate behavioral
    2 files
    • bridge.py
    • routes_rest.py
4 files changed
  • hub.py bot renamed to worker throughout hub
  • models.py bot renamed to worker in models
  • routes_rest.py bot renamed to worker in REST routes
  • routes_ws.py bot renamed to worker in WS routes
  • bot renamed to worker throughout the hijack control plane for clarity. decouple internal
    4 files
    • hub.py
    • models.py
    • routes_rest.py
    • routes_ws.py

Gateway and Bridge

4 files changed
  • gateway.py WS-to-TCP codec fix, snapshot_req loop hardening
  • bridge.py SSH codec asymmetry fixed, _wait_for_snapshot stale cache cleared, wait_ms floor aligned
  • ssh.py SSH codec asymmetry fix
  • websocket.py WebSocket transport hardening
  • WS-to-TCP codec fixed, lease_s bounds corrected, snapshot_req loop hardened. remediate internal
    1 file
    • gateway.py
  • SSH codec asymmetry fixed; _wait_for_snapshot stale cache cleared. streamline internal
    2 files
    • bridge.py
    • ssh.py
  • Rate-limit cleanup applied; wait_ms floor fixed; bridge codec aligned. deprecate errata
    1 file
    • bridge.py
4 files changed
  • routes_ws.py WS routes security hardening
  • bridge.py Bridge security hardening
  • models.py Model security hardening
  • websocket.py Transport layer security hardening
  • WS routes, bridge, models, and transport layer hardened against malformed input. remediate internal
    4 files
    • routes_ws.py
    • bridge.py
    • models.py
    • websocket.py
  • Input validation hardened; ref-count and stub-entry bugs corrected. qualify internal
    1 file
    • routes_rest.py
11 files changed
  • test_hijack_hub.py Hub tests split to stay within 500 LOC
  • test_hijack_hub_atomic.py Atomic hub tests split out
  • test_hijack_routes.py Route tests split
  • test_hijack_routes_advanced.py Advanced route test cases
  • test_hijack_routes_regression.py Route regression tests
  • test_hijack_ws.py WS hijack tests split
  • test_hijack_ws_browser.py Browser WS hijack tests
  • test_hijack_ws_regression.py WS hijack regression tests
  • test_hijack_bridge_loops.py Bridge loop tests
  • test_telnet_transport_branches.py Telnet transport branch tests
  • test_telnet_transport_negotiate.py Telnet negotiation tests split out
  • Oversized test files split to enforce 500 LOC limit across hijack and transport test suites. qualify internal
    6 files
    • test_hijack_hub.py
    • test_hijack_hub_atomic.py
    • test_hijack_routes.py
    • test_hijack_ws.py
    • test_telnet_transport_branches.py
    • test_telnet_transport_negotiate.py

State Recovery

1 file changed
  • bridge.py Hijacked state cleared on recv_loop exit to prevent permanent pause
  • Hijacked state cleared on recv_loop exit to prevent permanent pause after worker reconnect. remediate internal
    1 file
    • bridge.py