diff --git a/AGENTS.md b/AGENTS.md
index 8584191..1ea6703 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -11,7 +11,7 @@ Shared conventions of the robertblust, guestgraph and companygraph organizations
Everything below this block is this repository's own. `sh conventions/conventions-sync check` says whether the copy matches the release, `sync` brings it to the release the pin names, and `sh conventions/conventions-check` holds this repository's own Markdown to `WRITING.md`, and `sh conventions/conventions-format` to its one form, which `fix` writes. Edit a shared file in robertblust/conventions, never here.
-
+
The code-level rules of every guestgraph service on the Spring stack live in `service-conventions/`, vendored from guestgraph/service-conventions at the release `service-conventions.json` names: the parent build every `pom.xml` takes by path, the source rules, the architecture rules in `src/test/java/ServiceRulesTest.java`, the diagram script, the API generator `regen-api` that writes the one `openapi.yaml` the service serves from the sources named beside it, the workflow in `.github/workflows/verify.yml`, the Maven wrapper, and this block. `sh service-conventions/service-conventions-sync check` says whether the copy matches the release, `sync` brings it to the release the pin names, and `sh service-conventions/service-conventions-check` says what of the list the service lacks. What every service has, whatever its stack, is `SERVICE.md` there. Edit a shared file in guestgraph/service-conventions, never here.
diff --git a/pom.xml b/pom.xml
index f556cff..a95998f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
io.guestgraph
service-parent
- 0.13.0
+ 0.15.0
service-conventions/pom.xml
diff --git a/service-conventions.json b/service-conventions.json
index 82739b6..0e85c9d 100644
--- a/service-conventions.json
+++ b/service-conventions.json
@@ -1 +1 @@
-{ "repo": "guestgraph/service-conventions", "tag": "v0.13.0", "stack": "spring", "root": "io.guestgraph.engine", "scope": "tenantId", "schema": "engine", "jdbcClientAllowed": ["io.guestgraph.engine.resolution.TenantLock", "io.guestgraph.engine.config.LocalDevSeeder"] }
+{ "repo": "guestgraph/service-conventions", "tag": "v0.15.0", "stack": "spring", "root": "io.guestgraph.engine", "scope": "tenantId", "schema": "engine", "jdbcClientAllowed": ["io.guestgraph.engine.resolution.TenantLock", "io.guestgraph.engine.config.LocalDevSeeder"] }
diff --git a/service-conventions/AGENTS.md b/service-conventions/AGENTS.md
index ae62307..66b5939 100644
--- a/service-conventions/AGENTS.md
+++ b/service-conventions/AGENTS.md
@@ -1,3 +1,3 @@
-
+
The code-level rules of every guestgraph service on the Spring stack live in `service-conventions/`, vendored from guestgraph/service-conventions at the release `service-conventions.json` names: the parent build every `pom.xml` takes by path, the source rules, the architecture rules in `src/test/java/ServiceRulesTest.java`, the diagram script, the API generator `regen-api` that writes the one `openapi.yaml` the service serves from the sources named beside it, the workflow in `.github/workflows/verify.yml`, the Maven wrapper, and this block. `sh service-conventions/service-conventions-sync check` says whether the copy matches the release, `sync` brings it to the release the pin names, and `sh service-conventions/service-conventions-check` says what of the list the service lacks. What every service has, whatever its stack, is `SERVICE.md` there. Edit a shared file in guestgraph/service-conventions, never here.
diff --git a/service-conventions/pom.xml b/service-conventions/pom.xml
index 43a44a2..d5f9d2a 100644
--- a/service-conventions/pom.xml
+++ b/service-conventions/pom.xml
@@ -10,13 +10,13 @@
org.springframework.boot
spring-boot-starter-parent
- 4.1.1
+ 4.1.2
io.guestgraph
service-parent
- 0.13.0
+ 0.15.0
pom
GuestGraph service parent
The Spring stack of every guestgraph service: platform, shared versions and the plugins that hold the source to the rules
@@ -34,7 +34,7 @@
1.5.1
3.13.2
3.28.0
- 3.10.3
+ 3.10.4
1.36.1
3.6.4
diff --git a/service-conventions/regen-er b/service-conventions/regen-er
index 6ee60e9..15145fd 100644
--- a/service-conventions/regen-er
+++ b/service-conventions/regen-er
@@ -8,12 +8,17 @@
#
# sh service-conventions/regen-er
#
+# The throwaway Postgres listens on host port 55432; where another database already holds it,
+# name a free one in PG_PORT:
+#
+# PG_PORT=55499 sh service-conventions/regen-er
+#
# Requires: docker, curl. mermerd is downloaded (pinned) on first use.
set -eu
MERMERD_VERSION="0.13.0"
PG_IMAGE="postgres:18"
-PG_PORT="55432"
+PG_PORT="${PG_PORT:-55432}"
OUT_FILE="docs/er-schema.mmd"
mkdir -p "$(dirname "$OUT_FILE")"