Skip to content

Define workstation IPC and local-first contracts for Workspace Operations #28

@mdheller

Description

@mdheller

Purpose

Define the workstation-side contracts that allow SourceOS local surfaces to participate in the Workspace Operation Plane without inventing separate lifecycle/state models.

Context

The April 29 dossier identifies workstation-contracts as the P0 workstation IPC, UI, and conformance contract plane. New SourceOS repos now need local operation bindings: TurtleTerm, BearBrowser, sourceos-devtools, and agent-machine.

Required contracts

  • LocalOperationLog contract
  • DeviceIdentity and DeviceTrustProfile
  • CapabilityProfile for local device, terminal, browser, filesystem, sandbox, local model, and network state
  • TerminalSession artifact contract
  • TerminalCommand operation contract
  • BrowserSession operation contract
  • WebCapture artifact contract
  • Download/Upload operation contract
  • LocalAgentExecution operation contract
  • File availability states: local, remote, syncing, conflicted, quarantined
  • Local diagnostic redaction contract
  • Cross-device resume/provisional artifact ID mapping

Integration targets

  • SourceOS-Linux/TurtleTerm
  • SourceOS-Linux/BearBrowser
  • SourceOS-Linux/sourceos-devtools
  • SourceOS-Linux/agent-machine
  • SourceOS-Linux/sourceos-shell
  • SourceOS-Linux/sourceos-spec
  • SocioProphet/prophet-core-contracts#1

Acceptance criteria

  • Local operation contracts map cleanly to WorkspaceOperation, OperationTask, OperationEvent, Artifact, DecisionCard, and PolicyGateRecord.
  • Terminal/browser/agent-machine actions cannot create hidden workspace side effects.
  • Contracts include validation fixtures for terminal command, browser capture, local agent execution, and file conflict.
  • Contracts preserve Linux-first and local-first semantics.

Hard rule

Local-first does not mean policy-free. SourceOS local surfaces must participate in admission, audit, redaction, and operation lifecycle rules.

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions