Repository navigation
feat(diagnosis): add bounded Application Signals discovery - #249
Conversation
🤖 AI Code Review (two independent reviewers)Reviewer responses: codex/ALL claude/ALL Status: PASSED — No blocking issues found Both panels' load-bearing claims check out against the base tree: PR #249 — feat(diagnosis): add bounded Application Signals discovery — Chair ReviewIMAGE_COVERAGE: NOT_REQUIRED (The manifest lists no images, deletions, or unavailable entries; both panel cells declared NOT_REQUIRED.) 1. SummaryThis PR adds a default-off, flag-gated ( 2. Issues per lensL2 — Code correctnessMINOR (downgraded from one panel's MAJOR; chair-verified) — the managed logical-resource budget is bundle-global (20) while the docs imply per-region capacity (40 nodes/region), making the feature near-inert on large accounts. One model flagged this MAJOR; the other found no L2 defect. Verified against the diff: MINOR (one model) — enabling the flag unconditionally shrinks inventory anchors from 140 to 120 ( MINOR (one model) — in the dependency loop, a cap-exhausted MINOR (one model) — a single per-region MINOR (one model) — Verified-correct notes shared across panels: the L3 — Security / AWS mutation safetyNo CRITICAL/MAJOR — both models agree. The only new IAM grant is MINOR (one model) — the dead MINOR (one model) — L4 — Observability / data-integration correctnessNo Steampipe/CIS surface is touched. Both models agree the provenance model is correct and well-enforced: MINOR (one model) — Signals "fresh" means the bounded request's echoed window was confirmed, not that a call was observed recently within it (the API exposes no per-dependency timestamp, unlike Omni's MINOR (one model, codex) — the documented "40 nodes" regional bound is not a unique-node counter across a region's dependency responses; MINOR (one model) — MINOR (one model) — L5 — Docs / ADR consistencyREADME (EN+KO), CHANGELOG (EN+KO, correctly amending the existing evidence-loop bullet in place per the CLAUDE.md rule rather than appending), MINOR (both models converged, different directions) — the "Bounds and evidence qualification" section's "per-region limit of 16 requests, 40 nodes" misstates the enforced limits: the 20-slot managed share is bundle-global (making 40 logical nodes per region unreachable), while native dependency nodes are not uniquely counted at all. Fix the wording to state the actual global 20-logical-slot ceiling and per-response row caps. This is the documentation half of the L2 capacity finding. MINOR (one model, codex) — MINOR (one model) — MINOR (one model) — 3. Suggestions
4. VerdictNo CRITICAL finding from either model. The single panel MAJOR was verified against the diff and downgraded: the behavior it describes is the PR's explicitly documented, tested, fail-closed batch-disqualification design (the repo's required "capped evidence reads as incomplete, never healthy" posture), with the actionable residue being a docs-accuracy MINOR that both models independently touched from opposite directions. Security review is clean on both panels: read-only region-conditioned IAM, ADR-005 untouched, Omni credential vending verifiably unreachable in production. No required image evidence exists. Triggered by commit |
AI Diagnosis gains bounded, default-off Application Signals service discovery in the existing Fargate evidence loop. It supplements inventory, DNS, X-Ray and Network Flow Monitor evidence for six-pillar analysis.
Service-to-DB observations retain logical service identity. Compute membership and DNS endpoint aliases remain configuration; typed inventory identifiers and verified member sessions prevent native call fan-out. Isolated invalid rows leave explicit gaps without discarding valid scoped evidence. Batch failures disqualify prior rows and remove relationships citing failed managed evidence. Every page request checks the remaining analysis budget against the configured HTTP timeout; deadline stops do not appear as empty catalogs. Managed nodes have their own resource share and are evicted before native trace evidence.
CloudWatch Omni remains a private, directly tested adapter with no production activation path. Terraform rejects every nonempty
diagnosis_omni_spacesmap, and the worker receives no Omni environment wiring or credential-vending permission. Activation requires a separately reviewed, enforceable read-only per-space IAM boundary.Validation:
Latest-HEAD AI review and required checks must pass before review completion. No flags were activated and no AWS deployment was performed.