# Graph Report - /Users/etlab/projects/miho-ai  (2026-07-21)

## Corpus Check
- 3235 files · ~6,290,928 words
- Verdict: corpus is large enough that graph structure adds value.

## Summary
- 80788 nodes · 276787 edges · 634 communities detected
- Extraction: 41% EXTRACTED · 59% INFERRED · 0% AMBIGUOUS · INFERRED: 162986 edges (avg confidence: 0.66)
- Token cost: 0 input · 0 output

## Community Hubs (Navigation)
- [[_COMMUNITY_Community 0|Community 0]]
- [[_COMMUNITY_Community 1|Community 1]]
- [[_COMMUNITY_Community 2|Community 2]]
- [[_COMMUNITY_Community 3|Community 3]]
- [[_COMMUNITY_Community 4|Community 4]]
- [[_COMMUNITY_Community 5|Community 5]]
- [[_COMMUNITY_Community 6|Community 6]]
- [[_COMMUNITY_Community 7|Community 7]]
- [[_COMMUNITY_Community 8|Community 8]]
- [[_COMMUNITY_Community 9|Community 9]]
- [[_COMMUNITY_Community 10|Community 10]]
- [[_COMMUNITY_Community 11|Community 11]]
- [[_COMMUNITY_Community 12|Community 12]]
- [[_COMMUNITY_Community 13|Community 13]]
- [[_COMMUNITY_Community 14|Community 14]]
- [[_COMMUNITY_Community 15|Community 15]]
- [[_COMMUNITY_Community 16|Community 16]]
- [[_COMMUNITY_Community 17|Community 17]]
- [[_COMMUNITY_Community 18|Community 18]]
- [[_COMMUNITY_Community 19|Community 19]]
- [[_COMMUNITY_Community 20|Community 20]]
- [[_COMMUNITY_Community 21|Community 21]]
- [[_COMMUNITY_Community 22|Community 22]]
- [[_COMMUNITY_Community 23|Community 23]]
- [[_COMMUNITY_Community 24|Community 24]]
- [[_COMMUNITY_Community 25|Community 25]]
- [[_COMMUNITY_Community 26|Community 26]]
- [[_COMMUNITY_Community 27|Community 27]]
- [[_COMMUNITY_Community 28|Community 28]]
- [[_COMMUNITY_Community 29|Community 29]]
- [[_COMMUNITY_Community 30|Community 30]]
- [[_COMMUNITY_Community 31|Community 31]]
- [[_COMMUNITY_Community 32|Community 32]]
- [[_COMMUNITY_Community 33|Community 33]]
- [[_COMMUNITY_Community 34|Community 34]]
- [[_COMMUNITY_Community 35|Community 35]]
- [[_COMMUNITY_Community 36|Community 36]]
- [[_COMMUNITY_Community 37|Community 37]]
- [[_COMMUNITY_Community 38|Community 38]]
- [[_COMMUNITY_Community 39|Community 39]]
- [[_COMMUNITY_Community 40|Community 40]]
- [[_COMMUNITY_Community 41|Community 41]]
- [[_COMMUNITY_Community 42|Community 42]]
- [[_COMMUNITY_Community 43|Community 43]]
- [[_COMMUNITY_Community 44|Community 44]]
- [[_COMMUNITY_Community 45|Community 45]]
- [[_COMMUNITY_Community 46|Community 46]]
- [[_COMMUNITY_Community 47|Community 47]]
- [[_COMMUNITY_Community 48|Community 48]]
- [[_COMMUNITY_Community 49|Community 49]]
- [[_COMMUNITY_Community 50|Community 50]]
- [[_COMMUNITY_Community 51|Community 51]]
- [[_COMMUNITY_Community 52|Community 52]]
- [[_COMMUNITY_Community 53|Community 53]]
- [[_COMMUNITY_Community 54|Community 54]]
- [[_COMMUNITY_Community 55|Community 55]]
- [[_COMMUNITY_Community 56|Community 56]]
- [[_COMMUNITY_Community 57|Community 57]]
- [[_COMMUNITY_Community 58|Community 58]]
- [[_COMMUNITY_Community 59|Community 59]]
- [[_COMMUNITY_Community 60|Community 60]]
- [[_COMMUNITY_Community 61|Community 61]]
- [[_COMMUNITY_Community 62|Community 62]]
- [[_COMMUNITY_Community 63|Community 63]]
- [[_COMMUNITY_Community 64|Community 64]]
- [[_COMMUNITY_Community 65|Community 65]]
- [[_COMMUNITY_Community 66|Community 66]]
- [[_COMMUNITY_Community 67|Community 67]]
- [[_COMMUNITY_Community 68|Community 68]]
- [[_COMMUNITY_Community 69|Community 69]]
- [[_COMMUNITY_Community 70|Community 70]]
- [[_COMMUNITY_Community 71|Community 71]]
- [[_COMMUNITY_Community 72|Community 72]]
- [[_COMMUNITY_Community 73|Community 73]]
- [[_COMMUNITY_Community 74|Community 74]]
- [[_COMMUNITY_Community 75|Community 75]]
- [[_COMMUNITY_Community 76|Community 76]]
- [[_COMMUNITY_Community 77|Community 77]]
- [[_COMMUNITY_Community 78|Community 78]]
- [[_COMMUNITY_Community 79|Community 79]]
- [[_COMMUNITY_Community 80|Community 80]]
- [[_COMMUNITY_Community 81|Community 81]]
- [[_COMMUNITY_Community 82|Community 82]]
- [[_COMMUNITY_Community 83|Community 83]]
- [[_COMMUNITY_Community 84|Community 84]]
- [[_COMMUNITY_Community 85|Community 85]]
- [[_COMMUNITY_Community 86|Community 86]]
- [[_COMMUNITY_Community 87|Community 87]]
- [[_COMMUNITY_Community 88|Community 88]]
- [[_COMMUNITY_Community 89|Community 89]]
- [[_COMMUNITY_Community 90|Community 90]]
- [[_COMMUNITY_Community 91|Community 91]]
- [[_COMMUNITY_Community 92|Community 92]]
- [[_COMMUNITY_Community 93|Community 93]]
- [[_COMMUNITY_Community 94|Community 94]]
- [[_COMMUNITY_Community 95|Community 95]]
- [[_COMMUNITY_Community 96|Community 96]]
- [[_COMMUNITY_Community 97|Community 97]]
- [[_COMMUNITY_Community 98|Community 98]]
- [[_COMMUNITY_Community 99|Community 99]]
- [[_COMMUNITY_Community 100|Community 100]]
- [[_COMMUNITY_Community 101|Community 101]]
- [[_COMMUNITY_Community 102|Community 102]]
- [[_COMMUNITY_Community 103|Community 103]]
- [[_COMMUNITY_Community 104|Community 104]]
- [[_COMMUNITY_Community 105|Community 105]]
- [[_COMMUNITY_Community 106|Community 106]]
- [[_COMMUNITY_Community 107|Community 107]]
- [[_COMMUNITY_Community 108|Community 108]]
- [[_COMMUNITY_Community 109|Community 109]]
- [[_COMMUNITY_Community 110|Community 110]]
- [[_COMMUNITY_Community 111|Community 111]]
- [[_COMMUNITY_Community 112|Community 112]]
- [[_COMMUNITY_Community 113|Community 113]]
- [[_COMMUNITY_Community 114|Community 114]]
- [[_COMMUNITY_Community 115|Community 115]]
- [[_COMMUNITY_Community 116|Community 116]]
- [[_COMMUNITY_Community 117|Community 117]]
- [[_COMMUNITY_Community 118|Community 118]]
- [[_COMMUNITY_Community 119|Community 119]]
- [[_COMMUNITY_Community 120|Community 120]]
- [[_COMMUNITY_Community 121|Community 121]]
- [[_COMMUNITY_Community 122|Community 122]]
- [[_COMMUNITY_Community 123|Community 123]]
- [[_COMMUNITY_Community 124|Community 124]]
- [[_COMMUNITY_Community 125|Community 125]]
- [[_COMMUNITY_Community 126|Community 126]]
- [[_COMMUNITY_Community 127|Community 127]]
- [[_COMMUNITY_Community 128|Community 128]]
- [[_COMMUNITY_Community 129|Community 129]]
- [[_COMMUNITY_Community 130|Community 130]]
- [[_COMMUNITY_Community 131|Community 131]]
- [[_COMMUNITY_Community 132|Community 132]]
- [[_COMMUNITY_Community 133|Community 133]]
- [[_COMMUNITY_Community 134|Community 134]]
- [[_COMMUNITY_Community 135|Community 135]]
- [[_COMMUNITY_Community 136|Community 136]]
- [[_COMMUNITY_Community 137|Community 137]]
- [[_COMMUNITY_Community 138|Community 138]]
- [[_COMMUNITY_Community 139|Community 139]]
- [[_COMMUNITY_Community 140|Community 140]]
- [[_COMMUNITY_Community 141|Community 141]]
- [[_COMMUNITY_Community 142|Community 142]]
- [[_COMMUNITY_Community 143|Community 143]]
- [[_COMMUNITY_Community 144|Community 144]]
- [[_COMMUNITY_Community 145|Community 145]]
- [[_COMMUNITY_Community 146|Community 146]]
- [[_COMMUNITY_Community 147|Community 147]]
- [[_COMMUNITY_Community 148|Community 148]]
- [[_COMMUNITY_Community 149|Community 149]]
- [[_COMMUNITY_Community 150|Community 150]]
- [[_COMMUNITY_Community 151|Community 151]]
- [[_COMMUNITY_Community 152|Community 152]]
- [[_COMMUNITY_Community 153|Community 153]]
- [[_COMMUNITY_Community 154|Community 154]]
- [[_COMMUNITY_Community 155|Community 155]]
- [[_COMMUNITY_Community 156|Community 156]]
- [[_COMMUNITY_Community 157|Community 157]]
- [[_COMMUNITY_Community 158|Community 158]]
- [[_COMMUNITY_Community 159|Community 159]]
- [[_COMMUNITY_Community 160|Community 160]]
- [[_COMMUNITY_Community 161|Community 161]]
- [[_COMMUNITY_Community 162|Community 162]]
- [[_COMMUNITY_Community 163|Community 163]]
- [[_COMMUNITY_Community 164|Community 164]]
- [[_COMMUNITY_Community 165|Community 165]]
- [[_COMMUNITY_Community 166|Community 166]]
- [[_COMMUNITY_Community 167|Community 167]]
- [[_COMMUNITY_Community 168|Community 168]]
- [[_COMMUNITY_Community 169|Community 169]]
- [[_COMMUNITY_Community 170|Community 170]]
- [[_COMMUNITY_Community 171|Community 171]]
- [[_COMMUNITY_Community 172|Community 172]]
- [[_COMMUNITY_Community 173|Community 173]]
- [[_COMMUNITY_Community 174|Community 174]]
- [[_COMMUNITY_Community 175|Community 175]]
- [[_COMMUNITY_Community 176|Community 176]]
- [[_COMMUNITY_Community 177|Community 177]]
- [[_COMMUNITY_Community 178|Community 178]]
- [[_COMMUNITY_Community 179|Community 179]]
- [[_COMMUNITY_Community 180|Community 180]]
- [[_COMMUNITY_Community 181|Community 181]]
- [[_COMMUNITY_Community 182|Community 182]]
- [[_COMMUNITY_Community 183|Community 183]]
- [[_COMMUNITY_Community 184|Community 184]]
- [[_COMMUNITY_Community 185|Community 185]]
- [[_COMMUNITY_Community 186|Community 186]]
- [[_COMMUNITY_Community 187|Community 187]]
- [[_COMMUNITY_Community 188|Community 188]]
- [[_COMMUNITY_Community 189|Community 189]]
- [[_COMMUNITY_Community 190|Community 190]]
- [[_COMMUNITY_Community 191|Community 191]]
- [[_COMMUNITY_Community 192|Community 192]]
- [[_COMMUNITY_Community 193|Community 193]]
- [[_COMMUNITY_Community 194|Community 194]]
- [[_COMMUNITY_Community 195|Community 195]]
- [[_COMMUNITY_Community 196|Community 196]]
- [[_COMMUNITY_Community 197|Community 197]]
- [[_COMMUNITY_Community 198|Community 198]]
- [[_COMMUNITY_Community 199|Community 199]]
- [[_COMMUNITY_Community 200|Community 200]]
- [[_COMMUNITY_Community 201|Community 201]]
- [[_COMMUNITY_Community 202|Community 202]]
- [[_COMMUNITY_Community 203|Community 203]]
- [[_COMMUNITY_Community 204|Community 204]]
- [[_COMMUNITY_Community 205|Community 205]]
- [[_COMMUNITY_Community 206|Community 206]]
- [[_COMMUNITY_Community 207|Community 207]]
- [[_COMMUNITY_Community 208|Community 208]]
- [[_COMMUNITY_Community 209|Community 209]]
- [[_COMMUNITY_Community 210|Community 210]]
- [[_COMMUNITY_Community 211|Community 211]]
- [[_COMMUNITY_Community 212|Community 212]]
- [[_COMMUNITY_Community 213|Community 213]]
- [[_COMMUNITY_Community 214|Community 214]]
- [[_COMMUNITY_Community 215|Community 215]]
- [[_COMMUNITY_Community 216|Community 216]]
- [[_COMMUNITY_Community 217|Community 217]]
- [[_COMMUNITY_Community 218|Community 218]]
- [[_COMMUNITY_Community 219|Community 219]]
- [[_COMMUNITY_Community 220|Community 220]]
- [[_COMMUNITY_Community 221|Community 221]]
- [[_COMMUNITY_Community 222|Community 222]]
- [[_COMMUNITY_Community 223|Community 223]]
- [[_COMMUNITY_Community 224|Community 224]]
- [[_COMMUNITY_Community 225|Community 225]]
- [[_COMMUNITY_Community 226|Community 226]]
- [[_COMMUNITY_Community 227|Community 227]]
- [[_COMMUNITY_Community 228|Community 228]]
- [[_COMMUNITY_Community 229|Community 229]]
- [[_COMMUNITY_Community 230|Community 230]]
- [[_COMMUNITY_Community 231|Community 231]]
- [[_COMMUNITY_Community 232|Community 232]]
- [[_COMMUNITY_Community 233|Community 233]]
- [[_COMMUNITY_Community 234|Community 234]]
- [[_COMMUNITY_Community 235|Community 235]]
- [[_COMMUNITY_Community 236|Community 236]]
- [[_COMMUNITY_Community 237|Community 237]]
- [[_COMMUNITY_Community 238|Community 238]]
- [[_COMMUNITY_Community 239|Community 239]]
- [[_COMMUNITY_Community 240|Community 240]]
- [[_COMMUNITY_Community 241|Community 241]]
- [[_COMMUNITY_Community 242|Community 242]]
- [[_COMMUNITY_Community 243|Community 243]]
- [[_COMMUNITY_Community 244|Community 244]]
- [[_COMMUNITY_Community 245|Community 245]]
- [[_COMMUNITY_Community 246|Community 246]]
- [[_COMMUNITY_Community 247|Community 247]]
- [[_COMMUNITY_Community 248|Community 248]]
- [[_COMMUNITY_Community 249|Community 249]]
- [[_COMMUNITY_Community 250|Community 250]]
- [[_COMMUNITY_Community 251|Community 251]]
- [[_COMMUNITY_Community 252|Community 252]]
- [[_COMMUNITY_Community 253|Community 253]]
- [[_COMMUNITY_Community 254|Community 254]]
- [[_COMMUNITY_Community 255|Community 255]]
- [[_COMMUNITY_Community 256|Community 256]]
- [[_COMMUNITY_Community 257|Community 257]]
- [[_COMMUNITY_Community 258|Community 258]]
- [[_COMMUNITY_Community 259|Community 259]]
- [[_COMMUNITY_Community 260|Community 260]]
- [[_COMMUNITY_Community 261|Community 261]]
- [[_COMMUNITY_Community 262|Community 262]]
- [[_COMMUNITY_Community 263|Community 263]]
- [[_COMMUNITY_Community 264|Community 264]]
- [[_COMMUNITY_Community 265|Community 265]]
- [[_COMMUNITY_Community 266|Community 266]]
- [[_COMMUNITY_Community 267|Community 267]]
- [[_COMMUNITY_Community 268|Community 268]]
- [[_COMMUNITY_Community 269|Community 269]]
- [[_COMMUNITY_Community 270|Community 270]]
- [[_COMMUNITY_Community 271|Community 271]]
- [[_COMMUNITY_Community 272|Community 272]]
- [[_COMMUNITY_Community 273|Community 273]]
- [[_COMMUNITY_Community 274|Community 274]]
- [[_COMMUNITY_Community 275|Community 275]]
- [[_COMMUNITY_Community 276|Community 276]]
- [[_COMMUNITY_Community 277|Community 277]]
- [[_COMMUNITY_Community 278|Community 278]]
- [[_COMMUNITY_Community 279|Community 279]]
- [[_COMMUNITY_Community 280|Community 280]]
- [[_COMMUNITY_Community 281|Community 281]]
- [[_COMMUNITY_Community 282|Community 282]]
- [[_COMMUNITY_Community 283|Community 283]]
- [[_COMMUNITY_Community 284|Community 284]]
- [[_COMMUNITY_Community 285|Community 285]]
- [[_COMMUNITY_Community 286|Community 286]]
- [[_COMMUNITY_Community 287|Community 287]]
- [[_COMMUNITY_Community 288|Community 288]]
- [[_COMMUNITY_Community 289|Community 289]]
- [[_COMMUNITY_Community 290|Community 290]]
- [[_COMMUNITY_Community 291|Community 291]]
- [[_COMMUNITY_Community 292|Community 292]]
- [[_COMMUNITY_Community 293|Community 293]]
- [[_COMMUNITY_Community 294|Community 294]]
- [[_COMMUNITY_Community 295|Community 295]]
- [[_COMMUNITY_Community 296|Community 296]]
- [[_COMMUNITY_Community 297|Community 297]]
- [[_COMMUNITY_Community 298|Community 298]]
- [[_COMMUNITY_Community 299|Community 299]]
- [[_COMMUNITY_Community 300|Community 300]]
- [[_COMMUNITY_Community 301|Community 301]]
- [[_COMMUNITY_Community 302|Community 302]]
- [[_COMMUNITY_Community 303|Community 303]]
- [[_COMMUNITY_Community 304|Community 304]]
- [[_COMMUNITY_Community 305|Community 305]]
- [[_COMMUNITY_Community 306|Community 306]]
- [[_COMMUNITY_Community 307|Community 307]]
- [[_COMMUNITY_Community 308|Community 308]]
- [[_COMMUNITY_Community 309|Community 309]]
- [[_COMMUNITY_Community 310|Community 310]]
- [[_COMMUNITY_Community 311|Community 311]]
- [[_COMMUNITY_Community 312|Community 312]]
- [[_COMMUNITY_Community 313|Community 313]]
- [[_COMMUNITY_Community 314|Community 314]]
- [[_COMMUNITY_Community 315|Community 315]]
- [[_COMMUNITY_Community 316|Community 316]]
- [[_COMMUNITY_Community 317|Community 317]]
- [[_COMMUNITY_Community 318|Community 318]]
- [[_COMMUNITY_Community 319|Community 319]]
- [[_COMMUNITY_Community 320|Community 320]]
- [[_COMMUNITY_Community 321|Community 321]]
- [[_COMMUNITY_Community 322|Community 322]]
- [[_COMMUNITY_Community 323|Community 323]]
- [[_COMMUNITY_Community 324|Community 324]]
- [[_COMMUNITY_Community 325|Community 325]]
- [[_COMMUNITY_Community 326|Community 326]]
- [[_COMMUNITY_Community 327|Community 327]]
- [[_COMMUNITY_Community 328|Community 328]]
- [[_COMMUNITY_Community 329|Community 329]]
- [[_COMMUNITY_Community 330|Community 330]]
- [[_COMMUNITY_Community 331|Community 331]]
- [[_COMMUNITY_Community 332|Community 332]]
- [[_COMMUNITY_Community 333|Community 333]]
- [[_COMMUNITY_Community 334|Community 334]]
- [[_COMMUNITY_Community 335|Community 335]]
- [[_COMMUNITY_Community 336|Community 336]]
- [[_COMMUNITY_Community 337|Community 337]]
- [[_COMMUNITY_Community 338|Community 338]]
- [[_COMMUNITY_Community 339|Community 339]]
- [[_COMMUNITY_Community 340|Community 340]]
- [[_COMMUNITY_Community 341|Community 341]]
- [[_COMMUNITY_Community 342|Community 342]]
- [[_COMMUNITY_Community 343|Community 343]]
- [[_COMMUNITY_Community 344|Community 344]]
- [[_COMMUNITY_Community 345|Community 345]]
- [[_COMMUNITY_Community 346|Community 346]]
- [[_COMMUNITY_Community 347|Community 347]]
- [[_COMMUNITY_Community 348|Community 348]]
- [[_COMMUNITY_Community 349|Community 349]]
- [[_COMMUNITY_Community 350|Community 350]]
- [[_COMMUNITY_Community 351|Community 351]]
- [[_COMMUNITY_Community 352|Community 352]]
- [[_COMMUNITY_Community 353|Community 353]]
- [[_COMMUNITY_Community 354|Community 354]]
- [[_COMMUNITY_Community 355|Community 355]]
- [[_COMMUNITY_Community 356|Community 356]]
- [[_COMMUNITY_Community 357|Community 357]]
- [[_COMMUNITY_Community 358|Community 358]]
- [[_COMMUNITY_Community 359|Community 359]]
- [[_COMMUNITY_Community 360|Community 360]]
- [[_COMMUNITY_Community 361|Community 361]]
- [[_COMMUNITY_Community 362|Community 362]]
- [[_COMMUNITY_Community 363|Community 363]]
- [[_COMMUNITY_Community 364|Community 364]]
- [[_COMMUNITY_Community 365|Community 365]]
- [[_COMMUNITY_Community 366|Community 366]]
- [[_COMMUNITY_Community 367|Community 367]]
- [[_COMMUNITY_Community 368|Community 368]]
- [[_COMMUNITY_Community 369|Community 369]]
- [[_COMMUNITY_Community 370|Community 370]]
- [[_COMMUNITY_Community 371|Community 371]]
- [[_COMMUNITY_Community 372|Community 372]]
- [[_COMMUNITY_Community 373|Community 373]]
- [[_COMMUNITY_Community 374|Community 374]]
- [[_COMMUNITY_Community 375|Community 375]]
- [[_COMMUNITY_Community 376|Community 376]]
- [[_COMMUNITY_Community 377|Community 377]]
- [[_COMMUNITY_Community 378|Community 378]]
- [[_COMMUNITY_Community 379|Community 379]]
- [[_COMMUNITY_Community 380|Community 380]]
- [[_COMMUNITY_Community 381|Community 381]]
- [[_COMMUNITY_Community 382|Community 382]]
- [[_COMMUNITY_Community 383|Community 383]]
- [[_COMMUNITY_Community 384|Community 384]]
- [[_COMMUNITY_Community 385|Community 385]]
- [[_COMMUNITY_Community 386|Community 386]]
- [[_COMMUNITY_Community 387|Community 387]]
- [[_COMMUNITY_Community 388|Community 388]]
- [[_COMMUNITY_Community 389|Community 389]]
- [[_COMMUNITY_Community 390|Community 390]]
- [[_COMMUNITY_Community 391|Community 391]]
- [[_COMMUNITY_Community 392|Community 392]]
- [[_COMMUNITY_Community 393|Community 393]]
- [[_COMMUNITY_Community 394|Community 394]]
- [[_COMMUNITY_Community 395|Community 395]]
- [[_COMMUNITY_Community 396|Community 396]]
- [[_COMMUNITY_Community 397|Community 397]]
- [[_COMMUNITY_Community 398|Community 398]]
- [[_COMMUNITY_Community 399|Community 399]]
- [[_COMMUNITY_Community 400|Community 400]]
- [[_COMMUNITY_Community 401|Community 401]]
- [[_COMMUNITY_Community 402|Community 402]]
- [[_COMMUNITY_Community 403|Community 403]]
- [[_COMMUNITY_Community 404|Community 404]]
- [[_COMMUNITY_Community 405|Community 405]]
- [[_COMMUNITY_Community 406|Community 406]]
- [[_COMMUNITY_Community 407|Community 407]]
- [[_COMMUNITY_Community 408|Community 408]]
- [[_COMMUNITY_Community 409|Community 409]]
- [[_COMMUNITY_Community 410|Community 410]]
- [[_COMMUNITY_Community 411|Community 411]]
- [[_COMMUNITY_Community 412|Community 412]]
- [[_COMMUNITY_Community 413|Community 413]]
- [[_COMMUNITY_Community 414|Community 414]]
- [[_COMMUNITY_Community 415|Community 415]]
- [[_COMMUNITY_Community 416|Community 416]]
- [[_COMMUNITY_Community 417|Community 417]]
- [[_COMMUNITY_Community 418|Community 418]]
- [[_COMMUNITY_Community 419|Community 419]]
- [[_COMMUNITY_Community 420|Community 420]]
- [[_COMMUNITY_Community 421|Community 421]]
- [[_COMMUNITY_Community 422|Community 422]]
- [[_COMMUNITY_Community 423|Community 423]]
- [[_COMMUNITY_Community 424|Community 424]]
- [[_COMMUNITY_Community 425|Community 425]]
- [[_COMMUNITY_Community 426|Community 426]]
- [[_COMMUNITY_Community 427|Community 427]]
- [[_COMMUNITY_Community 428|Community 428]]
- [[_COMMUNITY_Community 429|Community 429]]
- [[_COMMUNITY_Community 430|Community 430]]
- [[_COMMUNITY_Community 431|Community 431]]
- [[_COMMUNITY_Community 432|Community 432]]
- [[_COMMUNITY_Community 433|Community 433]]
- [[_COMMUNITY_Community 434|Community 434]]
- [[_COMMUNITY_Community 435|Community 435]]
- [[_COMMUNITY_Community 436|Community 436]]
- [[_COMMUNITY_Community 437|Community 437]]
- [[_COMMUNITY_Community 438|Community 438]]
- [[_COMMUNITY_Community 439|Community 439]]
- [[_COMMUNITY_Community 440|Community 440]]
- [[_COMMUNITY_Community 441|Community 441]]
- [[_COMMUNITY_Community 442|Community 442]]
- [[_COMMUNITY_Community 443|Community 443]]
- [[_COMMUNITY_Community 444|Community 444]]
- [[_COMMUNITY_Community 445|Community 445]]
- [[_COMMUNITY_Community 446|Community 446]]
- [[_COMMUNITY_Community 447|Community 447]]
- [[_COMMUNITY_Community 448|Community 448]]
- [[_COMMUNITY_Community 449|Community 449]]
- [[_COMMUNITY_Community 450|Community 450]]
- [[_COMMUNITY_Community 451|Community 451]]
- [[_COMMUNITY_Community 452|Community 452]]
- [[_COMMUNITY_Community 453|Community 453]]
- [[_COMMUNITY_Community 454|Community 454]]
- [[_COMMUNITY_Community 455|Community 455]]
- [[_COMMUNITY_Community 456|Community 456]]
- [[_COMMUNITY_Community 457|Community 457]]
- [[_COMMUNITY_Community 458|Community 458]]
- [[_COMMUNITY_Community 459|Community 459]]
- [[_COMMUNITY_Community 460|Community 460]]
- [[_COMMUNITY_Community 461|Community 461]]
- [[_COMMUNITY_Community 462|Community 462]]
- [[_COMMUNITY_Community 463|Community 463]]
- [[_COMMUNITY_Community 464|Community 464]]
- [[_COMMUNITY_Community 465|Community 465]]
- [[_COMMUNITY_Community 466|Community 466]]
- [[_COMMUNITY_Community 467|Community 467]]
- [[_COMMUNITY_Community 468|Community 468]]
- [[_COMMUNITY_Community 469|Community 469]]
- [[_COMMUNITY_Community 470|Community 470]]
- [[_COMMUNITY_Community 471|Community 471]]
- [[_COMMUNITY_Community 472|Community 472]]
- [[_COMMUNITY_Community 473|Community 473]]
- [[_COMMUNITY_Community 474|Community 474]]
- [[_COMMUNITY_Community 475|Community 475]]
- [[_COMMUNITY_Community 476|Community 476]]
- [[_COMMUNITY_Community 477|Community 477]]
- [[_COMMUNITY_Community 478|Community 478]]
- [[_COMMUNITY_Community 479|Community 479]]
- [[_COMMUNITY_Community 480|Community 480]]
- [[_COMMUNITY_Community 481|Community 481]]
- [[_COMMUNITY_Community 482|Community 482]]
- [[_COMMUNITY_Community 483|Community 483]]
- [[_COMMUNITY_Community 484|Community 484]]
- [[_COMMUNITY_Community 485|Community 485]]
- [[_COMMUNITY_Community 486|Community 486]]
- [[_COMMUNITY_Community 487|Community 487]]
- [[_COMMUNITY_Community 488|Community 488]]
- [[_COMMUNITY_Community 489|Community 489]]
- [[_COMMUNITY_Community 490|Community 490]]
- [[_COMMUNITY_Community 491|Community 491]]
- [[_COMMUNITY_Community 492|Community 492]]
- [[_COMMUNITY_Community 493|Community 493]]
- [[_COMMUNITY_Community 494|Community 494]]
- [[_COMMUNITY_Community 495|Community 495]]
- [[_COMMUNITY_Community 496|Community 496]]
- [[_COMMUNITY_Community 497|Community 497]]
- [[_COMMUNITY_Community 498|Community 498]]
- [[_COMMUNITY_Community 499|Community 499]]
- [[_COMMUNITY_Community 500|Community 500]]
- [[_COMMUNITY_Community 501|Community 501]]
- [[_COMMUNITY_Community 502|Community 502]]
- [[_COMMUNITY_Community 503|Community 503]]
- [[_COMMUNITY_Community 504|Community 504]]
- [[_COMMUNITY_Community 505|Community 505]]
- [[_COMMUNITY_Community 506|Community 506]]
- [[_COMMUNITY_Community 507|Community 507]]
- [[_COMMUNITY_Community 508|Community 508]]
- [[_COMMUNITY_Community 509|Community 509]]
- [[_COMMUNITY_Community 510|Community 510]]
- [[_COMMUNITY_Community 511|Community 511]]
- [[_COMMUNITY_Community 512|Community 512]]
- [[_COMMUNITY_Community 513|Community 513]]
- [[_COMMUNITY_Community 514|Community 514]]
- [[_COMMUNITY_Community 515|Community 515]]
- [[_COMMUNITY_Community 516|Community 516]]
- [[_COMMUNITY_Community 517|Community 517]]
- [[_COMMUNITY_Community 518|Community 518]]
- [[_COMMUNITY_Community 519|Community 519]]
- [[_COMMUNITY_Community 520|Community 520]]
- [[_COMMUNITY_Community 521|Community 521]]
- [[_COMMUNITY_Community 522|Community 522]]
- [[_COMMUNITY_Community 523|Community 523]]
- [[_COMMUNITY_Community 524|Community 524]]
- [[_COMMUNITY_Community 525|Community 525]]
- [[_COMMUNITY_Community 526|Community 526]]
- [[_COMMUNITY_Community 527|Community 527]]
- [[_COMMUNITY_Community 528|Community 528]]
- [[_COMMUNITY_Community 529|Community 529]]
- [[_COMMUNITY_Community 530|Community 530]]
- [[_COMMUNITY_Community 531|Community 531]]
- [[_COMMUNITY_Community 532|Community 532]]
- [[_COMMUNITY_Community 533|Community 533]]
- [[_COMMUNITY_Community 534|Community 534]]
- [[_COMMUNITY_Community 535|Community 535]]
- [[_COMMUNITY_Community 536|Community 536]]
- [[_COMMUNITY_Community 537|Community 537]]
- [[_COMMUNITY_Community 538|Community 538]]
- [[_COMMUNITY_Community 539|Community 539]]
- [[_COMMUNITY_Community 540|Community 540]]
- [[_COMMUNITY_Community 541|Community 541]]
- [[_COMMUNITY_Community 542|Community 542]]
- [[_COMMUNITY_Community 543|Community 543]]
- [[_COMMUNITY_Community 544|Community 544]]
- [[_COMMUNITY_Community 545|Community 545]]
- [[_COMMUNITY_Community 546|Community 546]]
- [[_COMMUNITY_Community 547|Community 547]]
- [[_COMMUNITY_Community 548|Community 548]]
- [[_COMMUNITY_Community 549|Community 549]]
- [[_COMMUNITY_Community 550|Community 550]]
- [[_COMMUNITY_Community 551|Community 551]]
- [[_COMMUNITY_Community 552|Community 552]]
- [[_COMMUNITY_Community 553|Community 553]]
- [[_COMMUNITY_Community 554|Community 554]]
- [[_COMMUNITY_Community 555|Community 555]]
- [[_COMMUNITY_Community 556|Community 556]]
- [[_COMMUNITY_Community 557|Community 557]]
- [[_COMMUNITY_Community 558|Community 558]]
- [[_COMMUNITY_Community 559|Community 559]]
- [[_COMMUNITY_Community 560|Community 560]]
- [[_COMMUNITY_Community 561|Community 561]]
- [[_COMMUNITY_Community 562|Community 562]]
- [[_COMMUNITY_Community 563|Community 563]]
- [[_COMMUNITY_Community 564|Community 564]]
- [[_COMMUNITY_Community 565|Community 565]]
- [[_COMMUNITY_Community 566|Community 566]]
- [[_COMMUNITY_Community 567|Community 567]]
- [[_COMMUNITY_Community 568|Community 568]]
- [[_COMMUNITY_Community 569|Community 569]]
- [[_COMMUNITY_Community 570|Community 570]]
- [[_COMMUNITY_Community 571|Community 571]]
- [[_COMMUNITY_Community 572|Community 572]]
- [[_COMMUNITY_Community 573|Community 573]]
- [[_COMMUNITY_Community 574|Community 574]]
- [[_COMMUNITY_Community 575|Community 575]]
- [[_COMMUNITY_Community 576|Community 576]]
- [[_COMMUNITY_Community 577|Community 577]]
- [[_COMMUNITY_Community 578|Community 578]]
- [[_COMMUNITY_Community 579|Community 579]]
- [[_COMMUNITY_Community 580|Community 580]]
- [[_COMMUNITY_Community 581|Community 581]]
- [[_COMMUNITY_Community 582|Community 582]]
- [[_COMMUNITY_Community 583|Community 583]]
- [[_COMMUNITY_Community 584|Community 584]]
- [[_COMMUNITY_Community 585|Community 585]]
- [[_COMMUNITY_Community 586|Community 586]]
- [[_COMMUNITY_Community 587|Community 587]]
- [[_COMMUNITY_Community 588|Community 588]]
- [[_COMMUNITY_Community 589|Community 589]]
- [[_COMMUNITY_Community 590|Community 590]]
- [[_COMMUNITY_Community 591|Community 591]]
- [[_COMMUNITY_Community 592|Community 592]]
- [[_COMMUNITY_Community 593|Community 593]]
- [[_COMMUNITY_Community 594|Community 594]]
- [[_COMMUNITY_Community 595|Community 595]]
- [[_COMMUNITY_Community 596|Community 596]]
- [[_COMMUNITY_Community 597|Community 597]]
- [[_COMMUNITY_Community 598|Community 598]]
- [[_COMMUNITY_Community 599|Community 599]]
- [[_COMMUNITY_Community 600|Community 600]]
- [[_COMMUNITY_Community 601|Community 601]]
- [[_COMMUNITY_Community 602|Community 602]]
- [[_COMMUNITY_Community 603|Community 603]]
- [[_COMMUNITY_Community 604|Community 604]]
- [[_COMMUNITY_Community 605|Community 605]]
- [[_COMMUNITY_Community 606|Community 606]]
- [[_COMMUNITY_Community 607|Community 607]]
- [[_COMMUNITY_Community 608|Community 608]]
- [[_COMMUNITY_Community 609|Community 609]]
- [[_COMMUNITY_Community 610|Community 610]]
- [[_COMMUNITY_Community 611|Community 611]]
- [[_COMMUNITY_Community 612|Community 612]]
- [[_COMMUNITY_Community 613|Community 613]]
- [[_COMMUNITY_Community 614|Community 614]]
- [[_COMMUNITY_Community 615|Community 615]]
- [[_COMMUNITY_Community 616|Community 616]]
- [[_COMMUNITY_Community 617|Community 617]]
- [[_COMMUNITY_Community 618|Community 618]]
- [[_COMMUNITY_Community 619|Community 619]]
- [[_COMMUNITY_Community 620|Community 620]]
- [[_COMMUNITY_Community 621|Community 621]]
- [[_COMMUNITY_Community 622|Community 622]]
- [[_COMMUNITY_Community 623|Community 623]]
- [[_COMMUNITY_Community 624|Community 624]]
- [[_COMMUNITY_Community 625|Community 625]]
- [[_COMMUNITY_Community 626|Community 626]]
- [[_COMMUNITY_Community 627|Community 627]]
- [[_COMMUNITY_Community 628|Community 628]]
- [[_COMMUNITY_Community 629|Community 629]]
- [[_COMMUNITY_Community 630|Community 630]]
- [[_COMMUNITY_Community 631|Community 631]]
- [[_COMMUNITY_Community 632|Community 632]]
- [[_COMMUNITY_Community 633|Community 633]]

