feat: add Devin Outposts on Daytona reference implementation#2
feat: add Devin Outposts on Daytona reference implementation#2mu-hashmi wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
2 issues found across 20 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="python/cognition/devin-outposts/devin_outposts/queue.py">
<violation number="1" location="python/cognition/devin-outposts/devin_outposts/queue.py:366">
P3: Valid SSE streams can produce incorrect `Event.cursor` values because no-colon fields are discarded and the last event ID is reset after every frame. Following the SSE field parsing and persistent last-event-ID rules avoids stale or missing replay cursors.</violation>
</file>
<file name="python/cognition/devin-outposts/devin_outposts/build_windows_snapshot.py">
<violation number="1" location="python/cognition/devin-outposts/devin_outposts/build_windows_snapshot.py:30">
P3: `LOGGER` is dead code, and it leaves `logging` imported solely for an unused module variable. Removing both would keep the new builder free of misleading logging scaffolding.</violation>
</file>
Tip: instead of fixing issues one by one fix them all with cubic
Tip: cubic can generate docs of your entire codebase and keep them up to date. Try it here.
Re-trigger cubic
| continue | ||
|
|
||
| field_name, separator, value = line.partition(":") | ||
| if not separator: |
There was a problem hiding this comment.
P3: Valid SSE streams can produce incorrect Event.cursor values because no-colon fields are discarded and the last event ID is reset after every frame. Following the SSE field parsing and persistent last-event-ID rules avoids stale or missing replay cursors.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At python/cognition/devin-outposts/devin_outposts/queue.py, line 366:
<comment>Valid SSE streams can produce incorrect `Event.cursor` values because no-colon fields are discarded and the last event ID is reset after every frame. Following the SSE field parsing and persistent last-event-ID rules avoids stale or missing replay cursors.</comment>
<file context>
@@ -0,0 +1,508 @@
+ continue
+
+ field_name, separator, value = line.partition(":")
+ if not separator:
+ continue
+ if value.startswith(" "):
</file context>
| from daytona_api_client.models.snapshot_dto import SnapshotDto | ||
| from dotenv import load_dotenv | ||
|
|
||
| LOGGER = logging.getLogger(__name__) |
There was a problem hiding this comment.
P3: LOGGER is dead code, and it leaves logging imported solely for an unused module variable. Removing both would keep the new builder free of misleading logging scaffolding.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At python/cognition/devin-outposts/devin_outposts/build_windows_snapshot.py, line 30:
<comment>`LOGGER` is dead code, and it leaves `logging` imported solely for an unused module variable. Removing both would keep the new builder free of misleading logging scaffolding.</comment>
<file context>
@@ -0,0 +1,383 @@
+from daytona_api_client.models.snapshot_dto import SnapshotDto
+from dotenv import load_dotenv
+
+LOGGER = logging.getLogger(__name__)
+
+PROVISIONER = resources.files("devin_outposts").joinpath("provision_windows.ps1")
</file context>
d4bb1f9 to
c93b29c
Compare
Signed-off-by: Muhammad Hashmi <mhashmi@berkeley.edu>
c93b29c to
fcfcc1f
Compare
https://docs.devin.ai/cloud/outposts/overview
add reference implementation code for devin outposts guide
Summary by cubic
Adds a reference implementation to run Devin Outposts sessions on Daytona. Includes an orchestrator for Linux/Windows sandboxes and an
outposts-connectCLI to link a pool and write.env.New Features
opbetaqueue with Daytona sandboxes: claim/resume, launch checksum-pinneddevin-remote, release on sleep/end, safe reattach via labels; persists event cursor and acceptor ID for stable restarts.outposts-connectCLI uses a browser PKCE flow and writesDEVIN_OUTPOSTS_TOKEN,DEVIN_API_URL, andPOOL_IDto.env.windows-medium) with SHA-pinned dependencies and default resource sizes.opbetaqueue client with watch/claim/release and tolerant field accessors; docs and tests included.devin-outposts-orchestrator,outposts-connect,build-devin-outposts-snapshot,build-devin-outposts-windows-snapshot.Migration
outposts-connectto populate.env(or copy.env.exampleand fill values).build-devin-outposts-snapshot(Linux) orbuild-devin-outposts-windows-snapshot(Windows), then set the snapshot name in.env.devin-outposts-orchestratorfor the target pool (one process per pool/platform).Written for commit fcfcc1f. Summary will update on new commits.