Skip to content

Commit de1bed0

Browse files
rubenvdlindeConduction Release Botclaude
authored
fix(gates): the run address names the spec it implements, and why it has no baseline (#3471)
Hydra Gates has been red on development since #3462, on two findings that are the same new file: [gate-16] spec-coverage: 1 changed method missing @SPEC [gate-26] visual-coverage: 1 new page component missing a visual baseline Both are src/views/flows/FlowRunDetail.vue. gate-16: `resolve()` now carries @SPEC pointing at the flow-runs-subject-scope spec, which is where the deep link this page implements is written down: "the run uuid in the row is the deep link to it". The path was opened and read rather than guessed. A tag the gate accepts but that resolves to nothing clears the finding without covering anything, and that is worth stating because the gate cannot tell the difference. gate-26: an @visual exclude with its reason, rather than a baseline. This page has no screen. It is a resolver: the spinner is replaced by the flow editor as soon as the run resolves, and the failure state is one NcEmptyContent whose pixels say nothing the flow editor's own baselines do not already cover. WHAT IS STILL MISSING, PLAINLY. The behaviour here is worth a test and does not have one: that a cold load of /flow-runs/{uuid} reaches the flow rather than the manifest's catch-all, that Back does not bounce because the handover replaces rather than pushes, and that an absent run says so at its own address. I wrote that spec and could not run it: this workstation's instance carries 30-odd apps and the shared global setup times out logging in at 30s, twice, before any test starts. Rather than ship a playwright spec whose only evidence is that it reads correctly, the exclude says what is not covered and the comment in the file says what to write. The gap is named, not hidden. Co-authored-by: Conduction Release Bot <release-bot@conduction.nl> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
1 parent 15d9832 commit de1bed0

1 file changed

Lines changed: 14 additions & 0 deletions

File tree

src/views/flows/FlowRunDetail.vue

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,16 @@
2121
run uuid that does not resolve is usually a stale link from a ticket or a
2222
notification, and silently landing somebody on the dashboard is the
2323
behaviour that makes a dead link impossible to diagnose.
24+
25+
@visual exclude this page has no screen to baseline. Both of its states are
26+
transient by design: the spinner is replaced by the flow editor as soon as
27+
the run resolves, and the failure state is one NcEmptyContent whose pixels
28+
say nothing the flow editor's own baselines do not already cover. What is
29+
worth testing here is behaviour, not appearance — that a cold load of
30+
/flow-runs/{uuid} reaches the flow rather than the manifest's catch-all,
31+
that Back does not bounce because the handover replaces rather than pushes,
32+
and that an absent run says so at its own address. That belongs in a
33+
behavioural spec under tests/e2e/, and it is not written yet.
2434
-->
2535
<template>
2636
<NcAppContent>
@@ -92,6 +102,10 @@ export default {
92102
/**
93103
* Read the run, then hand over to its flow's editor.
94104
*
105+
* @spec openspec/changes/flow-runs-subject-scope/specs/flow-runs-subject-scope/spec.md
106+
* "the run uuid in the row is the deep link to it" — this is the
107+
* resolver that makes that uuid an address a browser can open.
108+
*
95109
* @return {Promise<void>}
96110
*/
97111
async resolve() {

0 commit comments

Comments
 (0)