[{"data":1,"prerenderedAt":596},["ShallowReactive",2],{"\u002Fblog\u002F2026-01-23-release-v0-55-0":3},{"id":4,"title":5,"author":6,"body":7,"coverImage":579,"createdAt":580,"description":581,"excerpt":582,"extension":583,"meta":584,"navigation":585,"path":586,"readingTime":587,"seo":592,"stem":593,"subtitle":582,"useFirstImageAsCover":594,"__hash__":595},"blog\u002Fblog\u002F2026-01-23-release-v0-55-0.md","Caido v0.55.0","Ian Bouchard",{"type":8,"value":9,"toc":565},"minimark",[10,19,24,31,34,44,48,54,58,61,65,70,194,198,250,254,378,382,480,484],[11,12,13,14,18],"p",{},"This release introduces workflow string interpolation, a new ",[15,16,17],"code",{},"extra"," field to pass data to JS workflow nodes, import\u002Fexport capabilities for Match & Replace and Findings, and more SDK functionality for better plugin integration.",[20,21,23],"h2",{"id":22},"workflow-string-interpolation","🔥 Workflow String Interpolation",[11,25,26,27,30],{},"Workflows now support string interpolation using ",[15,28,29],{},"\u003C% %>"," syntax, allowing you to dynamically insert values into workflow node text fields.",[11,32,33],{},"Example: You can use this syntax to inject the HTTP method from a previous step directly into a Finding description:",[35,36,41],"pre",{"className":37,"code":39,"language":40},[38],"language-text","The server returns 200 when passing the HTTP method: \u003C% my_node_alias.request.getMethod() %>\n","text",[15,42,39],{"__ignoreMap":43},"",[20,45,47],{"id":46},"️-new-extra-input-in-javascript-nodes","🛠️ New Extra Input in Javascript Nodes",[11,49,50,51,53],{},"JavaScript nodes now support an ",[15,52,17],{}," input field. This allows you to easily pass multiple inputs into the JS node and perform more complex operations.",[20,55,57],{"id":56},"importexport-match-replace-rules-and-findings","📤 Import\u002FExport Match & Replace Rules and Findings",[11,59,60],{},"You can now import and export Match & Replace collections and Findings to share rules and findings with your team, between instances and between projects.",[20,62,64],{"id":63},"developer-features","👩‍💻 Developer Features",[66,67,69],"h3",{"id":68},"frontend-sdk","🎨 Frontend SDK",[71,72,73],"ul",{},[74,75,76,77],"li",{},"Added the following functionality:\n",[71,78,79,84,89,94,99,104,109,114,119,124,129,134,139,144,149,154,159,164,169,174,179,184,189],{},[74,80,81],{},[15,82,83],{},"sdk.ai.getUpstreamProviders()",[74,85,86],{},[15,87,88],{},"sdk.automate.addResponseViewMode()",[74,90,91],{},[15,92,93],{},"sdk.automate.getSessions()",[74,95,96],{},[15,97,98],{},"sdk.automate.getEntries()",[74,100,101],{},[15,102,103],{},"sdk.automate.addEntryIndicator()",[74,105,106],{},[15,107,108],{},"sdk.files.onUploadedHostedFile()",[74,110,111],{},[15,112,113],{},"sdk.files.onUpdatedHostedFile()",[74,115,116],{},[15,117,118],{},"sdk.files.onDeletedHostedFile()",[74,120,121],{},[15,122,123],{},"sdk.findings.addResponseViewMode()",[74,125,126],{},[15,127,128],{},"sdk.httpHistory.addResponseViewMode()",[74,130,131],{},[15,132,133],{},"sdk.intercept.addResponseViewMode()",[74,135,136],{},[15,137,138],{},"sdk.matchReplace.addRuleIndicator()",[74,140,141],{},[15,142,143],{},"sdk.replay.addResponseViewMode()",[74,145,146],{},[15,147,148],{},"sdk.replay.addSessionIndicator()",[74,150,151],{},[15,152,153],{},"sdk.search.addResponseViewMode()",[74,155,156],{},[15,157,158],{},"sdk.settings.addToSlot()",[74,160,161],{},[15,162,163],{},"sdk.sitemap.onEntryChildStateUpdate()",[74,165,166],{},[15,167,168],{},"sdk.sitemap.getTreeEntries()",[74,170,171],{},[15,172,173],{},"sdk.sitemap.getChildren()",[74,175,176],{},[15,177,178],{},"sdk.sitemap.addResponseViewMode()",[74,180,181],{},[15,182,183],{},"sdk.sitemap.addEntryIndicator()",[74,185,186],{},[15,187,188],{},"sdk.window.getContext()",[74,190,191],{},[15,192,193],{},"sdk.window.onContextChange()",[66,195,197],{"id":196},"️-backend-sdk","🛠️ Backend SDK",[71,199,200,240],{},[74,201,202,203],{},"Added the following functionality:",[71,204,205,210,215,220,225,230,235],{},[74,206,207],{},[15,208,209],{},"sdk.events.onUpstream()",[74,211,212],{},[15,213,214],{},"sdk.meta.id()",[74,216,217],{},[15,218,219],{},"sdk.net.connect()",[74,221,222],{},[15,223,224],{},"RequestSpec.getInfo()",[74,226,227],{},[15,228,229],{},"RequestSpec.getUrl()",[74,231,232],{},[15,233,234],{},"RequestSpecRaw.getInfo()",[74,236,237],{},[15,238,239],{},"RequestSpecRaw.toSpec()",[74,241,242,243],{},"Added the following modules:",[71,244,245],{},[74,246,247],{},[15,248,249],{},"https",[20,251,253],{"id":252},"features","🔥 Features",[71,255,256,266,274,282,290,298,306,314,322,330,338,346,354,362,370],{},[74,257,258,265],{},[259,260,264],"a",{"href":261,"rel":262},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2007",[263],"nofollow","#2007",": Conditional view modes in frontend SDK",[74,267,268,273],{},[259,269,272],{"href":270,"rel":271},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F457",[263],"#457",": Export\u002Fimport Match & Replace collections",[74,275,276,281],{},[259,277,280],{"href":278,"rel":279},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F1008",[263],"#1008",": Output from Shell node into JS Node",[74,283,284,289],{},[259,285,288],{"href":286,"rel":287},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F1017",[263],"#1017",": Specify a default collection for \"Send to replay\"",[74,291,292,297],{},[259,293,296],{"href":294,"rel":295},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F1305",[263],"#1305",": Templating Inside of Description for Create Finding Workflow Node",[74,299,300,305],{},[259,301,304],{"href":302,"rel":303},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F1452",[263],"#1452",": Findings - String Interpolation in Finding Description",[74,307,308,313],{},[259,309,312],{"href":310,"rel":311},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F1801",[263],"#1801",": Save the state of expanded nodes in the Sitemap",[74,315,316,321],{},[259,317,320],{"href":318,"rel":319},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F1820",[263],"#1820",": Add custom view modes for response editors",[74,323,324,329],{},[259,325,328],{"href":326,"rel":327},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F1887",[263],"#1887",": Add option to disable SSL verification in plugin backend fetch",[74,331,332,337],{},[259,333,336],{"href":334,"rel":335},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F1994",[263],"#1994",": Get the currently selected request ID",[74,339,340,345],{},[259,341,344],{"href":342,"rel":343},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2000",[263],"#2000",": SDK function to add icons in replay tree view",[74,347,348,353],{},[259,349,352],{"href":350,"rel":351},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2013",[263],"#2013",": Import \u002F Export Findings",[74,355,356,361],{},[259,357,360],{"href":358,"rel":359},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2014",[263],"#2014",": Frontend SDK: a way to check if user has AI api keys setup & validate them",[74,363,364,369],{},[259,365,368],{"href":366,"rel":367},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2041",[263],"#2041",": Allow plugins to modify upstream request and connection",[74,371,372,377],{},[259,373,376],{"href":374,"rel":375},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2044",[263],"#2044",": Add optional usage analytics",[20,379,381],{"id":380},"bug-fixes","🐛 Bug Fixes",[71,383,384,392,400,408,416,424,432,440,448,456,464,472],{},[74,385,386,391],{},[259,387,390],{"href":388,"rel":389},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F1608",[263],"#1608",": Race condition when replay task is completed before startTask ends",[74,393,394,399],{},[259,395,398],{"href":396,"rel":397},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F1304",[263],"#1304",": Get Data Out of Shell Node",[74,401,402,407],{},[259,403,406],{"href":404,"rel":405},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F1553",[263],"#1553",": Sitemap slow with domains",[74,409,410,415],{},[259,411,414],{"href":412,"rel":413},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F1584",[263],"#1584",": Scope update fails silently",[74,417,418,423],{},[259,419,422],{"href":420,"rel":421},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F1892",[263],"#1892",": Missing style sanitization in finding description preview",[74,425,426,431],{},[259,427,430],{"href":428,"rel":429},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F1947",[263],"#1947",": Shift + enter should add a newline in httpql search bar",[74,433,434,439],{},[259,435,438],{"href":436,"rel":437},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F1986",[263],"#1986",": Overlap of component in findings",[74,441,442,447],{},[259,443,446],{"href":444,"rel":445},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2005",[263],"#2005",": Unable to delete uploaded files with failed status",[74,449,450,455],{},[259,451,454],{"href":452,"rel":453},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2020",[263],"#2020",": Broken link in login page",[74,457,458,463],{},[259,459,462],{"href":460,"rel":461},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2042",[263],"#2042",": Replay History selection doesn't persist on reload",[74,465,466,471],{},[259,467,470],{"href":468,"rel":469},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2050",[263],"#2050",": Client Hello with magic bytes other than 0x16 0x03 0x01 do not work",[74,473,474,479],{},[259,475,478],{"href":476,"rel":477},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2052",[263],"#2052",": Placeholder range doesn't update with body",[20,481,483],{"id":482},"patches","Patches",[71,485,486,501,544],{},[74,487,488,492,493],{},[489,490,491],"strong",{},"0.55.1",":",[71,494,495,498],{},[74,496,497],{},"Fixes an issue where Ctrl+F does not show the editor search pane",[74,499,500],{},"Fixes an issue where the user settings would be reset",[74,502,503,492,506],{},[489,504,505],{},"0.55.2",[71,507,508,520,528,536],{},[74,509,510,515,516,519],{},[259,511,514],{"href":512,"rel":513},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2070",[263],"#2070",": Checkboxes for the ",[15,517,518],{},"Options"," in Replay Are Unresponsive",[74,521,522,527],{},[259,523,526],{"href":524,"rel":525},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2071",[263],"#2071",": Command palette go to X is broken",[74,529,530,535],{},[259,531,534],{"href":532,"rel":533},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2075",[263],"#2075",": Projects with secrets environment variables cannot be imported on another instance",[74,537,538,543],{},[259,539,542],{"href":540,"rel":541},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2078",[263],"#2078",": Windows certificate rotation",[74,545,546,492,549],{},[489,547,548],{},"0.55.3",[71,550,551,554,557],{},[74,552,553],{},"Fixed an issue with long-running instances where the sync-service would consume more resources than intended",[74,555,556],{},"Fixed an issue causing large responses to freeze the app",[74,558,559,564],{},[259,560,563],{"href":561,"rel":562},"https:\u002F\u002Fgithub.com\u002Fcaido\u002Fcaido\u002Fissues\u002F2072",[263],"#2072",": Replay delay when sending requests",{"title":43,"searchDepth":566,"depth":566,"links":567},2,[568,569,570,571,576,577,578],{"id":22,"depth":566,"text":23},{"id":46,"depth":566,"text":47},{"id":56,"depth":566,"text":57},{"id":63,"depth":566,"text":64,"children":572},[573,575],{"id":68,"depth":574,"text":69},3,{"id":196,"depth":574,"text":197},{"id":252,"depth":566,"text":253},{"id":380,"depth":566,"text":381},{"id":482,"depth":566,"text":483},"\u002F__og-image__\u002Fstatic\u002Fblog\u002F2026-01-23-release-v0-55-0\u002Fog.png","2026-01-23","Release Notes",null,"md",{},true,"\u002Fblog\u002F2026-01-23-release-v0-55-0",{"text":588,"minutes":589,"time":590,"words":591},"3 min read",2.185,131100,437,{"title":5,"description":581},"blog\u002F2026-01-23-release-v0-55-0",false,"ZQdpr__MXsTBk5AYReLxEnOjXv45EjJeOrhCuPBqEfs",1779975412459]