<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Bisina Daniel</title>
    <description>The latest articles on DEV Community by Bisina Daniel (@dbisina).</description>
    <link>https://dev.to/dbisina</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3593521%2F806990be-98f3-4f9d-8c49-78bcab90bbc5.jpg</url>
      <title>DEV Community: Bisina Daniel</title>
      <link>https://dev.to/dbisina</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/dbisina"/>
    <language>en</language>
    <item>
      <title>Building a signed handoff protocol for AI coding agents</title>
      <dc:creator>Bisina Daniel</dc:creator>
      <pubDate>Fri, 17 Jul 2026 22:53:07 +0000</pubDate>
      <link>https://dev.to/dbisina/building-a-signed-handoff-protocol-for-ai-coding-agents-37c6</link>
      <guid>https://dev.to/dbisina/building-a-signed-handoff-protocol-for-ai-coding-agents-37c6</guid>
      <description>&lt;h1&gt;
  
  
  Building a signed handoff protocol for AI coding agents
&lt;/h1&gt;

&lt;p&gt;If you run more than one AI coding agent, you've hit this: Claude Code (or Codex, or whichever) gets deep into a task, hits its usage limit, and everything it knew evaporates. The plan, the half-finished edit, the "don't redo this migration" context. You paste a summary into the next tool by hand and hope you didn't forget anything.&lt;/p&gt;

&lt;p&gt;I got tired of that enough to build &lt;a href="https://github.com/dbisina/relay" rel="noopener noreferrer"&gt;Relay&lt;/a&gt;: a Go daemon that sits in front of whichever agents you run and treats the handoff as a protocol instead of a manual migration.&lt;/p&gt;

&lt;h2&gt;
  
  
  The mechanism, not the pitch
&lt;/h2&gt;

