Joachim, thanks, these are good questions. The concepts can look close from the outside, especially for WSL and containers, but they solve different problems.
EelApi gives IDE code operational access to the environment where the opened project lives. For WSL Native Mode, that environment is the WSL distribution. For Dev Containers, it is the running container. Code can work with files, run processes, inspect the platform, convert paths, and create tunnels in that environment.
The Targets API is still the right layer for explicit run and deployment flows, including SSH run targets, remote SDK setup, and UI where the user chooses where to run something. A common setup is that the project is local, while the run target is elsewhere. The flow is usually: describe the target, prepare it, transfer the needed files, run a command, and collect results.
EelApi can cover some use cases that previously used run targets when the “target” is actually the opened project environment. WSL project tooling is the clearest example. Dev Containers are another one.
In some Docker interpreter cases, users can now choose a Dev Container project instead. This is not a direct replacement for Docker interpreters. It is an alternative workflow where the container is the project environment, and EelApi gives the IDE deeper integration through IJent.
For path mapping, could you share why the plugin needs the mapping? If you pass a project path to a process in WSL or a Dev Container, Path / EelPath conversion is probably the right direction. If you map paths for deployment to a run target, the Targets API mapping may still be the right abstraction.
For testing, the easiest approach we have found is to open a project in a Docker container and run the plugin scenario there. It is also useful to verify the same scenario in WSL to catch environment-specific issues.
We have internal test infrastructure that lets us write a test once and run it in different environments. However, that area is changing actively, so it is too early to publish it as guidance. We plan to provide better public testing guidance later.
Could you also share the larger use case your plugin supports with the Targets API today? In particular: where is the project, where does the code run, and what does the user expect to happen? That would help us say whether this remains a Targets API case, becomes an EelApi case, or needs both.