AI Agents SDE Task Viewer
      • Context
      • Plan
      • Prd
  1. Home
  2. AgentSDE
  3. agent-core-control-center
  4. gh-42
  5. plan
  6. context.json
context.json(4.1 KB)ยท Apr 1, 2026
{
  "meta": {
    "agent": "planner",
    "task_id": "42",
    "title": "Exclude agent-core-e2e issues from Control Center (global filter)",
    "created_at": "2026-04-01T12:00:00Z"
  },
  "inputs": [
    {
      "name": "GitHub issue #42",
      "type": "context",
      "ref": "AgentSDE/agent-core-control-center#42",
      "notes": "Exclude e2e repo items from all CC UI surfaces"
    },
    {
      "name": "Pipeline page (reference impl)",
      "type": "file",
      "ref": "app/pipeline/page.tsx",
      "notes": "Already implements excludeRepo + Show e2e toggle"
    },
    {
      "name": "AGENTS.md",
      "type": "context",
      "ref": "AGENTS.md",
      "notes": "No test runner; verification via lint + build only"
    }
  ],
  "outputs": [
    {
      "name": "plan.md",
      "type": "plan",
      "format": "md",
      "content": "Implementation plan for global e2e filtering"
    }
  ],
  "files": [
    {
      "path": "lib/constants.ts",
      "action": "create",
      "reason": "Shared E2E_REPO, E2E_REPOS, VIEWER_BASE constants"
    },
    {
      "path": "lib/api/jobs.ts",
      "action": "modify",
      "reason": "Add excludeRepo to JobFilters and query builder"
    },
    {
      "path": "lib/api/events.ts",
      "action": "modify",
      "reason": "Add excludeRepo to EventFilters and query builder"
    },
    {
      "path": "lib/api/tasks.ts",
      "action": "modify",
      "reason": "Import E2E_REPO from shared constants"
    },
    {
      "path": "app/pipeline/page.tsx",
      "action": "modify",
      "reason": "Import shared constants, remove local duplicates"
    },
    {
      "path": "app/pipeline/[taskId]/page.tsx",
      "action": "modify",
      "reason": "Import shared constants, remove local duplicates"
    },
    {
      "path": "app/jobs/page.tsx",
      "action": "modify",
      "reason": "Add excludeRepo default filter and Show e2e toggle"
    },
    {
      "path": "app/events/page.tsx",
      "action": "modify",
      "reason": "Add excludeRepo default filter and Show e2e toggle"
    },
    {
      "path": "app/agents/page.tsx",
      "action": "modify",
      "reason": "Client-side e2e filtering with toggle"
    },
    {
      "path": "app/dashboard/page.tsx",
      "action": "modify",
      "reason": "Exclude e2e from metrics/task widgets"
    }
  ],
  "steps": [
    {
      "id": "S1",
      "summary": "Create shared constants module and update API filter interfaces",
      "acceptance": [
        "lib/constants.ts exports E2E_REPO, E2E_REPOS, and VIEWER_BASE",
        "JobFilters and EventFilters interfaces include excludeRepo?: string",
        "getJobs() and getEvents() serialize excludeRepo to query params"
      ],
      "depends_on": []
    },
    {
      "id": "S2",
      "summary": "Consolidate pipeline pages to use shared constants",
      "acceptance": [
        "app/pipeline/page.tsx imports from lib/constants.ts, no local E2E_REPO/E2E_REPOS/VIEWER_BASE",
        "app/pipeline/[taskId]/page.tsx imports from lib/constants.ts, no local E2E_REPOS/VIEWER_BASE",
        "Existing pipeline filtering behavior unchanged"
      ],
      "depends_on": [
        "S1"
      ]
    },
    {
      "id": "S3",
      "summary": "Add e2e exclusion to jobs, events, agents, and dashboard pages",
      "acceptance": [
        "Jobs page excludes e2e by default with Show e2e toggle",
        "Events page excludes e2e by default with Show e2e toggle",
        "Agents page filters out e2e tasks client-side by default with toggle",
        "Dashboard excludes e2e data where feasible"
      ],
      "depends_on": [
        "S1"
      ]
    },
    {
      "id": "S4",
      "summary": "Verify lint and build pass",
      "acceptance": [
        "npm run lint exits 0 with zero warnings",
        "npm run build exits 0 with no errors"
      ],
      "depends_on": [
        "S2",
        "S3"
      ]
    }
  ],
  "risks": [
    {
      "risk": "Backend jobs/events/metrics APIs may not support excludeRepo query param",
      "mitigation": "Fall back to client-side filtering; API param is additive and ignored if unsupported"
    },
    {
      "risk": "Dashboard metrics are pre-aggregated and cannot be filtered by repo",
      "mitigation": "Document as known gap; filter only task-level widgets client-side"
    }
  ],
  "assumptions": [
    "The backend agent-core API already supports excludeRepo on the tasks endpoint (confirmed by existing pipeline page usage)",
    "Adding excludeRepo to jobs/events API calls is safe even if the backend ignores unknown query params"
  ],
  "open_questions": []
}
Plan