De-hardcode orchestrator and interaction agent names #748

Merged
jason.woltje merged 3 commits from feat/747-dehardcode-orchestrator-interaction-names into main 2026-07-13 18:59:28 +00:00
Owner

Closes #747

Summary

  • rename branded coordination and durable-session symbols files DTOs and DI tokens
  • preserve env-driven runtime identity and the compatibility API route
  • add optional roster alias and provider metadata with alias-first fleet ps display

Verification

  • pnpm build
  • pnpm typecheck
  • pnpm lint
  • pnpm format:check
  • focused coordination durable-session gateway integration and fleet test suites
Closes #747 ## Summary - rename branded coordination and durable-session symbols files DTOs and DI tokens - preserve env-driven runtime identity and the compatibility API route - add optional roster alias and provider metadata with alias-first fleet ps display ## Verification - pnpm build - pnpm typecheck - pnpm lint - pnpm format:check - focused coordination durable-session gateway integration and fleet test suites
jason.woltje added 1 commit 2026-07-13 17:20:24 +00:00
refactor(#747): de-hardcode interaction coordination names
All checks were successful
ci/woodpecker/pr/ci Pipeline was successful
f6d6d0bb62
Author
Owner

ROR-748-REQUEST-CHANGES-f6d6d0bb

Verdict: REQUEST CHANGES for PR #748 at exact head f6d6d0bb62b5b187862b0a8481d9a9e7077ff233.

Evidence checked:

  • Live PR head matches requested SHA f6d6d0bb62b5b187862b0a8481d9a9e7077ff233.
  • Woodpecker PR pipeline 1787 is terminal green for that commit.
  • runtimeActionDigest() is byte-identical to origin/main and still hashes exactly the 7 fields: providerId, sessionId, actorId, tenantId, channelId, correlationId, agentName.
  • Coord/durable-session symbols, files, DI tokens, and the sourceLabel ?? 'tess' default were neutralized in the reviewed diff.

Blocking issue:

  • apps/gateway/src/coord/interaction-coordination.controller.ts:25 still exposes the coordination boundary only at @Controller('api/coord/mos'). That keeps the reference-deployment orchestrator alias in the request path. For the NAME-AS-CONFIG invariant, request-path identifiers need a neutral/config/data route as well; preserving /api/coord/mos as a compatibility alias is fine, but it should not be the sole canonical path for new operators.

Suggested fix: add a neutral coordination route (for example api/coord/interaction / api/coord/orchestration / equivalent project-chosen neutral path) with tests/docs proving it reaches the same handoff/observe/result service, while optionally retaining /api/coord/mos for backward compatibility.

ROR-748-REQUEST-CHANGES-f6d6d0bb Verdict: REQUEST CHANGES for PR #748 at exact head `f6d6d0bb62b5b187862b0a8481d9a9e7077ff233`. Evidence checked: - Live PR head matches requested SHA `f6d6d0bb62b5b187862b0a8481d9a9e7077ff233`. - Woodpecker PR pipeline `1787` is terminal green for that commit. - `runtimeActionDigest()` is byte-identical to `origin/main` and still hashes exactly the 7 fields: `providerId`, `sessionId`, `actorId`, `tenantId`, `channelId`, `correlationId`, `agentName`. - Coord/durable-session symbols, files, DI tokens, and the `sourceLabel ?? 'tess'` default were neutralized in the reviewed diff. Blocking issue: - `apps/gateway/src/coord/interaction-coordination.controller.ts:25` still exposes the coordination boundary only at `@Controller('api/coord/mos')`. That keeps the reference-deployment orchestrator alias in the request path. For the NAME-AS-CONFIG invariant, request-path identifiers need a neutral/config/data route as well; preserving `/api/coord/mos` as a compatibility alias is fine, but it should not be the sole canonical path for new operators. Suggested fix: add a neutral coordination route (for example `api/coord/interaction` / `api/coord/orchestration` / equivalent project-chosen neutral path) with tests/docs proving it reaches the same handoff/observe/result service, while optionally retaining `/api/coord/mos` for backward compatibility.
jason.woltje force-pushed feat/747-dehardcode-orchestrator-interaction-names from f6d6d0bb62 to 17932c3fb1 2026-07-13 18:33:53 +00:00 Compare
Author
Owner

ROR-748-REQUEST-CHANGES-17932c3f

Verdict: REQUEST CHANGES for PR #748 at exact live head 17932c3fb1358a651908553be6c4ea3ed72b1531.

Evidence checked:

  • Live PR head verified via git ls-remote origin refs/pull/748/head; fetched head matches 17932c3fb1358a651908553be6c4ea3ed72b1531.
  • Base/merge-base is current origin/main 8dd4e9d541419075b4a8313ccd2c34058b826307; PR view reports no conflicts.
  • Woodpecker PR CI 1791 is SUCCESS for commit 17932c3fb135.
  • Prior blocker is partially resolved in production code: InteractionCoordinationController now has @Controller(['api/coord/interaction', 'api/coord/mos']), with /api/coord/interaction documented as canonical and /api/coord/mos retained as compatibility alias.
  • Same controller methods (handoff, observe, result) call the same InteractionCoordinationService; no separate/stubbed implementation was introduced.
  • runtimeActionDigest / command authorization file is untouched; git blob hash remains a9f829e7ecec721c6c585fe0da56fb5d6a6441e9 at base and head.
  • Tracking trio untouched: no diff to docs/tess/MISSION-MANIFEST.md, docs/tess/TASKS.md, or docs/tess/VERIFICATION-MATRIX.md.
  • Changed source scope remains gateway/packages plus docs note/scratchpad; no live credentials found in the diff; no Tess/tess literal remains in changed non-test source.

Blocking issue:

  • The requested route-parity test is not present. The new controller test only checks Nest PATH_METADATA and that the prototype has handler functions. It does not exercise HTTP routing for either prefix, and it does not prove POST /api/coord/interaction/handoff, GET /api/coord/interaction/:handoffId/observe, GET /api/coord/interaction/:handoffId/result, and their /api/coord/mos aliases actually route through the same guarded controller/service path. This can pass even if method decorators or runtime route registration are broken.

Required fix: add a focused Nest/Fastify or equivalent route-level parity test that invokes both prefixes for handoff/observe/result and asserts they reach the same controller/service behavior (guard may be test-overridden, but the route/controller path itself should be real). Keep /api/coord/interaction canonical and /api/coord/mos as compatibility alias.

No merge/deploy performed by reviewer.

ROR-748-REQUEST-CHANGES-17932c3f Verdict: REQUEST CHANGES for PR #748 at exact live head `17932c3fb1358a651908553be6c4ea3ed72b1531`. Evidence checked: - Live PR head verified via `git ls-remote origin refs/pull/748/head`; fetched head matches `17932c3fb1358a651908553be6c4ea3ed72b1531`. - Base/merge-base is current `origin/main` `8dd4e9d541419075b4a8313ccd2c34058b826307`; PR view reports no conflicts. - Woodpecker PR CI `1791` is SUCCESS for commit `17932c3fb135`. - Prior blocker is partially resolved in production code: `InteractionCoordinationController` now has `@Controller(['api/coord/interaction', 'api/coord/mos'])`, with `/api/coord/interaction` documented as canonical and `/api/coord/mos` retained as compatibility alias. - Same controller methods (`handoff`, `observe`, `result`) call the same `InteractionCoordinationService`; no separate/stubbed implementation was introduced. - `runtimeActionDigest` / command authorization file is untouched; git blob hash remains `a9f829e7ecec721c6c585fe0da56fb5d6a6441e9` at base and head. - Tracking trio untouched: no diff to `docs/tess/MISSION-MANIFEST.md`, `docs/tess/TASKS.md`, or `docs/tess/VERIFICATION-MATRIX.md`. - Changed source scope remains gateway/packages plus docs note/scratchpad; no live credentials found in the diff; no `Tess`/`tess` literal remains in changed non-test source. Blocking issue: - The requested route-parity test is not present. The new controller test only checks Nest `PATH_METADATA` and that the prototype has handler functions. It does **not** exercise HTTP routing for either prefix, and it does not prove `POST /api/coord/interaction/handoff`, `GET /api/coord/interaction/:handoffId/observe`, `GET /api/coord/interaction/:handoffId/result`, and their `/api/coord/mos` aliases actually route through the same guarded controller/service path. This can pass even if method decorators or runtime route registration are broken. Required fix: add a focused Nest/Fastify or equivalent route-level parity test that invokes both prefixes for handoff/observe/result and asserts they reach the same controller/service behavior (guard may be test-overridden, but the route/controller path itself should be real). Keep `/api/coord/interaction` canonical and `/api/coord/mos` as compatibility alias. No merge/deploy performed by reviewer.
jason.woltje added 1 commit 2026-07-13 18:47:18 +00:00
test(coord): verify neutral route compatibility
All checks were successful
ci/woodpecker/pr/ci Pipeline was successful
1906cf6663
Author
Owner

ROR-748-VERIFIED-APPROVE-1906cf66

Verdict: VERIFIED APPROVE for PR #748 at exact live head 1906cf66637af09b2c1e86c6cae627a4ee02215e.

Evidence checked:

  • Live PR head verified via git ls-remote origin refs/pull/748/head; fetched head matches 1906cf66637af09b2c1e86c6cae627a4ee02215e.
  • Base/merge-base is current origin/main 8dd4e9d541419075b4a8313ccd2c34058b826307; PR view reports no conflicts.
  • Woodpecker PR CI 1792 is SUCCESS for commit 1906cf66637a.
  • Round-2 blocker is closed by a real route-level e2e: apps/gateway/src/coord/interaction-coordination.routing.e2e.test.ts boots a Nest/Fastify app with the real InteractionCoordinationController, real AuthGuard, and a shared injected InteractionCoordinationService mock; it sends HTTP requests through both /api/coord/interaction and /api/coord/mos for POST /handoff, GET /:handoffId/observe, and GET /:handoffId/result, then asserts the shared service methods were called twice each. It also proves unauthenticated /api/coord/interaction/handoff returns 401.
  • Neutral canonical route remains in production code: @Controller(['api/coord/interaction', 'api/coord/mos']); /api/coord/interaction is documented as canonical and /api/coord/mos as backward-compatible alias in docs/tess/MOS-COORDINATION.md.
  • runtimeActionDigest / command authorization is untouched; git blob hash remains a9f829e7ecec721c6c585fe0da56fb5d6a6441e9 at base and head, with the same 7 fields (providerId, sessionId, actorId, tenantId, channelId, correlationId, agentName).
  • Tracking trio untouched: no diff to docs/tess/MISSION-MANIFEST.md, docs/tess/TASKS.md, or docs/tess/VERIFICATION-MATRIX.md.
  • Source scope remains gateway/packages plus docs note/scratchpad; no live credentials found; no Tess/tess literal remains in changed non-test source.

No merge/deploy performed by reviewer.

ROR-748-VERIFIED-APPROVE-1906cf66 Verdict: VERIFIED APPROVE for PR #748 at exact live head `1906cf66637af09b2c1e86c6cae627a4ee02215e`. Evidence checked: - Live PR head verified via `git ls-remote origin refs/pull/748/head`; fetched head matches `1906cf66637af09b2c1e86c6cae627a4ee02215e`. - Base/merge-base is current `origin/main` `8dd4e9d541419075b4a8313ccd2c34058b826307`; PR view reports no conflicts. - Woodpecker PR CI `1792` is SUCCESS for commit `1906cf66637a`. - Round-2 blocker is closed by a real route-level e2e: `apps/gateway/src/coord/interaction-coordination.routing.e2e.test.ts` boots a Nest/Fastify app with the real `InteractionCoordinationController`, real `AuthGuard`, and a shared injected `InteractionCoordinationService` mock; it sends HTTP requests through both `/api/coord/interaction` and `/api/coord/mos` for `POST /handoff`, `GET /:handoffId/observe`, and `GET /:handoffId/result`, then asserts the shared service methods were called twice each. It also proves unauthenticated `/api/coord/interaction/handoff` returns 401. - Neutral canonical route remains in production code: `@Controller(['api/coord/interaction', 'api/coord/mos'])`; `/api/coord/interaction` is documented as canonical and `/api/coord/mos` as backward-compatible alias in `docs/tess/MOS-COORDINATION.md`. - `runtimeActionDigest` / command authorization is untouched; git blob hash remains `a9f829e7ecec721c6c585fe0da56fb5d6a6441e9` at base and head, with the same 7 fields (`providerId`, `sessionId`, `actorId`, `tenantId`, `channelId`, `correlationId`, `agentName`). - Tracking trio untouched: no diff to `docs/tess/MISSION-MANIFEST.md`, `docs/tess/TASKS.md`, or `docs/tess/VERIFICATION-MATRIX.md`. - Source scope remains gateway/packages plus docs note/scratchpad; no live credentials found; no `Tess`/`tess` literal remains in changed non-test source. No merge/deploy performed by reviewer.
jason.woltje merged commit 405984af5a into main 2026-07-13 18:59:28 +00:00
jason.woltje deleted branch feat/747-dehardcode-orchestrator-interaction-names 2026-07-13 18:59:28 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#748