REQUEST CHANGES reviewer-of-record [W-jarvis:reviewer] head 127a69ea11
Verified at exact head 127a69ea11ccc36516c78c2007cbe52fbf63ad30; Woodpecker pipeline 1767 is green and apps/gateway/src/commands/command-authorization.service.ts is byte-identical to origin/main (hash a9f829e7ecec721c6c585fe0da56fb5d6a6441e9).
Blocker:
The required live guarded reachability proof is still missing. The new interaction.controller.test.ts calls controller.transitionalCapabilities(...) directly and manually constructs RuntimeProviderService(createGatewayRuntimeProviderRegistry(), ...). That does verify the factory can create a registry containing Hermes and that the controller method can delegate to the service, but it does not exercise a live GET /api/interaction/:agentName/transitional-capabilities request, Nest DI through AgentModule, or the AuthGuard request path. The M4-V failure was an empty injected runtime registry at gateway reachability time; this test can pass even if the actual guarded route/module wiring is broken.
Positive findings:
agent.module.ts does define createGatewayRuntimeProviderRegistry() and registers new HermesRuntimeProvider(new GatewayHermesRuntimeTransport()) for AGENT_RUNTIME_PROVIDER_REGISTRY.
GatewayHermesRuntimeTransport is a concrete HTTP transport, enforces HTTPS except loopback, preserves configured path prefixes, forwards actor/tenant/channel/correlation headers, and does not include token values in its own error messages.
No live creds or hardcoded Tess identity found in the diff; test-only token fixtures are synthetic.
Marker: ROR-740-REQUEST-CHANGES-127a69ea
REQUEST CHANGES reviewer-of-record [W-jarvis:reviewer] head 127a69ea11ccc36516c78c2007cbe52fbf63ad30
Verified at exact head `127a69ea11ccc36516c78c2007cbe52fbf63ad30`; Woodpecker pipeline `1767` is green and `apps/gateway/src/commands/command-authorization.service.ts` is byte-identical to `origin/main` (hash `a9f829e7ecec721c6c585fe0da56fb5d6a6441e9`).
Blocker:
- The required live guarded reachability proof is still missing. The new `interaction.controller.test.ts` calls `controller.transitionalCapabilities(...)` directly and manually constructs `RuntimeProviderService(createGatewayRuntimeProviderRegistry(), ...)`. That does verify the factory can create a registry containing Hermes and that the controller method can delegate to the service, but it does **not** exercise a live `GET /api/interaction/:agentName/transitional-capabilities` request, Nest DI through `AgentModule`, or the `AuthGuard` request path. The M4-V failure was an empty injected runtime registry at gateway reachability time; this test can pass even if the actual guarded route/module wiring is broken.
Positive findings:
- `agent.module.ts` does define `createGatewayRuntimeProviderRegistry()` and registers `new HermesRuntimeProvider(new GatewayHermesRuntimeTransport())` for `AGENT_RUNTIME_PROVIDER_REGISTRY`.
- `GatewayHermesRuntimeTransport` is a concrete HTTP transport, enforces HTTPS except loopback, preserves configured path prefixes, forwards actor/tenant/channel/correlation headers, and does not include token values in its own error messages.
- No live creds or hardcoded Tess identity found in the diff; test-only token fixtures are synthetic.
Marker: ROR-740-REQUEST-CHANGES-127a69ea
VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head a7e5d377e3
Reviewed exact live head a7e5d377e38b40275884a7df6ee35c55c5859e43; Woodpecker pipeline 1768 is SUCCESS for that commit.
Findings:
Prior blocker closed: apps/gateway/src/agent/hermes-runtime-reachability.e2e.test.ts boots a real Nest/Fastify app with AgentModule, exercises unauthenticated HTTP GET /api/interaction/Nova/transitional-capabilities?provider=runtime.hermes through real AuthGuard (401), then authenticated HTTP GET through the route/controller/service path (200) and returns all five Hermes transitional entries (kanban, skills, memory, tools, cron). The DI registry is also asserted to resolve runtime.hermes as HermesRuntimeProvider. Peripheral DB/queue-style dependencies are harness-replaced, but route/guard/DI/service/provider reachability is not mocked.
agent.module.ts provides AGENT_RUNTIME_PROVIDER_REGISTRY via createGatewayRuntimeProviderRegistry(), which registers new HermesRuntimeProvider(new GatewayHermesRuntimeTransport()); the injected registry is non-empty at bootstrap.
GatewayHermesRuntimeTransport is a concrete server-configured HTTP transport, preserves configured path prefixes, enforces HTTPS except loopback, forwards actor/tenant/channel/correlation headers, and does not include service token values in its own errors/logging.
apps/gateway/src/commands/command-authorization.service.ts is untouched/byte-identical to origin/main; hash confirmed a9f829e7ecec721c6c585fe0da56fb5d6a6441e9.
No live credentials or hardcoded Tess identity found in the diff; token strings are synthetic test fixtures.
No merge performed by reviewer.
Marker: ROR-740-VERIFIED-APPROVE-a7e5d377
VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head a7e5d377e38b40275884a7df6ee35c55c5859e43
Reviewed exact live head `a7e5d377e38b40275884a7df6ee35c55c5859e43`; Woodpecker pipeline `1768` is SUCCESS for that commit.
Findings:
- Prior blocker closed: `apps/gateway/src/agent/hermes-runtime-reachability.e2e.test.ts` boots a real Nest/Fastify app with `AgentModule`, exercises unauthenticated HTTP GET `/api/interaction/Nova/transitional-capabilities?provider=runtime.hermes` through real `AuthGuard` (401), then authenticated HTTP GET through the route/controller/service path (200) and returns all five Hermes transitional entries (`kanban`, `skills`, `memory`, `tools`, `cron`). The DI registry is also asserted to resolve `runtime.hermes` as `HermesRuntimeProvider`. Peripheral DB/queue-style dependencies are harness-replaced, but route/guard/DI/service/provider reachability is not mocked.
- `agent.module.ts` provides `AGENT_RUNTIME_PROVIDER_REGISTRY` via `createGatewayRuntimeProviderRegistry()`, which registers `new HermesRuntimeProvider(new GatewayHermesRuntimeTransport())`; the injected registry is non-empty at bootstrap.
- `GatewayHermesRuntimeTransport` is a concrete server-configured HTTP transport, preserves configured path prefixes, enforces HTTPS except loopback, forwards actor/tenant/channel/correlation headers, and does not include service token values in its own errors/logging.
- `apps/gateway/src/commands/command-authorization.service.ts` is untouched/byte-identical to `origin/main`; hash confirmed `a9f829e7ecec721c6c585fe0da56fb5d6a6441e9`.
- No live credentials or hardcoded Tess identity found in the diff; token strings are synthetic test fixtures.
No merge performed by reviewer.
Marker: ROR-740-VERIFIED-APPROVE-a7e5d377
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
HermesRuntimeProviderinAGENT_RUNTIME_PROVIDER_REGISTRYduring gateway bootstrapVerification
TURBO_FORCE=true pnpm typecheckTURBO_FORCE=true pnpm lintTURBO_FORCE=true pnpm format:checkTURBO_FORCE=true pnpm testPart of M4-W wave 2 / #710.
REQUEST CHANGES reviewer-of-record [W-jarvis:reviewer] head
127a69ea11Verified at exact head
127a69ea11ccc36516c78c2007cbe52fbf63ad30; Woodpecker pipeline1767is green andapps/gateway/src/commands/command-authorization.service.tsis byte-identical toorigin/main(hasha9f829e7ecec721c6c585fe0da56fb5d6a6441e9).Blocker:
interaction.controller.test.tscallscontroller.transitionalCapabilities(...)directly and manually constructsRuntimeProviderService(createGatewayRuntimeProviderRegistry(), ...). That does verify the factory can create a registry containing Hermes and that the controller method can delegate to the service, but it does not exercise a liveGET /api/interaction/:agentName/transitional-capabilitiesrequest, Nest DI throughAgentModule, or theAuthGuardrequest path. The M4-V failure was an empty injected runtime registry at gateway reachability time; this test can pass even if the actual guarded route/module wiring is broken.Positive findings:
agent.module.tsdoes definecreateGatewayRuntimeProviderRegistry()and registersnew HermesRuntimeProvider(new GatewayHermesRuntimeTransport())forAGENT_RUNTIME_PROVIDER_REGISTRY.GatewayHermesRuntimeTransportis a concrete HTTP transport, enforces HTTPS except loopback, preserves configured path prefixes, forwards actor/tenant/channel/correlation headers, and does not include token values in its own error messages.Marker: ROR-740-REQUEST-CHANGES-127a69ea
VERIFIED APPROVE reviewer-of-record [W-jarvis:reviewer] head
a7e5d377e3Reviewed exact live head
a7e5d377e38b40275884a7df6ee35c55c5859e43; Woodpecker pipeline1768is SUCCESS for that commit.Findings:
apps/gateway/src/agent/hermes-runtime-reachability.e2e.test.tsboots a real Nest/Fastify app withAgentModule, exercises unauthenticated HTTP GET/api/interaction/Nova/transitional-capabilities?provider=runtime.hermesthrough realAuthGuard(401), then authenticated HTTP GET through the route/controller/service path (200) and returns all five Hermes transitional entries (kanban,skills,memory,tools,cron). The DI registry is also asserted to resolveruntime.hermesasHermesRuntimeProvider. Peripheral DB/queue-style dependencies are harness-replaced, but route/guard/DI/service/provider reachability is not mocked.agent.module.tsprovidesAGENT_RUNTIME_PROVIDER_REGISTRYviacreateGatewayRuntimeProviderRegistry(), which registersnew HermesRuntimeProvider(new GatewayHermesRuntimeTransport()); the injected registry is non-empty at bootstrap.GatewayHermesRuntimeTransportis a concrete server-configured HTTP transport, preserves configured path prefixes, enforces HTTPS except loopback, forwards actor/tenant/channel/correlation headers, and does not include service token values in its own errors/logging.apps/gateway/src/commands/command-authorization.service.tsis untouched/byte-identical toorigin/main; hash confirmeda9f829e7ecec721c6c585fe0da56fb5d6a6441e9.No merge performed by reviewer.
Marker: ROR-740-VERIFIED-APPROVE-a7e5d377