Harness-agnostic Kanban and work dispatch for AI agents working GitHub Issues and PRs.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit c03c0b9 · analyzer v32 · 1w ago
skills & prompt files 1
- agent-rules misospace-dispatch-c03c0b9/AGENTS.md
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 281
filesystem 5
- fs (weak) misospace-dispatch-c03c0b9/Dockerfile.test.ts :3
import { readFileSync } from "node:fs"; - fs (weak) misospace-dispatch-c03c0b9/package-overrides.test.ts :3
import { readFileSync } from "node:fs"; - fs (weak) misospace-dispatch-c03c0b9/src/app/api/routes.test.ts :2
import { existsSync } from "node:fs"; - fs (weak) misospace-dispatch-c03c0b9/src/lib/auth-coverage.test.ts :2
import { readdirSync, readFileSync, existsSync } from "fs"; - fs misospace-dispatch-c03c0b9/src/lib/version.ts :9
import { readFileSync } from "node:fs";
network 12
- net (weak) misospace-dispatch-c03c0b9/src/app/api/pr-followup/sync/route.test.ts :143
it("detects a merge conflict via the per-PR detail fetch (list endpoint omits mergeability)", async () => { - net misospace-dispatch-c03c0b9/src/app/login/page.tsx :24
fetch("/api/auth/session") - net misospace-dispatch-c03c0b9/src/lib/client-auth.ts :91
return fetch(url, { ...options, headers }); - net misospace-dispatch-c03c0b9/src/lib/github-auth.ts :77
const response = await fetch( - net misospace-dispatch-c03c0b9/src/lib/github-ci.ts :14
const response = await fetch(`${GITHUB_API}/repos/${repoFullName}/actions/workflows`, { - net misospace-dispatch-c03c0b9/src/lib/github-code-search.ts :12
const response = await fetch(`${GITHUB_API}/repos/${repoFullName}`, { - net misospace-dispatch-c03c0b9/src/lib/github-issues.ts :22
const response = await fetch(url, { headers: await getHeadersAsync() }); - net misospace-dispatch-c03c0b9/src/lib/github-prs.ts :67
const detailResp = await fetch(`${GITHUB_API}/repos/${repoFullName}/pulls/${prNumber}`, { headers }); - net misospace-dispatch-c03c0b9/src/lib/groomer/llm.ts :100
return fetch(url, { - net (weak) misospace-dispatch-c03c0b9/src/lib/issue-sync.test.ts :398
it("does a full fetch (no since) when the repo has no cached issues", async () => { - net misospace-dispatch-c03c0b9/src/lib/mc-client.ts :125
const response = await fetch(url, { - net misospace-dispatch-c03c0b9/src/lib/scheduler.ts :127
const res = await deps.fetch(`${config.baseUrl}/api/health`, {
secrets 59
- secrets (weak) misospace-dispatch-c03c0b9/src/app/api/agent-runs/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/agents/[agentName]/heartbeat/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/agents/[agentName]/next-task/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/agents/[agentName]/queue/route.test.ts :5
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/agents/[agentName]/tasks/report/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/agents/[agentName]/work-summary/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/audit/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/auth/logout/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/automation/repos/[...repo]/route.test.ts :34
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/automation/repos/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/automation/runs/[runId]/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/automation/sync/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/groomer/run/route.test.ts :43
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/health/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/[issueId]/lane/route.test.ts :13
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/[issueId]/pr-health/refresh/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/actions/decompose/route.test.ts :25
const originalAgentToken = process.env.DISPATCH_AGENT_TOKEN; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/actions/route.test.ts :34
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/claim/route.test.ts :22
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/claimed/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/groom/route.test.ts :65
process.env.DISPATCH_AGENT_TOKEN = "test-token"; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/move/route.test.ts :16
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/prune-closed/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/reconcile/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/refresh/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/state/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/status/route.test.ts :14
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/unassign/route.test.ts :29
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/unclaim/route.test.ts :17
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/issues/untriaged/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/pr-fix-queue/enqueue/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/pr-fix-queue/history/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/pr-fix-queue/mark/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/pr-fix-queue/queued/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/pr-followup/sync/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/pr-followup/webhook/route.test.ts :5
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets misospace-dispatch-c03c0b9/src/app/api/pr-followup/webhook/route.ts :36
const secret = process.env.WEBHOOK_SECRET; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/repos/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/sync/route.test.ts :4
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/app/api/sync/scheduled/route.test.ts :118
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/lib/auth-next.test.ts :42
delete process.env.DISPATCH_OIDC_CLIENT_SECRET; - secrets misospace-dispatch-c03c0b9/src/lib/auth-next.ts :19
clientSecret: process.env.DISPATCH_OIDC_CLIENT_SECRET, - secrets (weak) misospace-dispatch-c03c0b9/src/lib/auth.test.ts :26
delete process.env.DISPATCH_AUTH_PASSWORD; - secrets misospace-dispatch-c03c0b9/src/lib/auth.ts :63
const pass = process.env.DISPATCH_AUTH_PASSWORD; - secrets (weak) misospace-dispatch-c03c0b9/src/lib/dispatch-env.test.ts :9
delete process.env.DISPATCH_AGENT_TOKEN; - secrets misospace-dispatch-c03c0b9/src/lib/dispatch-env.ts :48
_cachedToken = process.env.DISPATCH_AGENT_TOKEN; - secrets (weak) misospace-dispatch-c03c0b9/src/lib/github-app.test.ts :7
process.env.GITHUB_TOKEN = "test-token-for-github-app-tests"; - secrets misospace-dispatch-c03c0b9/src/lib/github-auth.ts :67
let privateKey = process.env.GITHUB_APP_PRIVATE_KEY || ""; - secrets (weak) misospace-dispatch-c03c0b9/src/lib/github.test.ts :28
process.env.GITHUB_TOKEN = "test-token-for-pagination-tests"; - secrets (weak) misospace-dispatch-c03c0b9/src/lib/groomer/config.test.ts :10
delete process.env.DISPATCH_LLM_API_KEY; - secrets misospace-dispatch-c03c0b9/src/lib/groomer/config.ts :60
const apiKey = process.env.DISPATCH_LLM_API_KEY?.trim() || null; - secrets (weak) misospace-dispatch-c03c0b9/src/lib/groomer/run.test.ts :7
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/lib/groomer/selector.test.ts :5
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/lib/mc-client.test.ts :11
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/mcp/server.test.ts :23
process.env.DISPATCH_AGENT_TOKEN = mockToken; - secrets (weak) misospace-dispatch-c03c0b9/src/middleware.test.ts :19
delete process.env.DISPATCH_AUTH_PASSWORD; - secrets misospace-dispatch-c03c0b9/src/middleware.ts :45
const token = process.env.DISPATCH_AGENT_TOKEN; - secrets (weak) misospace-dispatch-c03c0b9/src/test/route-helpers.ts :15
* process.env.DISPATCH_AGENT_TOKEN = mockToken;
database 4
- db (weak) misospace-dispatch-c03c0b9/src/app/api/automation/repos/route.test.ts :48
import { Prisma } from "@prisma/client"; - db misospace-dispatch-c03c0b9/src/app/api/automation/repos/route.ts :3
import { Prisma } from "@prisma/client"; - db misospace-dispatch-c03c0b9/src/app/api/repos/route.ts :3
import { Prisma } from "@prisma/client"; - db misospace-dispatch-c03c0b9/src/lib/prisma.ts :1
import { PrismaClient, Prisma } from "@prisma/client";
install hooks 1
- postinstall misospace-dispatch-c03c0b9/package.json :18
test -f prisma/schema.prisma && prisma generate || true
declared dependencies 34
- @modelcontextprotocol/sdk@^1.29.0
- @dnd-kit/core@^6.1.0
- @dnd-kit/sortable@^10.0.0
- @dnd-kit/utilities@^3.2.2
- @prisma/adapter-pg@^7.8.0
- @prisma/client@^7.8.0
- @radix-ui/react-slot@^1.2.4
- class-variance-authority@^0.7.0
- clsx@^2.1.1
- lucide-react@^1.0.0
- next@^16.2.7
- next-auth@^5.0.0-beta.31
- prisma@^7.8.0
- react@^19.0.0
- react-dom@^19.0.0
- tailwind-merge@^3.0.0
- zod@^4.4.3
- @eslint/compat@^2.1.0
- @tailwindcss/postcss@^4.3.0
- @testing-library/jest-dom@^7.0.0
- @testing-library/react@^16.3.2
- @testing-library/user-event@^14.6.1
- @types/node@^24.0.0
- @types/react@^19.0.0
- @types/react-dom@^19.0.0
- @vitejs/plugin-react@^6.0.1
- eslint@^10.0.0
- eslint-config-next@^16.2.6
- jsdom@^30.0.0
- postcss@^8.5.10
- tailwindcss@^4.3.0
- tsx@^4.22.1
- typescript@^6.0.0
- vitest@^4.1.8