Files
deepseek-harness/packages/api
Chinesezjc b462d5fd69 Merge remote-tracking branch 'origin/master' into feat/web-message-feedback-ui
Adapt to two contract changes master introduced:

- The generated Remote face now wraps every business result in
  RemoteResult, folding carrier failures into an ok:false branch instead
  of rejecting. The controller reads that envelope at its three call
  sites and maps a carrier failure onto the same settled shape the
  controls already render; three specs cover the new branch.
- Client packages split their tsconfig into host and client halves, and
  the host aggregate now compiles any test not named *.client.spec.*.
  Rename this package's specs to the client convention and drop the
  ../connection project reference, which pointed at a solution file that
  no longer carries the client sources.

Keep master's mount loop with its rollback-on-failure in api-remotes and
add messageFeedbackRemote to it.
2026-08-12 10:43:23 +08:00
..

api/ — Remote API layers

English | 中文

The application-facing Remote stack. remotes owns BFF policy and the selected business API, while gateway implements the TypeRT unary RPC endpoints shared by Host and Client environments.

Package Role ctx key
remotes/ Host Agent/Session lookup policy and Client Remote contribution assembly no service; configures ctx.typert and consumes ctx.remote
gateway/ Host TypeRT dispatcher and Client Remote endpoint ctx.typertGateway / ctx.remote

The runtime dependency direction is remotes → gateway → connection → webserver: the BFF consumes the shared TypeRTClientRemote contract, Gateway delegates transport to Connection, and Connection mounts on the HTTP server. Cordis service injection and Client module metadata preserve this order without importing the concrete Gateway from the Remotes Client entry.

Known Limitations and Deferred Work

  • Connection and WebServer remain at client/connection and host/webserver; a later package-only move can place them under api/connection and api/webserver without changing their service contracts.
  • The legacy API Proxy remains at host/apiproxy as the fallback for methods not yet migrated to Remote. It consumes the Host resolver owned by api-remotes so migrated and legacy methods retain one Agent/Session identity policy.