Bug Report Pipeline // ocuclaw
←  Main page
OcuClaw · the OpenClaw client for Even Realities' Even Hub & G2

From a tap on the glasses app to an agent-authored fix.

When something goes wrong on a user's G2, OcuClaw can assemble a report from bounded diagnostics enabled for that purpose. Routine relay logs stay local; enhanced capture and upload are separate controls, and nothing is sent until the user reviews that specific report and taps Send. On the other side, a private dashboard and a protected AI-assisted workflow turn reports into fixes, with a human approving the result.

For the reporter
One tap, one reference
Review what's included, add a note, hit Send — get a short OCU-XXXX-XXXX code you can quote on Discord. Works even when the app can't connect.
For privacy
Recorded locally. Sent deliberately.
Normal relay logs remain on the OpenClaw machine. Enhanced report diagnostics are separately gated, and enabling them does not upload anything by itself.
For the fix
A closed loop
An AI agent reads reports through a locked-down, read-only window, proposes the fix, and a human approves it. Reports go up; fixes come back.
01 The route a report travels

Four hops. One shared store. One-way glass in the middle.

The plugin on the agent side assembles the bundle, the glasses app uploads it, and two small cloud services share one storage box: debug.ocuclaw.com is the public drop-slot anyone can post into, and a private triage service is the only way anything comes back out. Uploaders can't read; readers can't be reached by uploaders.

fig.01 — end-to-end topologycapture · upload · store · triage
flowchart TB
  classDef you fill:#0e1622,stroke:#7ad3ff,color:#dbeeff,stroke-width:1px;
  classDef cc fill:#0c1a10,stroke:#4dd58a,color:#dff5e6,stroke-width:1.2px;
  classDef box fill:#1a1408,stroke:#ffb454,color:#ffe7c2,stroke-width:1px;
  classDef edge fill:#1a0e12,stroke:#ff8798,color:#ffd9df,stroke-width:1px;

  PL["ocuclaw plugin — assembles the bundle<br/>gated capture → verify → package"]:::box
  APP["👓 glasses app<br/>'Send Bug Report' — review + send"]:::you
  UP["public drop-slot<br/>debug.ocuclaw.com"]:::edge
  ST[("shared store<br/>private blobs · 90-day retention")]:::cc
  TR["private triage service<br/>dashboard + protected agent API"]:::cc
  OPR["💻 you — login + dashboard"]:::you
  AGT["🤖 AI agent — read-only key"]:::you

  PL --> APP
  APP -->|"proof-of-work + upload"| UP
  UP -.->|"reference OCU-XXXX-XXXX"| APP
  UP --> ST --> TR
  TR --> OPR
  TR --> AGT
Why reports do not require an account The intake path does not depend on a user identity. Abuse-resistant upload controls protect the public endpoint, while private authentication and role boundaries protect the review side.
02 Filing a report

The Send Bug Report flow — review, note, send.

Enhanced report diagnostics are separate from routine local logging and must be enabled before this flow can assemble them. The report starts with the last 5 minutes of available activity (a slider reaches further back). You can inspect the complete prepared bundle, add a note, and either save it locally or choose Send to OcuClaw. Enabling diagnostics alone never uploads a report.

Local logs, enhanced capture, and upload are separate Normal relay operation may write limited startup, connection, and error-status messages to OpenClaw's own local logs. They remain under OpenClaw's local log handling and are not sent to OcuClaw automatically. Client Debug Enabled adds enhanced app-side diagnostics. On the OpenClaw relay, externalDebugToolsEnabled permits bounded capture, preview, and local save; allowDebugUpload separately permits the prepared bundle to reach the phone. The user must still tap Send to OcuClaw for that specific report.
Send Bug Report CLOSE
Review
How much history to includeLast 5 min
Drag right to include earlier buffered activity, including between connections.
Upload size3.8 MB
Captured3:12 PM–3:17 PM · 5m 0s
What's included ▾
Events captured1,842
relay.transport412 ev · 88131 B
sdk.frames388 ev · 71204 B
voice.timeline240 ev · 40966 B
screen.nav96 ev · 12480 B
app.timeline61 ev · 9355 B
What went wrong? *
Briefly describe what happened
Contact (optional)
Email or Discord, if you want a reply
Before you choose
  • The bundle may include recent message text, session titles, and agent names.
  • Secrets such as relay/gateway tokens and addresses are always stripped.
  • Save writes the complete prepared bundle to your OpenClaw machine for inspection. Send uploads it.