## God Nodes (most connected - your core abstractions)
1. `PlatformConfig` - 5640 edges
2. `Platform` - 5419 edges
3. `MessageEvent` - 3486 edges
4. `strip()` - 3108 edges
5. `MessageType` - 3009 edges
6. `BasePlatformAdapter` - 2745 edges
7. `SendResult` - 2647 edges
8. `append()` - 2504 edges
9. `AIAgent` - 2470 edges
10. `SessionSource` - 2275 edges

## Surprising Connections (you probably didn't know these)
- `BatchRunner` --uses--> `Verify _save_checkpoint writes valid, atomic JSON.`  [INFERRED]
  /Users/etlab/projects/miho-ai/batch_runner.py → /Users/etlab/projects/miho-ai/tests/test_batch_runner_checkpoint.py
- `Normalize tool_stats to include all possible tools with consistent schema.` --uses--> `AIAgent`  [INFERRED]
  /Users/etlab/projects/miho-ai/batch_runner.py → /Users/etlab/projects/miho-ai/run_agent.py
- `Normalize tool_error_counts to include all possible tools.          Args:` --uses--> `AIAgent`  [INFERRED]
  /Users/etlab/projects/miho-ai/batch_runner.py → /Users/etlab/projects/miho-ai/run_agent.py
- `Extract tool usage statistics from message history.          Args:         messa` --uses--> `AIAgent`  [INFERRED]
  /Users/etlab/projects/miho-ai/batch_runner.py → /Users/etlab/projects/miho-ai/run_agent.py
- `Count how many assistant turns have reasoning vs no reasoning.          Checks f` --uses--> `AIAgent`  [INFERRED]
  /Users/etlab/projects/miho-ai/batch_runner.py → /Users/etlab/projects/miho-ai/run_agent.py

## Communities

### Community 0 - "Community 0"
Cohesion: 0.0
Nodes (6104): _AiohttpBridgeAdapter, _audio_message(), _build_adapter(), _build_auth_header(), build_postback_button_message(), _CacheEntry, _check_for_registry(), check_google_chat_requirements() (+6096 more)

### Community 1 - "Community 1"
Cohesion: 0.0
Nodes (3151): _conflict_message(), API 지도(map call) 전용 generic 호출 — 화이트리스트 검증은 호출자 책임., _artifact_paths(), _entry(), _errors(), _fallback_status(), Academy reviewer bridge into Governance OS outcome ledger., record_academy_review_outcome() (+3143 more)

### Community 2 - "Community 2"
Cohesion: 0.0
Nodes (3292): AccountUsageSnapshot, AccountUsageWindow, fetch_account_usage(), _fetch_anthropic_account_usage(), _fetch_codex_account_usage(), _fetch_openrouter_account_usage(), _format_reset(), _parse_dt() (+3284 more)

### Community 3 - "Community 3"
Cohesion: 0.0
Nodes (2944): academy_schedules_for_range(), AcademyCalendarClient, _attendance_slot_rows(), _consultation_row(), consultation_schedules_for_range(), _contains_trial_marker(), _count_status(), _days() (+2936 more)

### Community 4 - "Community 4"
Cohesion: 0.0
Nodes (2653): Send a message via a live gateway adapter, with a standalone fallback     for ou, _send_via_adapter(), _activity_summary(), cron_agent_hard_deadline_seconds(), cron_agent_inactivity_grace_seconds(), cron_agent_inactivity_limit_seconds(), _mark_phase_checkpoint(), Completion checkpoints and the absolute ceiling for cron agent runs. (+2645 more)

### Community 5 - "Community 5"
Cohesion: 0.0
Nodes (2449): closeWithCleanup(), diffMetricLine(), dollars(), fmtDur(), fmtElapsedLabel(), guardLive(), interrupt(), jump() (+2441 more)

### Community 6 - "Community 6"
Cohesion: 0.0
Nodes (2602): _is_relative_to(), write_csv(), write_csv(), _global_auth_file_path(), auto_jailbreak(), _build_messages(), _detect_model_family(), _get_api_key() (+2594 more)

### Community 7 - "Community 7"
Cohesion: 0.0
Nodes (2576): _is_bedrock_model_id(), normalize_model_name(), Detect AWS Bedrock model IDs that use dots as namespace separators.      Bedrock, Normalize a model name for the Anthropic API.      - Strips 'anthropic/' prefix, APIServerAdapter, _check_jobs_available(), AuthError, ProviderConfig (+2568 more)

### Community 8 - "Community 8"
Cohesion: 0.0
Nodes (2114): _custom_provider_extra_body_for_agent(), _custom_provider_model_matches(), init_agent(), _normalized_custom_base_url(), _ra(), Implementation of :meth:`AIAgent.__init__` — extracted as a module function.  ``, Initialize the AI Agent.      Args:         base_url (str): Base URL for the mod, Lazy reference to ``run_agent`` so callers can patch     ``run_agent.OpenAI`` / (+2106 more)

### Community 9 - "Community 9"
Cohesion: 0.0
Nodes (2715): _is_number(), Confirmed achievement-ratio metadata for central student grades., save_achievement_ratios(), _write_update_response(), restore_primary_runtime(), try_recover_primary_transport(), formatDate(), Async/sync bridging helpers.  The codebase has ~30 sites that schedule a corouti (+2707 more)

### Community 10 - "Community 10"
Cohesion: 0.0
Nodes (1573): _academy_schedule_message(), _academy_schedule_range_tool_handler(), _class_roster_message(), _class_roster_range_tool_handler(), _consultation_schedule_message(), _consultation_schedule_range_tool_handler(), _consultation_time_text(), _date_arg() (+1565 more)

### Community 11 - "Community 11"
Cohesion: 0.0
Nodes (1457): BaseEnvironment, cleanup(), _cwd_marker(), _embed_stdin_heredoc(), _file_mtime_key(), _get_activity_callback(), get_sandbox_dir(), _load_json_store() (+1449 more)

### Community 12 - "Community 12"
Cohesion: 0.0
Nodes (1081): cprint(), _format_context_length(), Format a token count for display (e.g. 128000 → '128K', 1048576 → '1M')., Print ANSI-colored text through prompt_toolkit's renderer., Get a branding string from the active skin, or return fallback., _skin_branding(), current_brand(), current_brand_name() (+1073 more)

### Community 13 - "Community 13"
Cohesion: 0.0
Nodes (1134): _add_to_content_types(), _add_to_presentation_rels(), create_slide_from_layout(), duplicate_slide(), _get_next_slide_id(), get_next_slide_number(), Add a new slide to an unpacked PPTX directory.  Usage: python add_slide.py <unpa, Write refreshed credentials back to ~/.claude/.credentials.json.      The option (+1126 more)

### Community 14 - "Community 14"
Cohesion: 0.0
Nodes (1045): Safe lifecycle operations for ACP-managed agents., Release provider clients while preserving same-session tool resources., release_replaced_agent_clients(), disable_session_yolo(), Disable YOLO bypass for a single session key., build_auth_methods(), detect_provider(), has_provider() (+1037 more)

### Community 15 - "Community 15"
Cohesion: 0.0
Nodes (984): anthropic_prompt_cache_policy(), apply_pending_steer_to_tool_results(), cleanup_dead_connections(), create_openai_client(), drop_thinking_only_and_merge_users(), dump_api_request_debug(), extract_api_error_context(), force_close_tcp_sockets() (+976 more)

### Community 16 - "Community 16"
Cohesion: 0.0
Nodes (741): _active_profile_name(), _all_profile_host_configs(), clone_honcho_for_profile(), cmd_disable(), cmd_enable(), cmd_identity(), cmd_map(), cmd_migrate() (+733 more)

### Community 17 - "Community 17"
Cohesion: 0.0
Nodes (1144): AcademyApiClient, AcademyApiError, Authenticated PACA/Peak API client for academy operations., Raised when PACA/Peak data cannot be fetched safely., _student_rows(), _to_int(), _assistant_guidance(), _attendance_day_tool_handler() (+1136 more)

### Community 18 - "Community 18"
Cohesion: 0.0
Nodes (841): _allowed_for_source(), _agent_reach_bin(), agent_reach_route_tool(), agent_reach_status_tool(), _as_bool(), _as_list(), _cached_doctor_status(), _candidate_channels() (+833 more)

### Community 19 - "Community 19"
Cohesion: 0.0
Nodes (942): _adapter_global(), DiscordAttachmentMixin, Read an attachment via discord.py's authenticated bot session.          Returns, Cache a Discord image attachment to local disk.          Primary path: ``att.rea, Cache a Discord audio attachment to local disk.          Primary path: ``att.rea, Download a Discord document attachment and return the raw bytes.          Primar, install_auxiliary_routing(), AuxiliaryTaskRoute (+934 more)

### Community 20 - "Community 20"
Cohesion: 0.0
Nodes (825): _autopilot_payload(), _callback_modules(), governance_command(), _governance_payload(), _hooks_payload(), _manifest_cli_commands(), _operational_summary(), _operational_validation_payload() (+817 more)

### Community 21 - "Community 21"
Cohesion: 0.0
Nodes (815): looks_like_codex_intermediate_ack(), Recursively convert SDK objects to plain Python data structures.      Guards aga, _to_plain_data(), BackgroundReviewRuntime, prepare_background_review_runtime(), Task-local runtime preparation for background memory/skill review., Runtime values for a review fork, separate from foreground state., Resolve the side-agent route and load only its selected skills. (+807 more)

### Community 22 - "Community 22"
Cohesion: 0.01
Nodes (575): batch_resolve_paths(), crawl_skills_sh(), crawl_source(), main(), _meta_to_dict(), Fetch the recursive tree for a repo. Returns list of tree entries., Resolve GitHub paths for skills.sh entries using batch tree lookups.      Instea, Convert a SkillMeta to a serializable dict. (+567 more)

### Community 23 - "Community 23"
Cohesion: 0.0
Nodes (589): switch_model(), _get_config_hint_for_unknown_provider(), resolve_provider(), Yield completions for /model from config aliases + built-in aliases., ConfigIssue, print_config_warnings(), A detected config structure problem., Validate config.yaml structure and return a list of detected issues.      Catche (+581 more)

### Community 24 - "Community 24"
Cohesion: 0.0
Nodes (426): build_anthropic_kwargs(), _forbids_sampling_params(), Build kwargs for anthropic.messages.create().      Naming note — two distinct co, Return True for Claude 4.6+ models that support adaptive thinking., Return True for models that accept the 'xhigh' adaptive effort level.      Opus, Return True for models that 400 on any non-default temperature/top_p/top_k., Return True for models that support Anthropic Fast Mode (speed=fast).      Per A, _supports_adaptive_thinking() (+418 more)

