mon targets add: silent no-op until stack restart (sources-generator not re-run)
## Summary
`postgresai mon targets add <conn> <name>` reports success and writes the target to `instances.yml`, but the new target is **not picked up by pgwatch until the user runs `postgresai mon restart`** (or the stack restarts for another reason). No error, no warning, no hint in the CLI output — the target silently sits idle.
## Reproduce (clean Ubuntu box, ~5 min)
```bash
npm install -g postgresai@0.15.0-dev.11
postgresai mon local-install -y # without --db-url
postgresai mon targets add "postgresql://user:pass@host:5432/db" my-db
postgresai mon targets list # shows the target ✅
# Wait 5 min. Open Grafana → no data for my-db ❌
```
## Root cause
`mon targets add` writes to `~/.config/postgresai/monitoring/instances.yml` with a placeholder:
```yaml
custom_tags:
sink_type: ~sink_type~
```
The `sources-generator` container is the one that renders `~sink_type~` → `prometheus` / `postgres` and writes per-instance `sources.yml` files (one for `pgwatch-prometheus`, one for `pgwatch-postgres`). It only runs on stack start. `mon targets add` does **not** trigger it.
Result:
```
$ cat /var/lib/docker/volumes/monitoring_postgres_ai_configs/_data/pgwatch-prometheus/sources.yml
# PGWatch Sources Configuration - prometheus Instance
# PostgreSQL instances to monitor
# Add your instances using: postgres-ai mon targets add
```
— empty file. After `mon restart` the sources-generator runs again and renders the target correctly.
## Why this matters
The two-step flow `mon local-install` → `mon targets add` is the **documented** path in `README.md:239-241` for users who don't have an API key at install time (or who add additional targets later). Every user following the README hits this. Confirmed live on 78.47.229.109 (fresh Ubuntu 24.04, stock npm install of `0.15.0-dev.11`, no manual edits).
## Suggested fix
Make `mon targets add` trigger the rendering itself — either:
- **(preferred)** invoke `docker compose up sources-generator` after writing `instances.yml`, then SIGHUP / restart pgwatch instances that have a config-reload signal; or
- (minimum) print a clear `→ Run 'postgresai mon restart' to start monitoring this target` notice at the end of `mon targets add` output.
`mon targets remove` likely has the same shape and should be checked.
## Related
Surfaced during validation of !267 on 0.15.0-dev.11 — not a blocker for !267 itself.
issue