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/tests
Adam Moussa 3847e43ba3 feat(agent-team): one Slack thread per task — root "Task received" message + threaded questions/milestones
WS Slack-UX Feature 1. A /new-task task now maps to ONE Slack thread instead of
several top-level messages.

- /new-task posts an immediate root "📥 Task received: …" ack and captures its
  ts (root_ts); this is the instant acknowledgement.
- root_ts is plumbed into start: new PipelineState/TaskRecord channel
  slack_thread_ts, seeded by graph.start_task and threaded through
  Coordinator.start_task. The NewTaskCallback is now (task_text, via, root_ts).
- All clarifier questions for the task post as THREADED REPLIES under root_ts
  (chat.postMessage thread_ts=root_ts), and each question's ledger channel_ref
  is set to root_ts (NOT the reply's own ts). Because answer-mapping resolves a
  reply via find_open_question_by_channel_ref(thread_ts), a reply in the root
  thread (thread_ts==root_ts) maps to the task's currently-open question with NO
  change to the mapping logic or the first-answer-wins CAS. The open-only
  partial-unique index still holds (one open question per task at a time).
- Lifecycle milestones (parked / plan-ready / needs-input) and follow-up
  questions thread under root_ts too; the notify sink gained an optional
  thread_ts kwarg (degrades to top-level on a sink that doesn't accept it).
  notify failures still never break tick.
- SlackTransport.post_question + the live poster accept/forward thread_ts.
- No root_ts (non-/new-task origin) ⇒ top-level posts exactly as before.

AUTHZ-01 (owner-allowlist-first, fail-closed) and the atomic open→answered
compare-and-set are unchanged.

Adds plumbing for the inbound-ack reactor seam used by Feature 2 (dormant until
a reactor is injected). Tests cover thread_ts forwarding, channel_ref=root_ts,
graph seeding, and coordinator threading.
2026-06-23 15:49:40 -04:00
..
sim Prove P1 exit criteria against the real LangGraph graph; fix question_id stability 2026-06-17 15:16:12 -04:00
__init__.py Plane 2 foundation: interfaces, SQLite schemas, state-store, billing seam 2026-06-17 15:16:12 -04:00
conftest.py Plane 2 foundation: interfaces, SQLite schemas, state-store, billing seam 2026-06-17 15:16:12 -04:00
test_apply_verify_workflow_hardening.py fix(ws3): keep agent-apply environment gate; drop fail-open Slack step 2026-06-23 12:17:19 -04:00
test_billing.py Plane 2 foundation: interfaces, SQLite schemas, state-store, billing seam 2026-06-17 15:16:12 -04:00
test_build_verify_subgraph.py feat(agent-team): P3-inert build/verify subgraph topology (opt-in, no live CI) 2026-06-18 13:23:03 -04:00
test_builders.py Resolve security-review BLOCK: CI-guard bypasses, denylist parity, force-resume 2026-06-17 15:16:12 -04:00
test_builders_llm.py fix(ws1): skip fastapi TestClient tests when fastapi absent + ruff format 2026-06-23 11:40:46 -04:00
test_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
test_ci_fetcher.py feat(agent-team): P3-live CI apply/verify hardening + ci_fetcher (gate-passed, provisioning-gated) (#17) 2026-06-18 15:53:26 -04:00
test_ci_gate.py feat(agent-team): P3-flip Phase 1 — CI trust-boundary hardening (WIP, gated) (#34) 2026-06-22 18:51:52 -04:00
test_ci_gate_workflow.py feat(agent-team): wire apply/verify into .github/workflows (make it a live GitHub Actions workflow) (#37) 2026-06-22 19:12:17 -04:00
test_clarifier.py Add Plane-2 leaf scaffold (pipeline graph, nodes, HITL, transports, CI) 2026-06-17 15:16:12 -04:00
test_clarifier_llm.py feat(agent-team): bind P1 clarifier to real Claude via subscription-OAuth invoker 2026-06-18 12:56:42 -04:00
test_claude_code_adapter.py Add Plane-2 leaf scaffold (pipeline graph, nodes, HITL, transports, CI) 2026-06-17 15:16:12 -04:00
test_claude_code_live.py feat(agent-team): P4 live github/claude_code transports + GitHub-issue intake 2026-06-18 13:23:02 -04:00
test_coordinator.py feat(agent-team): one Slack thread per task — root "Task received" message + threaded questions/milestones 2026-06-23 15:49:40 -04:00
test_deadline_timer.py Add Plane-2 leaf scaffold (pipeline graph, nodes, HITL, transports, CI) 2026-06-17 15:16:12 -04:00
test_dispatcher.py feat(agent-team): P3-flip Phase 1 — CI trust-boundary hardening (WIP, gated) (#34) 2026-06-22 18:51:52 -04:00
test_fixer.py feat(agent-team): Plane-1 fixer — finding→patch→CI draft-PR (dep-bumps, opt-in/inert) (#21) 2026-06-18 16:17:33 -04:00
test_github_adapter.py Add Plane-2 leaf scaffold (pipeline graph, nodes, HITL, transports, CI) 2026-06-17 15:16:12 -04:00
test_github_intake.py feat(agent-team): durable GitHub-issue intake de-dup + intake hardening (#32) 2026-06-22 17:20:43 -04:00
test_github_live.py feat(agent-team): P4 live github/claude_code transports + GitHub-issue intake 2026-06-18 13:23:02 -04:00
test_graph.py feat(agent-team): one Slack thread per task — root "Task received" message + threaded questions/milestones 2026-06-23 15:49:40 -04:00
test_invoker.py feat(agent-team): bind P1 clarifier to real Claude via subscription-OAuth invoker 2026-06-18 12:56:42 -04:00
test_ledger.py Add Plane-2 leaf scaffold (pipeline graph, nodes, HITL, transports, CI) 2026-06-17 15:16:12 -04:00
test_operator_cli.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
test_planner.py fix(pipeline): single-shot Claude calls + planner actually reads review findings 2026-06-23 15:49:40 -04:00
test_recovery.py Add Plane-2 leaf scaffold (pipeline graph, nodes, HITL, transports, CI) 2026-06-17 15:16:12 -04:00
test_responder.py feat(agent-team): one Slack thread per task — root "Task received" message + threaded questions/milestones 2026-06-23 15:49:40 -04:00
test_resume_worker.py Add Plane-2 leaf scaffold (pipeline graph, nodes, HITL, transports, CI) 2026-06-17 15:16:12 -04:00
test_review_loop.py feat(agent-team): bind planner/review/builder/verifier nodes to their models 2026-06-18 12:56:42 -04:00
test_review_loop_llm.py feat(agent-team): bind planner/review/builder/verifier nodes to their models 2026-06-18 12:56:42 -04:00
test_run_team.py feat(notify): Slack lifecycle notifications + deliver multi-turn questions 2026-06-23 15:49:40 -04:00
test_schema.py feat(agent-team): durable GitHub-issue intake de-dup + intake hardening (#32) 2026-06-22 17:20:43 -04:00
test_slack_adapter.py feat(agent-team): one Slack thread per task — root "Task received" message + threaded questions/milestones 2026-06-23 15:49:40 -04:00
test_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
test_slack_live.py test(agent-team): make slack_live token test independent of slack_sdk presence 2026-06-18 13:00:34 -04:00
test_state_store.py Plane 2 foundation: interfaces, SQLite schemas, state-store, billing seam 2026-06-17 15:16:12 -04:00
test_task_model.py Plane 2 foundation: interfaces, SQLite schemas, state-store, billing seam 2026-06-17 15:16:12 -04:00
test_transport_base.py Plane 2 foundation: interfaces, SQLite schemas, state-store, billing seam 2026-06-17 15:16:12 -04:00
test_verifier.py Add Plane-2 leaf scaffold (pipeline graph, nodes, HITL, transports, CI) 2026-06-17 15:16:12 -04:00
test_verifier_llm.py feat(agent-team): bind planner/review/builder/verifier nodes to their models 2026-06-18 12:56:42 -04:00
test_ws0_ws2_ws4_plugin_slack_hook.py feat(agent-team): one Slack thread per task — root "Task received" message + threaded questions/milestones 2026-06-23 15:49:40 -04:00
test_ws1_invoker_multi_api.py fix(ws1): harden HTTP API + declare fastapi/uvicorn deps 2026-06-23 12:27:23 -04:00
test_ws3_dispatch_invoker.py style(ws3): ruff format dispatch_invoker + test (CI ruff format --check) 2026-06-23 11:38:31 -04:00
test_ws5_memory_handbook.py fix(ws5): allowlist save_memory names + symlink-safe write 2026-06-23 12:29:25 -04:00
test_ws_activation_wiring.py feat(agent-team): one Slack thread per task — root "Task received" message + threaded questions/milestones 2026-06-23 15:49:40 -04:00