### Community 25 - "Community 25"
Cohesion: 0.0
Nodes (477): CronAgentWaitOutcome, get_job(), _cron_api(), cron_command(), cron_create(), cron_edit(), cron_list(), cron_status() (+469 more)

### Community 26 - "Community 26"
Cohesion: 0.01
Nodes (501): _log_background_failure(), ActionResult, CaptureResult, ComputerUseBackend, Abstract backend interface for computer use.  Any implementation (cua-driver ove, Default implementation: time.sleep., One interactable element on the current screen., Result of a screen capture call.      At least one of png_b64 / elements is popu (+493 more)

### Community 27 - "Community 27"
Cohesion: 0.01
Nodes (415): _adapter_send_result_payload(), Live gateway adapter send helpers for send_message., _send_live_adapter_media(), _send_live_adapter_payload(), cache_document_from_bytes(), cleanup_document_cache(), coerce_plaintext_gateway_command(), extract_images() (+407 more)

### Community 28 - "Community 28"
Cohesion: 0.01
Nodes (423): _build_child_agent(), _build_child_progress_callback(), _build_child_system_prompt(), _build_dynamic_schema_overrides(), _build_role_param_description(), _build_tasks_param_description(), _build_top_level_description(), check_delegate_requirements() (+415 more)

### Community 29 - "Community 29"
Cohesion: 0.01
Nodes (335): interrupt_subagent(), Request that a single running subagent stop at its next iteration boundary., element(), Fire context + dialectic + agent model prefetches in background., is_interrupted(), Per-thread interrupt signaling for all tools.  Provides thread-scoped interrupt, Set or clear interrupt for a specific thread.      Args:         active: True to, Check if an interrupt has been requested for the current thread.      Safe to ca (+327 more)

### Community 30 - "Community 30"
Cohesion: 0.01
Nodes (413): check_codex_binary(), CodexAppServerClient, CodexAppServerError, append_governance_marker(), AppServerContinuation, consume_pending_cycle(), has_external_permission_blocker(), mark_internal_session_recovery() (+405 more)

### Community 31 - "Community 31"
Cohesion: 0.01
Nodes (546): _absence_range_matches(), _attendance_absence_days(), _number_or_zero(), Attendance score helpers for official 수시 calculations., Return a scored attendance component when a separate official table exists., score_attendance(), _score_from_grade_bands(), calculate_score() (+538 more)

### Community 32 - "Community 32"
Cohesion: 0.01
Nodes (479): AudioBridge, chrome_fake_audio_flags(), device_name(), _parse_module_id(), Virtual audio bridge for feeding generated speech into Chrome's mic.  v2 module., Return Chrome flags for using the fake audio input.      The PulseAudio source i, Manages a virtual audio device for Chrome fake-mic input.      Call ``setup()``, Provision the virtual audio device.          Returns a dict describing the devic (+471 more)

### Community 33 - "Community 33"
Cohesion: 0.01
Nodes (391): PermissionError, jittered_backoff(), Retry utilities — jittered backoff for decorrelated retries.  Replaces fixed exp, Compute a jittered exponential backoff delay.      Args:         attempt: 1-base, _count_tokens_for_entry(), _init_tokenizer_worker(), load_dataset_from_hf(), main() (+383 more)

### Community 34 - "Community 34"
Cohesion: 0.01
Nodes (318): _approval_key_aliases(), approve_permanent(), approve_session(), check_all_command_guards(), check_dangerous_command(), _check_sudo_stdin_guard(), detect_dangerous_command(), detect_hardline_command() (+310 more)

### Community 35 - "Community 35"
Cohesion: 0.01
Nodes (406): endInputDrag(), _build_folder_listing(), _code_fence_language(), ContextReference, ContextReferenceResult, _ensure_reference_path_allowed(), _expand_file_reference(), _expand_folder_reference() (+398 more)

### Community 36 - "Community 36"
Cohesion: 0.01
Nodes (336): repair_message_sequence(), _normalise(), Per-platform display/verbosity configuration resolver.  Provides ``resolve_displ, Resolve a display setting with per-platform override support.      Parameters, Normalise YAML quirks (bare ``off`` → False in YAML 1.1)., Resolve whether mid-turn assistant commentary should be user-visible.      Disco, resolve_display_setting(), resolve_interim_assistant_messages() (+328 more)

### Community 37 - "Community 37"
Cohesion: 0.01
Nodes (236): Strip ANSI escape sequences from subprocess output.  Used by terminal_tool, code, Remove ANSI escape sequences from text.      Returns the input unchanged (fast p, strip_ansi(), build_execute_code_schema(), _env_temp_dir(), execute_code(), _execute_remote(), generate_miho_tools_module() (+228 more)

### Community 38 - "Community 38"
Cohesion: 0.01
Nodes (257): _add_role(), _available_actions(), _build_schema(), _channel_info(), _channel_type_name(), check_discord_tool_requirements(), _create_thread(), _delete_message() (+249 more)

### Community 39 - "Community 39"
Cohesion: 0.01
Nodes (247): _looks_like_table_header(), Return True if ``stripped_line`` is a TOML table header.      A header has the s, index(), nextLine(), _active_hallucination_events(), _aux_slot_explicit(), compute_task_diagnostics(), config_from_kanban_config() (+239 more)

### Community 40 - "Community 40"
Cohesion: 0.01
Nodes (177): build_acp_edit_tool_call(), build_edit_proposal(), clear_edit_approval_requester(), EditProposal, get_edit_approval_requester(), _is_sensitive_auto_approve_path(), make_acp_edit_approval_requester(), maybe_require_edit_approval() (+169 more)

### Community 41 - "Community 41"
Cohesion: 0.01
Nodes (207): _detect_prefix(), Check that a zip looks like a Miho backup.      Returns (ok, reason)., Detect if the zip has a common directory prefix wrapping all entries.      Some, _validate_backup_zip(), _ClarifyEntry, clear_session(), get_clarify_timeout(), get_notify() (+199 more)

### Community 42 - "Community 42"
Cohesion: 0.02
Nodes (196): TeamsAdapter, _cmd_delete_subscription(), _cmd_fetch(), _cmd_maintain_subscriptions(), _cmd_renew_subscription(), _cmd_run(), _cmd_show(), _cmd_subscribe() (+188 more)

### Community 43 - "Community 43"
Cohesion: 0.01
Nodes (184): DebugSession, Shared debug session infrastructure for Miho tools.  Replaces the identical DEBU, Per-tool debug session that records tool calls to a JSON log file.      Activate, Append a tool-call entry to the in-memory log., Flush the in-memory log to a JSON file in the logs directory., Return a summary dict suitable for returning from get_debug_session_info()., _build_fal_payload(), _build_no_backend_setup_message() (+176 more)

### Community 44 - "Community 44"
Cohesion: 0.01
Nodes (85): check_bluebubbles_requirements(), _normalize_server_url(), truncate_message(), _value(), _port_variant_url(), _make_adapter(), _mock_client(), test_local_hosts_normalized() (+77 more)

### Community 45 - "Community 45"
Cohesion: 0.01
Nodes (188): _clean(), generate_bash(), generate_fish(), generate_zsh(), Shell completion script generation for miho CLI.  Walks the live argparse parser, Recursively extract subcommands and flags from a parser.      Uses _SubParsersAc, Strip shell-unsafe characters and truncate., _walk() (+180 more)

### Community 46 - "Community 46"
Cohesion: 0.04
Nodes (215): ABC, TestNormalize, test_yuanbao_markdown.py - Unit tests for yuanbao_markdown.py  Run (no pytest ne, x * 9000 should return 3 chunks of ~3000, 验收标准: 'a'*5000 with max 3000 → 2 chunks, 包含 200 行代码块的文本，代码块不被切断, 验收：MarkdownProcessor.chunk_markdown_text("x" * 9000, 3000) 返回 3 个片段, 验收：MarkdownProcessor.has_unclosed_fence("```python\\ncode") 返回 True (+207 more)

### Community 47 - "Community 47"
Cohesion: 0.01
Nodes (174): clear_env_passthrough(), get_all_passthrough(), _get_allowed(), is_env_passthrough(), _is_miho_provider_credential(), _load_config_passthrough(), Environment variable passthrough registry.  Skills that declare ``required_envir, Load ``tools.env_passthrough`` from config.yaml (cached). (+166 more)

### Community 48 - "Community 48"
Cohesion: 0.02
Nodes (125): _apply_doctor_tool_availability_overrides(), _build_apikey_providers_list(), check_fail(), _check_gateway_service_linger(), check_info(), check_ok(), check_warn(), _doctor_tool_availability_detail() (+117 more)

### Community 49 - "Community 49"
Cohesion: 0.02
Nodes (106): bedrock_model_ids_or_none(), build_converse_kwargs(), call_converse(), call_converse_stream(), classify_bedrock_error(), _converse_stop_reason_to_openai(), _convert_content_to_converse(), convert_messages_to_converse() (+98 more)

### Community 50 - "Community 50"
Cohesion: 0.02
Nodes (125): build_packet(), _candidate_roots(), collect_cached_evidence(), _deduplicate_fresh_results(), find_previous_html(), _first_text(), main(), parse_search_output() (+117 more)

### Community 51 - "Community 51"
Cohesion: 0.02
Nodes (102): _best_effort_sweep_expired_pastes(), _capture_default_log_snapshots(), _capture_dump(), _capture_log_snapshot(), collect_debug_report(), _delete_hint(), delete_paste(), _extract_paste_id() (+94 more)

### Community 52 - "Community 52"
Cohesion: 0.02
Nodes (151): normalize_exercise(), normalize_metrics(), schema_payload(), _bottlenecks(), build_feedback(), _coach_instructions(), _coach_output(), _coach_output_with_agent() (+143 more)

### Community 53 - "Community 53"
Cohesion: 0.02
Nodes (89): check_feishu_requirements(), active_features(), _allow_lazy_installs(), ensure(), ensure_and_bind(), feature_install_command(), feature_missing(), feature_specs() (+81 more)

### Community 54 - "Community 54"
Cohesion: 0.02
Nodes (80): Tests for SSRF protection in url_safety module., Upper end of CGNAT range (100.127.255.255)., Multicast addresses (224.0.0.0/4) not caught by is_private., ::ffff:127.0.0.1 — IPv4-mapped IPv6 loopback., ::ffff:169.254.169.254 — IPv4-mapped IPv6 cloud metadata., 0.0.0.0 — unspecified address, can bind to all interfaces., Unexpected exceptions should block, not allow., fc00::/7 — IPv6 unique local addresses. (+72 more)

### Community 55 - "Community 55"
Cohesion: 0.04
Nodes (92): test_yuanbao_proto.py - yuanbao_proto 单元测试  测试覆盖：   1. varint 编解码 round-trip   2, encode_conn_msg_full 含 cmd/msg_id/module, encode_conn_msg(msg_type=0, seq_no=1, data=b"") 的固定编码。         ConnMsg { head {, 固定 bytes 验证：TIMTextElem { text="hi" }         MsgBodyElement:           field1 (, 手工构造 InboundMessagePush bytes（与 proto 字段顺序一致）, 验证 biz payload 包含 to_account 字段, 模拟发送 C2C 消息，然后（在接收方）解码, TestAuthAndPing (+84 more)

### Community 56 - "Community 56"
Cohesion: 0.03
Nodes (58): BudgetConfig, Configurable budget constants for tool result persistence.  Per-tool resolution:, Immutable budget constants for the 3-layer tool result persistence system., Resolve the persistence threshold for a tool.          Priority: pinned -> tool_, Return per-tool max result size, or *default* (or global default)., Unit tests for tools/budget_config.py.  Covers default values, resolve_threshold, BudgetConfig can be created with non-default values., Priority: pinned > tool_overrides > registry > default. (+50 more)

### Community 57 - "Community 57"
Cohesion: 0.03
Nodes (57): FakeHAServer, Fake Home Assistant server for integration testing.  Provides a real HTTP + WebS, Enqueue a state_changed event for delivery over WebSocket., Return a 401 response if the Bearer token is wrong, else None., In-process fake Home Assistant for integration tests.      Parameters     ------, url(), _build_service_payload(), _check_ha_available() (+49 more)

### Community 58 - "Community 58"
Cohesion: 0.04
Nodes (44): _find_style(), _m2s(), Tests for Signal _markdown_to_signal() formatting.  Covers the markdown-to-bodyR, Regressions from signal-italic-false-positive-fix.md and     signal-italic-bulle, snake_case identifiers must NOT be italicized., file_path and error_code — underscores between words., * item lines must NOT be treated as italic delimiters., Real-world case that triggered the bug. (+36 more)

### Community 59 - "Community 59"
Cohesion: 0.04
Nodes (41): _build_allowed_mentions(), check_discord_requirements(), _define_discord_view_classes(), # IMPORTANT: pass oldest_first=False explicitly.  discord.py 2.x, DiscordCommandSyncMixin, _extract_discord_retry_after(), _is_discord_rate_limit(), _normalize_permissions() (+33 more)

### Community 60 - "Community 60"
Cohesion: 0.04
Nodes (40): _relative_time(), _session_browse_picker(), _make_sessions(), Tests for the interactive session browser (`miho sessions browse`).  Covers: - _, Invalid selection followed by valid one works., KeyboardInterrupt in fallback mode returns None., Fallback mode should display all session entries., When a session has a title, show it instead of the preview. (+32 more)

### Community 61 - "Community 61"
Cohesion: 0.04
Nodes (42): _finalize_update_output(), _install_hangup_protection(), _UpdateOutputStream, apply_windows_utf8_bootstrap(), Windows UTF-8 bootstrap for Miho entry points.  Python on Windows has two long-s, Apply the Windows UTF-8 bootstrap if we're on Windows.      Returns True if boot, _fresh_import(), Tests for miho_bootstrap — Windows UTF-8 stdio shim.  The bootstrap module is im (+34 more)

### Community 62 - "Community 62"
Cohesion: 0.04
Nodes (28): _extract(), Tests for extract_local_files() — auto-detection of bare local file paths in mod, Audio files are detected and routed by the gateway dispatch., Archives ship as file uploads., Common case: agent renders a chart via matplotlib and references the file., Paths that don't exist on disk are not extracted., Mix of existing and non-existing — only existing are returned., Paths embedded in HTTP URLs must not be extracted. (+20 more)

### Community 63 - "Community 63"
Cohesion: 0.07
Nodes (38): discover_fallback_ips(), _is_retryable_connect_error(), parse_fallback_ip_env(), Telegram-specific network helpers.  Provides a hostname-preserving fallback tran, Return the IPv4 addresses that the OS resolver gives for api.telegram.org., Auto-discover Telegram API IPs via DNS-over-HTTPS.      Resolves api.telegram.or, _resolve_system_dns(), _rewrite_request_for_ip() (+30 more)

### Community 64 - "Community 64"
Cohesion: 0.07
Nodes (35): check_ha_requirements(), _format_state_change(), Gating tests for format_no_match_hint — the shared helper that decides     wheth, Classic no-match: similar content exists → hint fires., Found N matches' is not a missing-match failure — no hint., Escape-drift errors are intentional blocks — hint would mislead., old_string == new_string — hint irrelevant., If match succeeded, we shouldn't be in the error path — defense in depth. (+27 more)

### Community 65 - "Community 65"
Cohesion: 0.04
Nodes (36): check_clarify_requirements(), clarify_tool(), Ask the user a question, optionally with multiple-choice options.      Args:, Clarify tool has no external requirements -- always available., Tests for tools/clarify_tool.py - Interactive clarifying questions., Non-list choices should return error., Non-string choices should be converted to strings., Tests for callback error handling. (+28 more)

### Community 66 - "Community 66"
Cohesion: 0.05
Nodes (31): check_systemd_timing_alignment(), context_as_json(), format_context_for_log(), _parse_systemd_duration_to_us(), _proc_summary(), Shutdown forensics — capture context when the gateway receives SIGTERM/SIGINT., Fast (<10ms) snapshot of who/what is asking us to shut down.      Captures:, Fire-and-forget ``ps``-style snapshot written to ``log_path``.      Runs as a de (+23 more)

### Community 67 - "Community 67"
Cohesion: 0.05
Nodes (28): _hex_response(), Tests for TTS speed configuration across providers., Speed below 0.25 is clamped to 0.25., Speed above 4.0 is clamped to 4.0., Build a mock response shaped like a successful t2a_v2 reply., Default path: base_url contains 't2a_v2'., Default endpoint uses nested voice_setting / audio_setting., t2a_v2 hex-encoded audio is decoded and written verbatim. (+20 more)

### Community 68 - "Community 68"
Cohesion: 0.06
Nodes (26): check_package_for_malware(), _infer_ecosystem(), _parse_npm_package(), _parse_package_from_args(), _parse_pypi_package(), OSV malware check for MCP extension packages.  Before launching an MCP server vi, Parse npm package: @scope/name@version or name@version., Parse PyPI package: name==version or name[extras]==version. (+18 more)

### Community 69 - "Community 69"
Cohesion: 0.04
Nodes (12): Regression tests for _rewrite_compound_background.  Context: bash parses ``A &&, Shell metacharacters inside quotes/parens must not be parsed as operators., Running the rewriter twice should be a no-op on its own output., Commands that trigger the subshell-wait bug MUST be rewritten., Commands that DON'T have the bug MUST pass through unchanged., ``&>``, ``2>&1``, ``>&2`` must not be mistaken for background ``&``., TestEdgeCases, TestIdempotence (+4 more)

### Community 70 - "Community 70"
Cohesion: 0.06
Nodes (22): Tests for the config.yaml → env var bridge logic in gateway/run.py.  Specificall, terminal.cwd should win over top-level cwd., cwd: '.' should trigger MESSAGING_CWD fallback., MESSAGING_CWD in initial env should be picked up as fallback., Explicit top-level cwd should take precedence over MESSAGING_CWD., terminal.cwd placeholder values must not clobber TERMINAL_CWD.      When config., terminal.cwd: '.' should not overwrite a pre-set TERMINAL_CWD., Simulate the gateway config bridge logic from gateway/run.py.      Returns the r (+14 more)

### Community 71 - "Community 71"
Cohesion: 0.07
Nodes (22): build_relaunch_argv(), _extract_inherited_flags(), Unified self-relaunch for Miho CLI.  Preserves critical flags (--tui, --dev, --p, Construct an argv list for replacing the current process with miho.      Args:, Replace the current process with a fresh miho invocation.      On POSIX we use `, Pull out flags that should carry over into a self-relaunched miho., Find the miho entry point.      Priority:       1. ``sys.argv[0]`` if it resolve, relaunch() (+14 more)

### Community 72 - "Community 72"
Cohesion: 0.07
Nodes (14): _get_anthropic_max_output(), Look up the max output token limit for an Anthropic model.      Uses substring m, Return ``value`` floored to a positive int, or ``None`` if it is not a     finit, Resolve the ``max_tokens`` budget for an Anthropic Messages call.      Prefers `, _resolve_anthropic_messages_max_tokens(), _resolve_positive_anthropic_max_tokens(), claude-3-5-sonnet' should match before 'claude-3-5'., Unit tests for the positive-int resolver helper. (+6 more)

### Community 73 - "Community 73"
Cohesion: 0.08
Nodes (20): _coalesce_session_name_args(), Tests for _coalesce_session_name_args — multi-word session name merging., miho -c my project sessions list → stops before 'sessions, miho -c my setup → 'setup' is a subcommand, not part of name, miho -c Pokemon Agent Dev → -c 'Pokemon Agent Dev, miho --continue Pokemon Agent Dev, miho -c MyProject (no merging needed), miho -c 'Pokemon Agent Dev' (shell already merged) (+12 more)

### Community 74 - "Community 74"
Cohesion: 0.08
Nodes (21): _channel_is_allowed(), _channel_is_free_response(), _channel_is_ignored(), Regression guard for #14920: wildcard "*" in Discord channel config lists.  Sett, Replicate the channel-allow-list check from discord.py on_message., Replicate the ignored-channel check from discord.py on_message., Replicate the free-response-channel check from discord.py on_message., Wildcard and channel-list behaviour for DISCORD_ALLOWED_CHANNELS. (+13 more)

### Community 75 - "Community 75"
Cohesion: 0.1
Nodes (5): TestMaxTextLengthForCommandProviders, Tests for per-provider TTS input-character limits.  Replaces the old global ``MA, TestResolveMaxTextLength, Return the input-character cap for *provider*.      Resolution order:       1. `, _resolve_max_text_length()

### Community 76 - "Community 76"
Cohesion: 0.07
Nodes (22): _new_filter_matches(), _old_filter_matches(), Tests for the hidden directory filter in skills listing.  Regression test: the o, The BROKEN filter that used hardcoded forward slashes.      Returns True when th, The FIXED filter using Path.parts.      Returns True when the path SHOULD be fil, Demonstrate the bug: hardcoded '/' never matches Windows backslash paths., Old filter fails to catch .hub in a Windows-style path string., Old filter fails to catch .git in a Windows-style path string. (+14 more)

### Community 77 - "Community 77"
Cohesion: 0.12
Nodes (15): _append_to_sqlite(), _find_session_id(), mirror_to_session(), Session mirroring for cross-platform message delivery.  When a message is sent t, Append a message to the SQLite session database., Append a delivery-mirror message to the target session's transcript.      Finds, Find the active session_id for a platform + chat_id pair.      Scans sessions.js, Tests for gateway/mirror.py — session mirroring. (+7 more)

### Community 78 - "Community 78"
Cohesion: 0.12
Nodes (31): _fixture(), _items(), _nested_fixture(), Regression tests for the TUI gateway's `complete.path` handler.  Reported during, `@appChrome` — with no slash — should surface the nested file., Better matches sort before weaker matches regardless of path depth., Mid-basename camelCase pieces match without substring scanning., `@uCo` → `useCompletion.ts` via subsequence, last-resort tier. (+23 more)

### Community 79 - "Community 79"
Cohesion: 0.09
Nodes (13): _is_long_context_tier_error(), Tests for Anthropic Sonnet long-context tier 429 handling.  When Claude Max user, When the long-context tier error fires, context_length should     drop to 200k a, Verify the long-context 429 doesn't hit the generic rate-limit     or client-err, The error should be intercepted before the generic         is_rate_limited check, Opus should NOT match — falls through to generic rate-limit., A normal 429 should NOT match the long-context check., Verify the detection heuristic matches the Anthropic error. (+5 more)

### Community 80 - "Community 80"
Cohesion: 0.1
Nodes (17): _compute_scroll_offset(), Tests for the scrolling viewport logic in _curses_prompt_choice (issue #5755)., Simulate pressing UP through all items; cursor always in view., Mirror of the scroll adjustment block inside _curses_menu., Return the list indices that would be rendered for the given state., Start position: offset stays 0, first items visible., Cursor inside the current window: offset unchanged., Cursor on Cancel (index 12) with 8-row window: offset = 12 - 8 + 1 = 5. (+9 more)

### Community 81 - "Community 81"
Cohesion: 0.14
Nodes (9): is_free_tier_quota_error(), Return True when a Gemini 429 message indicates free-tier exhaustion., _mock_response(), Tests for Gemini free-tier detection and blocking., Verify the tier probe classifies keys correctly., Base URLs ending in /openai get normalized to the native endpoint., _run_probe(), TestIsFreeTierQuotaError (+1 more)

### Community 82 - "Community 82"
Cohesion: 0.09
Nodes (17): apply_ipv4_preference(), Monkey-patch ``socket.getaddrinfo`` to prefer IPv4 connections.      On servers, Tests for network.force_ipv4 — the socket.getaddrinfo monkey-patch., Verify network section exists in DEFAULT_CONFIG., Reload miho_constants to get a fresh apply_ipv4_preference., Tests for apply_ipv4_preference()., Save the original getaddrinfo before each test., Restore the original getaddrinfo after each test. (+9 more)

### Community 83 - "Community 83"
Cohesion: 0.14
Nodes (16): _make_author(), _make_message(), Tests for Discord bot message filtering (DISCORD_ALLOW_BOTS)., Create a mock Discord author., Default behavior (no env var) should be 'none'., Allow_bots value should be case-insensitive., Create a mock Discord message., Test the DISCORD_ALLOW_BOTS filtering logic. (+8 more)

### Community 84 - "Community 84"
Cohesion: 0.13
Nodes (16): _make_author(), _make_message(), Tests for Discord system message filtering (thread renames, pins, etc.)., Create a mock Discord author., Create a mock Discord message with a specific type., Test that Discord system messages (thread renames, pins, etc.) are ignored., Simulate the on_message filter logic and return whether message was accepted., Regular user messages (type=default) should be accepted. (+8 more)

### Community 85 - "Community 85"
Cohesion: 0.09
Nodes (12): Tests for percentage clamping at 100% across display paths.  PR #3480 capped con, tools/memory_tool.py — _success_response and _render_block pct, Percentage should be capped at 100 even if current > limit., cli.py — /stats command percentage, Tokens exceeding context_length should show max 100%., gateway/run.py — _format_usage_stats percentage, Verify the actual source files have min(100, ...) applied., _read_file() (+4 more)

### Community 86 - "Community 86"
Cohesion: 0.12
Nodes (11): _chat_content_to_responses_parts(), Convert chat-style multimodal content to Responses API input parts.      Input:, Unit tests for _chat_content_to_responses_parts role parameter (#15687)., Default (user) role emits input_text., String parts in assistant content also get output_text., Parts already marked input_text or output_text get normalized to role's type., TestChatContentToResponsesParts, Regression tests for run_conversation's prologue handling of multimodal content. (+3 more)

### Community 87 - "Community 87"
Cohesion: 0.15
Nodes (13): _bare_agent(), Regression guard for #15218 — external memory sync must skip interrupted turns., No user-origin message means this wasn't a user turn (e.g.         a system-init, Sessions without an external memory manager must not crash         or try to cal, External memory providers are best-effort; a misconfigured         or offline ba, Same best-effort contract applies to the prefetch step — a         failure in qu, Build an ``AIAgent`` with only the attributes     ``_sync_external_memory_for_tu, The whole point of #15218: even with a final_response and a         user message (+5 more)

### Community 88 - "Community 88"
Cohesion: 0.16
Nodes (20): format_diagnostic(), Format LSP diagnostics for inclusion in tool output.  The model sees a compact,, One-line representation of a single diagnostic., Build a ``<diagnostics file=...>`` block for one file.      Returns an empty str, Hard-cap a formatted summary string., report_for_file(), truncate(), _diag() (+12 more)

### Community 89 - "Community 89"
Cohesion: 0.16
Nodes (9): Tests for CLI/TUI CWD resolution in load_cli_config().  Rules: - Local backend C, Mirror the CWD resolution logic from cli.py load_cli_config()., Local backend always uses os.getcwd()., Non-local backends use config or per-backend defaults., Gateway lazy import of cli.py must not clobber TERMINAL_CWD., _resolve_cwd(), TestGatewayLazyImport, TestLocalBackendCli (+1 more)

### Community 90 - "Community 90"
Cohesion: 0.16
Nodes (9): _classify(), Tests for #7100 — transient failures (429/timeout) must not drop the user messag, A 400 on a short session is a real client error, not context         overflow —, Replicate the gateway classifier from GatewayRunner._run_agent.      Returns ``(, #1630 behavior must be preserved for real context-overflow cases., Transient provider failures must NOT skip the transcript — doing so     drops th, TestContextOverflowStillSkipsTranscript, TestSuccessfulResultUnaffected (+1 more)

### Community 91 - "Community 91"
Cohesion: 0.18
Nodes (10): get_camofox_identity(), get_camofox_state_dir(), Miho-managed Camofox state helpers.  Provides profile-scoped identity and state, Return the profile-scoped root directory for Camofox persistence., Return the stable Miho-managed Camofox identity for this profile.      The user, _load_module(), Tests for Miho-managed Camofox state helpers., TestCamofoxConfigDefaults (+2 more)

### Community 92 - "Community 92"
Cohesion: 0.15
Nodes (9): getInitialLocale(), isLocale(), useI18n(), DeleteConfirmDialog(), SidebarFooter(), gatewayLine(), SidebarStatusStrip(), SystemActionsProvider() (+1 more)

### Community 93 - "Community 93"
Cohesion: 0.27
Nodes (11): asText(), getJobKey(), getJobName(), getJobProfile(), getJobPrompt(), getJobScheduleDisplay(), getJobState(), getJobTitle() (+3 more)

### Community 94 - "Community 94"
Cohesion: 0.21
Nodes (6): _new_should_allow(), _old_should_allow(), Regression tests for skills guard policy precedence.  Official/builtin skills sh, Simulate the BROKEN old logic., Simulate the FIXED logic., TestPolicyPrecedenceForDangerousVerdicts

### Community 95 - "Community 95"
Cohesion: 0.17
Nodes (9): _mirror_agent_predicate(), Regression guard for #14782: json.JSONDecodeError must not be classified as a lo, Exact shape of the API retry is_local_validation_error check.      Kept in lock-, Provider returning malformed JSON surfaces as JSONDecodeError —         must be, Existing carve-out — surrogate sanitization handles this separately., Programming bugs that raise bare ValueError must still be         classified as, Belt-and-suspenders: the production source must actually include     the json.JS, TestAgentLoopSourceStillHasCarveOut (+1 more)

### Community 96 - "Community 96"
Cohesion: 0.14
Nodes (8): Tests for delegate heartbeat stale threshold configuration., IDLE stale cycles should be 15 (15 * 30s = 450s)., IN_TOOL stale cycles should be 40 (40 * 30s = 1200s)., Effective idle stale timeout: 15 * 30 = 450s (> typical LLM response time)., Effective in-tool stale timeout: 40 * 30 = 1200s (= 20 minutes)., Heartbeat interval should remain 30s., Verify the heartbeat stale threshold constants are correct., TestHeartbeatStaleThresholds

### Community 97 - "Community 97"
Cohesion: 0.32
Nodes (11): _agent(), _messages(), Bounded recovery tests for the semantic delivery reviewer., An unapplied receipt cannot downgrade a stronger manual runtime., test_manual_runtime_quality_rejects_stale_receipt_recovery_downgrade(), test_semantic_review_all_reviewers_unavailable_stays_fail_closed(), test_semantic_review_recovers_invalid_payload_with_verified_block(), test_semantic_review_recovers_timeout_with_verified_allow() (+3 more)

### Community 98 - "Community 98"
Cohesion: 0.23
Nodes (12): _extract_last_reasoning(), Tests for per-turn reasoning extraction in AIAgent.run_conversation.  Verifies t, Replica of the extraction loop in run_agent.py (~line 13867).      Tests pin the, When the model reasons on the tool-call step and the final-answer     step has n, The regression the whole change exists for.  Prior turn had     reasoning; curre, If BOTH the tool-call step and the final step have reasoning     (uncommon but p, test_empty_string_reasoning_treated_as_missing(), test_no_stale_reasoning_across_turns() (+4 more)

### Community 99 - "Community 99"
Cohesion: 0.21
Nodes (9): _normalize_insights_args(), Tests for Unicode dash normalization in /insights command flag parsing.  Telegra, Apply the same normalization as the /insights handler., --days and --source must survive iOS Unicode dash conversion., Normal --days/--source must pass through unchanged., Shorthand /insights 7 (no flag) must not be mangled., Input with no flags passes through as-is., test_unicode_dash_normalized() (+1 more)

### Community 100 - "Community 100"
Cohesion: 0.24
Nodes (7): _make_agent_stub(), Verify compression trigger excludes reasoning/completion tokens (#12026).  Think, Create a minimal stub that exercises the compression check path., With the old bug, 40k prompt + 80k reasoning = 120k > 100k threshold.         Af, When prompt tokens genuinely exceed the threshold, compress., When provider returns 0 prompt tokens, real_tokens is 0 (fallback path)., TestCompressionTriggerExcludesReasoning

### Community 101 - "Community 101"
Cohesion: 0.22
Nodes (2): _FakeAsyncClient, _FakeResponse

### Community 102 - "Community 102"
Cohesion: 0.27
Nodes (8): build_resume_pending_message(), _interruption_reason_phrase(), Prompt builders for interrupted gateway turn recovery., Return the injected user message for a restart-resumed turn.      Restart recove, Regression tests for gateway restart recovery prompts., test_empty_auto_resume_continues_interrupted_request(), test_real_user_message_is_preserved_after_resume_note(), test_shutdown_reason_is_explicit()

### Community 103 - "Community 103"
Cohesion: 0.28
Nodes (8): _core_policy(), is_read_only_validation_command(), Compatibility exports for the core tool execution policy., Delegate to the optional core policy, failing closed when absent., Preserve the configured loop and apply only explicit policy metadata., Use the optional core policy, otherwise fail closed for read-only mode., route_execution_settings(), tool_policy_block_message()

### Community 104 - "Community 104"
Cohesion: 0.33
Nodes (0): 

### Community 105 - "Community 105"
Cohesion: 0.33
Nodes (3): Schema-shape tests for the built-in memory tool.  The memory tool previously use, OpenAI's Codex backend rejects these at the top level of parameters., test_memory_schema_has_no_forbidden_top_level_combinators()

### Community 106 - "Community 106"
Cohesion: 0.4
Nodes (3): plan_mixed_capability_slices(), Compatibility shell for model-owned subtask planning., The active model sees the full request and owns decomposition.

### Community 107 - "Community 107"
Cohesion: 0.4
Nodes (4): all_assignees_spawnable(), Pretend every assignee maps to a real Miho profile.      Most dispatcher tests u, Default ``_detect_concurrent_miho_instances`` to ``[]`` for every test.      The, _suppress_concurrent_miho_gate()

### Community 108 - "Community 108"
Cohesion: 0.5
Nodes (3): Regression tests for removed dead config keys.  This file guards against acciden, delegation.default_toolsets was dead config — never read by     _load_config() o, test_delegation_default_toolsets_removed_from_cli_config()

### Community 109 - "Community 109"
Cohesion: 0.5
Nodes (2): Import-safety tests for the Discord gateway adapter., TestDiscordImportSafety

### Community 110 - "Community 110"
Cohesion: 0.5
Nodes (3): ollama_context_limit_error(), Runtime-context diagnostics for conversation request preparation., Return a user-facing error when Ollama is loaded with too little context.

### Community 111 - "Community 111"
Cohesion: 0.5
Nodes (3): clear_execution_receipt_after(), Conversation-scope cleanup for validated execution receipt metadata., Clear turn metadata after every return or exception path.

### Community 112 - "Community 112"
Cohesion: 0.67
Nodes (1): MihoAgent

### Community 113 - "Community 113"
Cohesion: 0.67
Nodes (0): 

### Community 114 - "Community 114"
Cohesion: 1.0
Nodes (2): importThemeWithCleanEnv(), importThemeWithEnv()

### Community 115 - "Community 115"
Cohesion: 0.67
Nodes (0): 

### Community 116 - "Community 116"
Cohesion: 0.67
Nodes (0): 

### Community 117 - "Community 117"
Cohesion: 1.0
Nodes (1): # IMPORTANT: miho_bootstrap must be the very first import — UTF-8 stdio

### Community 118 - "Community 118"
Cohesion: 1.0
Nodes (1): StackUtils

### Community 119 - "Community 119"
Cohesion: 1.0
Nodes (0): 

### Community 120 - "Community 120"
Cohesion: 1.0
Nodes (0): 

### Community 121 - "Community 121"
Cohesion: 1.0
Nodes (0): 

### Community 122 - "Community 122"
Cohesion: 1.0
Nodes (0): 

### Community 123 - "Community 123"
Cohesion: 1.0
Nodes (0): 

### Community 124 - "Community 124"
Cohesion: 1.0
Nodes (0): 

### Community 125 - "Community 125"
Cohesion: 1.0
Nodes (0): 

### Community 126 - "Community 126"
Cohesion: 1.0
Nodes (0): 

### Community 127 - "Community 127"
Cohesion: 1.0
Nodes (1): Static Agent Reach routing policy and tool schemas.

### Community 128 - "Community 128"
Cohesion: 1.0
Nodes (1): Tool schema for the three session-search calling shapes.

### Community 129 - "Community 129"
Cohesion: 1.0
Nodes (1): Miho AI default system persona.

### Community 130 - "Community 130"
Cohesion: 1.0
Nodes (1): Default SOUL.md template seeded into MIHO_HOME on first run.

### Community 131 - "Community 131"
Cohesion: 1.0
Nodes (0): 

### Community 132 - "Community 132"
Cohesion: 1.0
Nodes (0): 

### Community 133 - "Community 133"
Cohesion: 1.0
Nodes (0): 

### Community 134 - "Community 134"
Cohesion: 1.0
Nodes (0): 

### Community 135 - "Community 135"
Cohesion: 1.0
Nodes (0): 

### Community 136 - "Community 136"
Cohesion: 1.0
Nodes (0): 

### Community 137 - "Community 137"
Cohesion: 1.0
Nodes (0): 

### Community 138 - "Community 138"
Cohesion: 1.0
Nodes (0): 

### Community 139 - "Community 139"
Cohesion: 1.0
Nodes (0): 

### Community 140 - "Community 140"
Cohesion: 1.0
Nodes (0): 

### Community 141 - "Community 141"
Cohesion: 1.0
Nodes (0): 

### Community 142 - "Community 142"
Cohesion: 1.0
Nodes (0): 

### Community 143 - "Community 143"
Cohesion: 1.0
Nodes (0): 

### Community 144 - "Community 144"
Cohesion: 1.0
Nodes (0): 

### Community 145 - "Community 145"
Cohesion: 1.0
Nodes (0): 

### Community 146 - "Community 146"
Cohesion: 1.0
Nodes (0): 

### Community 147 - "Community 147"
Cohesion: 1.0
Nodes (0): 

### Community 148 - "Community 148"
Cohesion: 1.0
Nodes (0): 

### Community 149 - "Community 149"
Cohesion: 1.0
Nodes (1): Stable dependency surface for the conversation loop.

### Community 150 - "Community 150"
Cohesion: 1.0
Nodes (1): Prompt text for background memory and skill review.

### Community 151 - "Community 151"
Cohesion: 1.0
Nodes (1): Shared attachment extension policy for gateway delivery paths.

### Community 152 - "Community 152"
Cohesion: 1.0
Nodes (0): 

### Community 153 - "Community 153"
Cohesion: 1.0
Nodes (1): Load configuration from YAML file.

### Community 154 - "Community 154"
Cohesion: 1.0
Nodes (1): Normalize summary-model output to a safe string.

### Community 155 - "Community 155"
Cohesion: 1.0
Nodes (1): Normalize summary text to include the expected prefix exactly once.

### Community 156 - "Community 156"
Cohesion: 1.0
Nodes (1): Extract expected columns per table from SCHEMA_SQL.          Uses an in-memory S

### Community 157 - "Community 157"
Cohesion: 1.0
Nodes (1): Validate and sanitize a session title.          - Strips leading/trailing whites

### Community 158 - "Community 158"
Cohesion: 1.0
Nodes (1): Serialize structured (list/dict) message content for sqlite.          sqlite3 ca

### Community 159 - "Community 159"
Cohesion: 1.0
Nodes (1): Reverse :meth:`_encode_content`; returns scalars unchanged.

### Community 160 - "Community 160"
Cohesion: 1.0
Nodes (1): Sanitize user input for safe use in FTS5 MATCH queries.          FTS5 has its ow

### Community 161 - "Community 161"
Cohesion: 1.0
Nodes (1): Check if text contains CJK (Chinese, Japanese, Korean) characters.

### Community 162 - "Community 162"
Cohesion: 1.0
Nodes (1): Count CJK characters in text.

### Community 163 - "Community 163"
Cohesion: 1.0
Nodes (1): Remove on-disk transcript files for a session.          Cleans up ``{session_id}

### Community 164 - "Community 164"
Cohesion: 1.0
Nodes (0): 

### Community 165 - "Community 165"
Cohesion: 1.0
Nodes (0): 

### Community 166 - "Community 166"
Cohesion: 1.0
Nodes (0): 

### Community 167 - "Community 167"
Cohesion: 1.0
Nodes (0): 

### Community 168 - "Community 168"
Cohesion: 1.0
Nodes (0): 

### Community 169 - "Community 169"
Cohesion: 1.0
Nodes (0): 

### Community 170 - "Community 170"
Cohesion: 1.0
Nodes (0): 

### Community 171 - "Community 171"
Cohesion: 1.0
Nodes (0): 

### Community 172 - "Community 172"
Cohesion: 1.0
Nodes (0): 

### Community 173 - "Community 173"
Cohesion: 1.0
Nodes (0): 

### Community 174 - "Community 174"
Cohesion: 1.0
Nodes (0): 

### Community 175 - "Community 175"
Cohesion: 1.0
Nodes (0): 

### Community 176 - "Community 176"
Cohesion: 1.0
Nodes (0): 

### Community 177 - "Community 177"
Cohesion: 1.0
Nodes (0): 

### Community 178 - "Community 178"
Cohesion: 1.0
Nodes (0): 

### Community 179 - "Community 179"
Cohesion: 1.0
Nodes (0): 

### Community 180 - "Community 180"
Cohesion: 1.0
Nodes (0): 

### Community 181 - "Community 181"
Cohesion: 1.0
Nodes (0): 

### Community 182 - "Community 182"
Cohesion: 1.0
Nodes (1): Current audio input RMS level (0-32767). Updated each audio chunk.

### Community 183 - "Community 183"
Cohesion: 1.0
Nodes (1): Whether audio recording is currently active.

### Community 184 - "Community 184"
Cohesion: 1.0
Nodes (1): Write numpy int16 audio data to a WAV file.          Returns the file path.

### Community 185 - "Community 185"
Cohesion: 1.0
Nodes (1): Acquire an exclusive file lock for read-modify-write safety.          Uses a sep

### Community 186 - "Community 186"
Cohesion: 1.0
Nodes (1): Read a memory file and split into entries.          No file locking needed: _wri

### Community 187 - "Community 187"
Cohesion: 1.0
Nodes (1): Write entries to a memory file using atomic temp-file + rename.          Previou

### Community 188 - "Community 188"
Cohesion: 1.0
Nodes (1): Validate and normalize a todo item.          Ensures required fields exist and s

### Community 189 - "Community 189"
Cohesion: 1.0
Nodes (1): Collapse duplicate ids, keeping the last occurrence in its position.

### Community 190 - "Community 190"
Cohesion: 1.0
Nodes (1): Acquire the per-path lock for a read→modify→write section.          Same process

### Community 191 - "Community 191"
Cohesion: 1.0
Nodes (1): Parse git --shortstat output into entry dict.

### Community 192 - "Community 192"
Cohesion: 1.0
Nodes (1): Release backend resources (container, instance, connection).

### Community 193 - "Community 193"
Cohesion: 1.0
Nodes (1): Quote a ``cd`` target while preserving ``~`` expansion.

### Community 194 - "Community 194"
Cohesion: 1.0
Nodes (1): Append stdin_data as a shell heredoc to the command string.

### Community 195 - "Community 195"
Cohesion: 1.0
Nodes (1): Return True if the backend can be used on this host right now.          Used by

### Community 196 - "Community 196"
Cohesion: 1.0
Nodes (1): Send a key combo, e.g. 'cmd+s', 'ctrl+alt+t', 'return'.

### Community 197 - "Community 197"
Cohesion: 1.0
Nodes (1): Return running apps with bundle IDs, PIDs, window counts.

### Community 198 - "Community 198"
Cohesion: 1.0
Nodes (1): Route input to `app` (by name or bundle ID). Default: focus without raise.

### Community 199 - "Community 199"
Cohesion: 1.0
Nodes (1): Set a native value on an element (e.g. AXPopUpButton selection).          `eleme

### Community 200 - "Community 200"
Cohesion: 1.0
Nodes (1): True if a PTY can be spawned on this platform.

### Community 201 - "Community 201"
Cohesion: 1.0
Nodes (1): Spawn ``argv`` behind a new PTY and return a bridge.          Raises :class:`Pty

### Community 202 - "Community 202"
Cohesion: 1.0
Nodes (1): Return replacement text for a completion.          When the user has already typ

### Community 203 - "Community 203"
Cohesion: 1.0
Nodes (1): Extract the current word if it looks like a file path.          Returns the path

### Community 204 - "Community 204"
Cohesion: 1.0
Nodes (1): Yield Completion objects for file paths matching *word*.

### Community 205 - "Community 205"
Cohesion: 1.0
Nodes (1): Extract a bare ``@`` token for context reference completions.

### Community 206 - "Community 206"
Cohesion: 1.0
Nodes (1): Score a file path against a fuzzy query. Higher = better match.

### Community 207 - "Community 207"
Cohesion: 1.0
Nodes (1): Yield completions for /skin from available skins.

### Community 208 - "Community 208"
Cohesion: 1.0
Nodes (1): Yield completions for /personality from configured personalities.

### Community 209 - "Community 209"
Cohesion: 1.0
Nodes (1): Adapter key used on the CLI (e.g. ``"nous"``).

### Community 210 - "Community 210"
Cohesion: 1.0
Nodes (1): Human-readable provider name for logs and ``proxy status``.

### Community 211 - "Community 211"
Cohesion: 1.0
Nodes (1): Set of relative request paths the upstream accepts.          Paths are relative

### Community 212 - "Community 212"
Cohesion: 1.0
Nodes (1): Return True if the user has usable credentials for this upstream.          Shoul

### Community 213 - "Community 213"
Cohesion: 1.0
Nodes (1): Return a fresh credential, refreshing/minting if necessary.          Implementat

### Community 214 - "Community 214"
Cohesion: 1.0
Nodes (0): 

### Community 215 - "Community 215"
Cohesion: 1.0
Nodes (1): Discord emits default_member_permissions as str server-side but discord.py

### Community 216 - "Community 216"
Cohesion: 1.0
Nodes (1): Convert raw PCM to 16kHz mono WAV via ffmpeg.

### Community 217 - "Community 217"
Cohesion: 1.0
Nodes (1): Get the Honcho client, initializing if needed.

### Community 218 - "Community 218"
Cohesion: 1.0
Nodes (1): Normalize Honcho card payloads into a plain list of strings.

### Community 219 - "Community 219"
Cohesion: 1.0
Nodes (1): pactl load-module prints the new module ID to stdout.

### Community 220 - "Community 220"
Cohesion: 1.0
Nodes (0): 

### Community 221 - "Community 221"
Cohesion: 1.0
Nodes (1): Durable receipts intentionally never retain individual paths.

### Community 222 - "Community 222"
Cohesion: 1.0
Nodes (1): Get a field from channel config, checking both flat and accounts.default layout.

### Community 223 - "Community 223"
Cohesion: 1.0
Nodes (0): 

### Community 224 - "Community 224"
Cohesion: 1.0
Nodes (0): 

### Community 225 - "Community 225"
Cohesion: 1.0
Nodes (0): 

### Community 226 - "Community 226"
Cohesion: 1.0
Nodes (0): 

### Community 227 - "Community 227"
Cohesion: 1.0
Nodes (0): 

### Community 228 - "Community 228"
Cohesion: 1.0
Nodes (0): 

### Community 229 - "Community 229"
Cohesion: 1.0
Nodes (0): 

### Community 230 - "Community 230"
Cohesion: 1.0
Nodes (0): 

### Community 231 - "Community 231"
Cohesion: 1.0
Nodes (0): 

### Community 232 - "Community 232"
Cohesion: 1.0
Nodes (0): 

### Community 233 - "Community 233"
Cohesion: 1.0
Nodes (0): 

### Community 234 - "Community 234"
Cohesion: 1.0
Nodes (0): 

### Community 235 - "Community 235"
Cohesion: 1.0
Nodes (0): 

### Community 236 - "Community 236"
Cohesion: 1.0
Nodes (0): 

### Community 237 - "Community 237"
Cohesion: 1.0
Nodes (0): 

### Community 238 - "Community 238"
Cohesion: 1.0
Nodes (0): 

### Community 239 - "Community 239"
Cohesion: 1.0
Nodes (0): 

### Community 240 - "Community 240"
Cohesion: 1.0
Nodes (0): 

### Community 241 - "Community 241"
Cohesion: 1.0
Nodes (0): 

### Community 242 - "Community 242"
Cohesion: 1.0
Nodes (0): 

### Community 243 - "Community 243"
Cohesion: 1.0
Nodes (0): 

### Community 244 - "Community 244"
Cohesion: 1.0
Nodes (0): 

### Community 245 - "Community 245"
Cohesion: 1.0
Nodes (0): 

### Community 246 - "Community 246"
Cohesion: 1.0
Nodes (0): 

### Community 247 - "Community 247"
Cohesion: 1.0
Nodes (0): 

### Community 248 - "Community 248"
Cohesion: 1.0
Nodes (0): 

### Community 249 - "Community 249"
Cohesion: 1.0
Nodes (0): 

### Community 250 - "Community 250"
Cohesion: 1.0
Nodes (0): 

### Community 251 - "Community 251"
Cohesion: 1.0
Nodes (0): 

### Community 252 - "Community 252"
Cohesion: 1.0
Nodes (0): 

### Community 253 - "Community 253"
Cohesion: 1.0
Nodes (0): 

### Community 254 - "Community 254"
Cohesion: 1.0
Nodes (0): 

### Community 255 - "Community 255"
Cohesion: 1.0
Nodes (0): 

### Community 256 - "Community 256"
Cohesion: 1.0
Nodes (0): 

### Community 257 - "Community 257"
Cohesion: 1.0
Nodes (0): 

### Community 258 - "Community 258"
Cohesion: 1.0
Nodes (0): 

### Community 259 - "Community 259"
Cohesion: 1.0
Nodes (0): 

### Community 260 - "Community 260"
Cohesion: 1.0
Nodes (0): 

### Community 261 - "Community 261"
Cohesion: 1.0
Nodes (0): 

### Community 262 - "Community 262"
Cohesion: 1.0
Nodes (1): _run_async should still work when called from inside an         already-running

### Community 263 - "Community 263"
Cohesion: 1.0
Nodes (1): A timeout in the running-loop branch must not block the caller.          If shut

### Community 264 - "Community 264"
Cohesion: 1.0
Nodes (1): On timeout, the worker's event loop must receive a cancel request         so the

### Community 265 - "Community 265"
Cohesion: 1.0
Nodes (1): A subprocess spawned from this process should inherit         PYTHONUTF8=1 and b

### Community 266 - "Community 266"
Cohesion: 1.0
Nodes (1): On actual Linux/macOS, importing the module must not set         PYTHONUTF8 or r

### Community 267 - "Community 267"
Cohesion: 1.0
Nodes (1): The file must contain 'import miho_bootstrap' and that         line must appear

### Community 268 - "Community 268"
Cohesion: 1.0
Nodes (0): 

### Community 269 - "Community 269"
Cohesion: 1.0
Nodes (0): 

### Community 270 - "Community 270"
Cohesion: 1.0
Nodes (1): Empty / whitespace-only input falls back to caller default (None).

### Community 271 - "Community 271"
Cohesion: 1.0
Nodes (1): Every level listed in VALID_REASONING_EFFORTS is accepted as-is.

### Community 272 - "Community 272"
Cohesion: 1.0
Nodes (1): Mixed case and surrounding whitespace are normalized before lookup.

### Community 273 - "Community 273"
Cohesion: 1.0
Nodes (1): Unrecognized strings fall back to the caller default (None).

### Community 274 - "Community 274"
Cohesion: 1.0
Nodes (1): Lazy-import execute_code to avoid pulling in firecrawl at collection time.

### Community 275 - "Community 275"
Cohesion: 1.0
Nodes (1): Ensure MiniMax catalog is used even if a live /v1/models endpoint exists.

### Community 276 - "Community 276"
Cohesion: 1.0
Nodes (0): 

### Community 277 - "Community 277"
Cohesion: 1.0
Nodes (1): JSON string data is parsed into a dict before dispatch.

### Community 278 - "Community 278"
Cohesion: 1.0
Nodes (1): Dict data (JSON tool calling mode) still works unchanged.

### Community 279 - "Community 279"
Cohesion: 1.0
Nodes (1): Empty/whitespace string data is treated as None.

### Community 280 - "Community 280"
Cohesion: 1.0
Nodes (1): Read then write with no external modification — no warning.

### Community 281 - "Community 281"
Cohesion: 1.0
Nodes (1): Read, then external modify, then write — should warn.

### Community 282 - "Community 282"
Cohesion: 1.0
Nodes (1): Writing a file that was never read — no warning.

### Community 283 - "Community 283"
Cohesion: 1.0
Nodes (1): Creating a new file — no warning.

### Community 284 - "Community 284"
Cohesion: 1.0
Nodes (1): Task A reads, file changes, Task B writes — no warning for B.

### Community 285 - "Community 285"
Cohesion: 1.0
Nodes (1): Relative-path stale tracking must follow the live terminal cwd.

### Community 286 - "Community 286"
Cohesion: 1.0
Nodes (1): Patch should warn if the target file changed since last read.

### Community 287 - "Community 287"
Cohesion: 1.0
Nodes (1): Patch with no external changes — no warning.

### Community 288 - "Community 288"
Cohesion: 1.0
Nodes (1): A read that returns >max chars is rejected.

### Community 289 - "Community 289"
Cohesion: 1.0
Nodes (1): Normal-sized reads pass through fine.

### Community 290 - "Community 290"
Cohesion: 1.0
Nodes (1): Content just under the limit should pass through fine.

### Community 291 - "Community 291"
Cohesion: 1.0
Nodes (1): Second read of same file+range returns non-content dedup status.

### Community 292 - "Community 292"
Cohesion: 1.0
Nodes (1): write_file must not persist internal read_file status text.

### Community 293 - "Community 293"
Cohesion: 1.0
Nodes (1): write_file rejects small wrappers around the status text too.          Real-worl

### Community 294 - "Community 294"
Cohesion: 1.0
Nodes (1): Legitimate large content that happens to quote the status is allowed.          M

### Community 295 - "Community 295"
Cohesion: 1.0
Nodes (1): After the file is modified, dedup returns full content.

### Community 296 - "Community 296"
Cohesion: 1.0
Nodes (1): Same file but different offset/limit should not dedup.

### Community 297 - "Community 297"
Cohesion: 1.0
Nodes (1): Different task_ids have separate dedup caches.

### Community 298 - "Community 298"
Cohesion: 1.0
Nodes (1): read → stub → BLOCKED.  Second stub escalates to hard error.

### Community 299 - "Community 299"
Cohesion: 1.0
Nodes (1): Once blocked, continued hammering keeps returning BLOCKED.

### Community 300 - "Community 300"
Cohesion: 1.0
Nodes (1): Real file change should break out of the block — new content         is legitima

### Community 301 - "Community 301"
Cohesion: 1.0
Nodes (1): An intervening non-read tool call resets stub-hit counters,         just like it

### Community 302 - "Community 302"
Cohesion: 1.0
Nodes (1): Stub-hit counter is keyed by (path, offset, limit), so hammering         one ran

### Community 303 - "Community 303"
Cohesion: 1.0
Nodes (1): Post-compression reset must clear stub-hit counters too,         otherwise the a

### Community 304 - "Community 304"
Cohesion: 1.0
Nodes (1): After reset_file_dedup, the same read returns full content.

### Community 305 - "Community 305"
Cohesion: 1.0
Nodes (1): reset_file_dedup(None) clears all tasks.

### Community 306 - "Community 306"
Cohesion: 1.0
Nodes (1): reset_file_dedup does NOT affect the consecutive-read counter.

### Community 307 - "Community 307"
Cohesion: 1.0
Nodes (1): A config value of 50 should reject reads over 50 chars.

### Community 308 - "Community 308"
Cohesion: 1.0
Nodes (1): A config value of 500K should allow reads up to 500K chars.

### Community 309 - "Community 309"
Cohesion: 1.0
Nodes (1): read→write→read within the same mtime second returns fresh content.          Thi

### Community 310 - "Community 310"
Cohesion: 1.0
Nodes (1): A write invalidates dedup entries for ALL offset/limit combos.

### Community 311 - "Community 311"
Cohesion: 1.0
Nodes (1): Writing file A should not invalidate dedup for file B.

### Community 312 - "Community 312"
Cohesion: 1.0
Nodes (1): Writing in task A should not invalidate dedup for task B.

### Community 313 - "Community 313"
Cohesion: 1.0
Nodes (1): Internal helpers stay importable so tests can monkeypatch them.

### Community 314 - "Community 314"
Cohesion: 1.0
Nodes (1): For every combination of (env shape × passthrough rule), the         new helper

### Community 315 - "Community 315"
Cohesion: 1.0
Nodes (1): Negative control: prove that on Windows, writing the stub         *without* ``en

### Community 316 - "Community 316"
Cohesion: 1.0
Nodes (1): Negative control: spawn a Python child *without* our env         overrides and p

### Community 317 - "Community 317"
Cohesion: 1.0
Nodes (1): Helper to call resolve_modal_backend_state with feature flag control.

### Community 318 - "Community 318"
Cohesion: 1.0
Nodes (1): Shared patches for pre-navigation tests that pass the SSRF check.

### Community 319 - "Community 319"
Cohesion: 1.0
Nodes (1): Hybrid routing must not let cloud metadata endpoints through.

### Community 320 - "Community 320"
Cohesion: 1.0
Nodes (1): Shared patches for redirect tests.

### Community 321 - "Community 321"
Cohesion: 1.0
Nodes (1): All three session env vars share the same truthy semantics.

### Community 322 - "Community 322"
Cohesion: 1.0
Nodes (0): 

### Community 323 - "Community 323"
Cohesion: 1.0
Nodes (1): On Windows, the old check incorrectly blocks valid subpaths.

### Community 324 - "Community 324"
Cohesion: 1.0
Nodes (1): tirith block goes through approval flow (user gets prompted).

### Community 325 - "Community 325"
Cohesion: 1.0
Nodes (1): tirith block + dangerous pattern → combined approval prompt.

### Community 326 - "Community 326"
Cohesion: 1.0
Nodes (1): Non-ImportError exceptions from tirith wrapper should propagate.

### Community 327 - "Community 327"
Cohesion: 1.0
Nodes (1): Windows: don't start a background install thread, don't write a         failure

### Community 328 - "Community 328"
Cohesion: 1.0
Nodes (1): Windows: skip the resolver and spawn entirely — return allow with         an emp

### Community 329 - "Community 329"
Cohesion: 1.0
Nodes (1): The per-command resolver must also short-circuit on Windows so         long-runn

### Community 330 - "Community 330"
Cohesion: 1.0
Nodes (1): If a user explicitly configured a tirith_path (e.g. they built it         themse

### Community 331 - "Community 331"
Cohesion: 1.0
Nodes (1): After a failed download, subsequent resolves must not retry.

### Community 332 - "Community 332"
Cohesion: 1.0
Nodes (1): After cached miss, check_command_security hits OSError → fail_open.

### Community 333 - "Community 333"
Cohesion: 1.0
Nodes (1): An explicit tirith_path that doesn't exist must NOT trigger download.

### Community 334 - "Community 334"
Cohesion: 1.0
Nodes (1): An explicit ~/path that doesn't exist must NOT trigger download.

### Community 335 - "Community 335"
Cohesion: 1.0
Nodes (1): The default bare 'tirith' SHOULD trigger auto-download.

### Community 336 - "Community 336"
Cohesion: 1.0
Nodes (1): cosign verify-blob exits 0 → returns True.

### Community 337 - "Community 337"
Cohesion: 1.0
Nodes (1): Identity regexp must pin to the release workflow, not the whole repo.

### Community 338 - "Community 338"
Cohesion: 1.0
Nodes (1): cosign verify-blob exits non-zero → returns False (abort install).

### Community 339 - "Community 339"
Cohesion: 1.0
Nodes (1): cosign not on PATH → returns None (proceed with SHA-256 only).

### Community 340 - "Community 340"
Cohesion: 1.0
Nodes (1): cosign times out → returns None (proceed with SHA-256 only).

### Community 341 - "Community 341"
Cohesion: 1.0
Nodes (1): cosign OSError → returns None (proceed with SHA-256 only).

### Community 342 - "Community 342"
Cohesion: 1.0
Nodes (1): _install_tirith returns None when cosign rejects the signature.

### Community 343 - "Community 343"
Cohesion: 1.0
Nodes (1): _install_tirith proceeds with SHA-256 only when cosign is not on PATH.

### Community 344 - "Community 344"
Cohesion: 1.0
Nodes (1): _install_tirith falls back to SHA-256 when cosign exists but fails to execute.

### Community 345 - "Community 345"
Cohesion: 1.0
Nodes (1): _install_tirith proceeds with SHA-256 when .sig/.pem downloads fail.

### Community 346 - "Community 346"
Cohesion: 1.0
Nodes (1): _install_tirith proceeds only when cosign explicitly passes (True).

### Community 347 - "Community 347"
Cohesion: 1.0
Nodes (1): Synchronous _resolve_tirith_path persists failure to disk.

### Community 348 - "Community 348"
Cohesion: 1.0
Nodes (1): Successful install clears the disk failure marker.

### Community 349 - "Community 349"
Cohesion: 1.0
Nodes (1): ``FileNotFoundError`` and ``PermissionError`` are distinct         failure modes

### Community 350 - "Community 350"
Cohesion: 1.0
Nodes (1): ``_resolve_tirith_path`` returning ``None`` (explicit path set         but resol

### Community 351 - "Community 351"
Cohesion: 1.0
Nodes (1): If .app finding is accompanied by another finding, warn is preserved.

### Community 352 - "Community 352"
Cohesion: 1.0
Nodes (1): lookalike_tld for a non-.app TLD is not suppressed.

### Community 353 - "Community 353"
Cohesion: 1.0
Nodes (1): block exit code is never downgraded, even if finding looks like .app.

### Community 354 - "Community 354"
Cohesion: 1.0
Nodes (1): All findings being .app lookalike_tld → allow.

### Community 355 - "Community 355"
Cohesion: 1.0
Nodes (1): When enabled_tools is None, all sandbox tools should be available.

### Community 356 - "Community 356"
Cohesion: 1.0
Nodes (1): When enabled_tools is [] (empty), all sandbox tools should be available.

### Community 357 - "Community 357"
Cohesion: 1.0
Nodes (1): When enabled_tools has no overlap with SANDBOX_ALLOWED_TOOLS,         should fal

### Community 358 - "Community 358"
Cohesion: 1.0
Nodes (1): When _engine_override='auto', --engine flag is NOT injected.

### Community 359 - "Community 359"
Cohesion: 1.0
Nodes (1): Without _engine_override, the cached engine is used.

### Community 360 - "Community 360"
Cohesion: 1.0
Nodes (1): rg should skip .hub/ by default (no --hidden flag).

### Community 361 - "Community 361"
Cohesion: 1.0
Nodes (1): rg should find content in visible directories.

### Community 362 - "Community 362"
Cohesion: 1.0
Nodes (1): After max retries, the download error should include exc_info.

### Community 363 - "Community 363"
Cohesion: 1.0
Nodes (1): When vision_analyze_tool encounters an error, it should log with exc_info.

### Community 364 - "Community 364"
Cohesion: 1.0
Nodes (1): Temp file cleanup failure should log warning with exc_info.

### Community 365 - "Community 365"
Cohesion: 1.0
Nodes (1): vision_analyze_tool should expand ~ in file paths.

### Community 366 - "Community 366"
Cohesion: 1.0
Nodes (1): A tilde path that doesn't resolve to a real file should fail gracefully.

### Community 367 - "Community 367"
Cohesion: 1.0
Nodes (1): file:///absolute/path should be treated as a local file.

### Community 368 - "Community 368"
Cohesion: 1.0
Nodes (1): file:// pointing to a missing file should fail gracefully.

### Community 369 - "Community 369"
Cohesion: 1.0
Nodes (1): Images exceeding the 20 MB hard limit should fail with a clear error.

### Community 370 - "Community 370"
Cohesion: 1.0
Nodes (1): Images well under the limit should pass the size check.

### Community 371 - "Community 371"
Cohesion: 1.0
Nodes (1): An invalid_request_error from the API should mention image size/format.

### Community 372 - "Community 372"
Cohesion: 1.0
Nodes (1): Summarization should pick up a backend that becomes available later in-process.

### Community 373 - "Community 373"
Cohesion: 1.0
Nodes (1): False-like env strings must not silently enable YOLO bypass.

### Community 374 - "Community 374"
Cohesion: 1.0
Nodes (1): Combined guard must treat false-like YOLO env strings as disabled.

### Community 375 - "Community 375"
Cohesion: 1.0
Nodes (1): node-hide-console-windows has a real MAL- advisory.

### Community 376 - "Community 376"
Cohesion: 1.0
Nodes (1): react should have zero MAL- advisories.

### Community 377 - "Community 377"
Cohesion: 1.0
Nodes (1): Skills in deeply nested dirs (e.g. cli-tool/components/skills/dev/my-skill/)

### Community 378 - "Community 378"
Cohesion: 1.0
Nodes (1): Reset the module-level toggle cache before and after each test.

### Community 379 - "Community 379"
Cohesion: 1.0
Nodes (1): Literal IMDS IPs and the /16 link-local range always block.

### Community 380 - "Community 380"
Cohesion: 1.0
Nodes (1): Floor is narrower than is_safe_url — ordinary private URLs pass.

### Community 381 - "Community 381"
Cohesion: 1.0
Nodes (1): IPv4-mapped IPv6 addresses that should be blocked.

### Community 382 - "Community 382"
Cohesion: 1.0
Nodes (1): IPv4-mapped IPv6 addresses that should be allowed.

### Community 383 - "Community 383"
Cohesion: 1.0
Nodes (1): skip_disabled=True ignores the disabled set (for config UI).

### Community 384 - "Community 384"
Cohesion: 1.0
Nodes (1): Invoking `miho <argv>` must exit 0 (help) rather than         failing with `unre

### Community 385 - "Community 385"
Cohesion: 1.0
Nodes (1): Isolated MIHO_HOME whose agent.log contains a vendor-prefixed token.

### Community 386 - "Community 386"
Cohesion: 1.0
Nodes (1): Isolated MIHO_HOME whose agent.log contains a vendor-prefixed token.

### Community 387 - "Community 387"
Cohesion: 1.0
Nodes (1): Without skip_confirm, input() is called for confirmation.

### Community 388 - "Community 388"
Cohesion: 1.0
Nodes (0): 

### Community 389 - "Community 389"
Cohesion: 1.0
Nodes (1): Copilot ACP shares the same API expectations as HTTP Copilot.

### Community 390 - "Community 390"
Cohesion: 1.0
Nodes (1): SIGHUP should be set to SIG_IGN so SSH disconnect doesn't kill the update.

### Community 391 - "Community 391"
Cohesion: 1.0
Nodes (1): Plant a project-source plugin under CWD's ``.miho/plugins``         and isolate

### Community 392 - "Community 392"
Cohesion: 1.0
Nodes (1): Secret files must end up at 0600 after restore (zipfile drops mode bits).

### Community 393 - "Community 393"
Cohesion: 1.0
Nodes (1): Create a fake MIHO_HOME with critical state files.

### Community 394 - "Community 394"
Cohesion: 1.0
Nodes (1): Regression guard: without --yes, the TTY prompt path still fires.

### Community 395 - "Community 395"
Cohesion: 1.0
Nodes (1): Reserved names collide with the Miho install itself or with         common syste

### Community 396 - "Community 396"
Cohesion: 1.0
Nodes (1): The check finds entry points in .venv/ as well as venv/.

### Community 397 - "Community 397"
Cohesion: 1.0
Nodes (1): If ~/.local/bin/miho is a regular file (not symlink), accept it.

### Community 398 - "Community 398"
Cohesion: 1.0
Nodes (1): On Termux, the command link dir is $PREFIX/bin.

### Community 399 - "Community 399"
Cohesion: 1.0
Nodes (1): Drop fields that always change (timestamps) for diff comparison.

### Community 400 - "Community 400"
Cohesion: 1.0
Nodes (1): Second call within TTL returns cached result without API call.

### Community 401 - "Community 401"
Cohesion: 1.0
Nodes (1): After TTL expires, the API is called again.

### Community 402 - "Community 402"
Cohesion: 1.0
Nodes (1): Models already in vendor/model:tag format must not have their tag mangled.

### Community 403 - "Community 403"
Cohesion: 1.0
Nodes (1): Redirect the legacy search to user_dir + system_dir under tmp_path.

### Community 404 - "Community 404"
Cohesion: 1.0
Nodes (1): Empty / whitespace-only text must return without importing tts_tool         (the

### Community 405 - "Community 405"
Cohesion: 1.0
Nodes (0): 

### Community 406 - "Community 406"
Cohesion: 1.0
Nodes (1): A grab-bag of values that real-world ``.env.example`` templates         use as s

### Community 407 - "Community 407"
Cohesion: 1.0
Nodes (0): 

### Community 408 - "Community 408"
Cohesion: 1.0
Nodes (0): 

### Community 409 - "Community 409"
Cohesion: 1.0
Nodes (0): 

### Community 410 - "Community 410"
Cohesion: 1.0
Nodes (1): ``get_setup_schema()`` returns a dict the picker can consume.

### Community 411 - "Community 411"
Cohesion: 1.0
Nodes (1): Stub fal_client.subscribe to capture which endpoint we hit.

### Community 412 - "Community 412"
Cohesion: 1.0
Nodes (0): 

### Community 413 - "Community 413"
Cohesion: 1.0
Nodes (0): 

### Community 414 - "Community 414"
Cohesion: 1.0
Nodes (0): 

### Community 415 - "Community 415"
Cohesion: 1.0
Nodes (0): 

### Community 416 - "Community 416"
Cohesion: 1.0
Nodes (1): Unsigned thinking (synthesised from reasoning_content) must be preserved.

### Community 417 - "Community 417"
Cohesion: 1.0
Nodes (1): Custom / proxied Kimi endpoints must also strip Anthropic thinking.

### Community 418 - "Community 418"
Cohesion: 1.0
Nodes (1): The motivating case: OR catalog says 1M for qwen3.6-plus, but         the Nous p

### Community 419 - "Community 419"
Cohesion: 1.0
Nodes (1): Portal-derived value should land in the persistent cache so         cross-proces

### Community 420 - "Community 420"
Cohesion: 1.0
Nodes (1): When the portal can't resolve a model (network blip, auth glitch,         model

### Community 421 - "Community 421"
Cohesion: 1.0
Nodes (1): Users upgrading from pre-fix builds have ``qwen3.6-plus@…nous… =         1000000

### Community 422 - "Community 422"
Cohesion: 1.0
Nodes (1): When the portal is unreachable AND we have a (potentially stale)         on-disk

### Community 423 - "Community 423"
Cohesion: 1.0
Nodes (1): Some call sites pass ``provider=""`` or ``provider="openrouter"``         when t

### Community 424 - "Community 424"
Cohesion: 1.0
Nodes (1): qwen3-coder-plus has a 1M context window, not the generic 128K Qwen default.

### Community 425 - "Community 425"
Cohesion: 1.0
Nodes (1): qwen3-coder has a 256K context window, not the generic 128K Qwen default.

### Community 426 - "Community 426"
Cohesion: 1.0
Nodes (1): qwen3.6-plus has a 1M context window, not the generic 128K Qwen default.

### Community 427 - "Community 427"
Cohesion: 1.0
Nodes (1): Generic qwen models still get the 128K default.

### Community 428 - "Community 428"
Cohesion: 1.0
Nodes (1): Model in API but without context_length → defaults to the top         probe tier

### Community 429 - "Community 429"
Cohesion: 1.0
Nodes (1): Persistent cache should be checked BEFORE API metadata.

### Community 430 - "Community 430"
Cohesion: 1.0
Nodes (1): Without base_url, cache lookup is skipped.

### Community 431 - "Community 431"
Cohesion: 1.0
Nodes (1): Single-model servers: use the only model even if name doesn't match.

### Community 432 - "Community 432"
Cohesion: 1.0
Nodes (1): Fuzzy match: configured model name is substring of endpoint model.

### Community 433 - "Community 433"
Cohesion: 1.0
Nodes (1): Explicit config_context_length takes priority over everything.

### Community 434 - "Community 434"
Cohesion: 1.0
Nodes (1): config_context_length=0 should be treated as unset.

### Community 435 - "Community 435"
Cohesion: 1.0
Nodes (1): config_context_length=None should be treated as unset.

### Community 436 - "Community 436"
Cohesion: 1.0
Nodes (1): provider='bedrock' resolves via static table, bypasses /models probe.

### Community 437 - "Community 437"
Cohesion: 1.0
Nodes (1): bedrock-runtime host infers Bedrock even when provider is omitted.

### Community 438 - "Community 438"
Cohesion: 1.0
Nodes (1): Non-Bedrock hosts still reach the custom-endpoint probe.

### Community 439 - "Community 439"
Cohesion: 1.0
Nodes (1): Ensure 'qwen3.5:27b' is NOT reduced to '27b' during context length lookup.

### Community 440 - "Community 440"
Cohesion: 1.0
Nodes (1): On API failure with existing cache, stale data is returned.

### Community 441 - "Community 441"
Cohesion: 1.0
Nodes (1): Models with canonical_slug get indexed under both IDs.

### Community 442 - "Community 442"
Cohesion: 1.0
Nodes (1): Cache expires after _MODEL_CACHE_TTL seconds.

### Community 443 - "Community 443"
Cohesion: 1.0
Nodes (1): API returns JSON without 'data' key — empty cache, no crash.

### Community 444 - "Community 444"
Cohesion: 1.0
Nodes (0): 

### Community 445 - "Community 445"
Cohesion: 1.0
Nodes (1): Local endpoint + default timeout -> bumps to base_timeout.

### Community 446 - "Community 446"
Cohesion: 1.0
Nodes (1): Remote endpoint -> keep 120s default.

### Community 447 - "Community 447"
Cohesion: 1.0
Nodes (1): Tailscale 100.64.0.0/10 should be treated as local for timeout bumps.

### Community 448 - "Community 448"
Cohesion: 1.0
Nodes (1): Hosts adjacent to but outside 100.64.0.0/10 must not match.

### Community 449 - "Community 449"
Cohesion: 1.0
Nodes (1): Same model, different context per provider.

### Community 450 - "Community 450"
Cohesion: 1.0
Nodes (1): xAI OAuth is an auth path, not a separate model catalog.

### Community 451 - "Community 451"
Cohesion: 1.0
Nodes (1): When in-mem cache is empty but disk cache exists and is fresh by         mtime (

### Community 452 - "Community 452"
Cohesion: 1.0
Nodes (1): When the disk cache is OLDER than TTL, we must hit the network         (and only

### Community 453 - "Community 453"
Cohesion: 1.0
Nodes (1): force_refresh=True bypasses BOTH the in-mem cache AND the         disk-cache fas

### Community 454 - "Community 454"
Cohesion: 1.0
Nodes (1): If the disk cache file doesn't exist (first-ever run, or it         was deleted)

### Community 455 - "Community 455"
Cohesion: 1.0
Nodes (0): 

### Community 456 - "Community 456"
Cohesion: 1.0
Nodes (0): 

### Community 457 - "Community 457"
Cohesion: 1.0
Nodes (1): Isolated config environment with a writable config.yaml.

### Community 458 - "Community 458"
Cohesion: 1.0
Nodes (0): 

### Community 459 - "Community 459"
Cohesion: 1.0
Nodes (1): Base URL of the running server, e.g. ``http://127.0.0.1:12345``.

### Community 460 - "Community 460"
Cohesion: 1.0
Nodes (0): 

### Community 461 - "Community 461"
Cohesion: 1.0
Nodes (0): 

### Community 462 - "Community 462"
Cohesion: 1.0
Nodes (0): 

### Community 463 - "Community 463"
Cohesion: 1.0
Nodes (0): 

### Community 464 - "Community 464"
Cohesion: 1.0
Nodes (0): 

### Community 465 - "Community 465"
Cohesion: 1.0
Nodes (1): A cached agent's shutdown_memory_provider is called during gateway stop.

### Community 466 - "Community 466"
Cohesion: 1.0
Nodes (1): The _agent_cache dict is cleared after stop.

### Community 467 - "Community 467"
Cohesion: 1.0
Nodes (1): stop() works fine when _agent_cache is empty.

### Community 468 - "Community 468"
Cohesion: 1.0
Nodes (1): All cached agents get cleaned up.

### Community 469 - "Community 469"
Cohesion: 1.0
Nodes (1): An exception from one agent's shutdown doesn't prevent others.

### Community 470 - "Community 470"
Cohesion: 1.0
Nodes (1): Cache entries that aren't tuples (just bare agents) are also cleaned.

### Community 471 - "Community 471"
Cohesion: 1.0
Nodes (1): A None cache entry doesn't cause errors.

### Community 472 - "Community 472"
Cohesion: 1.0
Nodes (1): An agent in both _running_agents and _agent_cache gets         shutdown_memory_p

### Community 473 - "Community 473"
Cohesion: 1.0
Nodes (1): Credentials and lark tenant_brand in one response must not be discarded.

### Community 474 - "Community 474"
Cohesion: 1.0
Nodes (1): Without lark_oapi, probe falls back to raw HTTP.

### Community 475 - "Community 475"
Cohesion: 1.0
Nodes (1): URLError (network down) is an expected failure → None.

### Community 476 - "Community 476"
Cohesion: 1.0
Nodes (1): Malformed server response is an expected failure → None.

### Community 477 - "Community 477"
Cohesion: 1.0
Nodes (1): Bugs (e.g. AttributeError) must not be swallowed — they propagate.

### Community 478 - "Community 478"
Cohesion: 1.0
Nodes (1): Server returns begin response without device_code → RuntimeError → None.

### Community 479 - "Community 479"
Cohesion: 1.0
Nodes (1): Registration succeeds but probe fails → result with bot_name=None.

### Community 480 - "Community 480"
Cohesion: 1.0
Nodes (1): The spawn must return immediately even if ``ps`` takes seconds.

### Community 481 - "Community 481"
Cohesion: 1.0
Nodes (0): 

### Community 482 - "Community 482"
Cohesion: 1.0
Nodes (0): 

### Community 483 - "Community 483"
Cohesion: 1.0
Nodes (1): Patch enough of run_job's deps that it executes without real creds.

### Community 484 - "Community 484"
Cohesion: 1.0
Nodes (1): Symlinks pointing outside scripts/ must be rejected.

### Community 485 - "Community 485"
Cohesion: 1.0
Nodes (1): Estimated seconds remaining until reset, adjusted for elapsed time.

### Community 486 - "Community 486"
Cohesion: 1.0
Nodes (1): Build config from the `tool_loop_guardrails` config.yaml section.

### Community 487 - "Community 487"
Cohesion: 1.0
Nodes (1): Stable short identifier used in ``web.search_backend`` /         ``web.extract_b

### Community 488 - "Community 488"
Cohesion: 1.0
Nodes (1): Human-readable label shown in ``miho tools``. Defaults to ``name``.

### Community 489 - "Community 489"
Cohesion: 1.0
Nodes (1): Return True when this provider can service calls.          Typically a cheap che

### Community 490 - "Community 490"
Cohesion: 1.0
Nodes (1): Stable short identifier used in the ``browser.cloud_provider``         config ke

### Community 491 - "Community 491"
Cohesion: 1.0
Nodes (1): Human-readable label shown in ``miho tools``. Defaults to ``name``.

### Community 492 - "Community 492"
Cohesion: 1.0
Nodes (1): Return True when this provider can service calls.          Typically a cheap che

### Community 493 - "Community 493"
Cohesion: 1.0
Nodes (1): Create a cloud browser session and return session metadata.          Must return

### Community 494 - "Community 494"
Cohesion: 1.0
Nodes (1): Release / terminate a cloud session by its provider session ID.          Returns

### Community 495 - "Community 495"
Cohesion: 1.0
Nodes (1): Best-effort session teardown during process exit.          Called from atexit /

### Community 496 - "Community 496"
Cohesion: 1.0
Nodes (1): Return true only for a fully completed, route-declared delivery chain.

### Community 497 - "Community 497"
Cohesion: 1.0
Nodes (1): Stable short identifier used in ``image_gen.provider`` config.          Lowercas

### Community 498 - "Community 498"
Cohesion: 1.0
Nodes (1): Human-readable label shown in ``miho tools``. Defaults to ``name.title()``.

### Community 499 - "Community 499"
Cohesion: 1.0
Nodes (1): Generate an image.          Implementations should return the dict from :func:`s

### Community 500 - "Community 500"
Cohesion: 1.0
Nodes (1): Return waiting faces from the active skin, falling back to KAWAII_WAITING.

### Community 501 - "Community 501"
Cohesion: 1.0
Nodes (1): Return thinking faces from the active skin, falling back to KAWAII_THINKING.

### Community 502 - "Community 502"
Cohesion: 1.0
Nodes (1): Return thinking verbs from the active skin, falling back to THINKING_VERBS.

### Community 503 - "Community 503"
Cohesion: 1.0
Nodes (1): Check if output is a real terminal, safe against closed streams.

### Community 504 - "Community 504"
Cohesion: 1.0
Nodes (1): Build the ``extra_body.response_format`` payload for the         provider reques

### Community 505 - "Community 505"
Cohesion: 1.0
Nodes (1): Short identifier (e.g. 'compressor', 'lcm').

### Community 506 - "Community 506"
Cohesion: 1.0
Nodes (1): Update tracked token usage from an API response.          Called after every LLM

### Community 507 - "Community 507"
Cohesion: 1.0
Nodes (1): Return True if compaction should fire this turn.

### Community 508 - "Community 508"
Cohesion: 1.0
Nodes (1): Compact the message list and return the new message list.          This is the m

### Community 509 - "Community 509"
Cohesion: 1.0
Nodes (1): Return (earliest_index, tag_length) over *tags*, or (-1, 0).          Case-insen

### Community 510 - "Community 510"
Cohesion: 1.0
Nodes (1): Return the longest buf-suffix that is a prefix of any tag.          Only prefixe

### Community 511 - "Community 511"
Cohesion: 1.0
Nodes (1): Remove any close tags from *text* (orphan-close handling).          An orphan cl

### Community 512 - "Community 512"
Cohesion: 1.0
Nodes (1): Stable short identifier used in ``video_gen.provider`` config.          Lowercas

### Community 513 - "Community 513"
Cohesion: 1.0
Nodes (1): Human-readable label shown in ``miho tools``. Defaults to ``name.title()``.

### Community 514 - "Community 514"
Cohesion: 1.0
Nodes (1): Generate a video from a prompt (text-to-video) or animate an image         (imag

### Community 515 - "Community 515"
Cohesion: 1.0
Nodes (1): Short identifier for this provider (e.g. 'builtin', 'honcho', 'hindsight').

### Community 516 - "Community 516"
Cohesion: 1.0
Nodes (1): Return True if this provider is configured, has credentials, and is ready.

### Community 517 - "Community 517"
Cohesion: 1.0
Nodes (1): Initialize for a session.          Called once at agent startup. May create reso

### Community 518 - "Community 518"
Cohesion: 1.0
Nodes (1): Return tool schemas this provider exposes.          Each schema follows the Open

### Community 519 - "Community 519"
Cohesion: 1.0
Nodes (1): Return self so tc.function.name / tc.function.arguments work.

### Community 520 - "Community 520"
Cohesion: 1.0
Nodes (1): Codex call_id from provider_data, accessed via getattr by _build_assistant_messa

### Community 521 - "Community 521"
Cohesion: 1.0
Nodes (1): Codex response_item_id from provider_data.

### Community 522 - "Community 522"
Cohesion: 1.0
Nodes (1): Gemini extra_content (thought_signature) from provider_data.          Gemini 3 t

### Community 523 - "Community 523"
Cohesion: 1.0
Nodes (0): 

### Community 524 - "Community 524"
Cohesion: 1.0
Nodes (0): 

### Community 525 - "Community 525"
Cohesion: 1.0
Nodes (0): 

### Community 526 - "Community 526"
Cohesion: 1.0
Nodes (0): 

### Community 527 - "Community 527"
Cohesion: 1.0
Nodes (0): 

### Community 528 - "Community 528"
Cohesion: 1.0
Nodes (1): Return metadata about all loaded hooks.

### Community 529 - "Community 529"
Cohesion: 1.0
Nodes (1): Accept unknown platform names only for known plugin adapters.          Creates a

### Community 530 - "Community 530"
Cohesion: 1.0
Nodes (1): Return names of bundled platform plugins under ``plugins/platforms/``.

### Community 531 - "Community 531"
Cohesion: 1.0
Nodes (1): Hash a pairing code with the given salt using SHA-256.

### Community 532 - "Community 532"
Cohesion: 1.0
Nodes (1): Best available operator openid (group → member; c2c → user).

### Community 533 - "Community 533"
Cohesion: 1.0
Nodes (1): Resolve subject area, falling back from central DB's generic category to subject

### Community 534 - "Community 534"
Cohesion: 1.0
Nodes (1): semester_limit(예: '1학년 1학기~3학년 1학기(졸업생 포함)') 마지막 학년/학기까지만 반영.

### Community 535 - "Community 535"
Cohesion: 1.0
Nodes (1): Run an async coroutine from a sync tool handler, whether or not a gateway     ev

### Community 536 - "Community 536"
Cohesion: 1.0
Nodes (1): pre_tool_call guard: forbid touching the 생기부 DB with execute_code/terminal/

### Community 537 - "Community 537"
Cohesion: 1.0
Nodes (1): Return the first attached supported local document path, if any.

### Community 538 - "Community 538"
Cohesion: 1.0
Nodes (1): Whether this sender may have a 생기부 (PII) auto-ingested. The     pre_gateway_disp

### Community 539 - "Community 539"
Cohesion: 1.0
Nodes (1): Capture thread context, and auto-route an attached 생기부 PDF/MHTML straight     in

### Community 540 - "Community 540"
Cohesion: 1.0
Nodes (1): Mark this document's remaining needs_review rows as confirmed (human ok).

### Community 541 - "Community 541"
Cohesion: 1.0
Nodes (1): Copy this document's *confirmed* rows into the central student DB, accumulating

### Community 542 - "Community 542"
Cohesion: 1.0
Nodes (1): Apply a receipt after membership checks; never inspect prompt text.

### Community 543 - "Community 543"
Cohesion: 1.0
Nodes (1): Return a non-applying route when no validated planner receipt exists.

### Community 544 - "Community 544"
Cohesion: 1.0
Nodes (1): Validate catalog membership without interpreting the user's words.

### Community 545 - "Community 545"
Cohesion: 1.0
Nodes (1): Keep an opaque model-authored workflow key without persisting prose.

### Community 546 - "Community 546"
Cohesion: 1.0
Nodes (1): Resolve the same gateway toolsets later passed to its turn agent.

### Community 547 - "Community 547"
Cohesion: 1.0
Nodes (1): Resolve one platform's base scope, optionally including turn extras.

### Community 548 - "Community 548"
Cohesion: 1.0
Nodes (1): Return only contracts the executor can expose for this exact turn.

### Community 549 - "Community 549"
Cohesion: 1.0
Nodes (1): Describe receipt fields mechanically without interpreting user text.

### Community 550 - "Community 550"
Cohesion: 1.0
Nodes (1): Lazy bridge avoids loading the Governance plugin during route import.

### Community 551 - "Community 551"
Cohesion: 1.0
Nodes (1): Describe only the exact registry members exposed by one surface.

### Community 552 - "Community 552"
Cohesion: 1.0
Nodes (1): Project live contracts into a compact, model-facing catalog.

### Community 553 - "Community 553"
Cohesion: 1.0
Nodes (1): Merge domain-owned accuracy metadata without duplicating route policy.

### Community 554 - "Community 554"
Cohesion: 1.0
Nodes (1): Unwrap supported registry protocol envelopes without semantic inference.

### Community 555 - "Community 555"
Cohesion: 1.0
Nodes (1): Keep validator-relevant JSON Schema fields without verbose descriptions.

### Community 556 - "Community 556"
Cohesion: 1.0
Nodes (1): Return whether the executor owns an HTML-first PDF review chain.

### Community 557 - "Community 557"
Cohesion: 1.0
Nodes (1): Declare the no-fallback, validated-PDF completion contract.

### Community 558 - "Community 558"
Cohesion: 1.0
Nodes (1): Repair and re-review until this local cycle passes or must continue.

### Community 559 - "Community 559"
Cohesion: 1.0
Nodes (1): Return one routine retry or two retries for governed high-risk output.

### Community 560 - "Community 560"
Cohesion: 1.0
Nodes (1): Hash a failed tool result without retaining its potentially sensitive body.

### Community 561 - "Community 561"
Cohesion: 1.0
Nodes (1): Allow repository test commands even when test names mention governed domains.

### Community 562 - "Community 562"
Cohesion: 1.0
Nodes (1): Append omitted tool media directives, then stage unsafe local paths.

### Community 563 - "Community 563"
Cohesion: 1.0
Nodes (1): Collapse repeated MEDIA lines that point to the same artifact bytes.

### Community 564 - "Community 564"
Cohesion: 1.0
Nodes (1): Repeated visual failures must cause new repairs, not a final failure.

### Community 565 - "Community 565"
Cohesion: 1.0
Nodes (1): A bounded local cycle must hand off another repair, never a final failure.

### Community 566 - "Community 566"
Cohesion: 1.0
Nodes (1): A pass-like transition is not final validation evidence.

### Community 567 - "Community 567"
Cohesion: 1.0
Nodes (1): Run one complete user turn through model calls, tools, and finalization.

### Community 568 - "Community 568"
Cohesion: 1.0
Nodes (1): Run a tiny introspection command inside the active terminal backend.      Return

### Community 569 - "Community 569"
Cohesion: 1.0
Nodes (1): Test helper — drop the backend probe cache so monkeypatched backends take effect

### Community 570 - "Community 570"
Cohesion: 1.0
Nodes (1): Drop the in-process skills prompt cache (and optionally the disk snapshot).

### Community 571 - "Community 571"
Cohesion: 1.0
Nodes (1): Build an mtime/size manifest of all SKILL.md and DESCRIPTION.md files.

### Community 572 - "Community 572"
Cohesion: 1.0
Nodes (1): Load the disk snapshot if it exists and its manifest still matches.

### Community 573 - "Community 573"
Cohesion: 1.0
Nodes (1): Persist skill metadata to disk for fast cold-start reuse.

### Community 574 - "Community 574"
Cohesion: 1.0
Nodes (1): Build a serialisable metadata dict for one skill.

### Community 575 - "Community 575"
Cohesion: 1.0
Nodes (1): Read a SKILL.md once and return platform compatibility, frontmatter, and descrip

### Community 576 - "Community 576"
Cohesion: 1.0
Nodes (1): Return False if the skill's conditional activation rules exclude it.

### Community 577 - "Community 577"
Cohesion: 1.0
Nodes (1): Build a compact skill index for the system prompt.      Two-layer cache:       1

### Community 578 - "Community 578"
Cohesion: 1.0
Nodes (1): Build a compact Nous subscription capability block for the system prompt.

### Community 579 - "Community 579"
Cohesion: 1.0
Nodes (1): Head/tail truncation with a marker in the middle.

### Community 580 - "Community 580"
Cohesion: 1.0
Nodes (1): Load SOUL.md from MIHO_HOME and return its content, or None.      Used as the ag

### Community 581 - "Community 581"
Cohesion: 1.0
Nodes (1): .miho.md / MIHO.md — walk to git root.

### Community 582 - "Community 582"
Cohesion: 1.0
Nodes (1): AGENTS.md — top-level only (no recursive walk).

### Community 583 - "Community 583"
Cohesion: 1.0
Nodes (1): CLAUDE.md / claude.md — cwd only.

### Community 584 - "Community 584"
Cohesion: 1.0
Nodes (1): .cursorrules + .cursor/rules/*.mdc — cwd only.

### Community 585 - "Community 585"
Cohesion: 1.0
Nodes (1): Discover and load context files for the system prompt.      Priority (first foun

### Community 586 - "Community 586"
Cohesion: 1.0
Nodes (1): Finalize one turn and build the public result payload.

### Community 587 - "Community 587"
Cohesion: 1.0
Nodes (1): Keep replayed assistant history identical to the delivered answer.

### Community 588 - "Community 588"
Cohesion: 1.0
Nodes (1): Handle a model response with no tool calls.

### Community 589 - "Community 589"
Cohesion: 1.0
Nodes (1): Remove private control-loop messages before persisting/finalizing a turn.

### Community 590 - "Community 590"
Cohesion: 1.0
Nodes (1): Accept only fully reviewed final PDFs.

### Community 591 - "Community 591"
Cohesion: 1.0
Nodes (1): Return the strongest trusted PDF from the latest user turn.

### Community 592 - "Community 592"
Cohesion: 1.0
Nodes (1): Latch a trusted PDF while the turn is still running.

### Community 593 - "Community 593"
Cohesion: 1.0
Nodes (1): Build a deterministic user response that platform adapters can attach.

### Community 594 - "Community 594"
Cohesion: 1.0
Nodes (1): Revalidate a latched artifact against its original signed bytes.

### Community 595 - "Community 595"
Cohesion: 1.0
Nodes (1): Consume a filter-created reservation at the native upload boundary.

### Community 596 - "Community 596"
Cohesion: 1.0
Nodes (1): Ask an auxiliary LLM for a concise gateway progress message.      Parameters

### Community 597 - "Community 597"
Cohesion: 1.0
Nodes (1): Return user-safe copy based on an actual activity timestamp.      Tool names, it

### Community 598 - "Community 598"
Cohesion: 1.0
Nodes (1): Return zero while an executor-owned tool is still running.      The outer agent

### Community 599 - "Community 599"
Cohesion: 1.0
Nodes (1): Synchronize ``MIHO_SESSION_ID`` across ContextVar and ``os.environ``.      Long-

### Community 600 - "Community 600"
Cohesion: 1.0
Nodes (1): Set all session context variables and return reset tokens.      Call ``clear_ses

### Community 601 - "Community 601"
Cohesion: 1.0
Nodes (1): Mark session context variables as explicitly cleared.      Sets all variables to

### Community 602 - "Community 602"
Cohesion: 1.0
Nodes (1): Read a session context variable by its legacy ``MIHO_SESSION_*`` name.      Drop

### Community 603 - "Community 603"
Cohesion: 1.0
Nodes (1): Set a shortlist, or restore original inventory selection with ``None``.

### Community 604 - "Community 604"
Cohesion: 1.0
Nodes (1): Return ``None`` before routing, or the routed shortlist afterwards.

### Community 605 - "Community 605"
Cohesion: 1.0
Nodes (1): Render the lightweight prompt injected for a Discord turn.

### Community 606 - "Community 606"
Cohesion: 1.0
Nodes (1): Per-turn routing memory policy.      The policy reads plugin-provided structured

### Community 607 - "Community 607"
Cohesion: 1.0
Nodes (1): Choose a decisive candidate using memory-backed tool-first policy.

### Community 608 - "Community 608"
Cohesion: 1.0
Nodes (1): Append hidden media directives found in tool results when missing.      The plat

### Community 609 - "Community 609"
Cohesion: 1.0
Nodes (1): Create the channel/thread workspace and return its paths.

### Community 610 - "Community 610"
Cohesion: 1.0
Nodes (1): Persist a Discord message and return a compact RAG prompt block.

### Community 611 - "Community 611"
Cohesion: 1.0
Nodes (1): Persist Miho's final Discord response into the workspace RAG.

### Community 612 - "Community 612"
Cohesion: 1.0
Nodes (1): Wait through one phase checkpoint until completion or a safety deadline.

### Community 613 - "Community 613"
Cohesion: 1.0
Nodes (1): Resolve the configurable absolute ceiling without shortening the phase.

### Community 614 - "Community 614"
Cohesion: 1.0
Nodes (1): Resolve the short repair grace after an inactivity checkpoint.

### Community 615 - "Community 615"
Cohesion: 1.0
Nodes (1): Resolve inactivity cutoff; zero explicitly keeps inactivity unlimited.

### Community 616 - "Community 616"
Cohesion: 1.0
Nodes (1): Return one routine retry or two retries for governed high-risk output.

### Community 617 - "Community 617"
Cohesion: 1.0
Nodes (1): Hash a failed tool result without retaining its potentially sensitive body.

### Community 618 - "Community 618"
Cohesion: 1.0
Nodes (1): Apply a receipt after membership checks; never inspect prompt text.

### Community 619 - "Community 619"
Cohesion: 1.0
Nodes (1): Return a non-applying route when no validated planner receipt exists.

### Community 620 - "Community 620"
Cohesion: 1.0
Nodes (1): Compatibility API: only a structured receipt may select a route.

### Community 621 - "Community 621"
Cohesion: 1.0
Nodes (1): Validate catalog membership without interpreting the user's words.

### Community 622 - "Community 622"
Cohesion: 1.0
Nodes (1): Keep an opaque model-authored workflow key without persisting prose.

### Community 623 - "Community 623"
Cohesion: 1.0
Nodes (1): Remove model-added fields that the selected tool cannot accept.

### Community 624 - "Community 624"
Cohesion: 1.0
Nodes (1): Lazy bridge avoids loading the Governance plugin during route import.

### Community 625 - "Community 625"
Cohesion: 1.0
Nodes (1): Apply the selected tool policy and bounded per-turn call budget.

### Community 626 - "Community 626"
Cohesion: 1.0
Nodes (1): Return a wall limit only for explicitly bounded runtime roles.

### Community 627 - "Community 627"
Cohesion: 1.0
Nodes (1): Leave a privacy-safe continuation signal without changing model pins.

### Community 628 - "Community 628"
Cohesion: 1.0
Nodes (1): Keep an opaque model-authored workflow key without persisting prose.

### Community 629 - "Community 629"
Cohesion: 1.0
Nodes (1): Accept only fully reviewed final PDFs.

### Community 630 - "Community 630"
Cohesion: 1.0
Nodes (1): Return the strongest trusted PDF from the latest user turn.

### Community 631 - "Community 631"
Cohesion: 1.0
Nodes (1): Latch a trusted PDF while the turn is still running.

### Community 632 - "Community 632"
Cohesion: 1.0
Nodes (1): Build a deterministic user response that platform adapters can attach.

### Community 633 - "Community 633"
Cohesion: 1.0
Nodes (1): Revalidate a latched artifact against its original signed bytes.

## Knowledge Gaps
- **10228 isolated node(s):** `Get a toolset distribution by name.          Args:         name (str): Name of t`, `List all available distributions.          Returns:         Dict: All distributi`, `Sample toolsets based on a distribution's probabilities.          Each toolset i`, `Check if a distribution name is valid.          Args:         distribution_name`, `Print detailed information about a distribution.          Args:         distribu` (+10223 more)
  These have ≤1 connection - possible missing edges or undocumented components.
- **Thin community `Community 117`** (2 nodes): `# IMPORTANT: miho_bootstrap must be the very first import — UTF-8 stdio`, `miho_cli.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 118`** (2 nodes): `StackUtils`, `ambient.d.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 119`** (2 nodes): `supportsHyperlinks()`, `supports-hyperlinks.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 120`** (2 nodes): `Link()`, `Link.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 121`** (2 nodes): `Spacer()`, `Spacer.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 122`** (2 nodes): `Newline()`, `Newline.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 123`** (2 nodes): `RawAnsi()`, `RawAnsi.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 124`** (2 nodes): `isEnvTruthy()`, `envUtils.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 125`** (2 nodes): `useStderr()`, `use-stderr.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 126`** (2 nodes): `importPlatform()`, `platform.test.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 127`** (2 nodes): `Static Agent Reach routing policy and tool schemas.`, `agent_reach_policy.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 128`** (2 nodes): `Tool schema for the three session-search calling shapes.`, `session_search_schema.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 129`** (2 nodes): `Miho AI default system persona.`, `miho_persona.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 130`** (2 nodes): `Default SOUL.md template seeded into MIHO_HOME on first run.`, `default_soul.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 131`** (2 nodes): `vite.config.ts`, `mihoDevToken()`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 132`** (2 nodes): `useSystemActions.ts`, `useSystemActions()`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 133`** (2 nodes): `usePageHeader()`, `usePageHeader.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 134`** (2 nodes): `usePlugins()`, `usePlugins.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 135`** (2 nodes): `BottomPickSheet()`, `BottomPickSheet.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 136`** (2 nodes): `ChatSidebar()`, `ChatSidebar.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 137`** (2 nodes): `Toast()`, `Toast.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 138`** (2 nodes): `Label()`, `label.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 139`** (2 nodes): `Separator()`, `separator.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 140`** (2 nodes): `useToast.ts`, `useToast()`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 141`** (2 nodes): `useModalBehavior()`, `useModalBehavior.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 142`** (2 nodes): `useConfirmDelete()`, `useConfirmDelete.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 143`** (2 nodes): `useBelowBreakpoint()`, `useBelowBreakpoint.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 144`** (2 nodes): `isDashboardEmbeddedChatEnabled()`, `dashboard-flags.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 145`** (2 nodes): `formatTokenCount()`, `format.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 146`** (2 nodes): `sourceColor()`, `index.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 147`** (2 nodes): `test_runtime_model_routing_has_schema_defaults()`, `test_runtime_model_routing_config.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 148`** (2 nodes): `test_governance_serial_llm_stages_have_bounded_latency()`, `test_governance_os_latency_budgets.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 149`** (2 nodes): `Stable dependency surface for the conversation loop.`, `conversation_loop_support.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 150`** (2 nodes): `Prompt text for background memory and skill review.`, `background_review_prompts.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 151`** (2 nodes): `Shared attachment extension policy for gateway delivery paths.`, `attachment_extensions.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 152`** (1 nodes): `install.ps1`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 153`** (1 nodes): `Load configuration from YAML file.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 154`** (1 nodes): `Normalize summary-model output to a safe string.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 155`** (1 nodes): `Normalize summary text to include the expected prefix exactly once.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 156`** (1 nodes): `Extract expected columns per table from SCHEMA_SQL.          Uses an in-memory S`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 157`** (1 nodes): `Validate and sanitize a session title.          - Strips leading/trailing whites`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 158`** (1 nodes): `Serialize structured (list/dict) message content for sqlite.          sqlite3 ca`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 159`** (1 nodes): `Reverse :meth:`_encode_content`; returns scalars unchanged.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 160`** (1 nodes): `Sanitize user input for safe use in FTS5 MATCH queries.          FTS5 has its ow`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 161`** (1 nodes): `Check if text contains CJK (Chinese, Japanese, Korean) characters.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 162`** (1 nodes): `Count CJK characters in text.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 163`** (1 nodes): `Remove on-disk transcript files for a session.          Cleans up ``{session_id}`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 164`** (1 nodes): `vitest.config.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 165`** (1 nodes): `eslint.config.mjs`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 166`** (1 nodes): `build.mjs`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 167`** (1 nodes): `index.js`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 168`** (1 nodes): `text-input.d.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 169`** (1 nodes): `text-input.js`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 170`** (1 nodes): `index.d.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 171`** (1 nodes): `entry-exports.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 172`** (1 nodes): `devtools.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 173`** (1 nodes): `Text.test.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 174`** (1 nodes): `TerminalSizeContext.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 175`** (1 nodes): `miho-ink.d.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 176`** (1 nodes): `textInputFastEcho.test.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 177`** (1 nodes): `textInputRightClick.test.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 178`** (1 nodes): `textInputBurstInput.test.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 179`** (1 nodes): `textInputCursorSourceOfTruth.test.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 180`** (1 nodes): `approvalAction.test.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 181`** (1 nodes): `textInputLineNav.test.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 182`** (1 nodes): `Current audio input RMS level (0-32767). Updated each audio chunk.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 183`** (1 nodes): `Whether audio recording is currently active.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 184`** (1 nodes): `Write numpy int16 audio data to a WAV file.          Returns the file path.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 185`** (1 nodes): `Acquire an exclusive file lock for read-modify-write safety.          Uses a sep`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 186`** (1 nodes): `Read a memory file and split into entries.          No file locking needed: _wri`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 187`** (1 nodes): `Write entries to a memory file using atomic temp-file + rename.          Previou`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 188`** (1 nodes): `Validate and normalize a todo item.          Ensures required fields exist and s`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 189`** (1 nodes): `Collapse duplicate ids, keeping the last occurrence in its position.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 190`** (1 nodes): `Acquire the per-path lock for a read→modify→write section.          Same process`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 191`** (1 nodes): `Parse git --shortstat output into entry dict.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 192`** (1 nodes): `Release backend resources (container, instance, connection).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 193`** (1 nodes): `Quote a ``cd`` target while preserving ``~`` expansion.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 194`** (1 nodes): `Append stdin_data as a shell heredoc to the command string.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 195`** (1 nodes): `Return True if the backend can be used on this host right now.          Used by`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 196`** (1 nodes): `Send a key combo, e.g. 'cmd+s', 'ctrl+alt+t', 'return'.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 197`** (1 nodes): `Return running apps with bundle IDs, PIDs, window counts.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 198`** (1 nodes): `Route input to `app` (by name or bundle ID). Default: focus without raise.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 199`** (1 nodes): `Set a native value on an element (e.g. AXPopUpButton selection).          `eleme`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 200`** (1 nodes): `True if a PTY can be spawned on this platform.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 201`** (1 nodes): `Spawn ``argv`` behind a new PTY and return a bridge.          Raises :class:`Pty`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 202`** (1 nodes): `Return replacement text for a completion.          When the user has already typ`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 203`** (1 nodes): `Extract the current word if it looks like a file path.          Returns the path`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 204`** (1 nodes): `Yield Completion objects for file paths matching *word*.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 205`** (1 nodes): `Extract a bare ``@`` token for context reference completions.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 206`** (1 nodes): `Score a file path against a fuzzy query. Higher = better match.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 207`** (1 nodes): `Yield completions for /skin from available skins.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 208`** (1 nodes): `Yield completions for /personality from configured personalities.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 209`** (1 nodes): `Adapter key used on the CLI (e.g. ``"nous"``).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 210`** (1 nodes): `Human-readable provider name for logs and ``proxy status``.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 211`** (1 nodes): `Set of relative request paths the upstream accepts.          Paths are relative`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 212`** (1 nodes): `Return True if the user has usable credentials for this upstream.          Shoul`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 213`** (1 nodes): `Return a fresh credential, refreshing/minting if necessary.          Implementat`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 214`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 215`** (1 nodes): `Discord emits default_member_permissions as str server-side but discord.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 216`** (1 nodes): `Convert raw PCM to 16kHz mono WAV via ffmpeg.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 217`** (1 nodes): `Get the Honcho client, initializing if needed.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 218`** (1 nodes): `Normalize Honcho card payloads into a plain list of strings.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 219`** (1 nodes): `pactl load-module prints the new module ID to stdout.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 220`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 221`** (1 nodes): `Durable receipts intentionally never retain individual paths.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 222`** (1 nodes): `Get a field from channel config, checking both flat and accounts.default layout.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 223`** (1 nodes): `eslint.config.js`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 224`** (1 nodes): `main.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 225`** (1 nodes): `page-header-context.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 226`** (1 nodes): `PageHeaderProvider.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 227`** (1 nodes): `system-actions-context.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 228`** (1 nodes): `types.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 229`** (1 nodes): `index.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 230`** (1 nodes): `PluginPage.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 231`** (1 nodes): `ModelInfoCard.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 232`** (1 nodes): `PlatformsCard.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 233`** (1 nodes): `Markdown.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 234`** (1 nodes): `Backdrop.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 235`** (1 nodes): `ToolCall.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 236`** (1 nodes): `SlashPopover.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 237`** (1 nodes): `NouiTypography.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 238`** (1 nodes): `ga.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 239`** (1 nodes): `de.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 240`** (1 nodes): `it.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 241`** (1 nodes): `es.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 242`** (1 nodes): `tr.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 243`** (1 nodes): `en.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 244`** (1 nodes): `uk.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 245`** (1 nodes): `zh.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 246`** (1 nodes): `fr.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 247`** (1 nodes): `hu.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 248`** (1 nodes): `types.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 249`** (1 nodes): `ru.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 250`** (1 nodes): `zh-hant.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 251`** (1 nodes): `pt.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 252`** (1 nodes): `ko.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 253`** (1 nodes): `index.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 254`** (1 nodes): `af.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 255`** (1 nodes): `ja.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 256`** (1 nodes): `DocsPage.tsx`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 257`** (1 nodes): `types.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 258`** (1 nodes): `presets.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 259`** (1 nodes): `index.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 260`** (1 nodes): `docusaurus.config.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 261`** (1 nodes): `sidebars.ts`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 262`** (1 nodes): `_run_async should still work when called from inside an         already-running`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 263`** (1 nodes): `A timeout in the running-loop branch must not block the caller.          If shut`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 264`** (1 nodes): `On timeout, the worker's event loop must receive a cancel request         so the`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 265`** (1 nodes): `A subprocess spawned from this process should inherit         PYTHONUTF8=1 and b`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 266`** (1 nodes): `On actual Linux/macOS, importing the module must not set         PYTHONUTF8 or r`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 267`** (1 nodes): `The file must contain 'import miho_bootstrap' and that         line must appear`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 268`** (1 nodes): `test_minisweagent_path.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 269`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 270`** (1 nodes): `Empty / whitespace-only input falls back to caller default (None).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 271`** (1 nodes): `Every level listed in VALID_REASONING_EFFORTS is accepted as-is.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 272`** (1 nodes): `Mixed case and surrounding whitespace are normalized before lookup.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 273`** (1 nodes): `Unrecognized strings fall back to the caller default (None).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 274`** (1 nodes): `Lazy-import execute_code to avoid pulling in firecrawl at collection time.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 275`** (1 nodes): `Ensure MiniMax catalog is used even if a live /v1/models endpoint exists.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 276`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 277`** (1 nodes): `JSON string data is parsed into a dict before dispatch.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 278`** (1 nodes): `Dict data (JSON tool calling mode) still works unchanged.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 279`** (1 nodes): `Empty/whitespace string data is treated as None.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 280`** (1 nodes): `Read then write with no external modification — no warning.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 281`** (1 nodes): `Read, then external modify, then write — should warn.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 282`** (1 nodes): `Writing a file that was never read — no warning.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 283`** (1 nodes): `Creating a new file — no warning.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 284`** (1 nodes): `Task A reads, file changes, Task B writes — no warning for B.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 285`** (1 nodes): `Relative-path stale tracking must follow the live terminal cwd.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 286`** (1 nodes): `Patch should warn if the target file changed since last read.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 287`** (1 nodes): `Patch with no external changes — no warning.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 288`** (1 nodes): `A read that returns >max chars is rejected.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 289`** (1 nodes): `Normal-sized reads pass through fine.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 290`** (1 nodes): `Content just under the limit should pass through fine.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 291`** (1 nodes): `Second read of same file+range returns non-content dedup status.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 292`** (1 nodes): `write_file must not persist internal read_file status text.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 293`** (1 nodes): `write_file rejects small wrappers around the status text too.          Real-worl`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 294`** (1 nodes): `Legitimate large content that happens to quote the status is allowed.          M`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 295`** (1 nodes): `After the file is modified, dedup returns full content.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 296`** (1 nodes): `Same file but different offset/limit should not dedup.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 297`** (1 nodes): `Different task_ids have separate dedup caches.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 298`** (1 nodes): `read → stub → BLOCKED.  Second stub escalates to hard error.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 299`** (1 nodes): `Once blocked, continued hammering keeps returning BLOCKED.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 300`** (1 nodes): `Real file change should break out of the block — new content         is legitima`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 301`** (1 nodes): `An intervening non-read tool call resets stub-hit counters,         just like it`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 302`** (1 nodes): `Stub-hit counter is keyed by (path, offset, limit), so hammering         one ran`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 303`** (1 nodes): `Post-compression reset must clear stub-hit counters too,         otherwise the a`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 304`** (1 nodes): `After reset_file_dedup, the same read returns full content.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 305`** (1 nodes): `reset_file_dedup(None) clears all tasks.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 306`** (1 nodes): `reset_file_dedup does NOT affect the consecutive-read counter.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 307`** (1 nodes): `A config value of 50 should reject reads over 50 chars.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 308`** (1 nodes): `A config value of 500K should allow reads up to 500K chars.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 309`** (1 nodes): `read→write→read within the same mtime second returns fresh content.          Thi`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 310`** (1 nodes): `A write invalidates dedup entries for ALL offset/limit combos.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 311`** (1 nodes): `Writing file A should not invalidate dedup for file B.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 312`** (1 nodes): `Writing in task A should not invalidate dedup for task B.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 313`** (1 nodes): `Internal helpers stay importable so tests can monkeypatch them.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 314`** (1 nodes): `For every combination of (env shape × passthrough rule), the         new helper`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 315`** (1 nodes): `Negative control: prove that on Windows, writing the stub         *without* ``en`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 316`** (1 nodes): `Negative control: spawn a Python child *without* our env         overrides and p`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 317`** (1 nodes): `Helper to call resolve_modal_backend_state with feature flag control.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 318`** (1 nodes): `Shared patches for pre-navigation tests that pass the SSRF check.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 319`** (1 nodes): `Hybrid routing must not let cloud metadata endpoints through.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 320`** (1 nodes): `Shared patches for redirect tests.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 321`** (1 nodes): `All three session env vars share the same truthy semantics.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 322`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 323`** (1 nodes): `On Windows, the old check incorrectly blocks valid subpaths.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 324`** (1 nodes): `tirith block goes through approval flow (user gets prompted).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 325`** (1 nodes): `tirith block + dangerous pattern → combined approval prompt.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 326`** (1 nodes): `Non-ImportError exceptions from tirith wrapper should propagate.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 327`** (1 nodes): `Windows: don't start a background install thread, don't write a         failure`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 328`** (1 nodes): `Windows: skip the resolver and spawn entirely — return allow with         an emp`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 329`** (1 nodes): `The per-command resolver must also short-circuit on Windows so         long-runn`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 330`** (1 nodes): `If a user explicitly configured a tirith_path (e.g. they built it         themse`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 331`** (1 nodes): `After a failed download, subsequent resolves must not retry.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 332`** (1 nodes): `After cached miss, check_command_security hits OSError → fail_open.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 333`** (1 nodes): `An explicit tirith_path that doesn't exist must NOT trigger download.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 334`** (1 nodes): `An explicit ~/path that doesn't exist must NOT trigger download.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 335`** (1 nodes): `The default bare 'tirith' SHOULD trigger auto-download.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 336`** (1 nodes): `cosign verify-blob exits 0 → returns True.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 337`** (1 nodes): `Identity regexp must pin to the release workflow, not the whole repo.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 338`** (1 nodes): `cosign verify-blob exits non-zero → returns False (abort install).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 339`** (1 nodes): `cosign not on PATH → returns None (proceed with SHA-256 only).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 340`** (1 nodes): `cosign times out → returns None (proceed with SHA-256 only).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 341`** (1 nodes): `cosign OSError → returns None (proceed with SHA-256 only).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 342`** (1 nodes): `_install_tirith returns None when cosign rejects the signature.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 343`** (1 nodes): `_install_tirith proceeds with SHA-256 only when cosign is not on PATH.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 344`** (1 nodes): `_install_tirith falls back to SHA-256 when cosign exists but fails to execute.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 345`** (1 nodes): `_install_tirith proceeds with SHA-256 when .sig/.pem downloads fail.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 346`** (1 nodes): `_install_tirith proceeds only when cosign explicitly passes (True).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 347`** (1 nodes): `Synchronous _resolve_tirith_path persists failure to disk.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 348`** (1 nodes): `Successful install clears the disk failure marker.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 349`** (1 nodes): ```FileNotFoundError`` and ``PermissionError`` are distinct         failure modes`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 350`** (1 nodes): ```_resolve_tirith_path`` returning ``None`` (explicit path set         but resol`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 351`** (1 nodes): `If .app finding is accompanied by another finding, warn is preserved.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 352`** (1 nodes): `lookalike_tld for a non-.app TLD is not suppressed.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 353`** (1 nodes): `block exit code is never downgraded, even if finding looks like .app.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 354`** (1 nodes): `All findings being .app lookalike_tld → allow.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 355`** (1 nodes): `When enabled_tools is None, all sandbox tools should be available.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 356`** (1 nodes): `When enabled_tools is [] (empty), all sandbox tools should be available.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 357`** (1 nodes): `When enabled_tools has no overlap with SANDBOX_ALLOWED_TOOLS,         should fal`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 358`** (1 nodes): `When _engine_override='auto', --engine flag is NOT injected.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 359`** (1 nodes): `Without _engine_override, the cached engine is used.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 360`** (1 nodes): `rg should skip .hub/ by default (no --hidden flag).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 361`** (1 nodes): `rg should find content in visible directories.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 362`** (1 nodes): `After max retries, the download error should include exc_info.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 363`** (1 nodes): `When vision_analyze_tool encounters an error, it should log with exc_info.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 364`** (1 nodes): `Temp file cleanup failure should log warning with exc_info.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 365`** (1 nodes): `vision_analyze_tool should expand ~ in file paths.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 366`** (1 nodes): `A tilde path that doesn't resolve to a real file should fail gracefully.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 367`** (1 nodes): `file:///absolute/path should be treated as a local file.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 368`** (1 nodes): `file:// pointing to a missing file should fail gracefully.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 369`** (1 nodes): `Images exceeding the 20 MB hard limit should fail with a clear error.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 370`** (1 nodes): `Images well under the limit should pass the size check.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 371`** (1 nodes): `An invalid_request_error from the API should mention image size/format.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 372`** (1 nodes): `Summarization should pick up a backend that becomes available later in-process.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 373`** (1 nodes): `False-like env strings must not silently enable YOLO bypass.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 374`** (1 nodes): `Combined guard must treat false-like YOLO env strings as disabled.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 375`** (1 nodes): `node-hide-console-windows has a real MAL- advisory.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 376`** (1 nodes): `react should have zero MAL- advisories.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 377`** (1 nodes): `Skills in deeply nested dirs (e.g. cli-tool/components/skills/dev/my-skill/)`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 378`** (1 nodes): `Reset the module-level toggle cache before and after each test.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 379`** (1 nodes): `Literal IMDS IPs and the /16 link-local range always block.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 380`** (1 nodes): `Floor is narrower than is_safe_url — ordinary private URLs pass.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 381`** (1 nodes): `IPv4-mapped IPv6 addresses that should be blocked.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 382`** (1 nodes): `IPv4-mapped IPv6 addresses that should be allowed.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 383`** (1 nodes): `skip_disabled=True ignores the disabled set (for config UI).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 384`** (1 nodes): `Invoking `miho <argv>` must exit 0 (help) rather than         failing with `unre`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 385`** (1 nodes): `Isolated MIHO_HOME whose agent.log contains a vendor-prefixed token.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 386`** (1 nodes): `Isolated MIHO_HOME whose agent.log contains a vendor-prefixed token.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 387`** (1 nodes): `Without skip_confirm, input() is called for confirmation.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 388`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 389`** (1 nodes): `Copilot ACP shares the same API expectations as HTTP Copilot.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 390`** (1 nodes): `SIGHUP should be set to SIG_IGN so SSH disconnect doesn't kill the update.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 391`** (1 nodes): `Plant a project-source plugin under CWD's ``.miho/plugins``         and isolate`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 392`** (1 nodes): `Secret files must end up at 0600 after restore (zipfile drops mode bits).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 393`** (1 nodes): `Create a fake MIHO_HOME with critical state files.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 394`** (1 nodes): `Regression guard: without --yes, the TTY prompt path still fires.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 395`** (1 nodes): `Reserved names collide with the Miho install itself or with         common syste`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 396`** (1 nodes): `The check finds entry points in .venv/ as well as venv/.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 397`** (1 nodes): `If ~/.local/bin/miho is a regular file (not symlink), accept it.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 398`** (1 nodes): `On Termux, the command link dir is $PREFIX/bin.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 399`** (1 nodes): `Drop fields that always change (timestamps) for diff comparison.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 400`** (1 nodes): `Second call within TTL returns cached result without API call.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 401`** (1 nodes): `After TTL expires, the API is called again.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 402`** (1 nodes): `Models already in vendor/model:tag format must not have their tag mangled.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 403`** (1 nodes): `Redirect the legacy search to user_dir + system_dir under tmp_path.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 404`** (1 nodes): `Empty / whitespace-only text must return without importing tts_tool         (the`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 405`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 406`** (1 nodes): `A grab-bag of values that real-world ``.env.example`` templates         use as s`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 407`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 408`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 409`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 410`** (1 nodes): ```get_setup_schema()`` returns a dict the picker can consume.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 411`** (1 nodes): `Stub fal_client.subscribe to capture which endpoint we hit.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 412`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 413`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 414`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 415`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 416`** (1 nodes): `Unsigned thinking (synthesised from reasoning_content) must be preserved.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 417`** (1 nodes): `Custom / proxied Kimi endpoints must also strip Anthropic thinking.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 418`** (1 nodes): `The motivating case: OR catalog says 1M for qwen3.6-plus, but         the Nous p`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 419`** (1 nodes): `Portal-derived value should land in the persistent cache so         cross-proces`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 420`** (1 nodes): `When the portal can't resolve a model (network blip, auth glitch,         model`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 421`** (1 nodes): `Users upgrading from pre-fix builds have ``qwen3.6-plus@…nous… =         1000000`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 422`** (1 nodes): `When the portal is unreachable AND we have a (potentially stale)         on-disk`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 423`** (1 nodes): `Some call sites pass ``provider=""`` or ``provider="openrouter"``         when t`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 424`** (1 nodes): `qwen3-coder-plus has a 1M context window, not the generic 128K Qwen default.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 425`** (1 nodes): `qwen3-coder has a 256K context window, not the generic 128K Qwen default.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 426`** (1 nodes): `qwen3.6-plus has a 1M context window, not the generic 128K Qwen default.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 427`** (1 nodes): `Generic qwen models still get the 128K default.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 428`** (1 nodes): `Model in API but without context_length → defaults to the top         probe tier`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 429`** (1 nodes): `Persistent cache should be checked BEFORE API metadata.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 430`** (1 nodes): `Without base_url, cache lookup is skipped.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 431`** (1 nodes): `Single-model servers: use the only model even if name doesn't match.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 432`** (1 nodes): `Fuzzy match: configured model name is substring of endpoint model.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 433`** (1 nodes): `Explicit config_context_length takes priority over everything.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 434`** (1 nodes): `config_context_length=0 should be treated as unset.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 435`** (1 nodes): `config_context_length=None should be treated as unset.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 436`** (1 nodes): `provider='bedrock' resolves via static table, bypasses /models probe.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 437`** (1 nodes): `bedrock-runtime host infers Bedrock even when provider is omitted.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 438`** (1 nodes): `Non-Bedrock hosts still reach the custom-endpoint probe.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 439`** (1 nodes): `Ensure 'qwen3.5:27b' is NOT reduced to '27b' during context length lookup.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 440`** (1 nodes): `On API failure with existing cache, stale data is returned.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 441`** (1 nodes): `Models with canonical_slug get indexed under both IDs.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 442`** (1 nodes): `Cache expires after _MODEL_CACHE_TTL seconds.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 443`** (1 nodes): `API returns JSON without 'data' key — empty cache, no crash.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 444`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 445`** (1 nodes): `Local endpoint + default timeout -> bumps to base_timeout.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 446`** (1 nodes): `Remote endpoint -> keep 120s default.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 447`** (1 nodes): `Tailscale 100.64.0.0/10 should be treated as local for timeout bumps.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 448`** (1 nodes): `Hosts adjacent to but outside 100.64.0.0/10 must not match.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 449`** (1 nodes): `Same model, different context per provider.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 450`** (1 nodes): `xAI OAuth is an auth path, not a separate model catalog.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 451`** (1 nodes): `When in-mem cache is empty but disk cache exists and is fresh by         mtime (`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 452`** (1 nodes): `When the disk cache is OLDER than TTL, we must hit the network         (and only`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 453`** (1 nodes): `force_refresh=True bypasses BOTH the in-mem cache AND the         disk-cache fas`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 454`** (1 nodes): `If the disk cache file doesn't exist (first-ever run, or it         was deleted)`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 455`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 456`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 457`** (1 nodes): `Isolated config environment with a writable config.yaml.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 458`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 459`** (1 nodes): `Base URL of the running server, e.g. ``http://127.0.0.1:12345``.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 460`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 461`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 462`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 463`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 464`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 465`** (1 nodes): `A cached agent's shutdown_memory_provider is called during gateway stop.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 466`** (1 nodes): `The _agent_cache dict is cleared after stop.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 467`** (1 nodes): `stop() works fine when _agent_cache is empty.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 468`** (1 nodes): `All cached agents get cleaned up.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 469`** (1 nodes): `An exception from one agent's shutdown doesn't prevent others.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 470`** (1 nodes): `Cache entries that aren't tuples (just bare agents) are also cleaned.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 471`** (1 nodes): `A None cache entry doesn't cause errors.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 472`** (1 nodes): `An agent in both _running_agents and _agent_cache gets         shutdown_memory_p`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 473`** (1 nodes): `Credentials and lark tenant_brand in one response must not be discarded.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 474`** (1 nodes): `Without lark_oapi, probe falls back to raw HTTP.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 475`** (1 nodes): `URLError (network down) is an expected failure → None.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 476`** (1 nodes): `Malformed server response is an expected failure → None.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 477`** (1 nodes): `Bugs (e.g. AttributeError) must not be swallowed — they propagate.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 478`** (1 nodes): `Server returns begin response without device_code → RuntimeError → None.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 479`** (1 nodes): `Registration succeeds but probe fails → result with bot_name=None.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 480`** (1 nodes): `The spawn must return immediately even if ``ps`` takes seconds.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 481`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 482`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 483`** (1 nodes): `Patch enough of run_job's deps that it executes without real creds.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 484`** (1 nodes): `Symlinks pointing outside scripts/ must be rejected.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 485`** (1 nodes): `Estimated seconds remaining until reset, adjusted for elapsed time.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 486`** (1 nodes): `Build config from the `tool_loop_guardrails` config.yaml section.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 487`** (1 nodes): `Stable short identifier used in ``web.search_backend`` /         ``web.extract_b`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 488`** (1 nodes): `Human-readable label shown in ``miho tools``. Defaults to ``name``.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 489`** (1 nodes): `Return True when this provider can service calls.          Typically a cheap che`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 490`** (1 nodes): `Stable short identifier used in the ``browser.cloud_provider``         config ke`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 491`** (1 nodes): `Human-readable label shown in ``miho tools``. Defaults to ``name``.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 492`** (1 nodes): `Return True when this provider can service calls.          Typically a cheap che`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 493`** (1 nodes): `Create a cloud browser session and return session metadata.          Must return`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 494`** (1 nodes): `Release / terminate a cloud session by its provider session ID.          Returns`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 495`** (1 nodes): `Best-effort session teardown during process exit.          Called from atexit /`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 496`** (1 nodes): `Return true only for a fully completed, route-declared delivery chain.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 497`** (1 nodes): `Stable short identifier used in ``image_gen.provider`` config.          Lowercas`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 498`** (1 nodes): `Human-readable label shown in ``miho tools``. Defaults to ``name.title()``.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 499`** (1 nodes): `Generate an image.          Implementations should return the dict from :func:`s`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 500`** (1 nodes): `Return waiting faces from the active skin, falling back to KAWAII_WAITING.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 501`** (1 nodes): `Return thinking faces from the active skin, falling back to KAWAII_THINKING.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 502`** (1 nodes): `Return thinking verbs from the active skin, falling back to THINKING_VERBS.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 503`** (1 nodes): `Check if output is a real terminal, safe against closed streams.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 504`** (1 nodes): `Build the ``extra_body.response_format`` payload for the         provider reques`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 505`** (1 nodes): `Short identifier (e.g. 'compressor', 'lcm').`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 506`** (1 nodes): `Update tracked token usage from an API response.          Called after every LLM`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 507`** (1 nodes): `Return True if compaction should fire this turn.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 508`** (1 nodes): `Compact the message list and return the new message list.          This is the m`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 509`** (1 nodes): `Return (earliest_index, tag_length) over *tags*, or (-1, 0).          Case-insen`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 510`** (1 nodes): `Return the longest buf-suffix that is a prefix of any tag.          Only prefixe`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 511`** (1 nodes): `Remove any close tags from *text* (orphan-close handling).          An orphan cl`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 512`** (1 nodes): `Stable short identifier used in ``video_gen.provider`` config.          Lowercas`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 513`** (1 nodes): `Human-readable label shown in ``miho tools``. Defaults to ``name.title()``.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 514`** (1 nodes): `Generate a video from a prompt (text-to-video) or animate an image         (imag`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 515`** (1 nodes): `Short identifier for this provider (e.g. 'builtin', 'honcho', 'hindsight').`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 516`** (1 nodes): `Return True if this provider is configured, has credentials, and is ready.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 517`** (1 nodes): `Initialize for a session.          Called once at agent startup. May create reso`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 518`** (1 nodes): `Return tool schemas this provider exposes.          Each schema follows the Open`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 519`** (1 nodes): `Return self so tc.function.name / tc.function.arguments work.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 520`** (1 nodes): `Codex call_id from provider_data, accessed via getattr by _build_assistant_messa`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 521`** (1 nodes): `Codex response_item_id from provider_data.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 522`** (1 nodes): `Gemini extra_content (thought_signature) from provider_data.          Gemini 3 t`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 523`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 524`** (1 nodes): `allowlist.test.mjs`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 525`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 526`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 527`** (1 nodes): `__init__.py`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 528`** (1 nodes): `Return metadata about all loaded hooks.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 529`** (1 nodes): `Accept unknown platform names only for known plugin adapters.          Creates a`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 530`** (1 nodes): `Return names of bundled platform plugins under ``plugins/platforms/``.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 531`** (1 nodes): `Hash a pairing code with the given salt using SHA-256.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 532`** (1 nodes): `Best available operator openid (group → member; c2c → user).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 533`** (1 nodes): `Resolve subject area, falling back from central DB's generic category to subject`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 534`** (1 nodes): `semester_limit(예: '1학년 1학기~3학년 1학기(졸업생 포함)') 마지막 학년/학기까지만 반영.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 535`** (1 nodes): `Run an async coroutine from a sync tool handler, whether or not a gateway     ev`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 536`** (1 nodes): `pre_tool_call guard: forbid touching the 생기부 DB with execute_code/terminal/`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 537`** (1 nodes): `Return the first attached supported local document path, if any.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 538`** (1 nodes): `Whether this sender may have a 생기부 (PII) auto-ingested. The     pre_gateway_disp`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 539`** (1 nodes): `Capture thread context, and auto-route an attached 생기부 PDF/MHTML straight     in`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 540`** (1 nodes): `Mark this document's remaining needs_review rows as confirmed (human ok).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 541`** (1 nodes): `Copy this document's *confirmed* rows into the central student DB, accumulating`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 542`** (1 nodes): `Apply a receipt after membership checks; never inspect prompt text.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 543`** (1 nodes): `Return a non-applying route when no validated planner receipt exists.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 544`** (1 nodes): `Validate catalog membership without interpreting the user's words.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 545`** (1 nodes): `Keep an opaque model-authored workflow key without persisting prose.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 546`** (1 nodes): `Resolve the same gateway toolsets later passed to its turn agent.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 547`** (1 nodes): `Resolve one platform's base scope, optionally including turn extras.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 548`** (1 nodes): `Return only contracts the executor can expose for this exact turn.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 549`** (1 nodes): `Describe receipt fields mechanically without interpreting user text.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 550`** (1 nodes): `Lazy bridge avoids loading the Governance plugin during route import.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 551`** (1 nodes): `Describe only the exact registry members exposed by one surface.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 552`** (1 nodes): `Project live contracts into a compact, model-facing catalog.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 553`** (1 nodes): `Merge domain-owned accuracy metadata without duplicating route policy.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 554`** (1 nodes): `Unwrap supported registry protocol envelopes without semantic inference.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 555`** (1 nodes): `Keep validator-relevant JSON Schema fields without verbose descriptions.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 556`** (1 nodes): `Return whether the executor owns an HTML-first PDF review chain.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 557`** (1 nodes): `Declare the no-fallback, validated-PDF completion contract.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 558`** (1 nodes): `Repair and re-review until this local cycle passes or must continue.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 559`** (1 nodes): `Return one routine retry or two retries for governed high-risk output.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 560`** (1 nodes): `Hash a failed tool result without retaining its potentially sensitive body.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 561`** (1 nodes): `Allow repository test commands even when test names mention governed domains.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 562`** (1 nodes): `Append omitted tool media directives, then stage unsafe local paths.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 563`** (1 nodes): `Collapse repeated MEDIA lines that point to the same artifact bytes.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 564`** (1 nodes): `Repeated visual failures must cause new repairs, not a final failure.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 565`** (1 nodes): `A bounded local cycle must hand off another repair, never a final failure.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 566`** (1 nodes): `A pass-like transition is not final validation evidence.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 567`** (1 nodes): `Run one complete user turn through model calls, tools, and finalization.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 568`** (1 nodes): `Run a tiny introspection command inside the active terminal backend.      Return`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 569`** (1 nodes): `Test helper — drop the backend probe cache so monkeypatched backends take effect`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 570`** (1 nodes): `Drop the in-process skills prompt cache (and optionally the disk snapshot).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 571`** (1 nodes): `Build an mtime/size manifest of all SKILL.md and DESCRIPTION.md files.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 572`** (1 nodes): `Load the disk snapshot if it exists and its manifest still matches.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 573`** (1 nodes): `Persist skill metadata to disk for fast cold-start reuse.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 574`** (1 nodes): `Build a serialisable metadata dict for one skill.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 575`** (1 nodes): `Read a SKILL.md once and return platform compatibility, frontmatter, and descrip`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 576`** (1 nodes): `Return False if the skill's conditional activation rules exclude it.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 577`** (1 nodes): `Build a compact skill index for the system prompt.      Two-layer cache:       1`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 578`** (1 nodes): `Build a compact Nous subscription capability block for the system prompt.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 579`** (1 nodes): `Head/tail truncation with a marker in the middle.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 580`** (1 nodes): `Load SOUL.md from MIHO_HOME and return its content, or None.      Used as the ag`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 581`** (1 nodes): `.miho.md / MIHO.md — walk to git root.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 582`** (1 nodes): `AGENTS.md — top-level only (no recursive walk).`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 583`** (1 nodes): `CLAUDE.md / claude.md — cwd only.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 584`** (1 nodes): `.cursorrules + .cursor/rules/*.mdc — cwd only.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 585`** (1 nodes): `Discover and load context files for the system prompt.      Priority (first foun`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 586`** (1 nodes): `Finalize one turn and build the public result payload.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 587`** (1 nodes): `Keep replayed assistant history identical to the delivered answer.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 588`** (1 nodes): `Handle a model response with no tool calls.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 589`** (1 nodes): `Remove private control-loop messages before persisting/finalizing a turn.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 590`** (1 nodes): `Accept only fully reviewed final PDFs.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 591`** (1 nodes): `Return the strongest trusted PDF from the latest user turn.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 592`** (1 nodes): `Latch a trusted PDF while the turn is still running.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 593`** (1 nodes): `Build a deterministic user response that platform adapters can attach.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 594`** (1 nodes): `Revalidate a latched artifact against its original signed bytes.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 595`** (1 nodes): `Consume a filter-created reservation at the native upload boundary.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 596`** (1 nodes): `Ask an auxiliary LLM for a concise gateway progress message.      Parameters`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 597`** (1 nodes): `Return user-safe copy based on an actual activity timestamp.      Tool names, it`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 598`** (1 nodes): `Return zero while an executor-owned tool is still running.      The outer agent`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 599`** (1 nodes): `Synchronize ``MIHO_SESSION_ID`` across ContextVar and ``os.environ``.      Long-`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 600`** (1 nodes): `Set all session context variables and return reset tokens.      Call ``clear_ses`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 601`** (1 nodes): `Mark session context variables as explicitly cleared.      Sets all variables to`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 602`** (1 nodes): `Read a session context variable by its legacy ``MIHO_SESSION_*`` name.      Drop`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 603`** (1 nodes): `Set a shortlist, or restore original inventory selection with ``None``.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 604`** (1 nodes): `Return ``None`` before routing, or the routed shortlist afterwards.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 605`** (1 nodes): `Render the lightweight prompt injected for a Discord turn.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 606`** (1 nodes): `Per-turn routing memory policy.      The policy reads plugin-provided structured`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 607`** (1 nodes): `Choose a decisive candidate using memory-backed tool-first policy.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 608`** (1 nodes): `Append hidden media directives found in tool results when missing.      The plat`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 609`** (1 nodes): `Create the channel/thread workspace and return its paths.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 610`** (1 nodes): `Persist a Discord message and return a compact RAG prompt block.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 611`** (1 nodes): `Persist Miho's final Discord response into the workspace RAG.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 612`** (1 nodes): `Wait through one phase checkpoint until completion or a safety deadline.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 613`** (1 nodes): `Resolve the configurable absolute ceiling without shortening the phase.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 614`** (1 nodes): `Resolve the short repair grace after an inactivity checkpoint.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 615`** (1 nodes): `Resolve inactivity cutoff; zero explicitly keeps inactivity unlimited.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 616`** (1 nodes): `Return one routine retry or two retries for governed high-risk output.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 617`** (1 nodes): `Hash a failed tool result without retaining its potentially sensitive body.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 618`** (1 nodes): `Apply a receipt after membership checks; never inspect prompt text.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 619`** (1 nodes): `Return a non-applying route when no validated planner receipt exists.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 620`** (1 nodes): `Compatibility API: only a structured receipt may select a route.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 621`** (1 nodes): `Validate catalog membership without interpreting the user's words.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 622`** (1 nodes): `Keep an opaque model-authored workflow key without persisting prose.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 623`** (1 nodes): `Remove model-added fields that the selected tool cannot accept.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 624`** (1 nodes): `Lazy bridge avoids loading the Governance plugin during route import.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 625`** (1 nodes): `Apply the selected tool policy and bounded per-turn call budget.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 626`** (1 nodes): `Return a wall limit only for explicitly bounded runtime roles.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 627`** (1 nodes): `Leave a privacy-safe continuation signal without changing model pins.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 628`** (1 nodes): `Keep an opaque model-authored workflow key without persisting prose.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 629`** (1 nodes): `Accept only fully reviewed final PDFs.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 630`** (1 nodes): `Return the strongest trusted PDF from the latest user turn.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 631`** (1 nodes): `Latch a trusted PDF while the turn is still running.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 632`** (1 nodes): `Build a deterministic user response that platform adapters can attach.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.
- **Thin community `Community 633`** (1 nodes): `Revalidate a latched artifact against its original signed bytes.`
  Too small to be a meaningful cluster - may be noise or needs more connections extracted.

## Suggested Questions
_Questions this graph is uniquely positioned to answer:_

- **Why does `strip()` connect `Community 2` to `Community 0`, `Community 1`, `Community 3`, `Community 4`, `Community 5`, `Community 6`, `Community 7`, `Community 8`, `Community 9`, `Community 10`, `Community 11`, `Community 12`, `Community 13`, `Community 14`, `Community 15`, `Community 16`, `Community 17`, `Community 18`, `Community 19`, `Community 20`, `Community 21`, `Community 22`, `Community 23`, `Community 24`, `Community 25`, `Community 26`, `Community 27`, `Community 28`, `Community 29`, `Community 30`, `Community 31`, `Community 32`, `Community 33`, `Community 34`, `Community 35`, `Community 36`, `Community 37`, `Community 38`, `Community 39`, `Community 40`, `Community 41`, `Community 42`, `Community 43`, `Community 44`, `Community 45`, `Community 46`, `Community 47`, `Community 48`, `Community 49`, `Community 50`, `Community 51`, `Community 52`, `Community 53`, `Community 54`, `Community 56`, `Community 59`, `Community 60`, `Community 63`, `Community 65`, `Community 66`, `Community 70`, `Community 74`, `Community 75`, `Community 77`, `Community 83`, `Community 86`, `Community 102`, `Community 103`?**
  _High betweenness centrality (0.102) - this node is a cross-community bridge._
- **Why does `append()` connect `Community 2` to `Community 0`, `Community 1`, `Community 3`, `Community 4`, `Community 5`, `Community 6`, `Community 7`, `Community 8`, `Community 9`, `Community 10`, `Community 11`, `Community 12`, `Community 13`, `Community 14`, `Community 15`, `Community 16`, `Community 17`, `Community 18`, `Community 19`, `Community 20`, `Community 21`, `Community 22`, `Community 23`, `Community 24`, `Community 25`, `Community 26`, `Community 27`, `Community 28`, `Community 29`, `Community 30`, `Community 31`, `Community 32`, `Community 33`, `Community 34`, `Community 35`, `Community 36`, `Community 37`, `Community 38`, `Community 39`, `Community 40`, `Community 41`, `Community 42`, `Community 43`, `Community 44`, `Community 45`, `Community 46`, `Community 47`, `Community 48`, `Community 49`, `Community 50`, `Community 51`, `Community 52`, `Community 53`, `Community 55`, `Community 56`, `Community 57`, `Community 59`, `Community 60`, `Community 63`, `Community 66`, `Community 71`, `Community 73`, `Community 77`, `Community 86`, `Community 101`?**
  _High betweenness centrality (0.069) - this node is a cross-community bridge._
- **Why does `AIAgent` connect `Community 7` to `Community 0`, `Community 1`, `Community 2`, `Community 3`, `Community 4`, `Community 5`, `Community 6`, `Community 8`, `Community 9`, `Community 10`, `Community 11`, `Community 12`, `Community 13`, `Community 14`, `Community 15`, `Community 16`, `Community 18`, `Community 19`, `Community 20`, `Community 21`, `Community 23`, `Community 24`, `Community 26`, `Community 28`, `Community 29`, `Community 30`, `Community 35`, `Community 36`, `Community 45`, `Community 53`, `Community 72`, `Community 86`, `Community 87`?**
  _High betweenness centrality (0.035) - this node is a cross-community bridge._
- **Are the 6193 inferred relationships involving `str` (e.g. with `_process_single_prompt()` and `.run()`) actually correct?**
  _`str` has 6193 INFERRED edges - model-reasoned connections that need verification._
- **Are the 5636 inferred relationships involving `PlatformConfig` (e.g. with `Send Message Tool -- cross-channel messaging via platform APIs.` and `Handle cross-channel send_message tool calls.`) actually correct?**
  _`PlatformConfig` has 5636 INFERRED edges - model-reasoned connections that need verification._
- **Are the 5413 inferred relationships involving `Platform` (e.g. with `_AsyncHttpxDelNeuter` and `_SkinAwareAnsi`) actually correct?**
  _`Platform` has 5413 INFERRED edges - model-reasoned connections that need verification._
- **Are the 3481 inferred relationships involving `MessageEvent` (e.g. with `DiscordAdapter` and `Check if Discord dependencies are available.      Lazy-installs discord.py via ``) actually correct?**
  _`MessageEvent` has 3481 INFERRED edges - model-reasoned connections that need verification._