Skip to content

Block-fingerprint readback for injected clients (replace byte-compare) #433

Description

@NOirBRight

This was generated by AI during triage.

Summary

Replace byte-equality round-trip readback (verify_apply_readback, gateway.rs:1146-1303) with block-fingerprint readback for clients under Provider Injection.

Problem

Today readback re-serializes the expected config and byte-compares against the whole file. Under coexistence semantics the user may add/edit their own providers at any time — any such edit currently reads as drift. Byte-compare is fundamentally incompatible with Provider Injection.

Design (decided)

  • Readback checks only the Injected Block: presence, fingerprint match (endpoint, protocol, projected model set, credential reference — never the credential value).
  • Foreign content is never validated and never reported as drift.
  • The client's global default-model key (e.g. DSH agent-default-model) is read and surfaced as informational state ("active / pointing elsewhere"), never as an error — injection never owns it.
  • Concurrent-edit safety applies only to the injected block and the single credential key; writes remain backup + atomic.

Acceptance criteria

  • Injected client passes readback after the user adds/removes unrelated providers
  • Tampered or deleted injected block reports truthful drift with actionable message
  • Credential values never appear in readback evidence
  • Legacy takeover clients keep byte-compare until their migration phase

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    campaign:0.1.90.1.9 coexistence provider injection & DSH client campaignenhancementNew feature or requestphase:beta10.1.9 phase: adapter seam + DSH headlessready-for-agentFully specified, ready for an AFK agent

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions