stacklok / stacklok/mecatl

Preserve delegation isolation inside microVM environments

Open
#534 0 comments 0 reactions 1 assignee View on GitHub

@JAORMX is already working on this.

Since Aug 14, 2026.

enhancement
Dominant language
Go
Stars
152
Forks
16
Avg merge
14h 48m
Merged PRs (30d)
536

Description

Parent: #526

Outcome

Subagent, Parallel, and Team execution preserve the existing read-parallel/mutate-serial and parent/child isolation semantics when the parent runs in a microVM.

Scope

  • Route EnvironmentForker/EnvironmentMerger by EnvironmentRef kind; never send a microVM environment through the local host-worktree fallback accidentally.
  • Direct-write Subagent uses the parent VM/worktree and remains parent-mutate-serial.
  • Read-only Subagent, Parallel branches, and Team members receive complete child environments whose Workspace and CommandRunner share the child namespace.
  • Define exact parent-state capture when the parent has uncommitted changes.
  • Reuse worktree/snapshot strategies without exposing the parent's writable Git metadata.
  • Merge additions, replacements, and deletions against the immutable fork base; serialize per parent; preserve child state on conflict.
  • Persist child environment refs/parentage so daemon crashes cannot leak or cross-attach children.
  • Apply child/fork quotas consistently with existing Subagent/Team concurrency gates.

Acceptance

  • Direct-write changes appear in the parent worktree/VM only.
  • Read-only and mutating child environments cannot modify the parent before an authorized merge.
  • Child Bash and filesystem tools always target the same child namespace.
  • Concurrent branches do not share writable worktrees, Git administrative state, runner endpoints, or environment generations.
  • Conflict results preserve inspectable child state and never partially apply an uncertain merge.
  • Cancellation, timeout, background-child drain, and resume retain their existing observable semantics.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.