From 27db5109d483510d9f6f43aeb10af5c30d1712b3 Mon Sep 17 00:00:00 2001 From: Satya Date: Fri, 31 Jul 2026 12:23:23 -0400 Subject: [PATCH 1/2] carry readOnly through compilation for the code generator Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01Ucym7qy7pFC1hbhoVHwJFX --- src/database/object.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/database/object.rs b/src/database/object.rs index fcb883a..676556a 100644 --- a/src/database/object.rs +++ b/src/database/object.rs @@ -152,6 +152,18 @@ pub struct SchemaObject { #[serde(default)] #[serde(skip_serializing_if = "Option::is_none")] pub immutable: Option, + // readOnly = the CLIENT may not write it; the SERVER still may. Deliberately NOT + // enforced here (see validator/rules/object.rs, which rejects `immutable` on any + // request) — enforcing it would break legitimate server writers such as the + // Mercury feed matcher stamping `reconciliation_status`, or the rollup triggers + // that own `total_amount`/`amount_paid`. It is carried purely so it survives + // compilation and reaches the punc code generator, which turns it into a + // client-side immutable Reactor. Without this field the key was silently dropped + // at this boundary and ten authored declarations did nothing for months. + #[serde(default)] + #[serde(rename = "readOnly")] + #[serde(skip_serializing_if = "Option::is_none")] + pub read_only: Option, // Contains ALL structural fields perfectly flattened from the ENTIRE Database inheritance tree (e.g. `entity` fields like `id`) as well as local fields hidden inside conditional `cases` blocks. // This JSON exported array gives clients absolute deterministic visibility to O(1) validation and masking bounds without duplicating structural memory. From a1b7bd4277faac782d560a0250afa175c075653f Mon Sep 17 00:00:00 2001 From: Satya Date: Fri, 31 Jul 2026 12:23:33 -0400 Subject: [PATCH 2/2] version: 1.0.186 --- version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version b/version index d1b8507..309a6e2 100644 --- a/version +++ b/version @@ -1 +1 @@ -1.0.185 +1.0.186