Three hardening changes for Nucleic Control projects (repos under
~/.nucleic/control/, detected via the path-derived Project.isNucleicControlled):
1. Sandboxed project-wide by default. Control projects run in one shared
"primary" container (ContainerManager.sharedControlContainerName), shared
across all control projects that haven't opted into per-session containers
(ProjectSandbox.perSessionContainers -- a disabled placeholder for a future
migration). The decision is centralized in Project.effectiveSandbox /
usesSharedControlContainer (consumed by SessionController.containerSpec/
allowsHostExec/locateNativeTranscript and the AppStore teardown paths), and
still respects the app-wide container-service master switch. The shared
container mounts the control base + sessions dir at identical canonical paths,
points claude at a per-session CLAUDE_CONFIG_DIR, seeds safe.directory system-
wide, and is ref-count/idle managed + reconcile/teardown safe (no leak).
2. git interceptor. A Node `git` shim installed ahead of real git on PATH in
control containers; it execs real git transparently, then POSTs each mutating
op to a new bearer-gated POST /git-event route on MCPApprovalServer. The host
classifies via GitCommandSummary.classify and surfaces observed merges as
transcript notes -- detecting merges with certainty instead of parsing the
agent's Bash command text.
3. Autoship requires Nucleic Control. Guards at the runtime mutator
(SessionController.setAutoShip), at creation (AppStore.createSession), and
defense-in-depth at the ship path (shipIfCompleted/performShip); the UI
toggles are disabled off-control.
Adds tests for control-default sandboxing, the shared-container naming/reconcile
safety, perSessionContainers persistence, git-op classification, and the
/git-event route. Updates NUCLEIC_CONCEPT.md.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
A handoff doc for an agent building Nucleic's marketing + download site:
positioning, unique features, audience, site structure, copy snippets, and
honesty guardrails (pre-1.0; no notarized download yet → waitlist CTA).
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>