Skip to content

Add local Workspace Operations contract surfaces to sourceos-shell#17

Merged
mdheller merged 2 commits into
mainfrom
copilot/expose-local-workspace-operations
May 22, 2026
Merged

Add local Workspace Operations contract surfaces to sourceos-shell#17
mdheller merged 2 commits into
mainfrom
copilot/expose-local-workspace-operations

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 7, 2026

sourceos-shell needs to surface and control local Workspace Operations (sync, terminal, browser, agent-machine, model carry, workstation state) while remaining a pure projection/control layer — no Policy Fabric ownership, no Operation Plane runtime logic.

Contracts (schemas)

  • workspace-operation-state.schema.json — read-only projection the shell renders from Operation Plane state. Covers all required lifecycle states (storedquarantinedadmittedactivatedsyncingconflictedfailed), file availability states (local, remote, syncing, conflicted, quarantined), device identity/trust profile, sourceos-syncd sync status, TurtleTerm/BearBrowser/agent-machine entry points, and Operation Tray/Inspector projection metadata.
  • operation-command.schema.json — structured record the shell emits to route actions through the Operation Plane (never executes integrations directly). Command classes: turtleterm-open/close, bearbrowser-open/close, agentmachine-activate/deactivate, sync-request/cancel, diagnostics-export, model-carry-initiate, workstation-state-query. Includes isDryRun for plan/preview.
  • diagnostics-export.schema.json — redacted diagnostics export; redactionApplied: true and contentCaptureEnabled: false are schema-enforced invariants.

Examples (examples/workspace-ops/)

Eight example fixtures covering the full state space: admitted/syncing, conflicted, and quarantined operation states; turtleterm-open, sync-request, and agentmachine-activate commands; redacted and metadata-only diagnostics exports.

Validation & CI

scripts/validate_workspace_ops.py (mirrors validate_ops_history_receipts.py) validates all examples against their schemas and enforces domain invariants (policyDecisionRefs non-empty, redactionApplied: true, etc.). .github/workflows/workspace-ops.yml runs it on every relevant path change.

Docs

docs/workspace-operations.md captures boundary rules, surface-to-schema mapping, full state/command-class tables, and integration refs — matching the style of docs/ops-history-receipts.md.

Copilot AI changed the title [WIP] Expose local workspace operations in SourceOS shell UX Add local Workspace Operations contract surfaces to sourceos-shell May 7, 2026
Copilot AI requested a review from mdheller May 7, 2026 06:31
@mdheller mdheller marked this pull request as ready for review May 21, 2026 00:06
@mdheller mdheller merged commit 779da84 into main May 22, 2026
2 checks passed
mdheller added a commit that referenced this pull request May 22, 2026
Clean replay of #14 onto current main after #17 landed local Workspace Operations shell contracts.

Adds the capability-ledger package, ledger schema, runtime implementation, node:test coverage, PDF viewer demo capability reconciliation surface, and lockfile update.

Connector-visible workflow/status data was absent for PR head 6b29600. The replay is mergeable and scoped to package/demo/test/lockfile files; package test command is node --test tests/ledger.test.js.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Expose local Workspace Operations in SourceOS shell UX

2 participants