From 42496f972d39f7a2ea811fa6eb89dd25228cb321 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 2 May 2026 16:38:48 -0400 Subject: [PATCH 1/3] contracts: add optional Mac-on-Linux polish metadata --- schemas/DesktopProfile.json | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/schemas/DesktopProfile.json b/schemas/DesktopProfile.json index d7bda2e..c6b564d 100644 --- a/schemas/DesktopProfile.json +++ b/schemas/DesktopProfile.json @@ -65,6 +65,37 @@ "launcherProviderRef": { "type": ["string", "null"], "description": "Optional reference to the primary LauncherProvider." + }, + "macOnLinuxPolish": { + "type": "object", + "additionalProperties": false, + "description": "Optional bounded Mac-on-Linux polish metadata. This records active and future workstation polish signals without claiming full macOS parity.", + "properties": { + "implementationAuthority": { + "type": "string", + "description": "Repository or authority responsible for concrete realization." + }, + "activeFeatures": { + "type": "array", + "items": { "type": "string", "minLength": 1 }, + "description": "Currently active / implemented polish signals." + }, + "validationBackedFeatures": { + "type": "array", + "items": { "type": "string", "minLength": 1 }, + "description": "Signals backed by helper or CI validation surfaces." + }, + "proposedFeatures": { + "type": "array", + "items": { "type": "string", "minLength": 1 }, + "description": "Future or proposed signals that must not be counted as delivered." + }, + "nonGoals": { + "type": "array", + "items": { "type": "string", "minLength": 1 }, + "description": "Explicit non-goals for this desktop profile." + } + } } } } From d6bcdeee63e6a7acf91404ccedec146621230a28 Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 2 May 2026 16:39:42 -0400 Subject: [PATCH 2/3] examples: add Mac-on-Linux polish metadata to DesktopProfile --- examples/desktopprofile.json | 56 +++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/examples/desktopprofile.json b/examples/desktopprofile.json index ad72aaf..0cd3bea 100644 --- a/examples/desktopprofile.json +++ b/examples/desktopprofile.json @@ -17,6 +17,26 @@ "name": "SourceOS Terminal", "binding": "Return", "command": "gnome-terminal" + }, + { + "name": "SourceOS Screenshot Screen", + "binding": "3", + "command": "mac-screenshot.sh screen" + }, + { + "name": "SourceOS Screenshot Area", + "binding": "4", + "command": "mac-screenshot.sh area" + }, + { + "name": "SourceOS Screenshot Interactive", + "binding": "5", + "command": "mac-screenshot.sh interactive" + }, + { + "name": "SourceOS Screenshots Folder", + "binding": "6", + "command": "mac-screenshot.sh open-dir" } ], "input": { @@ -24,5 +44,39 @@ "compatibilityBackends": ["xremap", "kinto"], "gestures": "fusuma" }, - "launcherProviderRef": "urn:srcos:launcher-provider:sourceos-palette" + "launcherProviderRef": "urn:srcos:launcher-provider:sourceos-palette", + "macOnLinuxPolish": { + "implementationAuthority": "SociOS-Linux/source-os", + "activeFeatures": [ + "sourceos-palette", + "files-shortcut", + "terminal-shortcut", + "screenshot-shortcuts", + "sushi-quick-preview", + "finder-like-sidebar-bookmarks", + "bounded-gnome-appearance-defaults", + "fusuma-gesture-lane" + ], + "validationBackedFeatures": [ + "shortcut-map-contract", + "keyboard-remap-policy", + "mac-polish-helper", + "aggregate-polish-helper", + "gnome-dock-extension-helper", + "status-json-polish-warnings", + "lampstand-search-lane" + ], + "proposedFeatures": [ + "doctor-aggregate-polish-integration", + "richer-palette-provider-routing", + "mission-control-style-overview-tuning", + "text-editing-modifier-parity" + ], + "nonGoals": [ + "full-macos-ui-clone", + "gnome-shell-fork", + "libadwaita-replacement", + "proprietary-asset-requirement" + ] + } } From cb48ae9100e3deef62028e4718b82aee9281cf8d Mon Sep 17 00:00:00 2001 From: mdheller <21163552+mdheller@users.noreply.github.com> Date: Sat, 2 May 2026 16:40:51 -0400 Subject: [PATCH 3/3] docs(examples): note Mac-on-Linux contract authority --- examples/README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/examples/README.md b/examples/README.md index f91cf85..931e3e7 100644 --- a/examples/README.md +++ b/examples/README.md @@ -8,6 +8,8 @@ This directory contains one conforming JSON example payload for each top-level s The examples are designed to tell coherent end-to-end stories. The original example set catalogs, governs, transforms, and releases a personal health dataset within an agent session. Newer SourceOS examples show a SourceOS Workstation artifact flowing from content intent through overlays, build request, release manifest, evidence bundle, catalog entry, and access profile. The control-plane examples add the local-first lifecycle proof path: a `ReleaseSet` assigned to an M2 demo device, a `BootReleaseSet` for the recovery/provisioning lane, an `EnrollmentToken` authorizing one-time recovery access, and a `Fingerprint` reporting the realized post-apply state. Compression Commons examples add an artifact-versus-baseline evaluation record that references existing governance, execution, provenance, and content-reference contracts. +Desktop/workstation examples may include bounded Mac-on-Linux polish metadata. These are contract signals only: concrete implementation authority remains in `SociOS-Linux/source-os`, and the examples do not claim full macOS parity. + ```text connector.json ──► asset.json │ @@ -188,11 +190,11 @@ These examples illustrate the shared object family used by SourceOS artifact bui | `schema.json` | SchemaDefinition | The schema for health observations | | `session_receipt.json` | SessionReceipt | Receipt for the completed agent session | | `session_review.json` | SessionReview | Post-session learning review | -| `settlement_event.json` | SettlementEvent | Optional receipt-to-settlement mapping | +| `settlement_event.json` | Optional receipt-to-settlement mapping | | `skill_manifest.json` | SkillManifest | The obfuscation skill manifest | | `telemetry_event.json` | TelemetryEvent | An informational telemetry event from the agent session | | `topic.json` | Topic | FogVault topic definition | -| `topic_envelope.json` | TopicEnvelope | FogVault append-only entry envelope | +| `topic_envelope.json` | FogVault append-only entry envelope | | `truth_surface.json` | TruthSurface | Truth Plane truth surface example | | `workflow_spec.json` | WorkflowSpec | The health-data obfuscation workflow | | `workorder.json` | WorkOrder | FogCompute work order |