&lt;p&gt;Here's what actually happens when an agent hits a wall.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Detect the breach.&lt;/strong&gt; Relay watches the active provider's quota in real time (proxy header when available, session file otherwise, request counting as a last resort). When usage crosses a threshold, it doesn't wait for a 429.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Request a safe pause.&lt;/strong&gt; The adapter is asked for a safe point, usually right after a commit, never mid-edit. This is a real handshake, not a timeout guess:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;\&lt;/code&gt;&lt;code&gt;go&lt;br&gt;
type AdapterContract interface {&lt;br&gt;
    Capability() ProviderCapability&lt;br&gt;
    Run(ctx, opts RunOptions, ch chan&amp;lt;- AgentEvent) error&lt;br&gt;
    AwaitSafePauseWindow(ctx, breachReason string) (SafePoint, error)&lt;br&gt;
    ForceStop() error&lt;br&gt;
}&lt;br&gt;
\&lt;/code&gt;&lt;code&gt;\&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Snapshot.&lt;/strong&gt; A git commit on a dedicated session worktree branch. Your main tree is never touched, agents work in &lt;code&gt;.relay/sessions/&amp;lt;id&amp;gt;/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Build and sign a continuation contract.&lt;/strong&gt; This is the actual unit of transfer: the original prompt, the plan, what's left to do, decisions made, constraints discovered, files touched with their SHA-256, and truncated snippets of in-flight code. Serialized as Markdown for the next agent to read and JSON for machine verification, HMAC-SHA256 signed with a project-local key:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;\&lt;/code&gt;&lt;code&gt;json&lt;br&gt;
{&lt;br&gt;
  "contractId": "c-abc123",&lt;br&gt;
  "taskGoal": "add a refund flow to the orders service",&lt;br&gt;
  "nextAction": "Wire POST /orders/:id/refund",&lt;br&gt;
  "doNotRedo": ["migration 0042 applied"],&lt;br&gt;
  "inFlightCode": [{"path": "orders/refund.go", "snippet": "func Refund(... // truncated"}],&lt;br&gt;
  "signature": "hex(HMAC-SHA256(canonical JSON, signing-key))"&lt;br&gt;
}&lt;br&gt;
\&lt;/code&gt;&lt;code&gt;\&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Dispatch and verify.&lt;/strong&gt; The next agent (different model, different account, different provider, whatever's available) gets the contract injected as system context. It reads the signature before trusting anything in it. Tampered or forged contracts get rejected, not silently accepted.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Resume.&lt;/strong&gt; A heartbeat confirms the new agent picked up the work, and the whole thing is one state transition in a small FSM (&lt;code&gt;RUNNING → PAUSING → SNAPSHOTTED → ENVELOPE_BUILT → DISPATCHED → RESUMING → RUNNING&lt;/code&gt;), durably written to disk before each step so a crash mid-handoff just resumes where it stopped on restart.&lt;/p&gt;

&lt;h2&gt;
  
  
  What that unlocks
&lt;/h2&gt;

&lt;p&gt;Once the handoff is a real protocol instead of a hope, a few other things become possible:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;relay detect&lt;/code&gt;&lt;/strong&gt; finds Claude Code, Codex, Copilot, Cursor, Cline, Continue, or Antigravity sessions already running on your machine (process scan plus reading each tool's own on-disk transcript format) and can lift one mid-flight onto a different provider.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Account-aware failover.&lt;/strong&gt; Exhaust one Claude login, resume on another, before ever crossing to a different provider. Cheaper than burning a cross-vendor handoff for something a second login solves.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A quota wallet with burn-rate forecasting&lt;/strong&gt;, so the handoff can trigger &lt;em&gt;before&lt;/em&gt; the wall instead of reacting to a 429.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-agent pipelines&lt;/strong&gt;: a DAG where each node is an agent doing one part of a task, with fallback providers and acceptance commands gating each step.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What it isn't
&lt;/h2&gt;

&lt;p&gt;It's not another agent. It doesn't write code itself. It's the layer underneath the agents you already use, and it explicitly does not try to be smarter than them, it just refuses to let their limits cost you the context you already paid for.&lt;/p&gt;

&lt;p&gt;Go daemon, Rust desktop app (egui), a TUI, one binary. Apache-2.0. Still early, &lt;a href="https://github.com/dbisina/relay/discussions" rel="noopener noreferrer"&gt;detect/adopt&lt;/a&gt;, the quota wallet, and pipelines all shipped in the last couple weeks, so there's plenty rough around the edges and I'd genuinely like to know what breaks for you.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;\&lt;/code&gt;&lt;code&gt;bash&lt;br&gt;
curl -fsSL https://raw.githubusercontent.com/dbisina/relay/main/scripts/install.sh | bash&lt;br&gt;
relay init &amp;amp;&amp;amp; relay run "add a refund flow to the orders service"&lt;br&gt;
\&lt;/code&gt;&lt;code&gt;\&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/dbisina/relay" rel="noopener noreferrer"&gt;Repo&lt;/a&gt; · &lt;a href="https://dbisina.github.io/relay/architecture.html" rel="noopener noreferrer"&gt;Architecture docs&lt;/a&gt; · &lt;a href="https://github.com/dbisina/relay/discussions" rel="noopener noreferrer"&gt;Discussions&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>ai</category>
      <category>productivity</category>
      <category>go</category>
    </item>
    <item>
      <title>Introducing U-HOP — Universal Hardware Optimization Protocol</title>
      <dc:creator>Bisina Daniel</dc:creator>
      <pubDate>Mon, 03 Nov 2025 01:36:37 +0000</pubDate>
      <link>https://dev.to/dbisina/introducing-u-hop-universal-hardware-optimization-protocol-2m6i</link>
      <guid>https://dev.to/dbisina/introducing-u-hop-universal-hardware-optimization-protocol-2m6i</guid>
      <description>&lt;p&gt;Modern AI workloads shouldn’t need to be rewritten for every device. Yet today, performance still depends heavily on vendor-specific frameworks, driver stacks, and hand-tuned kernels.&lt;/p&gt;

&lt;p&gt;U-HOP (Universal Hardware Optimization Protocol) is an open initiative to break that dependency by creating a unified optimization layer that lets compute run fast anywhere.&lt;/p&gt;

&lt;p&gt;Write once → run optimized across GPUs, CPUs, NPUs, TPUs, and edge accelerators.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What U-HOP Does&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;U-HOP dynamically selects the best compute backend and generates optimized kernels for the underlying hardware — automatically.&lt;/p&gt;

&lt;p&gt;Think of it as:&lt;/p&gt;

&lt;p&gt;A protocol that maps high-level ops to the best low-level execution path available at runtime.&lt;/p&gt;

&lt;p&gt;Initial focus areas:&lt;br&gt;
    • Matrix operations (matmul)&lt;br&gt;
    • Conv2D ops&lt;br&gt;
    • ReLU / activation pipelines&lt;br&gt;
    • Device introspection + runtime backend selection&lt;br&gt;
    • Foundations for future AI-generated kernel synthesis&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why This Matters&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We’re moving toward a world where models run:&lt;br&gt;
    • On multi-GPU rigs&lt;br&gt;
    • On phones with NPUs&lt;br&gt;
    • On browser WebGPU&lt;br&gt;
    • On edge compute like Jetson / RK3588&lt;br&gt;
    • On future AI accelerators&lt;/p&gt;

&lt;p&gt;Fragmentation limits innovation.&lt;/p&gt;

&lt;p&gt;U-HOP’s goal is to unify compute execution and unlock “write once, run fast anywhere” for ML workloads — starting with real operator-level performance wins.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Current Status (MVP Phase)&lt;/strong&gt;&lt;br&gt;
    • Runtime architecture defined&lt;br&gt;
    • Backend probing + dispatch in progress&lt;br&gt;
    • Core op specification (v0.1) drafted&lt;br&gt;
    • First demos in pipeline:&lt;br&gt;
    • matmul across heterogeneous devices&lt;br&gt;
    • ReLU + Conv2D proof runs&lt;br&gt;
    • Benchmarking vs naive exec paths&lt;/p&gt;

&lt;p&gt;Next milestone: AI-generated kernel optimization demo.&lt;/p&gt;

&lt;p&gt;Repo:&lt;br&gt;
&lt;a href="//github.com/sevenloops/uhop"&gt;github.com/sevenloops/uhop&lt;/a&gt; (active early-stage build)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get Involved&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We’re building in the open. If you’re passionate about:&lt;br&gt;
    • GPU architecture&lt;br&gt;
    • Kernel optimization&lt;br&gt;
    • Runtime compilers&lt;br&gt;
    • ONNX / CUDA / ROCm / WebGPU&lt;br&gt;
    • Edge acceleration&lt;br&gt;
    • AI-generated system code&lt;/p&gt;

&lt;p&gt;We’d love to collaborate.&lt;/p&gt;

&lt;p&gt;Comment. PR. Fork. Stress-test. Let’s build a new standard.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Vision&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A protocol layer that eventually becomes the bridge between AI→hardware, enabling models — and future AI compilers — to target any compute substrate without rewriting code.&lt;/p&gt;

&lt;p&gt;Hardware becomes a capability layer, not a constraint.&lt;/p&gt;

&lt;p&gt;U-HOP is a first step toward that future.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Call to action&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Clone the repo &amp;amp; try the early dispatch tests:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;git clone https://github.com/sevenloops/uhop&lt;br&gt;
cd uhop&lt;br&gt;
python tests/dispatch_demo.py&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Share feedback, ideas, challenges, and benchmarks.&lt;br&gt;
Let’s shape the protocol together.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>nvidia</category>
      <category>amd</category>
      <category>gpu</category>
    </item>
  </channel>
</rss>
