---
status: resolved
claimed-by: "019fba91-eabf-76ae-b086-a37ac061d6e8"
claimed-at: "2026-08-01T14:36:01-04:00"
completed-at: "2026-08-01T14:44:11-04:00"
parent: "[[027-pi-subagents-implementation-spec-task]]"
blocked-by:
  - "[[046-pi-subagents-minimal-tracer-bullet-task]]"
tags:
  - ticket/task/afk
---

# Implement fork context mode

## Question

Add fork context mode so a spawn can give the worker the parent active-branch transcript snapshot and delegated-role wrapper while independent context remains clean by default.

## What to build

Implement the second version-one context mode.
A forked worker should start from the active branch session snapshot and receive a small delegated-role wrapper with the per-call prompt.
Independent workers should remain transcript-clean.
Named agents that declare `allowedContexts` should reject disallowed spawn overrides.

## Acceptance criteria

- [x] `fork` serializes the parent session header and active branch entries into a child-startable session.
- [x] The forked worker receives the parent active-branch context plus the delegated request wrapper.
- [x] `independent` workers still do not receive parent transcript context.
- [x] `allowedContexts` rejects disallowed context overrides.
- [x] Tests or manual checks distinguish forked and independent context visibility.

## Implementation Notes

Do not summarize, strip tool output, or compact before spawning.
Let child Pi handle normal compaction.

Resolved in branch `pi-subagents-tracer-bullet`, commit `e7a700f`.
Fork mode passes the parent session file to child Pi with `--fork` and uses a delegated fork-context wrapper; independent mode keeps its transcript-clean wrapper.
`allowedContexts` rejection is covered by spawn resolution.
Verified with live Pi RPC fork smoke where a forked child recovered parent marker `fork-visible-123`, plus tests and `nix flake check`.
