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/nodes
Adam Moussa ed8e9a13ab fix(agent-team): close Confluence macro-loss + harden write authz (security-review)
Resolve the security-review BLOCKER and the confirmed authz/info findings on
the Confluence-writer node:

- BLOCKER (data-loss): _page_has_macros fail-OPENed (real ConfluenceClient has
  no page_has_macros/ADF methods) so every live write fell through to a
  wholesale storage-body PUT that drops Mermaid macros — the page-1540098
  diagram-loss class. Add count_storage_macros + a real ConfluenceClient
  .page_has_macros (storage-body detection); make _page_has_macros FAIL CLOSED;
  and add _assert_macros_preserved as the final backstop: refuse any storage
  write whose body carries fewer macros than the live page.
- AUTHZ-CONF-01: add an opt-in AGENT_TEAM_CONFLUENCE_ALLOWED_PAGE_IDS allowlist
  enforced server-side before a live update (model-derived page_id).
- AUTHZ-CONF-02: stop silently picking the first accessible Confluence site;
  require CONFLUENCE_CLOUD_ID when multiple resolve.
- INFO: 'applied' now fail-honest (defaults False, not True) on a missing attr.

+10 regression tests; full suite 1612 passed; ruff clean.
2026-06-25 11:18:01 -04:00
..
__init__.py Add Plane-2 leaf scaffold (pipeline graph, nodes, HITL, transports, CI) 2026-06-17 15:16:12 -04:00
build_verify_subgraph.py feat(agent-team): P3 Phase-0 box-side build->dispatch->verify (WIP) 2026-06-23 19:52:04 -04:00
builders.py fix(agent-team): wire the DeepSeek mechanical-edit builder as the live diff_builder (#60 root fix) 2026-06-24 14:58:48 -04:00
builders_llm.py fix(ws1/ws5): bootstrap orchestrator root in in-process invokers (G1); thread handbook into clarifier (G4) 2026-06-23 15:49:40 -04:00
clarifier.py Add Plane-2 leaf scaffold (pipeline graph, nodes, HITL, transports, CI) 2026-06-17 15:16:12 -04:00
clarifier_llm.py fix(agent-team): clarifier turn headroom (max_turns=4) so it can finish its JSON 2026-06-24 15:18:28 -04:00
confluence_writer.py fix(agent-team): close Confluence macro-loss + harden write authz (security-review) 2026-06-25 11:18:01 -04:00
confluence_writer_llm.py feat(agent-team): Confluence-writer node (draft -> approve gate -> write) 2026-06-25 10:56:48 -04:00
dispatch_invoker.py fix(agent-team): derive declared_scope from the diff when no plan scope is set 2026-06-24 17:56:19 -04:00
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
handbook.py style(ws5): ruff format handbook.py (CI ruff format --check) 2026-06-23 11:37:52 -04:00
planner.py fix(agent-team): make planner convergence cap count correctly (LOGIC-03) 2026-06-24 11:53:12 -04:00
review_loop.py fix(agent-team): review-round cap counts only reviewer verdicts (LOGIC-04) 2026-06-24 11:57:03 -04:00
review_loop_llm.py fix(ws1/ws5): bootstrap orchestrator root in in-process invokers (G1); thread handbook into clarifier (G4) 2026-06-23 15:49:40 -04:00
verifier.py fix(agent-team): remediate C1 security-review BLOCK (2 HIGH + MED/LOW) 2026-06-23 19:52:04 -04:00
verifier_llm.py feat(agent-team): bind planner/review/builder/verifier nodes to their models 2026-06-18 12:56:42 -04:00