Skip to content

Adopt ciris-lens-core 1.0.0 — replace the in-tree cirislens-core; own the wire/scrub contract at the substrate #18

Description

@emooreatx

Why

ciris-lens-core 1.0.0 is live on PyPI — the wire-contract freeze release (CIRISLensCore#11 client-emit + #17 sovereign rlib parity + #18 freeze). It now owns the trace wire/canonical/scrub/sign contract at the substrate, with a stable-frozen public ABI (docs/PUBLIC_SCHEMA_CONTRACT.md). The deployed lens still carries the in-tree cirislens-core crate + hand-rolled wire/scrub plumbing — the source of the drift this repo keeps hitting (#6 scrubbing inconsistency, #7 generic-tier field stripping, #9 legacy-canonical verify mismatch). Adopting 1.0.0 consolidates that contract in one substrate-owned place.

Cohabitation floor

Pin the full triple (single process-singleton persist — agent + NodeCore + LensCore + edge share ONE persist version):

ciris-lens-core==1.0.0
ciris-persist==5.2.0
ciris-edge==2.0.2
ciris-verify==5.1.0

This is the active CIRISConformance matrix floor (lens-core re-added at 1.0.0; requires_lens cells live).

What to do

  1. Replace the in-tree cirislens-core with ciris-lens-core==1.0.0. The drop-in PyO3 parity surface is preserved (the v0.1.x success bar): process_trace_batch(engine, events, …), scrub_trace / scrub_traces_batch, ner_is_configured(), PROJECTION_VERSION. One-line alias at the import site (import ciris_lens_core as cirislens_core); delete the obsolete in-tree crate.
  2. Relay/node bootstrap — cut the FastAPI verify/scrub/persist path over to install_relay(edge): the cohabitation handler that verifies-via-persist + persists inbound AccordEventsBatch to the shared Engine (relay mode passes NullScrubber — scrubbing is the originating client's egress responsibility, CIRISPersist#89). No second engine/runtime.
  3. Wire contract — parse/verify against the frozen crate::wire::* (BatchEnvelope/CompleteTrace/ReasoningEventType/…), not hand-rolled shapes. The canonical bytes are byte-exact to the agent; the legacy-canonical/verify drift (verify_signature_mismatch on 2.7.6 agent traces survives persist 0.4.4 (2.7.legacy in SUPPORTED_SCHEMA_VERSIONS) — legacy-canonical envelopes not routed through legacy verifier #9) is routed through persist's version-dispatched verifier now.
  4. Scrub — delegate to scrub_trace/scrub_traces_batch (persist's NER pipeline) rather than the in-tree scrubber; this is the cure for the Inconsistent base_url scrubbing + correlated prompt_hash null pattern across LLM_CALL rows #6 base_url/prompt_hash inconsistency (one NER version, federation-wide).

Acceptance

References

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions