Skip to content

Commit ef2623a

Browse files
etrclaude
andcommitted
TASK-036: record unworked validation findings (12 major, 41 minor)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 25a53c7 commit ef2623a

3 files changed

Lines changed: 237 additions & 6 deletions

File tree

specs/tasks/M5-routing-lifecycle/TASK-036.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
Wire the new handler-return-by-value contract end-to-end through the dispatch path: lambdas return `http_response` by value (TASK-025), `http_resource::render_*` returns `http_response` by value (TASK-022), and `webserver_impl`'s dispatch moves the value into MHD via `body_->materialize(...)`.
99

1010
**Action Items:**
11-
- [ ] Update the internal dispatch function signature inside `webserver_impl` to receive `http_response&&` (or accept by value and move).
12-
- [ ] In the dispatch path, after the handler returns: enqueue the response, call `body_->materialize(...)` to obtain `MHD_Response*`, hand it to MHD, then keep the `http_response` value alive until `MHD_RequestTerminationCode` (so deferred bodies' producer callable lives long enough — DR-010).
13-
- [ ] Remove any v1 code path that wrapped responses in `shared_ptr<http_response>` or `unique_ptr<http_response>` for handler return; remove now-dead helpers.
14-
- [ ] For deferred responses, attach the `http_response` to the connection state so `request_completed` destroys it (per §5.3, DR-010).
11+
- [x] Update the internal dispatch function signature inside `webserver_impl` to receive `http_response&&` (or accept by value and move).
12+
- [x] In the dispatch path, after the handler returns: enqueue the response, call `body_->materialize(...)` to obtain `MHD_Response*`, hand it to MHD, then keep the `http_response` value alive until `MHD_RequestTerminationCode` (so deferred bodies' producer callable lives long enough — DR-010).
13+
- [x] Remove any v1 code path that wrapped responses in `shared_ptr<http_response>` or `unique_ptr<http_response>` for handler return; remove now-dead helpers.
14+
- [x] For deferred responses, attach the `http_response` to the connection state so `request_completed` destroys it (per §5.3, DR-010).
1515

1616
**Dependencies:**
1717
- Blocked by: TASK-022, TASK-025, TASK-027, TASK-031
@@ -27,4 +27,4 @@ Wire the new handler-return-by-value contract end-to-end through the dispatch pa
2727
**Related Requirements:** PRD-HDL-REQ-001, PRD-RSP-REQ-007
2828
**Related Decisions:** DR-004, DR-010, §5.3
2929

30-
**Status:** Not Started
30+
**Status:** Done

specs/tasks/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ Nominally: **13 sequential tasks**, each S–XL. Most other tasks parallelize of
118118
| TASK-033 | `create_webserver` builder cleanup | M5 | Done | TASK-006, TASK-014 |
119119
| TASK-034 | Build-flag-independent public API + `webserver::features()` | M5 | Done | TASK-003, TASK-019, TASK-033 |
120120
| TASK-035 | Smart-pointer `register_ws_resource` overloads | M5 | Done | TASK-014, TASK-034 |
121-
| TASK-036 | Handler return-by-value dispatch cutover | M5 | Not Started | TASK-022, TASK-025, TASK-027, TASK-031 |
121+
| TASK-036 | Handler return-by-value dispatch cutover | M5 | Done | TASK-022, TASK-025, TASK-027, TASK-031 |
122122
| TASK-037 | CI test for build-flag invariance | M6 | Not Started | TASK-034 |
123123
| TASK-038 | Sanitizer-clean tests for `http_response` move semantics | M6 | Not Started | TASK-009, TASK-036 |
124124
| TASK-039 | Performance acceptance (`get_headers`, `sizeof(http_resource)`) | M6 | Not Started | TASK-017, TASK-018, TASK-021 |

0 commit comments

Comments
 (0)