Anonymous install ID sent with upload:
c1f4a9e2-77b3-4d6e-9a08-4f2d15c0b7aa
Send to OcuClaw
Review hub · connectedHistory slider, live size + per-category counts, required note, complete local-save option, and explicit Send — all before a report leaves your devices.
Send Bug Report CLOSE
Review
Upload size512 B
What's included ▾
Includes your previous failed session
With Client Debug Enabled, OcuClaw can include bounded app-side diagnostics from the failed session. They remain local unless you save or send this report.
Phone diagnostics (relay not connected)
Events captured214
What went wrong? *
Briefly describe what happened
Contact (optional)
Email or Discord, if you want a reply
Before you choose
  • Secrets such as relay/gateway tokens and addresses are always stripped.
Anonymous install ID sent with upload:
c1f4a9e2-77b3-4d6e-9a08-4f2d15c0b7aa
Send to OcuClaw
Disconnected reportWhen Client Debug Enabled is on, a client-only bundle can preserve failure context even without the relay. Upload still requires an explicit Send.
Uploading…62%
Sent to OcuClaw
Thanks for the bug report. Keep this reference if you wish to discuss the report on Discord.
OCU-7F3K-92Q4COPY
Close
Sent, with a receiptLive upload progress, then a copyable reference — the user's proof the report landed, and your key to finding it.
03 Protected, sealed, verified

What happens between Send and the store.

Before anything leaves, the app applies strict on-device privacy controls that minimise sensitive content while preserving the diagnostic signals needed to investigate a fault. The receiving service then verifies the report, limits automated abuse, and binds the upload to its integrity record before accepting it. These protections are enforced in code and fail closed when a report does not meet the expected contract.

Minimise
Privacy before upload
Sensitive values and unnecessary content are removed on-device. The preview shows what the report contains before it is sent, and diagnostics remain off unless the user enables them.
Stamp + fingerprint
Pinned to an exact build
Every report carries the precise app, plugin, and runtime versions it came from, plus two SHA-256 fingerprints. The server re-checks them — a tampered or swapped upload is simply refused.
Protect
Abuse-resistant intake
Layered intake controls resist replay and automated flooding without requiring a user account. Reports are access-controlled and age out of storage automatically.
44event categories in the debug ring
4MBhard size cap, trimmed to fit
~1sproof-of-work on an honest phone
90days retention, then auto-purged
04 Protected analysis

Security stays between the report and the model.

Debug reports can contain unpredictable text, so OcuClaw applies multiple independent protection tiers before AI-assisted triage begins. Deterministic validation, prompt-injection defenses, least-privilege access, and human approval work together; no single model judgement is treated as the security boundary.

Tier 1 · validate
Deterministic safeguards
Reports are checked against strict structural, content, and resource limits before entering the analysis path. Invalid or incomplete inputs are rejected rather than interpreted.
Tier 2 · isolate
Prompt-injection resistance
Reporter-supplied content is kept separate from system instructions and processed through dedicated defensive boundaries designed for indirect prompt-injection attempts.
Tier 3 · constrain
Read-only by design
The triage integration is limited to protected read surfaces. Raw downloads, operator credentials, edits, and deletion remain outside its role, and consequential action requires a human.
privacy controls          active ✓
integrity + completeness    verified ✓
prompt-injection defenses   active ✓
analysis permissions        read-only ✓
consequential action        human approval required ✓

Integrity and completeness checks travel with the protected analysis response. If a response is incomplete or fails verification, it is not treated as a complete report. The agent produces a structured recommendation; a human operator remains responsible for any consequential next step.

05 The loop closes

Reports go up. Fixes come back — with a human holding the pen.

A small CLI drives the whole read side. The agent narrows the pile with code-side filters, deep-reads only the reports that match, and emits a structured verdict. A human approves; the fix is reproduced against the exact build the report pinned, validated, and shipped. The reading agent recommends — it never executes.

triage lane you: full key · agent: read-only key
you › triagectl list OCU-7F3K-92Q4 · client 1.3.7 · "voice overlay froze after handoff" · 3.8 MB agent › find reports like this one 4 matches — filtered by version and date in code, never by the model reading bundles agent › analyse OCU-7F3K-92Q4 protected report · integrity verified · complete agent › verdict severity P2 · freeze starts at the drain seam · injection attempts: none → human approves you › reproduce on the pinned build → fix → validate → PR the report's version stamp says exactly what to reproduce against → fix shipped

Anyone can report. Every report is protected. People stay in control.