Code review comment: If there is no existing profile line then it should set it for all profiles, not just for dev (eventually we will have this in the UI, but it needs some thought). Otherwise you may think you have fixed a problem but will get a surprise when you deploy/test as the profile will always be dev.

Code under review:
DevConsoleRouteBuildItem handlePost() {
        return new DevConsoleRouteBuildItem("config", "POST", new DevConsolePostHandler() {
            @Override
            protected void handlePost(RoutingContext event, MultiMap form) throws Exception {
                String key = event.request().getFormAttribute("name");
                String value = event.request().getFormAttribute("value");

                List<Path> resourcesDir = DevConsoleManager.getHotReplacementContext().getResourcesDir();
                if (resourcesDir.isEmpty()) {
                    throw new IllegalStateException("Unable to manage configurations - no resource directory found");
                }

                
                Path path = resourcesDir.get(0);
                Path configPath = path.resolve("application.properties");
                if (!Files.exists(configPath)) {
                    configPath = Files.createFile(path.resolve("application.properties"));
                }

                String profileKey = "%" + ProfileManager.getActiveProfile() + "." + key;
                List<String> lines = Files.readAllLines(configPath);
                int profileKeyLine = -1;
                int generatedLine = -1;
                for (int i = 0, linesSize = lines.size(); i < linesSize; i++) {
                    final String line = lines.get(i);
                    if (line.startsWith(profileKey)) {
                        profileKeyLine = i;
                    }
                    if (line.startsWith("
                        generatedLine = i;
                    }
                    if (profileKeyLine != -1 && generatedLine != -1) {
                        break;
                    }
                }

                if (profileKeyLine != -1) {
                    lines.set(profileKeyLine, profileKey + "=" + value);
                } else if (generatedLine != -1) {
                    lines.add(generatedLine + 1, profileKey + "=" + value);
                } else {
                    lines.add("");
                    lines.add("
                    lines.add(profileKey + "=" + value);
                }

                try (BufferedWriter writer = Files.newBufferedWriter(configPath)) {
                    for (String i : lines) {
                        writer.write(i);
                        writer.newLine();
                    }
                }

                DevConsoleManager.getHotReplacementContext().doScan(true);
                flashMessage(event, "Configuration updated");
            }
        });
    }

Line commented on: lines.add(generatedLine + 1, profileKey + "=" + value);

Revised code:
DevConsoleRouteBuildItem handlePost() {
        return new DevConsoleRouteBuildItem("config", "POST", new DevConsolePostHandler() {
            @Override
            protected void handlePost(RoutingContext event, MultiMap form) throws Exception {
                String name = event.request().getFormAttribute("name");
                String value = event.request().getFormAttribute("value");

                List<Path> resourcesDir = DevConsoleManager.getHotReplacementContext().getResourcesDir();
                if (resourcesDir.isEmpty()) {
                    throw new IllegalStateException("Unable to manage configurations - no resource directory found");
                }

                
                Path path = resourcesDir.get(0);
                Path configPath = path.resolve("application.properties");
                if (!Files.exists(configPath)) {
                    configPath = Files.createFile(path.resolve("application.properties"));
                }

                String profile = ProfileManager.getActiveProfile();
                name = !profile.equals(DEVELOPMENT.getDefaultProfile()) ? "%" + profile + "." + name : name;
                List<String> lines = Files.readAllLines(configPath);
                int nameLine = -1;
                for (int i = 0, linesSize = lines.size(); i < linesSize; i++) {
                    final String line = lines.get(i);
                    if (line.startsWith(name + "=")) {
                        nameLine = i;
                        break;
                    }
                }

                if (nameLine != -1) {
                    if (value.isEmpty()) {
                        lines.remove(nameLine);
                    } else {
                        lines.set(nameLine, name + "=" + value);
                    }
                } else {
                    if (!value.isEmpty()) {
                        lines.add(name + "=" + value);
                    }
                }

                try (BufferedWriter writer = Files.newBufferedWriter(configPath)) {
                    for (String i : lines) {
                        writer.write(i);
                        writer.newLine();
                    }
                }

                DevConsoleManager.getHotReplacementContext().doScan(true);
                flashMessage(event, "Configuration updated");
            }
        });
    }