- MCP create-backlog-item for natural language Plan/Epic/Task authoring - Worker non-code: optional worktree + per-harness allowlist + doc_review→published - Harness registry: harness_providers/role_harness_routes, WorkerAdapter (minimal|crewai|langgraph|remote-ag-ui), AG-UI POST /api/ag-ui, Settings → Harnesses with Test - Plans tree: backlog.listTree + createPlan/Epic/Task + Start→Convoy, web CRUD without CLI - Fleet: /fleet rollup across workspaces + SSE /api/fleet/events Decision: docs/decisions/2026-08-25-second-brain-os-pivot.md Convoy: .convoys/second-brain-os-v01 Co-authored-by: orchestrator
19 lines
572 B
TypeScript
19 lines
572 B
TypeScript
import { describe, expect, it, vi } from "vitest";
|
|
|
|
describe("worker dry-run entry", () => {
|
|
it("loadEnv treats WORKER_DRY_RUN=1 as dry-run without REDIS_URL", async () => {
|
|
const previous = { ...process.env };
|
|
process.env.DATABASE_URL = "postgres://local/test";
|
|
process.env.WORKER_DRY_RUN = "1";
|
|
delete process.env.REDIS_URL;
|
|
|
|
vi.resetModules();
|
|
const { loadEnv } = await import("./env.js");
|
|
const env = loadEnv();
|
|
|
|
expect(env.WORKER_DRY_RUN).toBe(true);
|
|
expect(env.REDIS_URL).toBeUndefined();
|
|
|
|
process.env = previous;
|
|
});
|
|
});
|