Skip to content

feat: integrate PR #47, PR #27, PR #26, profile health & read-only extension inventory - #1

Merged
Martin-Hausleitner merged 32 commits into
mainfrom
integrate-pr-47-27-26
Jul 24, 2026
Merged

feat: integrate PR #47, PR #27, PR #26, profile health & read-only extension inventory#1
Martin-Hausleitner merged 32 commits into
mainfrom
integrate-pr-47-27-26

Conversation

@Martin-Hausleitner

Copy link
Copy Markdown
Owner

Summary

This PR integrates upstream PRs CloakHQ#47, #27, and #26 into Martin-Hausleitner/CloakBrowser-Manager, consolidates the mobile VNC workspace & profile health release pipeline, and advances the project vision with a read-only extension inventory system and CLI tool.

Integrated Upstream PRs

  1. PR fix: constrain browser window to VNC framebuffer CloakHQ/CloakBrowser-Manager#47 (fix: constrain browser window to VNC framebuffer): Implements _fit_window_to_vnc() using CDP Browser.getWindowForTarget and Browser.setWindowBounds to keep native browser windows inside framebuffer boundaries. Includes regression test test_fit_window_to_vnc_moves_oversized_window_back_inside_framebuffer.
  2. PR feat: Build universal agent browser control plane #27 (Make documented local backend startup work): Supports both package imports and standalone uvicorn main:app execution from backend/, with .data fallback for local non-Docker development.
  3. PR CBM-024 — Final README, screenshots, tickets, and operator demo #26 (feat: added field for search engine selection): Adds default search_engine per-profile selection (Google, Bing, DuckDuckGo) across DB schema, Pydantic models, FastAPI endpoints, and React forms.

Additional Roadmap & Vision Features

  1. Read-Only Extension Inventory:
    • Safe manifest parser (backend/extensions.py) to parse --load-extension flags, calculate trust states (valid, untrusted_manifest, missing_manifest, invalid_path), and extract metadata safely without executing code.
    • REST API endpoint GET /api/profiles/{profile_id}/extensions.
    • Operator & Agent CLI tool scripts/inspect_extensions.py.
  2. Profile Health & Mobile VNC Foundations:
    • Asynchronous profile health checks with masked outbound IP, 100/100 fingerprint consistency, 100/100 BrowserScan authenticity, and optional local proxychecker boundary.
    • Fail-closed execution boundary for agent harness preferences behind verified codex-computer-use bridge.

Test Verification

  • Backend Test Suite: 351 / 351 tests passed (pytest backend/)
  • Frontend Test Suite: 132 / 132 tests passed (npm test -- --run in frontend/)
  • Script Test Suite: 26 / 26 script tests passed (python3 -m pytest scripts/)
  • Frontend Production Build: Clean build succeeded (npm run build in frontend/)

Vision Context

Maintains strict fork security boundaries, fail-closed agent capabilities, mobile VNC UX guidelines, and evidence-driven roadmap tracking in docs/GOAL-ACCEPTANCE-MATRIX-2026-07-22.md and README.md.

Martin-Hausleitner and others added 30 commits July 21, 2026 19:13
Match the backend's deterministic field order and place newer profiles first for creation-time ties. Avoid repeated grouping work and expose group counts without changing accessible group names.

Co-Authored-By: Codex <noreply@openai.com>
Keep mobile profile selectors, grids, and fullscreen sessions in the same deterministic order as desktop. Show saved harness preferences only through the verified Codex Computer Use execution boundary.

Co-Authored-By: Codex <noreply@openai.com>
Add projects, nested folders, pins, accent colors, and saved harness preferences across the profile schema, migrations, API, and form. Keep authorization sandbox-scoped while exposing redacted organization context to administrators.

Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>
…API endpoint, and CLI inspection script

Signed-off-by: Martins Agent <hans@servas.ai>
Expose administrator-only launch/VNC counters with explicit unavailable
timings so operators can inspect runtime health without mobile clutter
or leaking ports, paths, URLs, or secrets.

Signed-off-by: Martins Agent <hans@servas.ai>
Administrators can move or pin many profiles in one request, and browser
launch no longer NameErrors after the live-diagnostics instrumentation.

Signed-off-by: Martins Agent <hans@servas.ai>
Capture the restored VCVM proxychecker path, Manager measured proxy
enrichment, and bulk organization acceptance after redeploy.

Signed-off-by: Martins Agent <hans@servas.ai>
Introduce a redacted VCVM proxy pool with Proxy-Checker checks and
geo-aligned auto profile creation, plus a compact Browser-Use desktop
shell for projects, harness choice, and mobile-parity settings.

Co-authored-by: Cursor <cursoragent@cursor.com>
Ship agent/extension control APIs that reuse profile open-links for CDP/VNC fullscreen URLs, plus low-latency /session/{id}/live screencast and UI/workspace wiring for Browser-Use and profile sync.

Co-authored-by: Cursor <cursoragent@cursor.com>
Copy config/ into the Docker image so /api/extension/defaults is non-empty on VCVM, mount EXTENSION_CATALOG_DIR for harvested Comet extensions, and surface FPS/RTT from /live-metrics in the Live Dev panel.

Co-authored-by: Cursor <cursoragent@cursor.com>
Cloak Chromium stalls after one Page.startScreencast frame; prefer
page-target WS and switch to captureScreenshot polling so Live Dev
keeps reporting fresh FPS/RTT. Ensure extension-catalog dir on deploy.

Co-authored-by: Cursor <cursoragent@cursor.com>
Cloak/Chromium only emits screencast frames when the page dirties, so
static pages stalled after one frame and fell back to ~6 fps screenshot
polling. Inject a canvas/rAF pulse (with keepalive), ack frames first,
and keep captureScreenshot as a true stall fallback only.

Co-authored-by: Cursor <cursoragent@cursor.com>
Martin-Hausleitner and others added 2 commits July 24, 2026 00:21
Expose open-links-compatible top-level CDP/VNC URLs on extension session open,
parse structured proxychecker reasons without inventing authenticity, wire the
VCVM checker default, and revoke agents immediately via DELETE.

Co-authored-by: Cursor <cursoragent@cursor.com>
@Martin-Hausleitner
Martin-Hausleitner merged commit ec924cd into main Jul 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant