refactor: remove host-mode reviewer, container-only
Reviewer always runs in Docker container. No more snapshot file copy — reviewer mounts the owner workspace directly as read-only. Removes REVIEWER_CONTAINER_ENABLED toggle and host-mode fallback code.
This commit is contained in:
@@ -70,13 +70,9 @@ export async function runAgentProcess(
|
||||
envOverrides?: Record<string, string>,
|
||||
): Promise<AgentOutput> {
|
||||
// ── Reviewer container mode ─────────────────────────────────────
|
||||
// When EJCLAW_REVIEWER_RUNTIME is set in envOverrides, run the reviewer
|
||||
// inside a Docker container with read-only source mount instead of
|
||||
// as a host process. This provides kernel-level write protection.
|
||||
const isReviewerContainer =
|
||||
envOverrides?.EJCLAW_REVIEWER_RUNTIME === '1' &&
|
||||
getEnv('REVIEWER_CONTAINER_ENABLED') !== '0';
|
||||
if (isReviewerContainer) {
|
||||
// Reviewers always run inside a Docker container with read-only source
|
||||
// mount for kernel-level write protection. Docker is required.
|
||||
if (envOverrides?.EJCLAW_REVIEWER_RUNTIME === '1') {
|
||||
const ownerWorkspaceDir =
|
||||
envOverrides?.EJCLAW_WORK_DIR || group.workDir || process.cwd();
|
||||
return runReviewerContainer({
|
||||
|
||||
@@ -537,9 +537,23 @@ export function markPairedTaskReviewReady(taskId: string): {
|
||||
if (!ownerWorkspace) {
|
||||
return null;
|
||||
}
|
||||
const reviewerWorkspace = refreshReviewerSnapshotForPairedTask(taskId);
|
||||
const now = new Date().toISOString();
|
||||
|
||||
// Reviewer runs in a container with the owner workspace mounted read-only.
|
||||
// No file-level snapshot copy needed — just register the path.
|
||||
const reviewerWorkspace = makeWorkspaceRecord({
|
||||
taskId,
|
||||
role: 'reviewer',
|
||||
workspaceDir: ownerWorkspace.workspace_dir,
|
||||
snapshotSourceDir: ownerWorkspace.workspace_dir,
|
||||
snapshotRefreshedAt: requestedAt,
|
||||
});
|
||||
upsertPairedWorkspace(reviewerWorkspace);
|
||||
logger.info(
|
||||
{ taskId, ownerDir: ownerWorkspace.workspace_dir },
|
||||
'Reviewer will mount owner workspace directly',
|
||||
);
|
||||
|
||||
const now = new Date().toISOString();
|
||||
updatePairedTask(taskId, {
|
||||
status: 'review_ready',
|
||||
updated_at: now,
|
||||
|
||||
Reference in New Issue
Block a user