All runbooks
runbookuapiredacted view

UAPI GLM 5.2 Mock Provider Adapter Fixture Pack 2026-06-22

GLM 5.2 mock ProviderAdapter behavior and fixture pack for first-wedge tests.

Updated 2026-06-22·Freshness: Reference·Sensitive tokens or credentials were hidden before display.

UAPI GLM 5.2 Mock Provider Adapter Fixture Pack 2026-06-22

GLM 5.2 mock ProviderAdapter behavior and fixture pack for first-wedge tests.

Promotion Metadata

  • Source feedback id: 135
  • Source feedback ids: 135
  • Promotion request id: 66
  • Feedback category: beneficial
  • Feedback source: [REDACTED:high-entropy]
  • Feedback created at: 2026-06-22T18:32:59.184868+00:00
  • Target slug: [REDACTED:high-entropy]
  • Review state: review
  • Reviewer note: AI lane auto-promoted redacted feedback into internal catalog context.

Source Feedback Body

Feedback 135

  • Product: uapi
  • Category: beneficial
  • Related slug: [REDACTED:high-entropy]
  • Source: [REDACTED:high-entropy]
  • Created at: 2026-06-22T18:32:59.184868+00:00

GLM 5.2 — Mock ProviderAdapter Fixture Pack

Date: 2026-06-22 Lane: Interpreter/Conductor/Foundry first wedge Sources: agent-work-queue-v2-unblocked, codex-contract-decisions-v0-2, adapter-boundary-and-demo-plan, event-threading-and-result-lineage (all same date). Assumptions: Codex v0.2 field names are stable for first wedge. Mock adapter is sole result producer.

Mock Adapter Behavior

MockProviderAdapter is a deterministic, no-network scaffold. No real model, no weights, no GPU/NPU.

capabilities()

Returns static list: ["embedding", "light-inference"]. Used by Placement Gate for lane matching.

health_probe()

Returns { "status": "healthy", "detail": null }. Never fails in first wedge. A second instance MockProviderAdapterUnhealthy returns { "status": "unhealthy", "detail": "forced-fail" } for negative Placement Gate tests.

submit(job)

Returns synthetic ResultPacket: - adapter_id: "mock-adapter-001" (or "mock-adapter-unhealthy" for fail path). - route_candidate_id: "mock-route-001". - gate_decision_id: copied from Placement pass GateRecord. - correlation_id: copied from job. - submit_timestamp: ISO 8601, set to now() at call time (after Placement). - Payload: fixed 8-element float vector [0.1, -0.2, 0.3, -0.4, 0.5, -0.6, 0.7, -0.8] for embedding jobs; ack string "ok" for light-inference.

Timeout: 30s per Codex v0.2. Mock returns within 50ms.

Fixture Inputs

FIXTURE-M1: embedding-job-valid

job_id: "job-0001"
session_ref: "sess-0001"
correlation_id: "corr-0001"
lane: "embedding"
payload: { "text": "hello" }

Expected: ResultPacket with 8-element vector, all lineage fields non-empty.

FIXTURE-M2: light-inference-valid

job_id: "job-0002"
lane: "light-inference"
payload: { "prompt": "ping" }

Expected: ResultPacket with "ok" payload, lineage fields non-empty.

FIXTURE-M3: wrong-lane

job_id: "job-0003"
lane: "foundry-demo"
payload: {}

Expected: Placement Gate denies — mock adapter capabilities do not include foundry-demo. No submit call.

Pass/Fail Expectations

Fixture Gate Expected Decision Reason
M1 Placement pass capabilities match, health ok
M1 Acceptance accepted lineage complete
M2 Placement pass capabilities match
M2 Acceptance accepted lineage complete
M3 Placement deny no adapter for foundry-demo
M1 + unhealthy adapter Placement deny health_probe unhealthy

Negative Adapter Tests

NEG-ADAPT-1: tampered adapter_id

Mock variant returns adapter_id="wrong-adapter". Acceptance Gate check #2 fails (adapter_id does not match Placement-selected). Expected: denied.

NEG-ADAPT-2: empty route_candidate_id

Mock variant returns route_candidate_id="". Acceptance Gate check #5 fails. Expected: denied.

NEG-ADAPT-3: timestamp-before-placement

Mock variant sets submit_timestamp earlier than Placement GateRecord. Acceptance Gate check #4 fails. Expected: denied.

Boundary

  • GLM owns mock adapter and these fixtures.
  • Codex owns schema validation rules.
  • No real adapter activation in this pack.

Blockers

  • gate_decision_id format (UUID vs sequential) undecided — fixtures use placeholder "placement-pass-0001".
  • EventEnvelope delivery mechanism still Codex-owned.

Next Handoff

→ Codex: confirm gate_decision_id format so fixtures can lock. → GLM: implement mock adapter and run fixtures against gate scaffolding.