[{"data":1,"prerenderedAt":1288},["ShallowReactive",2],{"navigation_docs":3,"-contributing-gaps":172,"-contributing-gaps-surround":1283},[4,30,100,134],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":29},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,14,18,21,25],{"title":11,"path":12,"stem":13},"Introduction","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction",{"title":15,"path":16,"stem":17},"Installation","\u002Fgetting-started\u002Finstallation","1.getting-started\u002F2.installation",{"title":5,"path":19,"stem":20},"\u002Fgetting-started\u002Fquick-start","1.getting-started\u002F3.quick-start",{"title":22,"path":23,"stem":24},"Build from source","\u002Fgetting-started\u002Fbuild-from-source","1.getting-started\u002F4.build-from-source",{"title":26,"path":27,"stem":28},"Troubleshooting","\u002Fgetting-started\u002Ftroubleshooting","1.getting-started\u002F5.troubleshooting",false,{"title":31,"icon":32,"path":33,"stem":34,"children":35,"page":29},"Guide","i-lucide-book-open","\u002Fguide","2.guide",[36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96],{"title":37,"path":38,"stem":39},"Interface","\u002Fguide\u002Finterface","2.guide\u002F01.interface",{"title":41,"path":42,"stem":43},"Workspace","\u002Fguide\u002Fworkspace","2.guide\u002F02.workspace",{"title":45,"path":46,"stem":47},"Collections","\u002Fguide\u002Fcollections","2.guide\u002F03.collections",{"title":49,"path":50,"stem":51},"HTTP requests","\u002Fguide\u002Fhttp-requests","2.guide\u002F04.http-requests",{"title":53,"path":54,"stem":55},"Variables","\u002Fguide\u002Fvariables","2.guide\u002F05.variables",{"title":57,"path":58,"stem":59},"Authorization","\u002Fguide\u002Fauthorization","2.guide\u002F06.authorization",{"title":61,"path":62,"stem":63},"Scripts and tests","\u002Fguide\u002Fscripts-and-tests","2.guide\u002F07.scripts-and-tests",{"title":65,"path":66,"stem":67},"Collection runner","\u002Fguide\u002Fcollection-runner","2.guide\u002F08.collection-runner",{"title":69,"path":70,"stem":71},"Import and export","\u002Fguide\u002Fimport-export","2.guide\u002F09.import-export",{"title":73,"path":74,"stem":75},"Code snippets","\u002Fguide\u002Fcode-snippets","2.guide\u002F10.code-snippets",{"title":77,"path":78,"stem":79},"gRPC","\u002Fguide\u002Fgrpc","2.guide\u002F11.grpc",{"title":81,"path":82,"stem":83},"WebSocket","\u002Fguide\u002Fwebsocket","2.guide\u002F12.websocket",{"title":85,"path":86,"stem":87},"Cookies, proxy and certificates","\u002Fguide\u002Fcookies-proxy-certificates","2.guide\u002F13.cookies-proxy-certificates",{"title":89,"path":90,"stem":91},"Settings","\u002Fguide\u002Fsettings","2.guide\u002F14.settings",{"title":93,"path":94,"stem":95},"Keyboard shortcuts","\u002Fguide\u002Fkeyboard-shortcuts","2.guide\u002F15.keyboard-shortcuts",{"title":97,"path":98,"stem":99},"Privacy and security","\u002Fguide\u002Fprivacy-and-security","2.guide\u002F16.privacy-and-security",{"title":101,"icon":102,"path":103,"stem":104,"children":105,"page":29},"Reference","i-lucide-square-terminal","\u002Freference","3.reference",[106,110,114,118,122,126,130],{"title":107,"path":108,"stem":109},"Command line","\u002Freference\u002Fcli","3.reference\u002F1.cli",{"title":111,"path":112,"stem":113},"Automation tools","\u002Freference\u002Fautomation-tools","3.reference\u002F2.automation-tools",{"title":115,"path":116,"stem":117},"Scripting API","\u002Freference\u002Fscripting-api","3.reference\u002F3.scripting-api",{"title":119,"path":120,"stem":121},"Dynamic variables","\u002Freference\u002Fdynamic-variables","3.reference\u002F4.dynamic-variables",{"title":123,"path":124,"stem":125},"UI control channel","\u002Freference\u002Fui-control-channel","3.reference\u002F5.ui-control-channel",{"title":127,"path":128,"stem":129},"Workspace format","\u002Freference\u002Fworkspace-format","3.reference\u002F6.workspace-format",{"title":131,"path":132,"stem":133},"Feature status","\u002Freference\u002Ffeature-status","3.reference\u002F7.feature-status",{"title":135,"icon":136,"path":137,"stem":138,"children":139,"page":29},"Contributing","i-lucide-git-pull-request","\u002Fcontributing","4.contributing",[140,144,148,152,156,160,164,168],{"title":141,"path":142,"stem":143},"Contributing overview","\u002Fcontributing\u002Foverview","4.contributing\u002F1.overview",{"title":145,"path":146,"stem":147},"Development","\u002Fcontributing\u002Fdevelopment","4.contributing\u002F2.development",{"title":149,"path":150,"stem":151},"Architecture","\u002Fcontributing\u002Farchitecture","4.contributing\u002F3.architecture",{"title":153,"path":154,"stem":155},"Known gaps","\u002Fcontributing\u002Fgaps","4.contributing\u002F4.gaps",{"title":157,"path":158,"stem":159},"Adding a feature","\u002Fcontributing\u002Fadding-a-feature","4.contributing\u002F5.adding-a-feature",{"title":161,"path":162,"stem":163},"Assets and clean-room","\u002Fcontributing\u002Fassets-and-clean-room","4.contributing\u002F6.assets-and-clean-room",{"title":165,"path":166,"stem":167},"Releasing","\u002Fcontributing\u002Freleasing","4.contributing\u002F7.releasing",{"title":169,"path":170,"stem":171},"Writing the documentation","\u002Fcontributing\u002Fdocumentation","4.contributing\u002F8.documentation",{"id":173,"title":153,"body":174,"description":1276,"extension":1277,"links":1278,"meta":1279,"navigation":1280,"path":154,"seo":1281,"stem":155,"__hash__":1282},"docs\u002F4.contributing\u002F4.gaps.md",{"type":175,"value":176,"toc":1269},"minimark",[177,185,188,193,202,522,525,544,548,555,558,584,591,1208,1211,1222,1225],[178,179,180,184],"p",{},[181,182,183],"strong",{},"Status:"," imports, snippets and export dialogs are in. The response-body picker and full zip restore are still open.",[178,186,187],{},"Gaps are ranked by user-visible importance. Prefer them over new P2\u002FP3 features. Each row names the evidence that would close it.",[189,190,192],"h2",{"id":191},"open-ranked","Open (ranked)",[178,194,195,196,201],{},"Gap 8 is closed (see ",[197,198,200],"a",{"href":199},"#closed","Closed","), so the numbering skips it.",[203,204,205,224],"table",{},[206,207,208],"thead",{},[209,210,211,215,218,221],"tr",{},[212,213,214],"th",{},"#",[212,216,217],{},"Gap",[212,219,220],{},"What is wrong",[212,222,223],{},"How to close it",[225,226,227,264,280,300,320,340,363,383,403,419,442,466,506],"tbody",{},[209,228,229,233,238,257],{},[230,231,232],"td",{},"1",[230,234,235],{},[181,236,237],{},"Control-channel synthetic input",[230,239,240,244,245,248,249,252,253,256],{},[241,242,243],"code",{},"--control"," implements inspect\u002Fcommand\u002Fset\u002Fscreenshot. ",[241,246,247],{},"click",", ",[241,250,251],{},"key"," and ",[241,254,255],{},"type"," return a refusal, because safe eframe\u002Fegui has no supported way to inject raw pointer\u002Fkey events into a running app pass.",[230,258,259,260,263],{},"Either a kittest-driven ",[241,261,262],{},"control.rs"," suite over the shell (the honest alternative), or an owner decision on a platform input-injection dependency.",[209,265,266,269,274,277],{},[230,267,268],{},"2",[230,270,271],{},[181,272,273],{},"URL-to-file import",[230,275,276],{},"The brief asks the import box to accept a URL and fetch it only on an explicit user action. The import box refuses with guidance instead (no implicit network).",[230,278,279],{},"Add an explicit Fetch button that uses the engine's capped GET. Show the size and format before importing.",[209,281,282,285,290,297],{},[230,283,284],{},"3",[230,286,287],{},[181,288,289],{},"Zip restore is documents-only",[230,291,292,293,296],{},"All-data export includes files\u002Fprotos\u002Fhistory, but import reads ",[241,294,295],{},".json"," documents and skips the rest.",[230,298,299],{},"Stage entries with path validation. Merge files\u002Fprotos with the same clash rules.",[209,301,302,305,310,317],{},[230,303,304],{},"4",[230,306,307],{},[181,308,309],{},"Response body save picker",[230,311,312,313,316],{},"Save Response writes ",[241,314,315],{},"\u003Cworkspace>\u002Ffiles\u002Fresponse-\u003Ctab>.bin",". The dialog and name suggestion are still missing.",[230,318,319],{},"Add the save dialog and name suggestion.",[209,321,322,325,330,333],{},[230,323,324],{},"5",[230,326,327],{},[181,328,329],{},"Idle RSS over budget",[230,331,332],{},"The release app measured 100.7 MiB RSS on an empty workspace at the last measurement. The budget is 90 MiB. Idle CPU (0.2%) and cold start (~176 ms to first inspect) are inside budget.",[230,334,335,336,339],{},"Profile the eframe\u002Fglow\u002Fengine baseline. Trim loaded state or fonts. Evidence: ",[241,337,338],{},"ps -o rss"," on a release build after 3 s idle.",[209,341,342,345,350,356],{},[230,343,344],{},"6",[230,346,347],{},[181,348,349],{},"10 MB Pretty is disabled",[230,351,352,355],{},[241,353,354],{},"PRETTY_CAP"," is 5 MB, and Pretty formats on the UI thread when under it. The budget asks for a 10 MB Pretty view in \u003C= 1.5 s off-thread. Raw is virtualised and measured (first frame 10 ms).",[230,357,358,359,362],{},"Format off-thread, add a formatting indicator and raise the cap. Evidence: the ",[241,360,361],{},"response.pretty_ms"," bench metric.",[209,364,365,368,373,376],{},[230,366,367],{},"7",[230,369,370],{},[181,371,372],{},"Console virtualisation",[230,374,375],{},"The engine ring buffer masks secrets and caps at 5000 entries, but the panel lays out every filtered row in one ScrollArea.",[230,377,378,379,382],{},"Use ",[241,380,381],{},"show_rows",". Add a 5000-row frame-time test.",[209,384,385,388,393,400],{},[230,386,387],{},"9",[230,389,390],{},[181,391,392],{},"Header case on the wire",[230,394,395,396,399],{},"hyper writes header names lowercase (",[241,397,398],{},"http::HeaderName","). The case the user typed is not preserved.",[230,401,402],{},"Confirm whether this differs observably from Postman via observation request 2 (echo server headers). Then either document the behaviour (the CLI or scripting reference pages), or implement a raw serializer if the owner decides it matters.",[209,404,405,408,413,416],{},[230,406,407],{},"10",[230,409,410],{},[181,411,412],{},"Cold start with 10 restored tabs not measured",[230,414,415],{},"Empty-workspace first inspect is ~176 ms. The budget's 10-tab session needs a synthetic session fixture and the same measurement.",[230,417,418],{},"Add the fixture and measure.",[209,420,421,424,429,436],{},[230,422,423],{},"11",[230,425,426],{},[181,427,428],{},"Remaining budget metrics",[230,430,431,432,435],{},"Send overhead (click to first byte, last byte to Pretty for 100 KB), 100 MB body, 50 000 timeline messages and Pretty for 10 MB are not in ",[241,433,434],{},"xtask bench"," yet.",[230,437,438,439,441],{},"Add them to ",[241,440,434],{},".",[209,443,444,447,452,459],{},[230,445,446],{},"12",[230,448,449],{},[181,450,451],{},"cargo-deny advisories",[230,453,454,455,458],{},"Licence\u002Fsource checks run locally. ",[241,456,457],{},"RUSTSEC"," advisories need cargo-deny installed or CI's cargo-deny-action (runs in CI now).",[230,460,461,462,465],{},"The owner approves the install. ",[241,463,464],{},"xtask deny"," then delegates.",[209,467,468,471,476,500],{},[230,469,470],{},"13",[230,472,473],{},[181,474,475],{},"Fuzz coverage",[230,477,478,248,481,248,484,248,487,248,490,248,493,252,496,499],{},[241,479,480],{},"url",[241,482,483],{},"vars",[241,485,486],{},"curl",[241,488,489],{},"script",[241,491,492],{},"data",[241,494,495],{},"openapi",[241,497,498],{},"har"," targets run. The Postman importer and cookie parser still need targets.",[230,501,502,505],{},[241,503,504],{},"cargo xtask fuzz --time 300"," runs the full registry clean.",[209,507,508,511,516,519],{},[230,509,510],{},"14",[230,512,513],{},[181,514,515],{},"Observation requests 1-3",[230,517,518],{},"Postman defaults (auto headers, settings defaults, shortcuts) are unverified until the owner runs them with synthetic data.",[230,520,521],{},"Items that depend on them keep their parity notes unverified until then.",[178,523,524],{},"Additional leftovers, ranked below the gaps above:",[526,527,528,532,535,538,541],"ul",{},[529,530,531],"li",{},"Cookies manager add\u002Fedit and templates.",[529,533,534],{},"The Save Response example picker and 5 MB example cap.",[529,536,537],{},"Splitter position and two-pane persistence in the session.",[529,539,540],{},"Shortcut-conflict checking.",[529,542,543],{},"History day grouping.",[189,545,547],{"id":546},"postman-v12-feature-investigation-matrix","Postman v12 feature investigation matrix",[178,549,550,551,554],{},"This table maps every area the Postman v12 documentation index lists (",[241,552,553],{},"https:\u002F\u002Flearning.postman.com\u002Fllms.txt",", read 2026-02) to what Postguy has.",[178,556,557],{},"Statuses use the parity vocabulary:",[526,559,560,566,572,578],{},[529,561,562,565],{},[241,563,564],{},"shipped",": usable today, with a cited test.",[529,567,568,571],{},[241,569,570],{},"partial",": part exists. The notes say what is missing.",[529,573,574,577],{},[241,575,576],{},"planned",": not started.",[529,579,580,583],{},[241,581,582],{},"na",": deliberately out of scope for an offline app.",[178,585,586,587,590],{},"The authoritative per-feature record is ",[241,588,589],{},"parity\u002Fpostman-features.toml",". Use this table as the reading order when you decide what to build next.",[203,592,593,606],{},[206,594,595],{},[209,596,597,600,603],{},[212,598,599],{},"Postman v12 doc area",[212,601,602],{},"Postguy status",[212,604,605],{},"Where it stands",[225,607,608,632,657,676,710,725,740,754,785,806,830,846,875,887,905,941,965,984,1025,1041,1056,1074,1086,1098,1109,1128,1139,1166,1178,1190],{},[209,609,610,613,617],{},[230,611,612],{},"Get started: workbench, install, quick start, system requirements",[230,614,615],{},[181,616,570],{},[230,618,619,248,622,248,625,628,629,631],{},[241,620,621],{},"h.window",[241,623,624],{},"h.tabs",[241,626,627],{},"h.sidebar"," are shipped; local workbench is complete. Sign-up\u002Fsign-in and cloud onboarding are ",[241,630,582],{}," (no account, no network without a user action)",[209,633,634,637,641],{},[230,635,636],{},"Send requests: request builder, params, headers, body modes",[230,638,639],{},[181,640,564],{},[230,642,643,248,646,248,649,652,653,656],{},[241,644,645],{},"c.body-modes",[241,647,648],{},"c.params-tab",[241,650,651],{},"c.headers-tab","; per-request settings shipped (",[241,654,655],{},"c.settings-tab",")",[209,658,659,662,666],{},[230,660,661],{},"API authentication and authorization",[230,663,664],{},[181,665,570],{},[230,667,668,669,248,672,675],{},"Basic\u002FBearer\u002FAPI key\u002FDigest\u002FJWT\u002FOAuth 1.0\u002FOAuth 2.0\u002FAWS Sig v4\u002FHawk applied (",[241,670,671],{},"c.auth-p0",[241,673,674],{},"c.auth-m5","). Missing: implicit grant and the Manage-tokens screen",[209,677,678,681,685],{},[230,679,680],{},"Variables, environments, globals, dynamic values",[230,682,683],{},[181,684,564],{},[230,686,687,248,690,248,693,248,696,248,699,702,703,706,707],{},[241,688,689],{},"b.environments-crud",[241,691,692],{},"b.globals",[241,694,695],{},"b.resolution",[241,697,698],{},"b.dynamic-variables",[241,700,701],{},"b.secrets",". Remaining polish is ",[241,704,705],{},"b.chips-and-autocomplete","'s popover actions and ",[241,708,709],{},"b.set-as-variable",[209,711,712,715,719],{},[230,713,714],{},"Response data and the response viewer",[230,716,717],{},[181,718,570],{},[230,720,721,724],{},[241,722,723],{},"c.response-viewer",": Pretty\u002FRaw\u002FPreview\u002FHex, syntax colours, search tint, save\u002Fcopy. Open: image previews, regex\u002Fwhole-word search",[209,726,727,730,734],{},[230,728,729],{},"Debug API requests (console, troubleshooting)",[230,731,732],{},[181,733,570],{},[230,735,736,739],{},[241,737,738],{},"h.console"," (filters, masking, ring buffer). Open: virtualised scrolling, request\u002Fresponse body inspector",[209,741,742,745,749],{},[230,743,744],{},"GraphQL requests",[230,746,747],{},[181,748,564],{},[230,750,751,753],{},[241,752,645],{},": query\u002Fvariables\u002Foperation editors, schema introspection with Refresh",[209,755,756,759,763],{},[230,757,758],{},"gRPC requests",[230,760,761],{},[181,762,570],{},[230,764,765,248,768,248,771,248,774,252,777,780,781,784],{},[241,766,767],{},"d.unary-invoke",[241,769,770],{},"d.reflection",[241,772,773],{},"d.method-selector",[241,775,776],{},"d.metadata",[241,778,779],{},"d.streaming"," work through descriptors; the request tab has a grouped method picker, a Service definition tab (reflection listing or a picked ",[241,782,783],{},".proto","), unknown-key highlighting in the message editor, auth, metadata, request-level scripts and the Test tab. Proto-aware completion, interactive streaming, trailers and the grpcurl snippet are not implemented yet",[209,786,787,790,794],{},[230,788,789],{},"WebSocket requests",[230,791,792],{},[181,793,570],{},[230,795,796,248,799,248,802,805],{},[241,797,798],{},"e.connect",[241,800,801],{},"e.subprotocols",[241,803,804],{},"e.timeline","; binary composers, saved messages and reconnect policy are not implemented yet",[209,807,808,815,819],{},[230,809,810,811,656],{},"MCP requests (Postman as an MCP ",[812,813,814],"em",{},"client",[230,816,817],{},[181,818,582],{},[230,820,821,822,825,826,829],{},"Not in the brief. Postguy ships the opposite direction: an opt-in MCP ",[812,823,824],{},"server"," (",[241,827,828],{},"f.mcp",") so agents can drive it",[209,831,832,835,839],{},[230,833,834],{},"AI requests \u002F Agent Mode \u002F Postbot",[230,836,837],{},[181,838,582],{},[230,840,841,842,845],{},"Offline by design: no model endpoint, no telemetry. The local equivalent is the ",[241,843,844],{},"automation"," tool table an agent already drives",[209,847,848,851,855],{},[230,849,850],{},"Collections and folders",[230,852,853],{},[181,854,564],{},[230,856,857,248,860,248,863,248,866,248,869,248,872],{},[241,858,859],{},"a.tree-view",[241,861,862],{},"a.create-organise",[241,864,865],{},"a.keyboard-and-multiselect",[241,867,868],{},"a.filter",[241,870,871],{},"a.collection-auth",[241,873,874],{},"a.overview-tab",[209,876,877,880,884],{},[230,878,879],{},"Native Git",[230,881,882],{},[181,883,582],{},[230,885,886],{},"A Postguy workspace is plain files in a folder, so any Git client versions it; a built-in Git UI is not planned",[209,888,889,892,896],{},[230,890,891],{},"Postman Vault (cloud secrets)",[230,893,894],{},[181,895,582],{},[230,897,898,899,902,903,656],{},"Local equivalent: ",[241,900,901],{},".postguy\u002Fsecrets.json"," at 0600 with masking (",[241,904,701],{},[209,906,907,910,914],{},[230,908,909],{},"Tests, scripts and assertions",[230,911,912],{},[181,913,570],{},[230,915,916,248,919,922,923,926,927,930,931,248,934,252,937,940],{},[241,917,918],{},"f.expect",[241,920,921],{},"f.sandbox-hardening",", the request Tests tab (assertions plus test script, ",[241,924,925],{},"f.tests-tab",") and ",[241,928,929],{},"pg","\u002FBruno-global scripting are shipped, and gRPC requests run their own scripts and Test tab; ",[241,932,933],{},"f.scripts",[241,935,936],{},"f.test-results",[241,938,939],{},"f.script-ui"," are partial (WebSocket script phases, re-running tests from a saved response and autocomplete are missing)",[209,942,943,946,950],{},[230,944,945],{},"Collection Runner and data-driven runs",[230,947,948],{},[181,949,564],{},[230,951,952,248,955,958,959,962,963],{},[241,953,954],{},"f.runner",[241,956,957],{},"a.runs-tab","; sequential order, iterations, CSV\u002FJSON data, delay, stop-on-error, ",[241,960,961],{},"setNextRequest","; runs read one collection snapshot and write no history; CSV\u002FXLSX\u002FPDF reports; gRPC and WebSocket requests are skipped. Performance\u002Fload testing (Postman's cloud runners) is ",[241,964,582],{},[209,966,967,970,974],{},[230,968,969],{},"Postman CLI \u002F Newman: run collections from CI",[230,971,972],{},[181,973,564],{},[230,975,976,979,980,983],{},[241,977,978],{},"f.runner-cli"," with cli\u002Fjson\u002Fjunit\u002Fhtml\u002Fcsv\u002Fxlsx\u002Fpdf reporters and exit codes 0\u002F1\u002F2; ",[241,981,982],{},"f.run-script"," drives the engine",[209,985,986,989,993],{},[230,987,988],{},"Import (collections, environments, specs, other clients)",[230,990,991],{},[181,992,570],{},[230,994,995,248,998,248,1001,1004,1005,248,1008,248,1011,248,1014,252,1017,1020,1021,1024],{},[241,996,997],{},"g.postman-collection",[241,999,1000],{},"g.postman-env",[241,1002,1003],{},"g.bruno-import"," (Bruno folders), ",[241,1006,1007],{},"g.curl",[241,1009,1010],{},"g.import-dialog",[241,1012,1013],{},"g.openapi",[241,1015,1016],{},"g.har",[241,1018,1019],{},"g.proto-import"," shipped; external ",[241,1022,1023],{},"$ref","s, callbacks and webhooks in OpenAPI are reported, not imported",[209,1026,1027,1030,1034],{},[230,1028,1029],{},"Export and all-data backup",[230,1031,1032],{},[181,1033,570],{},[230,1035,1036,1037,1040],{},"Postman\u002Fnative export and snippets shipped; ",[241,1038,1039],{},"g.all-data-zip"," exports but document-only restore is open (gap 3); a response-body picker is open (gap 4)",[209,1042,1043,1046,1050],{},[230,1044,1045],{},"Code snippets (cURL, HTTP, fetch, requests, Go, reqwest, PowerShell, axios)",[230,1047,1048],{},[181,1049,564],{},[230,1051,1052,1055],{},[241,1053,1054],{},"g.snippets",", syntax-coloured in the right panel; grpcurl is planned",[209,1057,1058,1061,1065],{},[230,1059,1060],{},"Mock servers and API design (Spec Hub)",[230,1062,1063],{},[181,1064,582],{},[230,1066,1067,1068,1071,1072,656],{},"Running a mock server contradicts \"no listener by default\"; OpenAPI ",[812,1069,1070],{},"import"," is the useful slice and is shipped (",[241,1073,1013],{},[209,1075,1076,1079,1083],{},[230,1077,1078],{},"Monitors, scheduled runs",[230,1080,1081],{},[181,1082,582],{},[230,1084,1085],{},"Needs a scheduler and cloud execution; the CLI runner is the local equivalent",[209,1087,1088,1091,1095],{},[230,1089,1090],{},"Flows (low-code editor)",[230,1092,1093],{},[181,1094,582],{},[230,1096,1097],{},"Out of scope by design",[209,1099,1100,1103,1107],{},[230,1101,1102],{},"API governance, scorecards, catalog",[230,1104,1105],{},[181,1106,582],{},[230,1108,1097],{},[209,1110,1111,1114,1118],{},[230,1112,1113],{},"Documentation and publishing (including \"Run in Postman\")",[230,1115,1116],{},[181,1117,582],{},[230,1119,1120,1121,248,1124,1127],{},"The local description\u002FDocs tab is shipped (",[241,1122,1123],{},"h.detail-tabs",[241,1125,1126],{},"h.builder","); publishing to a public domain needs a service",[209,1129,1130,1133,1137],{},[230,1131,1132],{},"SDK and CLI generators",[230,1134,1135],{},[181,1136,582],{},[230,1138,1097],{},[209,1140,1141,1144,1148],{},[230,1142,1143],{},"Postman API, VS Code extension, plugin marketplace",[230,1145,1146],{},[181,1147,582],{},[230,1149,1150,1151,825,1154,248,1157,1159,1160,1162,1163,656],{},"The local equivalents are ",[241,1152,1153],{},"postguy-cli",[241,1155,1156],{},"f.agent-tools",[241,1158,982],{},"), the opt-in MCP server (",[241,1161,828],{},") and the opt-in UI control channel (",[241,1164,1165],{},"f.ui-control",[209,1167,1168,1171,1175],{},[230,1169,1170],{},"Collaboration, workspaces sharing, version control, webhooks, integrations, Insights",[230,1172,1173],{},[181,1174,582],{},[230,1176,1177],{},"Offline and single-user by design; sharing is \"copy the folder\"",[209,1179,1180,1183,1187],{},[230,1181,1182],{},"Administration, billing, plans, SSO\u002FSCIM, API keys",[230,1184,1185],{},[181,1186,582],{},[230,1188,1189],{},"No accounts",[209,1191,1192,1195,1199],{},[230,1193,1194],{},"Platform: packaging, budgets, accessibility",[230,1196,1197],{},[181,1198,570],{},[230,1200,1201,252,1204,1207],{},[241,1202,1203],{},"i.platform-services",[241,1205,1206],{},"i.packaging"," are open; byte\u002Fbench budgets are enforced but idle RSS is over budget (gap 5)",[178,1209,1210],{},"Two observations from the audit:",[526,1212,1213,1216],{},[529,1214,1215],{},"The script sandbox and the runner are shipped for HTTP requests, and gRPC requests run request-level scripts and tests. WebSocket script phases are the open slice.",[529,1217,1218,1219,1221],{},"Almost every ",[241,1220,582],{}," above is a cloud capability. The offline surface is now short only of auth polish, protocol polish and automation.",[189,1223,200],{"id":1224},"closed",[526,1226,1227,1239,1245,1252,1266],{},[529,1228,1229,1230,248,1233,248,1236,441],{},"Script engine memory and wall-clock limits (was gap 8). rquickjs enforces a heap limit, an interrupt deadline, a stack limit and cancellation. Evidence: ",[241,1231,1232],{},"crates\u002Fscript\u002Ftests\u002Fsandbox.rs::a_memory_bomb_stops_at_the_memory_limit",[241,1234,1235],{},"an_infinite_loop_stops_at_the_wall_clock",[241,1237,1238],{},"deep_recursion_stops_cleanly",[529,1240,1241,1242,1244],{},"10 000-request tree and 10 MB Raw frame-time harness (",[241,1243,434],{},", measured 5.8\u002F10.2 ms on the reference machine).",[529,1246,1247,1248,1251],{},"One minified 10 MB line froze the viewer (a single 10 MB galley). ",[241,1249,1250],{},"LargeTextView"," now splits physical long lines into \u003C= 4 KiB display rows and caches the Raw text per buffer.",[529,1253,1254,1255,1258,1259,1262,1263,441],{},"Shortcut table, control channel (inspect\u002Fcommand\u002Fset\u002Fscreenshot), ",[241,1256,1257],{},"postguy-cli ui",", headless ",[241,1260,1261],{},"shot"," example and ",[241,1264,1265],{},"xtask screenshots",[529,1267,1268],{},"Renderer choice (glow), HTTP stack choice (hyper-direct), large body strategy and the icon\u002Flogo pipeline are settled.",{"title":1270,"searchDepth":1271,"depth":1271,"links":1272},"",2,[1273,1274,1275],{"id":191,"depth":1271,"text":192},{"id":546,"depth":1271,"text":547},{"id":1224,"depth":1271,"text":200},"Ranked open gaps, the feature investigation matrix and what has been closed.","md",null,{},true,{"title":153,"description":1276},"W7nuiizN-1MwSztns7-4alAPVpgAGg0PoKGWNwoHfqM",[1284,1286],{"title":149,"path":150,"stem":151,"description":1285,"children":-1},"The layer table, the rules that hold across crates, the workspace on disk and the measured design decisions.",{"title":157,"path":158,"stem":159,"description":1287,"children":-1},"The path from engine API to automation tool, UI and parity entry, and how to test, fuzz and review it.",1793179614422]