All runbooks
runbookuapiredacted view

UAPI GLM 5.2 PlacementDecision Storage Fields 2026-06-22

GLM proposed PlacementDecision storage fields and invariants for candidate Forge SN850X route policy.

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

UAPI GLM 5.2 PlacementDecision Storage Fields 2026-06-22

GLM proposed PlacementDecision storage fields and invariants for candidate Forge SN850X route policy.

Promotion Metadata

  • Source feedback id: 146
  • Source feedback ids: 146
  • Promotion request id: 77
  • Feedback category: beneficial
  • Feedback source: codex-forge-storage-wave5-2026-06-22
  • Feedback created at: 2026-06-22T19:52:20.603907+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 146

  • Product: uapi
  • Category: beneficial
  • Related slug: [REDACTED:high-entropy]
  • Source: codex-forge-storage-wave5-2026-06-22
  • Created at: 2026-06-22T19:52:20.603907+00:00

GLM 5.2 — PlacementDecision Storage Fields

Date: 2026-06-22 Lane: Unified storage schema impact (first wedge) Sources: forge-sn850x-storage-policy-gate-v0, codex-contract-decisions-v0-2, type-contract-pack, event-lineage-fixtures, storage-route-schema-impact. Authority: GLM Worker E artifact only. No codebase edits. Assumptions: PlacementDecision approved as target but not yet defined in v0.2. Storage route candidates are name-only.

Base Struct

Base fields: placement_decision_id (UUID), correlation_id, job_id, gate_decision in {allow, deny}, adapter_id: Option, timestamp. Add fields below.

Field Specs

storage_route_id

Option<String>. Allowed: forge.storage.sn850x.skip_data, storage.fast.sn850x. Unknown string → deny. None means job needs no storage placement (e.g., pure inference) and is allowed.

mount_policy_ref

Option<String>. Format: policy://<route>/<bundle-version>#mount-policy. References owner + allowed top-level dirs. First wedge: no bundle is approved, so any non-None value forces gate_decision=deny.

quota_ref

Option<String>. Format: policy://<route>/<bundle-version>#quota. If storage_route_id set and quota_ref is None, deny. Quota must be enumerable before write approval.

retention_policy_ref

Option<String>. Format: policy://<route>/<bundle-version>#retention. Required when storage_route_id set. No retention rule means indefinite writes, forbidden in first wedge.

evidence_ref

Option<String>. Format: policy://<route>/<bundle-version> or #<section>. Stable URI to policy text Placement Gate used. Blocker: policy:// scheme proposed only.

denied_reason

Option<String>. Required when gate_decision=deny. Controlled vocabulary proposed: no_approved_policy_bundle, route_not_in_candidate_set, quota_undefined, retention_undefined, adapter_unhealthy, adapter_capability_mismatch, identity_not_authorized_for_route, bundle_superseded.

Free-text suffix allowed after controlled token.

Cross-Field Invariants

  1. gate_decision=allow requires storage_route_id, mount_policy_ref, quota_ref, retention_policy_ref, evidence_ref all set.
  2. gate_decision=deny requires denied_reason; other fields may be None.
  3. storage_route_id=Nonemount_policy_ref, quota_ref, retention_policy_ref must also be None.
  4. Any *_ref field that fails to resolve against PolicyBundle registry → gate_decision=deny, denied_reason=bundle_superseded (or no_approved_policy_bundle).

Fixture Sketch

POS-PD-1 (future allow): placement_decision_id: pd-0001, storage_route_id: forge.storage.sn850x.skip_data, mount_policy_ref: policy://forge.storage.sn850x.skip_data/v0.1#mount-policy, quota_ref: policy://forge.storage.sn850x.skip_data/v0.1#quota, retention_policy_ref: policy://forge.storage.sn850x.skip_data/v0.1#retention, evidence_ref: policy://forge.storage.sn850x.skip_data/v0.1, gate_decision: allow. Valid only when bundle v0.1 has status=approved. Not first-wedge-realizable.

NEG-PD-1 (current deny): storage_route_id: forge.storage.sn850x.skip_data, gate_decision: deny, denied_reason: no_approved_policy_bundle: forge sn850x bundle still candidate. Expected for first-wedge SN850X placement.

Blockers

  • PlacementDecision not in Codex v0.2 type pack.
  • policy:// URI scheme proposed only.
  • PolicyBundle registry does not exist.
  • No fixtures can exercise allow until a bundle reaches status=approved.

Next Handoff

→ Codex: bless PlacementDecision struct, policy:// scheme, controlled denied_reason. → GLM Worker D: extend fixtures with NEG-PD-1 and POS-PD-1 future stub.

COMPLETE.