provide-terminal 2026-03-15
undef-telemetry integration, replay playback with real-time deltas, and JWT auth fixes
159 files · 11,730+ · 1,321-

Replace stdlib logging with undef-telemetry

15 files changed
  • gateway.py Gateway: stdlib logging replaced with undef-telemetry
  • base.py Hijack base: stdlib logging replaced
  • bridge.py Hijack bridge: stdlib logging replaced
  • connections.py Hub connections: stdlib logging replaced
  • core.py Hub core: stdlib logging replaced
  • ownership.py Hub ownership: stdlib logging replaced
  • app.py Server app: stdlib logging replaced
  • auth.py Server auth: stdlib logging replaced
  • config.py Server config: stdlib logging replaced
  • ssh.py SSH connector: stdlib logging replaced
  • websocket.py WebSocket connector: stdlib logging replaced
  • runtime.py Server runtime: stdlib logging replaced
  • ssh.py SSH transport: stdlib logging replaced
  • telnet.py Telnet transport: stdlib logging replaced
  • conftest.py Removed manual structlog conftest config (no longer needed)
  • Replaced Python stdlib logging throughout with undef-telemetry. Removed manual structlog conftest config (no longer needed). decouple behavioral
    6 files
    • gateway.py
    • core.py
    • app.py
    • auth.py
    • runtime.py
    • conftest.py

Replay playback with real-time deltas and ANSI color toggle

7 files changed
  • viewer.py Replay viewer with real-time delta playback timer
  • ReplayPage.tsx Replay page component with playback controls
  • PlaybackControls.tsx Playback controls component
  • ScreenPreview.tsx Screen preview with ANSI color toggle
  • TimelineCanvas.tsx Timeline canvas component
  • EventDetail.tsx Event detail component
  • replayStore.ts Replay state store
  • Implemented replay playback timer that replays terminal sessions with accurate real-time deltas between frames. decouple internal
    3 files
    • viewer.py
    • ReplayPage.tsx
    • replayStore.ts
  • Added ANSI color rendering toggle on the replay screen preview. instantiate behavioral
    2 files
    • ScreenPreview.tsx
    • ansiToHtml.ts

JWT auth fixes and Cloudflare Worker parity

6 files changed
  • auth.py Made extract_bearer_token public; guarded token cookie for anonymous requests
  • pages.py Fixed setting the token cookie on page responses in JWT mode
  • api.py API routes updated for JWT auth
  • jwt.py JWT auth implementation
  • http_routes.py HTTP routes with JWT enforcement
  • wrangler.toml Set AUTH_MODE=jwt for production
  • Set AUTH_MODE=jwt for production; fixed pywrangler dev build loop. remediate internal
    1 file
    • wrangler.toml
  • Fixed setting the token cookie on page responses in JWT mode. remediate internal
    1 file
    • pages.py
  • Made extract_bearer_token public; guarded token cookie for anonymous requests. harden internal
    1 file
    • auth.py
  • Updated Playwright server tests for new React app UI. qualify behavioral
    1 file
    • test_server.py

React SPA frontend (provide-terminal-app package)

17 files changed
  • index.html SPA entry point
  • App.tsx Root application component
  • main.tsx Main entry point
  • client.ts API client
  • sessions.ts Sessions API
  • types.ts API type definitions
  • bootstrap.ts Bootstrap configuration
  • DashboardPage.tsx Dashboard page component
  • ConnectPage.tsx Connect page component
  • OperatorPage.tsx Operator page component
  • SessionPage.tsx Session page component
  • AppHeader.tsx App header layout component
  • dashboardStore.ts Dashboard state store
  • sessionStore.ts Session state store
  • terminalStore.ts Terminal state store
  • tokens.css Design tokens CSS
  • vite.config.ts Vite build config
  • New provide-terminal-app React SPA package with full dashboard, connect, operator, session, and replay pages. State managed via Zustand stores. Vite build config. instantiate architectural
    5 files
    • App.tsx
    • DashboardPage.tsx
    • OperatorPage.tsx
    • dashboardStore.ts
    • vite.config.ts

Styles, JWKS cache, and frontend cleanup

4 files changed
  • ui.py Extracted inline styles to CSS classes; JWKS cache clock fix
  • hijack.js Frontend hijack JS with SPDX headers
  • session_logger.py Session logger SPDX header added
  • hijack.js Frontend hijack source with SPDX headers
  • Extracted inline styles to CSS classes; fixed JWKS cache clock calculation. decouple internal
    1 file
    • ui.py
  • Added SPDX copyright headers to all TS/JS source files. Removed stale frontend asset files. baseline internal
    2 files
    • hijack.js
    • session_logger.py

Test config, coverage, and mutmut fixes

8 files changed
  • test_ansi.py ANSI test suite
  • test_runtime_fixes.py Runtime fix tests (120 lines)
  • test_ui_vite.py Vite UI tests (159 lines)
  • test_connections_fixes.py Connections fixes tests
  • test_core_fixes.py Core fixes tests
  • test_routes_advanced.py Advanced routes tests
  • test_ws_exception_handling.py WebSocket exception handling tests
  • test_pages.py Pages route tests
  • Fixed mutmut config and hypothesis health checks. Suppressed differing_executors health check in hypothesis tests. Scoped coverage to undef.terminal, fixed dead branch. remediate internal
    2 files
    • conftest.py
    • test_runtime_fixes.py

Docs update for hosted UI and Cloudflare parity

5 files changed
  • README.md README updated
  • production-readiness-pass2.md Production readiness pass 2 documentation
  • protocol-matrix.md Protocol matrix documentation
  • README.md Cloudflare package README
  • HANDOFF.md HANDOFF updated
  • Updated hosted UI, Cloudflare parity docs, and overall documentation. specify behavioral
    3 files
    • README.md
    • production-readiness-pass2.md
    • protocol-matrix.md