Skip to content

[POC] Control lease, RFB input gating, screen recorder for teach/replay - #1

Draft
devin-ai-integration[bot] wants to merge 4 commits into
mainfrom
poc/teach-replay-computer-use
Draft

devin-ai-integration[bot] wants to merge 4 commits into
mainfrom
poc/teach-replay-computer-use

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Sep 12, 2026

Copy link
Copy Markdown

Summary

POC — do not merge. Farm-side seams for teach/replay computer-use skills, per nodes.json. Three additions, nothing else touched:

  • Control lease FSM (IDLE / AGENT / HUMAN) — exactly one driver owns a profile at a time; takeover/handback flip it.
  • RFB input gating on the VNC proxy — while AGENT holds the lease, viewer pointer/keyboard input is dropped; frames keep flowing so operators keep watch-only live view.
  • Screen recorder — ffmpeg x11grab on the profile's private display at 15fps MP4; capture is preserved across profile shutdown into the evidence bundle.

Consumed by LoopKitchen/backend poc/teach-replay-computer-use (computer_use/clients/). Mirus-gated demo checklist lives on that side.

Link to Devin session: https://loopai.devinenterprise.com/sessions/14dc6b7343e14870a825c33aa2883ddb
Open in Devin Desktop: https://loopai.devinenterprise.com/desktop/session/14dc6b7343e14870a825c33aa2883ddb?variant=devin


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.


Summary by cubic

POC — do not merge. Adds farm-side seams for teach/replay computer-use skills: exclusive per-profile control leases, view-only RFB input gating, and X display screen recording.

New Features

  • Control lease FSM (idle/agent/human) grants exactly one holder control per profile; humans preempt agents, agents reacquire only after the human releases.
  • VNC proxy drops pointer, keyboard, and clipboard messages while the agent holds the lease; frames keep flowing so operators keep watch-only live view.
  • Screen recorder captures each profile's private display via ffmpeg x11grab at 15 fps MP4; active captures finalize on profile shutdown into the evidence bundle.
  • nodes.json tracks the 15-node teach/replay skill graph this POC wires into.

Written for commit be2bfcf. Summary will update on new commits.

Review in cubic

abhishekgahlot2 and others added 4 commits September 12, 2026 11:25
Decomposes teach-by-demonstration + replay for campaign/repetitive tasks on
the Cloak farm: capture/learner/replay-executor/control-lease/gates/evidence/
UI. Same schema as poc/overwatch-voice. POC only, nothing merges to main.

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Constraint: Human takeover may preempt AGENT, but AGENT may resume only after exact HUMAN lease release.
Tested: python -m pytest backend/tests/test_control_lease.py backend/tests/test_rfb.py backend/tests/test_api.py -q (124 passed)
Constraint: Record only the manager-owned private X display and finalize before teardown.
Tested: python -m pytest backend/tests/test_recorder.py backend/tests/test_control_lease.py backend/tests/test_rfb.py backend/tests/test_api.py -q (132 passed)
Tested: docker build -t cloakbrowser-manager-teach-replay:test .
Constraint: A human retrieves and enters Mirus credentials only while holding exclusive control.
Tested: python3 -m json.tool nodes.json
@devin-ai-integration

Copy link
Copy Markdown
Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

Prompt hidden (unlisted session)

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