Skip to content

fix: agent exit signal, local port overrides, A3 probe hint - #2511

Open
Chessing234 wants to merge 5 commits into
block:mainfrom
Chessing234:fix/agent-exit-ports-probe
Open

Chessing234 wants to merge 5 commits into
block:mainfrom
Chessing234:fix/agent-exit-ports-probe

Conversation

@Chessing234

Copy link
Copy Markdown
Contributor

Summary

  • Runtime poller records last_error when a harness dies so Agents no longer look merely idle (#2453)
  • Compose / setup honor PGPORT and BUZZ_REDIS_HOST_PORT alongside Homebrew services (#2479)
  • Clearer A3 probe failure text + Helm git.conformanceProbe for non-CAS stores like GCS (#2470)

Test plan

  • Kill a running buzz-acp child; Agents card shows an error / restart affordance
  • With Homebrew on :5432/:6379, set alternate ports in .env and run just setup
  • Helm/env: git.conformanceProbe: false sets BUZZ_GIT_CONFORMANCE_PROBE=false

Closes #2453
Closes #2479
Closes #2470

Made with Cursor

Record last_error when the runtime poller reaps a dead harness so Agents no longer look merely idle after a silent crash.

Signed-off-by: Taksh <takshkothari09@gmail.com>
Publish compose ports from PGPORT / BUZZ_REDIS_HOST_PORT so setup works alongside Homebrew services on :5432/:6379.

Signed-off-by: Taksh <takshkothari09@gmail.com>
Point operators at BUZZ_GIT_CONFORMANCE_PROBE and expose the flag in the Helm chart (GCS S3-interop cannot pass If-Match).

Signed-off-by: Taksh <takshkothari09@gmail.com>
@MiPnamic

Copy link
Copy Markdown

The same host-port collision sill hits MinIO (9000/9001) and Adminer (8082), which are still hardcoded in docker-compose.yml.
On machines where another stack owns those ports, docker compose up fails on those two services even after the pg/redis fix.

Extending identical pattern to the (MinIO's host paired with BUZZ_S3_ENDPOINT, same as PGPORT<->DATABASE_URL):

# adminer
- "${BUZZ_ADMINER_HOST_PORT:-8082}:8080"
# minio
- "${BUZZ_MINIO_HOST_PORT:-9000}:9000"
- "${BUZZ_MINIO_CONSOLE_HOST_PORT:-9001}:9001"

plus the matching .env.example docs (BUZZ_S3_ENDPOINT pairing) and the Adminer URL line in dev-setup.sh. Full diff: Solexma@289e7973

Happy to push this into your branch if you'd like it folded into #2479 fix, or open it as a follow-up PR after this lands - whichever you prefer. It's deliberately coupled to this PR, so it should merge after or with it, not independently.

Same pattern as PGPORT/Redis so a local :9000/:9001/:8082 no longer blocks docker compose up.

Signed-off-by: Taksh <takshkothari09@gmail.com>
@Chessing234

Copy link
Copy Markdown
Contributor Author

Folded the MinIO/Adminer host-port overrides (+ .env.example / dev-setup.sh) into this branch — same pattern as PG/Redis.

@ArgussLabs

Copy link
Copy Markdown

Independent confirmation of the #2479 half of this, from a fresh clone of main @ c0d7b52 on macOS with a native (non-Homebrew-managed) Postgres on :5432.

One extra data point in case it is useful for the .env.example wording: the failure I hit was not the collision check but the seed step, and it is confusing because Buzz's own Postgres is healthy at the time.

Setting only DATABASE_URL to a free port leaves PGPORT=5432 in .env, and scripts/seed-local-community.sh uses PGPORT (${PGPORT:-5432}) rather than deriving from DATABASE_URL. Because the Justfile has set dotenv-load := true, .env also beats an inherited PGPORT from the shell, so PGPORT=5434 just migrate looks like it should work and does not. Migrations succeed (they use DATABASE_URL), then seeding fails against the host Postgres:

Database migrations complete.
./scripts/seed-local-community.sh
psql: error: connection to server at "localhost" (::1), port 5432 failed: FATAL:  role "buzz" does not exist
error: Recipe `_ensure-migrations` failed on line 191 with exit code 2

role "buzz" does not exist while buzz-postgres reports healthy sends you looking at the container rather than at which server you reached.

Your # override with PGPORT + DATABASE_URL together line plus "${PGPORT:-5432}:5432" in compose covers this, so no change requested — the pairing just deserves to be hard to miss, since the symptom points somewhere else. Deriving PGPORT from DATABASE_URL in the seed script would make the two impossible to desync, if you want a belt-and-braces follow-up.

Thanks for picking this up.

@Chessing234

Copy link
Copy Markdown
Contributor Author

good call on the pgport/database_url pairing — leaving the seed-script derive as a follow-up so this stays scoped to the compose overrides

@Chessing234

Copy link
Copy Markdown
Contributor Author

opened the seed-script follow-up: #3483 — derives PG* from DATABASE_URL so they can't desync

@Chessing234

Copy link
Copy Markdown
Contributor Author

@tlongwell-block @wesbillman @wpfleger96 mind taking a look when you get a chance?

Signed-off-by: Taksh <takshkothari09@gmail.com>
@github-actions

github-actions Bot commented Sep 1, 2026

Copy link
Copy Markdown

🔐 Codex Security Review

Status: review required for the current range.

The current range is 114dbf745f1fe0bdbecb70e07a07f03c23687bdc...6fd6878d17f41c60c38a922971299f4638041455.
A new review must complete for this exact range. When manual authorization
is required, a Block organization member must comment exactly
@buzz-security-review 6fd6878d17f41c60c38a922971299f4638041455 to authorize a new review.
Any previous review applies only to its recorded range.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants