Commit 375cab5
committed
feat(task): add level_limit to prevent infinite delegation depth
Adds global level_limit configuration to cap subagent session tree depth.
Complements existing task_budget (horizontal limit) with vertical depth
limit for complete loop prevention.
- Add level_limit to experimental config schema (default: 5)
- Add getSessionDepth() helper to calculate session tree depth
- Add depth check before task delegation (Check 3)
- Add 3 unit tests for level_limit configuration
- Regenerate SDK types with level_limit field
Related to PR #7756 (subagent delegation)1 parent 5724469 commit 375cab5
4 files changed
Lines changed: 117 additions & 37 deletions
File tree
- packages
- opencode
- src
- config
- tool
- test
- sdk/js/src/v2/gen
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1164 | 1164 | | |
1165 | 1165 | | |
1166 | 1166 | | |
| 1167 | + | |
| 1168 | + | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
| 1174 | + | |
| 1175 | + | |
1167 | 1176 | | |
1168 | 1177 | | |
1169 | 1178 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
33 | 50 | | |
34 | 51 | | |
35 | 52 | | |
| |||
126 | 143 | | |
127 | 144 | | |
128 | 145 | | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
129 | 158 | | |
130 | 159 | | |
131 | 160 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
190 | 190 | | |
191 | 191 | | |
192 | 192 | | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | 50 | | |
58 | 51 | | |
59 | 52 | | |
| |||
68 | 61 | | |
69 | 62 | | |
70 | 63 | | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
71 | 71 | | |
72 | 72 | | |
73 | 73 | | |
| |||
888 | 888 | | |
889 | 889 | | |
890 | 890 | | |
891 | | - | |
892 | 891 | | |
893 | 892 | | |
| 893 | + | |
894 | 894 | | |
895 | 895 | | |
896 | 896 | | |
| |||
993 | 993 | | |
994 | 994 | | |
995 | 995 | | |
996 | | - | |
997 | | - | |
998 | | - | |
999 | | - | |
1000 | | - | |
1001 | | - | |
1002 | | - | |
1003 | | - | |
1004 | | - | |
1005 | | - | |
1006 | | - | |
1007 | | - | |
1008 | | - | |
1009 | | - | |
1010 | | - | |
1011 | | - | |
1012 | 996 | | |
1013 | 997 | | |
1014 | 998 | | |
| |||
1033 | 1017 | | |
1034 | 1018 | | |
1035 | 1019 | | |
1036 | | - | |
1037 | | - | |
1038 | | - | |
1039 | | - | |
1040 | | - | |
1041 | | - | |
1042 | | - | |
1043 | | - | |
1044 | 1020 | | |
1045 | 1021 | | |
1046 | 1022 | | |
| |||
1286 | 1262 | | |
1287 | 1263 | | |
1288 | 1264 | | |
1289 | | - | |
| 1265 | + | |
1290 | 1266 | | |
1291 | 1267 | | |
1292 | 1268 | | |
1293 | | - | |
| 1269 | + | |
1294 | 1270 | | |
1295 | 1271 | | |
1296 | 1272 | | |
| |||
1305 | 1281 | | |
1306 | 1282 | | |
1307 | 1283 | | |
| 1284 | + | |
| 1285 | + | |
| 1286 | + | |
| 1287 | + | |
1308 | 1288 | | |
1309 | 1289 | | |
1310 | 1290 | | |
| |||
1411 | 1391 | | |
1412 | 1392 | | |
1413 | 1393 | | |
| 1394 | + | |
| 1395 | + | |
| 1396 | + | |
| 1397 | + | |
1414 | 1398 | | |
1415 | 1399 | | |
1416 | 1400 | | |
| |||
1438 | 1422 | | |
1439 | 1423 | | |
1440 | 1424 | | |
| 1425 | + | |
1441 | 1426 | | |
1442 | 1427 | | |
1443 | 1428 | | |
| |||
1562 | 1547 | | |
1563 | 1548 | | |
1564 | 1549 | | |
1565 | | - | |
| 1550 | + | |
1566 | 1551 | | |
1567 | 1552 | | |
1568 | 1553 | | |
| |||
1606 | 1591 | | |
1607 | 1592 | | |
1608 | 1593 | | |
1609 | | - | |
| 1594 | + | |
1610 | 1595 | | |
1611 | 1596 | | |
1612 | 1597 | | |
| |||
1721 | 1706 | | |
1722 | 1707 | | |
1723 | 1708 | | |
1724 | | - | |
| 1709 | + | |
1725 | 1710 | | |
1726 | 1711 | | |
1727 | 1712 | | |
| |||
1828 | 1813 | | |
1829 | 1814 | | |
1830 | 1815 | | |
| 1816 | + | |
| 1817 | + | |
| 1818 | + | |
| 1819 | + | |
1831 | 1820 | | |
1832 | 1821 | | |
1833 | 1822 | | |
| |||
2170 | 2159 | | |
2171 | 2160 | | |
2172 | 2161 | | |
| 2162 | + | |
2173 | 2163 | | |
2174 | 2164 | | |
2175 | 2165 | | |
| |||
0 commit comments