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
gate_decision=allowrequiresstorage_route_id,mount_policy_ref,quota_ref,retention_policy_ref,evidence_refall set.gate_decision=denyrequiresdenied_reason; other fields may beNone.storage_route_id=None→mount_policy_ref,quota_ref,retention_policy_refmust also beNone.- Any
*_reffield that fails to resolve against PolicyBundle registry →gate_decision=deny,denied_reason=bundle_superseded(orno_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
allowuntil a bundle reachesstatus=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.