Skip to content

feat(stage-a-a1): apply camera state through generic host sessions - #11

Draft
muthmann wants to merge 3 commits into
ci/prebuilt-plugin-bundlesfrom
agent/stage-a1-camera-configuration
Draft

feat(stage-a-a1): apply camera state through generic host sessions#11
muthmann wants to merge 3 commits into
ci/prebuilt-plugin-bundlesfrom
agent/stage-a1-camera-configuration

Conversation

@muthmann

@muthmann muthmann commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Dependency

Depends on muthmann/augur-rs#44. That PR supplies a generic complete camera-configuration transaction, profile store, generation-bound sensor readback, rollback, and restore. AugurRS remains a standalone recorder and profile editor with no plugins installed.

This is a stacked PR against ci/prebuilt-plugin-bundles, the exact parent of this branch, so the committed diff contains only the current A1 work.

Architecture

A1 embeds into generic host capabilities. The host has no A1 IDs, field whitelist, workflow metadata interpretation, or scientific policy.

  • A1 selects a named host profile, an immutable inline snapshot, or the current complete configuration.
  • For diff_on/diff_off, A1 clones the last host-confirmed complete snapshot and changes only those protocol fields.
  • The host validates the complete configuration through the active camera backend, applies it, and returns only after a fresh generation-bound readback.
  • A1 uses that confirmed reply as the authority. It does not inspect the previous UI state or wait for another user Apply action.
  • A named profile may enable Sensor reading in the same atomic apply.
  • A1 owns only its scientific gates: the confirmed snapshot must enable sensor telemetry and disable STC/Trail.
  • Recording starts only after the drive retargets and camera confirmation have both completed. Success, Stop, and abort restore the pre-run complete configuration.

What changed

  • let A1 protocols select a named host camera profile or immutable inline snapshot
  • add canonical per-point diff_on and diff_off fields for TOML and CSV
  • apply initial and per-point changes through the generic complete-snapshot command
  • remove the stale pre-apply dependency on the UI/context Sensor reading state
  • leave sensor-specific bias limits with the active camera backend instead of duplicating IMX636 ranges in A1
  • fail closed on rejected/missing readback or a confirmed scientifically incompatible snapshot
  • retry restore up to three times and never report an unconfirmed restore as successful
  • store requested values, confirmed offsets, absolute codes, readback age, immutable snapshot, and profile provenance
  • retain backward compatibility for protocols without camera fields
  • centralize the firmware-qualified 0.01–2000 Hz drive range
  • separate the 2 kHz output limit from A1's 16-photodiode-samples-per-cycle measurement gate

Naming

The canonical camera/backend fields are diff_on and diff_off. No ambiguous bias_on or bias_off aliases are introduced.

Validation

  • A1: 126 tests passed
  • A1 clippy with -D warnings: passed
  • all applicable plugin workspace tests: passed
  • AugurRS standalone GUI and CLI checks without default features: passed
  • AugurRS PR #44 CI and Packaging: passed
  • plugin bundle CI: Linux, macOS arm64, and Windows passed; macOS x86_64 is queued for a runner

The firmware-qualified output ceiling remains 2 kHz. At 20 kSa/s, A1's measurement limit is 1.25 kHz; at 500 kSa/s it is 31.25 kHz, while output remains limited to 2 kHz. Final EVK4 readback timing and analog photodiode bandwidth/ENOB remain bench-verification items.

@muthmann muthmann changed the title feat(stage-a-a1): apply confirmed camera profiles and bias points feat(stage-a-a1): apply camera state through generic host sessions Aug 12, 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