From 2895f06074d22049ac2072531207ef2c40ddec6b Mon Sep 17 00:00:00 2001 From: Satya Date: Sat, 4 Jul 2026 18:27:51 -0400 Subject: [PATCH] =?UTF-8?q?page.personal=20is=20an=20opaque=20filter=20tem?= =?UTF-8?q?plate=20(the=20'mine'=20predicate),=20not=20a=20punc=20name=20?= =?UTF-8?q?=E2=80=94=20same=20read,=20scope-derived=20filter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- src/database/page.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/database/page.rs b/src/database/page.rs index f838f61..ea93220 100644 --- a/src/database/page.rs +++ b/src/database/page.rs @@ -1,6 +1,7 @@ use crate::database::action::Action; use indexmap::IndexMap; use serde::{Deserialize, Serialize}; +use serde_json::Value; #[derive(Debug, Clone, Serialize, Deserialize, Default)] #[serde(default)] @@ -13,10 +14,11 @@ pub struct Page { pub sidebar: Option, #[serde(skip_serializing_if = "Option::is_none")] pub actions: Option>, - /// The personal-scope sibling punc for this page ("one surface, two scopes"): - /// the caller-scoped read the page issues when the app is in personal scope. + /// The personal-scope filter template ("one surface, two scopes"): the + /// "mine" predicate the page merges into its filter when the app is in + /// personal scope, e.g. {"reserved_by": "$me"}. Opaque to the engine. #[serde(skip_serializing_if = "Option::is_none")] - pub personal: Option, + pub personal: Option, } #[derive(Debug, Clone, Serialize, Deserialize, Default)]