Repository navigation
Conversation
|
Coverage Impact This PR will not change total coverage. Modified Files with Diff Coverage (8)
🛟 Help
|
nbouliol
left a comment
There was a problem hiding this comment.
Spec (PRD-1383, prepare agent-bff for a prebuilt listener): the six acceptance criteria are met. One gap against the recorded decision on the health() shape, inline.
nbouliol
left a comment
There was a problem hiding this comment.
Approved after /verify-fixes run 1966-20261006080209-nbouliol-verify: 1 findings of 1966-20261006072011-nbouliol closed or accepted, none reopened.
# @forestadmin/agent-bff [1.39.0](https://github.com/ForestAdmin/agent-nodejs/compare/@forestadmin/agent-bff@1.38.1...@forestadmin/agent-bff@1.39.0) (2026-10-06) ### Features * **agent-bff:** prepare a prebuilt listener for the gateway ([#1966](#1966)) ([43fc771](43fc771))

fixes PRD-1383
agent-bff now exposes what a listener other than
forest-bffneeds, so the futureforest-gateway(PRD-1337) can reuse it;forest-bffbehaves exactly as today.What
BFFHttpServer:configoptional with a prebuiltcallback, newnameoption for its logs (default"Forest BFF"). Its assembled mode (version+middlewares) is now@deprecated, removed at the next major.installShutdownHandlers(target, logger, { name })exported from the entry point, takes any{ stop(): Promise<void> }, with one latch: a second SIGTERM/SIGINT is logged and ignored,stop()runs once.buildBffreturnshealth(): the fullGET /healthbody (status,version,configured), the same object the route serves.buildBff({ gatewayVersion })setsX-Forest-Gateway-Version;X-Forest-Bff-Versionkeeps agent-bff's version. NamedgatewayVersion, notversion(Nico's call on PRD-1383): heads-up for PRD-1354 and PRD-1337.renderOpenApi(env, logger, { basePath })moved toopenapi/render-openapi.tsand exported, so the entry point doesn't load the CLI module;forest-bff openapipasses nothing.Why
PRD-1337 serves the MCP and the API on one port with one process. It needs a listener that doesn't require a
BFFConfig(MCP-only), doesn't log "Forest BFF", and one health source for its root/health. Landing this alone keeps the hosted API service redeploy a no-op.How
describeHealth; the route andhealth()read the same value.renderOpenApion the public surface: it returns a string, it mounts nothing.Verification
/healthkey order is pinned on the wire. Suite 2191/2191, lint,tscand CI (30 pass) green at9123d9087.114ebab4c..fd9b9b5e2reviewed (t-0042): GO WITH NOTES.44b5dc134against main on identical env:forest-bffCLI over the v2-ruby bench, plusaddBffembedded in a harness agent./healthGET + HEAD (ok, degraded, key-only)X-Forest-Bff-Versiononly, no Gateway header, as on mainIgnoring the signal...replaces main's failed second stopforest-bff openapi(generic + unfolded)addBffembedded harness114ebab4c)44b5dc134are unit-tested only: a doc-comment move, a guard for a synchronousstop()throw, andversionadded tohealth(). The/healthbody is unchanged: same keys, same order.name,gatewayVersion,renderOpenApibasePath) stay unit-tested only until PRD-1337 consumes them.Release note
Merging republishes
@forestadmin/agent-bff(and@forestadmin/agentthrough the exact pin) and redeploys the hosted API service, with no behavior change.Definition of Done
General
Security