settings.yml starts with ---, so prepending id: before it produced a
two-document YAML file that Symfony's parser rejected with a 500. Now
insert the id field after the opening --- line instead.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
importFromZip was ignoring the trmnlp_id URL parameter, so it always
generated a fresh UUID — creating a second plugin instead of updating the
placeholder created by POST /api/plugin_settings. Also inject the id back
into the returned settings_yaml so trmnlp persists it locally and
subsequent pushes update rather than duplicate.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The trmnlp APIClient unwraps a 'data' key from the response body, but
PluginSettingsController#index was returning a bare JSON array, causing
`trmnlp list` to always show "No plugins found." Update the controller
and corresponding test to use the `{'data': [...]}` envelope.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>