This repository has been archived on 2026-08-04. You can view files and clone it, but cannot push or open issues or pull requests.
orchestrator/agent-team/agent_team/transport
Adam Moussa ebc350aee5 fix(agent-team): harden github intake per /sh-security-review (CWE-918, idempotency)
Fixes from the high-recall detector fan-out on the durable-dedup change:

- INTAKE-LOGIC-01 (idempotency): switch the IngestStore seam from
  check-then-record (seen/mark) to claim-then-do (claim/release). The id is
  now reserved BEFORE the non-idempotent start_task side effect, so a crash in
  that window cannot re-spawn a duplicate task on the next run; a raising
  start_task releases the claim so transient failures stay retryable. Adds
  delete_issue_ingested to the schema layer for the release path.
- INTAKE-SSRF-001 / INTAKE-PATHSPLICE-002 (CWE-918) in build_default_issue_client:
  drop the caller-overridable api_root (hardcode GITHUB_API_ROOT) and validate
  owner/repo against an anchored charset before splicing them into the
  token-bearing API URL — mirrors the sibling ci_fetcher BLOCK-3/FIX-3 fixes.

Tests cover cross-process duplicate prevention, release-on-failure retry, and
the owner/repo + api_root rejection. 982 tests pass, ruff clean.

Follow-up (pre-existing, not introduced here): the label-only intake has no
author allowlist (cf. AGENT_TEAM_SLACK_OWNER_IDS on the Slack listener); the
Slack answer gate bounds the blast radius. Track as separate hardening.
2026-06-22 17:06:56 -04:00
..
__init__.py Plane 2 foundation: interfaces, SQLite schemas, state-store, billing seam 2026-06-17 15:16:12 -04:00
base.py Plane 2 foundation: interfaces, SQLite schemas, state-store, billing seam 2026-06-17 15:16:12 -04:00
checker_intake.py feat(agent-team): P5 cross-plane loop — checker finding -> pipeline task (opt-in) (#18) 2026-06-18 15:56:52 -04:00
claude_code_adapter.py Add Plane-2 leaf scaffold (pipeline graph, nodes, HITL, transports, CI) 2026-06-17 15:16:12 -04:00
claude_code_live.py feat(agent-team): P4 live github/claude_code transports + GitHub-issue intake 2026-06-18 13:23:02 -04:00
github_adapter.py fix(agent-team): clear 3 non-blocking SAST mediums on main 2026-06-18 14:16:31 -04:00
github_intake.py fix(agent-team): harden github intake per /sh-security-review (CWE-918, idempotency) 2026-06-22 17:06:56 -04:00
github_live.py feat(agent-team): P4 live github/claude_code transports + GitHub-issue intake 2026-06-18 13:23:02 -04:00
slack_adapter.py Add Plane-2 leaf scaffold (pipeline graph, nodes, HITL, transports, CI) 2026-06-17 15:16:12 -04:00
slack_listener.py fix(agent-team): harden listener respawn/close, broaden handle_event guard, channel_ref partial-unique (#29) 2026-06-22 16:14:22 -04:00
slack_live.py feat(agent-team): live Slack transport + Socket Mode listener with owner allowlist 2026-06-18 12:56:42 -04:00