You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
QA-CHECKLIST.md reports coverage against itself. It can say how much of it is
done; it cannot say what it never listed. This audit answers the other question — are the tests we build covering the critical points of Langflow? — by measuring
from the product instead of from our own results.
Method and full data: docs/coverage-heatmap/ (added by the PR below).
risk = probability × impact, mitigated by coverage. Probability comes from 1912 upstream bug issues (recency-weighted, jira-weighted) plus four years
of code churn. Impact is anchored to what langflow.org advertises, not intuition.
Coverage enters as mitigation: tests do not stop Langflow breaking, they stop the
break reaching users unseen.
Verdict
7 of the 9 highest-risk areas are properly defended (mitigation 0.75–0.80).
The suite is where Langflow is critical. The misalignment is allocation: the two
areas at the matrix maximum — MCP and Agents, the two things the product is
sold as — sit at 0.67 and 0.71, below Observability and Knowledge/files, which
carry half the inherent risk at 0.80.
Residual-risk ranking (the work queue)
#
Residual
Area
Nature
1
15.0
security
no checklist entry at all
2
8.2
MCP
advertised promise, under-defended
3
7.4
Agents
advertised promise, under-defended
4
6.3
A2A
0.21 mitigation
5
6.0
Build / graph engine
subtle engine defects unasserted
6
6.0
i18n
no checklist entry at all
Follow-up items this audit produces
Each becomes its own issue and is scheduled into a wave — this issue is the
umbrella, not the work.
security/ — 11 bullets. SSRF (ensure_url regression, langflow#14264),
code-execution endpoints (/api/v1/validate/code, reported in 2023 and
again in 2026 — the strongest recurrence in the corpus), secret exposure in
traces, tweaks injection
i18n/ — 5 bullets. Blocked on a prerequisite:CONTRIBUTING.md pins
the browser locale to en-US for every project and requires multi-locale to
be raised as its own parameterisation issue. That issue must land first
deployments/ — 8 bullets. The 1.12 deploy page and publishing stepper
(langflow#12303), 20+ components, zero coverage
memory/ — 8 bullets. Memory Base registration; selectors already
harvested from a live 1.12.0 instance and recorded in the spec doc
Graph engine contract (§12.6) — cycles, partial failure, execution order
MCP install / project config (§14.1) — the uncovered half of the surface
Raise upstream: the Memories modal ships almost no data-testid (the
primary action, both inputs, the search field and the empty state have none)
Findings the team should act on regardless of the wave
The [-] backlog is 41 items smaller than it looked. 37 template bullets
marked "automated, needs validation" had no automation of ours — their references
pointed at core/integrations/, which is Langflow's own upstream suite. Seven more
were listed twice. ROADMAP.md states that "the ~171 [-] promotions are what
make 50–60/wave reachable"; that premise needs revisiting before Wave 6 is
filled.
Four naming collisions hid real surface, and each cost a separate discovery
pass: template (Prompt Template component vs starter project), language
(Language Model vs locale), deployment (Azure deployment name vs the Deployments
page), memory (agent conversation memory vs Memory Base). Worth knowing before
the next audit.
Numbers
500 → 532 bullets; 76% → 72% coverage. The drop is entirely denominator — no test
was lost.[-] falls 89 → 48 for the opposite of a good reason: the count stops
crediting automation that does not exist.
Confidence
17% of the issue corpus could not be classified (325 of 1912) and is reported
rather than distributed, which is how security and i18n were found at all.
Good enough to order areas; not good enough for fine distinctions between
neighbours in the ranking.
Why
QA-CHECKLIST.mdreports coverage against itself. It can say how much of it isdone; it cannot say what it never listed. This audit answers the other question —
are the tests we build covering the critical points of Langflow? — by measuring
from the product instead of from our own results.
Method and full data:
docs/coverage-heatmap/(added by the PR below).risk = probability × impact, mitigated by coverage. Probability comes from1912 upstream
bugissues (recency-weighted,jira-weighted) plus four yearsof code churn. Impact is anchored to what langflow.org advertises, not intuition.
Coverage enters as mitigation: tests do not stop Langflow breaking, they stop the
break reaching users unseen.
Verdict
7 of the 9 highest-risk areas are properly defended (mitigation 0.75–0.80).
The suite is where Langflow is critical. The misalignment is allocation: the two
areas at the matrix maximum — MCP and Agents, the two things the product is
sold as — sit at 0.67 and 0.71, below Observability and Knowledge/files, which
carry half the inherent risk at 0.80.
Residual-risk ranking (the work queue)
Follow-up items this audit produces
Each becomes its own issue and is scheduled into a wave — this issue is the
umbrella, not the work.
ensure_urlregression, langflow#14264),code-execution endpoints (
/api/v1/validate/code, reported in 2023 andagain in 2026 — the strongest recurrence in the corpus), secret exposure in
traces, tweaks injection
CONTRIBUTING.mdpinsthe browser locale to
en-USfor every project and requires multi-locale tobe raised as its own parameterisation issue. That issue must land first
(langflow#12303), 20+ components, zero coverage
harvested from a live 1.12.0 instance and recorded in the spec doc
data-testid(theprimary action, both inputs, the search field and the empty state have none)
Findings the team should act on regardless of the wave
The
[-]backlog is 41 items smaller than it looked. 37 template bulletsmarked "automated, needs validation" had no automation of ours — their references
pointed at
core/integrations/, which is Langflow's own upstream suite. Seven morewere listed twice.
ROADMAP.mdstates that "the ~171[-]promotions are whatmake 50–60/wave reachable"; that premise needs revisiting before Wave 6 is
filled.
Four naming collisions hid real surface, and each cost a separate discovery
pass:
template(Prompt Template component vs starter project),language(Language Model vs locale),
deployment(Azure deployment name vs the Deploymentspage),
memory(agent conversation memory vs Memory Base). Worth knowing beforethe next audit.
Numbers
500 → 532 bullets; 76% → 72% coverage. The drop is entirely denominator — no test
was lost.
[-]falls 89 → 48 for the opposite of a good reason: the count stopscrediting automation that does not exist.
Confidence
17% of the issue corpus could not be classified (325 of 1912) and is reported
rather than distributed, which is how
securityandi18nwere found at all.Good enough to order areas; not good enough for fine distinctions between
neighbours in the ranking.