Skip to content

Host bounded workspace observation through external-action settlement #705

Description

@flyingrobots

Outcome

Echo hosts the first domain-specific external-action adapter for workspace.snapshot.observe@1 and exposes a generic local witness consumable by an external Edict application.

Acceptance

  • consume the exact compiler-emitted Edict Core and Target IR artifacts and capability closure without inventing a provisional request format;
  • derive the Echo request identity, scope, basis, budget, schemas, input digest, and reconciliation law from admitted compiler data;
  • commit REQUESTED before any workspace observation;
  • commit one bounded CLAIMED attempt before adapter execution;
  • authorize only a configured workspace root and relative path set;
  • make byte budget, symlink policy, and source basis explicit and fail closed;
  • reject absolute, parent-escaping, symlink-escaping, unauthorized, stale-basis, and over-budget observations before returning bytes;
  • admit schema-bound bytes or content references plus basis evidence as settlement before deterministic resumption;
  • preserve generic duplicate, conflicting, malformed, and unauthorized settlement refusal;
  • recover unclaimed, claimed, succeeded, rejected, failed, and outcome_unknown postures without inventing an outcome;
  • replay a settled request from WAL without rereading the workspace;
  • expose deterministic evidence that the request commit preceded adapter execution and the settlement commit preceded resumption;
  • retain the compiler/provider seam as capability-denied.

Test matrix

  • golden bounded file observation;
  • unauthorized and escaped paths;
  • symlink escape;
  • exact byte boundary and one-byte-over refusal;
  • stale basis;
  • duplicate identical and conflicting settlements;
  • crash/restart from requested and claimed postures;
  • ambiguous execution as outcome_unknown;
  • replay with the source file removed or mutated, proving no reread;
  • fixed-seed path/value property cases;
  • bounded multi-request stress.

Dependencies

Non-goals

  • application-specific vocabulary or callbacks;
  • ambient filesystem, process, shell, or network imports;
  • Git, GitHub, timer, model, or patch-application adapters;
  • language-level suspension;
  • re-executing a settled effect.

Consumer

Blocked consumer: flyingrobots/hello-echo#10.

Native blocked by edges are maintained through GraphQL.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or requestfeatureFeature umbrella (epic)lane:asapMethod lane asap.legend:testMethod legend test.priority:highMethod priority high.roadmap-aRoadmap A: standalone Hello Echo deliveryroadmap-a1Roadmap A.1: bounded Hello external effectsruntimeRuntime corespecSpec/Design documenttoolingTooling/CI/CLItype:enhancementMethod work type enhancement.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions