Skip to content

feat(oglo): correlate USB outages with MCU boot identity - #25

Open
sungman-cho wants to merge 6 commits into
mainfrom
codex/oglo-usb-evidence-phase0
Open

feat(oglo): correlate USB outages with MCU boot identity#25
sungman-cho wants to merge 6 commits into
mainfrom
codex/oglo-usb-evidence-phase0

Conversation

@sungman-cho

@sungman-cho sungman-cho commented Aug 14, 2026

Copy link
Copy Markdown

Objective

Make one real OGLO USB outage joinable to host USB topology, MCU boot identity, and the persistent firmware journal without changing TAG data, the existing log structure, or reconnect policy.

What this PR does

  • adds optional metadata to existing flat OGLO_USB_EVIDENCE records for outage, USB reset request/result, and recovery result
  • allocates outage_id only when an outage is observed, eliminating phantom incident IDs from healthy connections
  • captures the initial identity as an in-memory baseline and emits it only for a real outage; a successful reconnect becomes the next baseline
  • probes GET IDENT after reconnect and joins the event chain with one outage_id and stream_id
  • validates the existing 128-bit mcu_boot_id plus optional application-SHA/journal metadata without a second journal boot identity
  • collapses repeated zero-byte reads into read_summary metadata that preserves last-valid-frame age, zero-read count, last nonzero classification, and the last real errno
  • accepts deployed hand-flashed 0.9.13 responses that naturally lack the new optional metadata
  • keeps identity collection non-gating: only a valid TAG packet proves reconnect adoption

Removed as unnecessary

  • no pre-outage IMU summary or duplicate sensor hot-path bookkeeping; raw IMU remains in the normal recording artifact
  • no bounded per-read array that can evict the last valid frame during a five-second silence
  • no preallocated outage IDs or identity-failure events for healthy sessions

Preserved behavior

  • no TAG/TAG2, CONFIG, HealthEvent, recording, customer, or database schema change
  • no evidence or identity schema/version field; new values are optional metadata in existing flat records
  • no reset/reconnect timeout or recovery-policy change
  • no raw USB or sensor payload in logs
  • identity/provenance collection remains best-effort and cannot stop capture

Verification

  • complete OGLO adapter test subset: 96 passed
  • focused reconnect/watchdog tests after final cleanup: 24 passed
  • GitHub test matrix on Python 3.12 and 3.13: passed
  • shared additive-metadata vector validated against the firmware PR
  • git diff --check: passed

Cross-repository landing order

  1. Merge this PR and publish the next SyncField release.
  2. Merge OpenGraphLabs/oglo-hardware#25, then build and sign firmware 0.9.14.
  3. Update the Pi lock in OpenGraphLabs/og-skill#147 to the published SDK and cut a Pi Agent release.
  4. Run the disconnect/reboot/wedge/reset canary matrix with both released components installed.

Interpretation limit

The software evidence correlates host disappearance, MCU reboot, and recovery actions. It deliberately does not classify an ambiguous physical cause such as cable movement, upstream 5 V loss, or ESD.

@sungman-cho
sungman-cho marked this pull request as draft August 14, 2026 11:43
@sungman-cho sungman-cho changed the title feat: define OGLO USB evidence source contract feat: instrument OGLO USB disconnect evidence and broker recovery Aug 14, 2026
@sungman-cho sungman-cho changed the title feat: instrument OGLO USB disconnect evidence and broker recovery feat: add OGLO USB incident flight logs Aug 14, 2026
@sungman-cho
sungman-cho force-pushed the codex/oglo-usb-evidence-phase0 branch from 7e2db30 to c62fb83 Compare August 14, 2026 16:51
@sungman-cho sungman-cho changed the title feat: add OGLO USB incident flight logs feat(oglo): add minimal USB incident flight logs Aug 14, 2026
@sungman-cho
sungman-cho marked this pull request as ready for review August 14, 2026 16:57
@sungman-cho sungman-cho changed the title feat(oglo): add minimal USB incident flight logs feat(oglo): correlate USB outages with MCU boot identity Aug 14, 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