Commit 218be36
committed
feat: replace tiny-process-library with SDK process code (CreateProcessW)
Replace the FetchContent dependency on tiny-process-library with internal
cross-platform process code adapted from copilot-sdk-cpp. This eliminates
an external dependency that was transitively inherited by downstream
projects (libagents -> fastmcpp_core).
Win32 implementation upgraded from CreateProcessA to CreateProcessW:
- UTF-8/UTF-16 conversion via utf8_to_wide() helper
- STARTUPINFOEXW with explicit handle inheritance (PROC_THREAD_ATTRIBUTE_HANDLE_LIST)
- Job Object for automatic child cleanup
- CREATE_NO_WINDOW to prevent console popups
- Stderr redirected to NUL when not captured
StdioTransport rewritten from callback-based (deque + condition_variable)
to synchronous pipe model (direct read_line on stdout pipe), with a
background stderr reader thread in keep-alive mode to prevent pipe buffer
deadlock. Process liveness is checked during timeout polling (200ms
intervals) for fast failure detection when servers crash.
Also fixes two CI issues from PR #31:
- openapi_provider.hpp: brace-init default param -> explicit Options{}
- transports.hpp: add missing override on session_id/has_session
New tests: stdio_lifecycle, stdio_stderr, stdio_timeout.
All 89 tests pass.1 parent e7220b8 commit 218be36
12 files changed
Lines changed: 2082 additions & 162 deletions
File tree
- include/fastmcpp
- client
- providers
- src
- client
- internal
- tests/transports
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
169 | 169 | | |
170 | 170 | | |
171 | 171 | | |
172 | | - | |
173 | | - | |
174 | | - | |
175 | | - | |
176 | | - | |
177 | | - | |
178 | | - | |
179 | | - | |
180 | | - | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
186 | | - | |
187 | | - | |
188 | | - | |
189 | | - | |
| 172 | + | |
| 173 | + | |
190 | 174 | | |
191 | 175 | | |
192 | 176 | | |
| |||
466 | 450 | | |
467 | 451 | | |
468 | 452 | | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
| 463 | + | |
| 464 | + | |
| 465 | + | |
| 466 | + | |
| 467 | + | |
| 468 | + | |
| 469 | + | |
| 470 | + | |
| 471 | + | |
| 472 | + | |
469 | 473 | | |
470 | 474 | | |
471 | 475 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
132 | 132 | | |
133 | 133 | | |
134 | 134 | | |
135 | | - | |
| 135 | + | |
136 | 136 | | |
137 | 137 | | |
138 | | - | |
| 138 | + | |
139 | 139 | | |
140 | 140 | | |
141 | 141 | | |
| |||
195 | 195 | | |
196 | 196 | | |
197 | 197 | | |
198 | | - | |
| 198 | + | |
199 | 199 | | |
200 | 200 | | |
201 | | - | |
| 201 | + | |
202 | 202 | | |
203 | 203 | | |
204 | 204 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| |||
0 commit comments