v1 expands ${PLUGIN_ROOT}/${PLUGIN_DATA} and recommends the plugin root as the default subprocess cwd. A server whose tools operate on the user's project — writing project files, keeping project-scoped state — has no portable way to learn that path, so any such server either requires per-call absolute paths or silently writes into the plugin directory.
Concrete case: reelier serve --workspace <path> exists precisely for this, and no conformant manifest can populate it.
Proposal: an optional client-supplied ${WORKSPACE_ROOT} expansion variable (defined as "the directory the user's session is rooted in, if the client has one"), with absence meaning the client provides no workspace notion.
v1 expands
${PLUGIN_ROOT}/${PLUGIN_DATA}and recommends the plugin root as the default subprocess cwd. A server whose tools operate on the user's project — writing project files, keeping project-scoped state — has no portable way to learn that path, so any such server either requires per-call absolute paths or silently writes into the plugin directory.Concrete case:
reelier serve --workspace <path>exists precisely for this, and no conformant manifest can populate it.Proposal: an optional client-supplied
${WORKSPACE_ROOT}expansion variable (defined as "the directory the user's session is rooted in, if the client has one"), with absence meaning the client provides no workspace notion.