Commit c94802d
committed
feat(decisioning): wire TaskHandoff finalize path — single-ledger via on_complete hook (#538-impl)
The HITL finalize path that the v1.5 design promised but the previous
commits left as a follow-up. Adopters returning ctx.handoff_to_task(...)
from finalize_proposal now get the expected behaviour: Submitted
envelope to the buyer immediately, handoff fn runs in the background,
proposal commits to the store on completion. Single ledger per § D3.
Mechanism: _project_handoff gains an optional on_complete callback that
runs with the typed result before registry.complete.
maybe_intercept_finalize builds a closure capturing proposal_store +
proposal_id and threads it through. If the handoff fn raises,
on_complete raises, or store.commit raises, the framework calls
registry.fail and the proposal stays DRAFT — no half-committed state.
5 new E2E tests cover: happy-path commit-on-completion; handoff path
log emission; AdcpError from handoff fn; wrong return type; commit
failure under transient store error.
3957 passed, 32 skipped (was 3952). Zero regressions.1 parent df97cc8 commit c94802d
5 files changed
Lines changed: 426 additions & 28 deletions
File tree
- examples/sales_proposal_mode_seller/src
- src/adcp/decisioning
- tests
Lines changed: 4 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
239 | 239 | | |
240 | 240 | | |
241 | 241 | | |
242 | | - | |
243 | | - | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
244 | 246 | | |
245 | 247 | | |
246 | 248 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
| 69 | + | |
| 70 | + | |
69 | 71 | | |
70 | 72 | | |
71 | 73 | | |
| |||
1216 | 1218 | | |
1217 | 1219 | | |
1218 | 1220 | | |
| 1221 | + | |
1219 | 1222 | | |
1220 | 1223 | | |
1221 | 1224 | | |
| |||
1230 | 1233 | | |
1231 | 1234 | | |
1232 | 1235 | | |
1233 | | - | |
1234 | | - | |
1235 | | - | |
| 1236 | + | |
| 1237 | + | |
| 1238 | + | |
| 1239 | + | |
| 1240 | + | |
1236 | 1241 | | |
1237 | 1242 | | |
1238 | 1243 | | |
| |||
1244 | 1249 | | |
1245 | 1250 | | |
1246 | 1251 | | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
| 1258 | + | |
| 1259 | + | |
| 1260 | + | |
| 1261 | + | |
| 1262 | + | |
1247 | 1263 | | |
1248 | 1264 | | |
1249 | 1265 | | |
| |||
1292 | 1308 | | |
1293 | 1309 | | |
1294 | 1310 | | |
| 1311 | + | |
| 1312 | + | |
| 1313 | + | |
| 1314 | + | |
| 1315 | + | |
| 1316 | + | |
| 1317 | + | |
| 1318 | + | |
| 1319 | + | |
| 1320 | + | |
| 1321 | + | |
| 1322 | + | |
| 1323 | + | |
| 1324 | + | |
| 1325 | + | |
| 1326 | + | |
| 1327 | + | |
| 1328 | + | |
| 1329 | + | |
| 1330 | + | |
| 1331 | + | |
| 1332 | + | |
| 1333 | + | |
| 1334 | + | |
| 1335 | + | |
| 1336 | + | |
| 1337 | + | |
| 1338 | + | |
| 1339 | + | |
| 1340 | + | |
| 1341 | + | |
| 1342 | + | |
1295 | 1343 | | |
1296 | 1344 | | |
1297 | 1345 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1189 | 1189 | | |
1190 | 1190 | | |
1191 | 1191 | | |
| 1192 | + | |
1192 | 1193 | | |
1193 | 1194 | | |
1194 | 1195 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
| 83 | + | |
83 | 84 | | |
84 | 85 | | |
85 | 86 | | |
| |||
146 | 147 | | |
147 | 148 | | |
148 | 149 | | |
| 150 | + | |
149 | 151 | | |
150 | 152 | | |
151 | 153 | | |
| |||
243 | 245 | | |
244 | 246 | | |
245 | 247 | | |
246 | | - | |
247 | | - | |
248 | | - | |
249 | | - | |
250 | | - | |
251 | | - | |
252 | | - | |
253 | | - | |
254 | | - | |
255 | | - | |
256 | | - | |
257 | | - | |
258 | | - | |
259 | | - | |
260 | | - | |
261 | | - | |
262 | | - | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
267 | | - | |
268 | | - | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
269 | 294 | | |
270 | 295 | | |
271 | 296 | | |
| |||
0 commit comments