Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>FlotillaNew to Visual Studio Code? Get it now.
Flotilla

Flotilla

Preview

Archipelagic

|
1 install
| (0) | Free
Files, search, version control and Claude Code chats for every git worktree, in one window, on the host and in devcontainers.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Flotilla

Work on several branches at once, each in its own git worktree, from one VS Code window: files, search, version control and Claude Code chats per worktree, and a view of which worktree needs you. Works on Windows, Linux and macOS hosts and in devcontainers, including a host window and a container window open on the same repository at the same time.

Flotilla doesn't replace Claude Code or any other agent. Your chats run in Claude Code as usual; Flotilla links each one to its worktree and shows whether it is working, waiting for you or finished.

Preview: Flotilla is young and changes quickly. Feedback and bug reports are welcome on GitHub.

Features

Flotilla is meant to be your sidebar. Worktree tabs run across its top, like editor tabs: the first, All, shows every worktree at once; the others show one worktree each. The selected tab is the window's active worktree: Ctrl+P lists its files, commands from the palette act on it, new terminals (Flotilla: New Terminal in Active Worktree) start in it, the status bar shows it, and Ctrl+Alt+0…9 switch it (0 is All). Each tab shows the worktree's ticket id (ABC-123, #123) or short name, its color, a dot for its most urgent chat state and its open chats. Close tabs you don't need (×, middle-click or right-click); the worktree stays in the Overview, and opening it there reopens its tab.

A tool strip runs down its left side:

  • Overview: every worktree, most urgent first, with its status, changes, sync state and the question a chat is waiting on. Double-click one to open it; remove worktrees from here or from a tab's context menu.
  • Files: the file tree with git change badges, reveal of the active editor's file, new file and folder (inline, a/b/c.ts creates the folders), rename (F2), delete to the Trash (Delete), cut/copy/paste (also between worktrees) and drag and drop.
  • Search: text search and replace in the active worktree (or all of them on the All tab), with match case, whole word and regex. It searches tracked and untracked files and skips ignored ones.
  • Version Control: like VS Code's Source Control, per worktree: a message box with Commit (and Commit & Push, Commit & Sync, Amend), Publish Branch or Sync Changes, and staged and unstaged changes with stage, unstage and discard.
  • Chats: the Claude Code chats linked to the worktree, with their state (working, waiting for you, finished), New chat and the history of every chat linked to it.

At the bottom of the strip, buttons open VS Code's Run and Debug and Extensions views. To keep a single icon strip, move VS Code's activity bar to the top or hide it (workbench.activityBar.location); Flotilla offers this once (Flotilla: Use Flotilla as the Sidebar…). With it hidden, the Flotilla item in the status bar and Ctrl+Shift+E / F / G bring Flotilla back.

Also:

  • New workstream: from a new, local or remote branch; created at .worktrees/<branch> and set up.
  • Compare a worktree's branch with a base in VS Code's multi-file diff editor.
  • Explorer integration: worktree folders and the changed files inside them carry badges in VS Code's Explorer, with a Flotilla submenu. Add to Workspace shows a worktree as its own Explorer root.
  • Status bar: current workstream, a count of workstreams that need you, and quick switching.
  • Notifications when a workstream starts waiting for input or reports an error.

Host + devcontainer: how it works

Git normally links worktrees with absolute paths, which differ between host (C:\Users\me\repo) and container (/workspaces/repo). Flotilla keeps worktrees inside the repository (.worktrees/, ignored through .git/info/exclude), rewrites each worktree's .git file to a relative path, and locks the worktree so git worktree prune in the other environment never deletes it. It works with git 2.17+ and doesn't need git 2.48's relativeWorktrees extension.

Worktrees created with plain git worktree add inside the repository are adopted automatically (flotilla.autoAdopt). Worktrees outside the repository are listed but only reachable from the environment that can see them.

Tip: if your host converts line endings (core.autocrlf=true on Windows), add a .gitattributes with * text=auto eol=lf. Otherwise files can show as modified in one environment but not the other.

Native dependencies: node_modules (or similar) installed on a Windows host won't run inside a Linux container. Use Run Setup Here to re-run setup in the environment you're in.

Chats and agent status

Run Flotilla: Install Claude Code Hooks (or accept the offer). Flotilla adds hooks to each worktree's .claude/settings.local.json, which it keeps out of git, and to every new worktree after that. The hooks need Node.js on the PATH. Each chat then writes its state to <worktree git dir>/flotilla/chats/<session>.json, which host and container windows both read. Chat titles and history come from Claude Code's transcripts in ~/.claude/projects/ (or $CLAUDE_CONFIG_DIR), in the environment the window runs in.

Chats stay in the window you work in. New chat on a worktree opens Claude Code here with the message box pre-filled with where to work, and links the chat to that worktree once you send the first message. Clicking a chat opens it in Claude Code's panel; a chat that ran in another worktree's folder is first copied to this window's folder (the original stays). Linked chats are listed under their worktree in the Chats tab, and renamed to ": " in Claude Code's own session list (<code>flotilla.tagChatTitles</code>). Use <strong>Link a Chat to This Worktree…</strong> and <strong>Unlink</strong> to move chats by hand. Only Claude Code chats are tracked for now.</p> <p>Other tools can still report a worktree-wide status by writing <code>workstream.json</code> into the worktree's git directory:</p> <pre><code class=language-json>{ "state": "working | waiting-for-input | done | error", "message": "optional text", "updatedAt": "2026-10-09T10:00:00Z" } </code></pre> <h2 id=settings>Settings</h2> <table> <thead> <tr> <th>Setting</th> <th>Default</th> <th>Purpose</th> </tr> </thead> <tbody> <tr> <td><code>flotilla.copyFiles</code></td> <td><code>[]</code></td> <td>Globs copied from the main worktree on create</td> </tr> <tr> <td><code>flotilla.setupCommand</code></td> <td><code>""</code></td> <td>Run in a terminal in the new worktree</td> </tr> <tr> <td><code>flotilla.autoAdopt</code></td> <td><code>true</code></td> <td>Make in-repo worktrees portable automatically</td> </tr> <tr> <td><code>flotilla.defaultBase</code></td> <td><code>""</code></td> <td>Base branch for progress and compare</td> </tr> <tr> <td><code>flotilla.activeWindowMinutes</code></td> <td><code>5</code></td> <td>Activity → active threshold</td> </tr> <tr> <td><code>flotilla.staleAfterDays</code></td> <td><code>7</code></td> <td>Activity → stale threshold</td> </tr> <tr> <td><code>flotilla.agentStatusStaleMinutes</code></td> <td><code>10</code></td> <td>When a <code>working</code> report is considered stale</td> </tr> <tr> <td><code>flotilla.notifyOnAttention</code></td> <td><code>true</code></td> <td>Notify on waiting-for-input / error</td> </tr> <tr> <td><code>flotilla.pollSeconds</code></td> <td><code>15</code></td> <td>Poll interval while the view is visible</td> </tr> <tr> <td><code>flotilla.tagChatTitles</code></td> <td><code>true</code></td> <td>Rename linked chats to ": <title>" in Claude Code's session list</td> </tr> <tr> <td><code>flotilla.tabLabelPattern</code></td> <td><code>""</code></td> <td>Regular expression for the id shown on worktree tabs (default: Jira keys and issue numbers)</td> </tr> </tbody> </table> <h2 id=requirements>Requirements</h2> <ul> <li>git 2.17 or newer in each environment (host and container).</li> <li>For chat status: <a href="https://marketplace.visualstudio.com/items?itemName=anthropic.claude-code" target=_blank rel="noreferrer noopener nofollow">Claude Code</a>, and Node.js on the PATH where it runs (the hooks are small Node scripts).</li> </ul> <h2 id=contributing>Contributing</h2> <p>See <a href="https://github.com/archipelagic-chef/flotilla/blob/HEAD/CONTRIBUTING.md" target=_blank rel="noreferrer noopener nofollow">CONTRIBUTING.md</a> for building, testing and trying Flotilla across host and devcontainer.</p> </div></div></td><td class="ux-itemdetails-right" role="complementary"><div class="screenshot-carousel-container"></div><div class="loader-container"><div class="loader"></div></div><div class="itemDetails-right"></div></td></tr></tbody></table></div></div><div id="versionHistoryTab" style="display:none"><div class="versionHistoryTab-loader-container"><div class="loader"></div></div><div id="version-history-tab-content"></div></div></div></div></div></div></div></div></div></div><div id="gallery-footer"><footer><div id="ux-footer" class="ltr" role="contentinfo"><div id="baseFooter"><div id="Fragment_BaseFooterLinks"><div class="linkList"><ul class="links horizontal"><li><a href="https://www.visualstudio.com/support/support-overview-vs" data-mscc-ic="false">Contact us</a></li><li><a href="https://careers.microsoft.com/" data-mscc-ic="false">Jobs</a></li><li><a href="https://go.microsoft.com/fwlink/?LinkID=521839" data-mscc-ic="false">Privacy</a></li><li><a id="mgtConsentCookie" data-mscc-ic="false">Manage cookies</a></li><li><a href="https://aka.ms/vsmarketplace-ToU" data-mscc-ic="false">Terms of use</a></li><li><a href="https://www.microsoft.com/trademarks" data-mscc-ic="false">Trademarks</a></li><li><a href="https://aka.ms/YourCaliforniaPrivacyChoices" data-mscc-ic="false"> <img src="https://cdn.vsassets.io/v/M280_20261006.4/_content/privacy-options.svg" alt="" class="footer-privacy-choices-icon"/>Your Privacy Choices </a></li><li><a href="https://go.microsoft.com/fwlink/?linkid=2259814" data-mscc-ic="false">Consumer Health Privacy</a></li></ul></div></div><div id="rightBaseFooter">©<!-- --> 2026 Microsoft<span class="microsoftLogo" title="Microsoft"></span></div><div class="clear"></div></div></div></footer></div></div></div></div> <div class="render-time"> <script class="server-side-render" defer="defer" type="application/json">2</script> </div> <div class="rhs-content"> <script class="jiContent" defer="defer" type="application/json">{"GitHubLink":"https://github.com/archipelagic-chef/flotilla.git","ReleaseDateString":"Sat, 10 Oct 2026 14:24:00 GMT","LastUpdatedDateString":"Sat, 10 Oct 2026 14:29:18 GMT","GalleryUrl":"/","Categories":["SCM Providers"],"Tags":["agents","claude","devcontainer","git","keybindings","source control","worktree","worktrees"],"ExtensionProperties":{"Microsoft.VisualStudio.Services.Branding.Color":"#1e2a3a","Microsoft.VisualStudio.Services.Branding.Theme":"dark","Microsoft.VisualStudio.Services.Links.Getstarted":"https://github.com/archipelagic-chef/flotilla.git","Microsoft.VisualStudio.Services.Links.Support":"https://github.com/archipelagic-chef/flotilla/issues","Microsoft.VisualStudio.Services.Links.Learn":"https://github.com/archipelagic-chef/flotilla#readme","Microsoft.VisualStudio.Services.Links.Source":"https://github.com/archipelagic-chef/flotilla.git","Microsoft.VisualStudio.Services.Links.GitHub":"https://github.com/archipelagic-chef/flotilla.git","Microsoft.VisualStudio.Code.Engine":"^1.95.0","Microsoft.VisualStudio.Services.GitHubFlavoredMarkdown":"true","Microsoft.VisualStudio.Code.ExtensionDependencies":"","Microsoft.VisualStudio.Code.ExtensionPack":"","Microsoft.VisualStudio.Code.LocalizedLanguages":"","Microsoft.VisualStudio.Code.ExtensionKind":"workspace","Microsoft.VisualStudio.Services.Content.Pricing":"Free","Microsoft.VisualStudio.Code.EnabledApiProposals":"","Microsoft.VisualStudio.Code.ExecutesCode":"true","Microsoft.VisualStudio.Services.VsixSha256":"9db8f4d8585326dae9eddf75cfa84a4b2b6afe4c9e2c265f74961352b88bdacb"},"Resources":{"LicenseText":"License","ChangelogText":"Changelog","PublisherName":"Archipelagic","ExtensionName":"flotilla","Version":"0.1.0"},"MoreInfo":{"VersionValue":"0.1.0","PublisherValue":"Archipelagic","UniqueIdentifierValue":"Archipelagic.flotilla","TwitterShareContents":"Just%20discovered%20this%20on%20the%20%23VSMarketplace%3A%20https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3DArchipelagic.flotilla","EmailShareContents":"Hi%2C%20Just%20discovered%20this%20extension%20on%20the%20%23VSMarketplace%20that%20may%20be%20of%20interest%20to%20you.%20Check%20it%20out%20%40%20https%3A%2F%2Fmarketplace.visualstudio.com%2Fitems%3FitemName%3DArchipelagic.flotilla%20%21","EmailShareSubject":"Check%20out%20-%20Flotilla%20for%20Visual%20Studio%20Code","IsPublic":true},"ResourcesPath":"https://cdn.vsassets.io/v/M280_20261006.4/_content/","AssetUri":"https://Archipelagic.gallerycdn.vsassets.io/extensions/archipelagic/flotilla/0.1.0/1791642240752","VsixManifestAssetType":"Microsoft.VisualStudio.Services.VsixManifest","StaticResourceVersion":"M280_20261006.4","AfdIdentifier":"Ref A: 2BF526479A60453197A57B2CD6107537 Ref B: CHI261140510031 Ref C: 2026-10-11T02:30:00Z","VsixId":null,"WorksWith":["Universal"],"ItemType":3,"IsMDPruned":false,"PrunedMDLength":0,"OverviewMDLength":7531,"IsRHSAsyncComponentsEnabled":true,"OfferDetails":null,"IsDetailsTabsEnabled":false,"ShowVersionHistory":true,"IsSeeMoreButtonOnVersionHistoryTab":false,"DisableVSCodeDownloadButtonEnabled":true,"IsReferralLinkRedirectionWarningPopupEnabled":true,"Versions":[{"version":"0.1.0","lastUpdated":"Sat, 10 Oct 2026 14:29:18 GMT","targetPlatform":null}],"IsCSRFeatureEnabled":false,"TargetPlatforms":{"win32-x64":"Windows x64","win32-arm64":"Windows ARM","linux-x64":"Linux x64","linux-arm64":"Linux ARM64","linux-armhf":"Linux ARM32","darwin-x64":"macOS Intel","darwin-arm64":"macOS Apple Silicon","alpine-x64":"Alpine Linux 64 bit","web":"Web","alpine-arm64":"Alpine Linux ARM64","win32-ia32":"Windows ia32"},"VisualStudioReleaseSurface":null}</script> </div> <div class="csp-user"> <script class="is-csp-user" defer="defer" type="application/json">false</script> </div> <script type="text/javascript" nonce="x8KR6N2DFZ2rYmbcm6LTCA=="> if (document) { try { if (window.performance && window.performance.timing) { window["marketplaceRenderTime"] = Date.now() - window.performance.timing.navigationStart; } } catch(e){ } } </script> <script type="text/javascript" nonce="x8KR6N2DFZ2rYmbcm6LTCA=="> var __vssPageContext = {"webContext":{"user":{"id":"aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa","name":"Anonymous","email":"","uniqueName":"TEAM FOUNDATION\\Anonymous"},"host":{"id":"2663b13f-50e3-a655-a159-22f6f4725fab","name":"TEAM FOUNDATION","uri":"https://marketplace.visualstudio.com/","relativeUri":"/","hostType":"deployment","scheme":"https","authority":"marketplace.visualstudio.com"}},"moduleLoaderConfig":{"baseUrl":"https://cdn.vsassets.io/v/M280_20261006.4/_scripts/TFS/min/","paths":{"Charts/Resources":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/en-US","Gallery/Scripts/Gallery/Resources":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/en-US","ContentRendering/Resources":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/en-US","Engagement/Resources":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/en-US","VSS/Resources":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/en-US","VSSPreview/Resources":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/en-US","highcharts":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts.v11.4.6","highcharts/highcharts-more":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-more.v11.4.6","highcharts/modules/accessibility":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-accessibility.v11.4.6","highcharts/modules/funnel":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-funnel.v11.4.6","highcharts/modules/heatmap":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-heatmap.v11.4.6"},"map":{"*":{"office-ui-fabric-react/lib":"OfficeFabric"}},"contributionPaths":{"VSS":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/VSS","pathType":"default"},"VSS/Resources":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/en-US","pathType":"resource"},"q":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/q","pathType":"default"},"knockout":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/knockout","pathType":"default"},"mousetrap":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/mousetrap","pathType":"default"},"mustache":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/mustache","pathType":"default"},"react":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/react.15.3","pathType":"default"},"react-dom":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/react-dom.15.3","pathType":"default"},"react-transition-group":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/react-transition-group.15.3","pathType":"default"},"jQueryUI":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/jQueryUI","pathType":"default"},"jquery":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/jquery","pathType":"default"},"OfficeFabric":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/OfficeFabric","pathType":"default"},"tslib":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/tslib","pathType":"default"},"@uifabric":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/@uifabric","pathType":"default"},"VSSUI":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/VSSUI","pathType":"default"},"Charts":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/Charts","pathType":"default"},"Charts/Resources":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/en-US","pathType":"resource"},"ContentRendering":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/ContentRendering","pathType":"default"},"ContentRendering/Resources":{"value":"/_static/tfs/M280_20261006.4/_scripts/TFS/min/en-US","pathType":"resource"},"highcharts":{"value":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts.v11.4.6","pathType":"thirdParty"},"highcharts/highcharts-more":{"value":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-more.v11.4.6","pathType":"thirdParty"},"highcharts/modules/accessibility":{"value":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-accessibility.v11.4.6","pathType":"thirdParty"},"highcharts/modules/funnel":{"value":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-funnel.v11.4.6","pathType":"thirdParty"},"highcharts/modules/heatmap":{"value":"https://cdn.vsassets.io/3rdParty/_scripts/highcharts-heatmap.v11.4.6","pathType":"thirdParty"}},"shim":{"jquery":{"deps":[],"exports":"jQuery"}},"waitSeconds":30},"coreReferences":{"stylesheets":[{"url":"/_static/tfs/M280_20261006.4/_cssbundles/Default/vss-bundle-ext-core-css-vy56dBxIwQd7phb69QAn3RFxAgJ-RddGhGPdgi16Jpgk=","highContrastUrl":null,"isCoreStylesheet":true}],"scripts":[{"identifier":"JQuery","url":"https://cdn.vsassets.io/3rdParty/_scripts/jquery-3.6.0.min.js","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":true},{"identifier":"JQueryXDomain","url":"https://cdn.vsassets.io/3rdParty/_scripts/jquery.xdomainrequest.min.js","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":true},{"identifier":"Promise","url":"https://cdn.vsassets.io/v/M280_20261006.4/_scripts/TFS/min/promise.js","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":true},{"identifier":"GlobalScripts","url":"https://cdn.vsassets.io/v/M280_20261006.4/_scripts/TFS/min/global-scripts.js","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":true},{"identifier":"LoaderFixes","url":"https://cdn.vsassets.io/v/M280_20261006.4/_scripts/TFS/pre-loader-shim.min.js","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":false},{"identifier":"AMDLoader","url":"https://cdn.vsassets.io/3rdParty/_scripts/require.min.js","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":true},{"identifier":"LoaderFixes","url":"https://cdn.vsassets.io/v/M280_20261006.4/_scripts/TFS/post-loader-shim.min.js","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":false}],"coreScriptsBundle":{"identifier":"CoreBundle","url":"/_public/_Bundling/Content?bundle=vss-bundle-basejs-vh-5EDj0aiCZ8U3pbGPKlySQ9T_RAycY0i4geeP5oQDs=","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":true},"extensionCoreReferences":{"identifier":"CoreBundle","url":"/_public/_Bundling/Content?bundle=vss-bundle-ext-core-v18vIroK2kzteRVxkiKSQ0oZGCm7oXbiyaIpjvJbJ4UQ=","fallbackUrl":null,"fallbackCondition":null,"isCoreModule":true}},"webAccessConfiguration":{"isHosted":true,"paths":{"rootPath":"/","staticContentRootPath":"/","staticContentVersion":"M280_20261006.4","resourcesPath":"https://cdn.vsassets.io/v/M280_20261006.4/_content/","staticRootTfs":"https://cdn.vsassets.io/v/M280_20261006.4/","cdnFallbackStaticRootTfs":"/_static/tfs/M280_20261006.4/","staticRoot3rdParty":"https://cdn.vsassets.io/3rdParty/"},"api":{"webApiVersion":"1","areaPrefix":"_","controllerPrefix":"_"},"mailSettings":{"enabled":false},"registryItems":{}},"microsoftAjaxConfig":{"cultureInfo":{"name":"en-US","numberFormat":{"CurrencyDecimalDigits":2,"CurrencyDecimalSeparator":".","IsReadOnly":true,"CurrencyGroupSizes":[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":",","CurrencySymbol":"$","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegativePattern":1,"PercentPositivePattern":1,"PercentNegativePattern":1,"NegativeInfinitySymbol":"-∞","NegativeSign":"-","NumberDecimalDigits":2,"NumberDecimalSeparator":".","NumberGroupSeparator":",","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"∞","PositiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":".","PercentGroupSeparator":",","PercentSymbol":"%","PerMilleSymbol":"‰","NativeDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"0001-01-01T00:00:00","MaxSupportedDateTime":"9999-12-31T23:59:59.9999999","AlgorithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2049,"IsReadOnly":true},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dddd, MMMM d, yyyy h:mm:ss tt","LongDatePattern":"dddd, MMMM d, yyyy","LongTimePattern":"h:mm:ss tt","MonthDayPattern":"MMMM d","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy HH\u0027:\u0027mm\u0027:\u0027ss \u0027GMT\u0027","ShortDatePattern":"M/d/yyyy","ShortTimePattern":"h:mm tt","SortableDateTimePattern":"yyyy\u0027-\u0027MM\u0027-\u0027dd\u0027T\u0027HH\u0027:\u0027mm\u0027:\u0027ss","TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\u0027-\u0027MM\u0027-\u0027dd HH\u0027:\u0027mm\u0027:\u0027ss\u0027Z\u0027","YearMonthPattern":"MMMM yyyy","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"AbbreviatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","May","June","July","August","September","October","November","December",""],"IsReadOnly":true,"NativeCalendarName":"Gregorian Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["January","February","March","April","May","June","July","August","September","October","November","December",""]},"numberShortForm":{"QuantitySymbols":["K","M","B"],"NumberGroupSize":1000,"ThousandSymbol":"K"},"eras":null}},"timeZonesConfiguration":{},"featureAvailability":{"featureStates":{"VisualStudio.Services.Contribution.EnableOnPremUnsecureBrowsers":false,"VisualStudio.Service.WebPlatform.ClientErrorReporting":true,"Microsoft.VisualStudio.Services.Gallery.Client.UseCdnAssetUri":false,"VisualStudio.Services.WebAccess.SubresourceIntegrity":false,"VisualStudio.Services.IdentityPicker.ReactProfileCard":true}},"appInsightsConfiguration":{"enabled":false,"instrumentationKey":"00000000-0000-0000-0000-000000000000","insightsScriptUrl":null},"diagnostics":{"sessionId":"cb90278e-94dd-4154-9bd5-d6679de7e30d","activityId":"cb90278e-94dd-4154-9bd5-d6679de7e30d","bundlingEnabled":true,"cdnAvailable":true,"cdnEnabled":true,"webPlatformVersion":"M280","serviceVersion":"Dev20.M280.1 (build: AzureDevOps_M280_20261006.4)"},"navigation":{"topMostLevel":"deployment","area":"","currentController":"Gallery","currentAction":"Details","commandName":"Gallery.Details","routeId":"ms.vss-gallery-web.gallery-route-details","routeTemplates":["items"],"routeValues":{"controller":"Gallery","action":"Details"}},"globalization":{"explicitTheme":"","theme":"Default","culture":"en-US","timezoneOffset":0,"timeZoneId":"UTC"},"serviceInstanceId":"00000029-0000-8888-8000-000000000000","hubsContext":{},"serviceLocations":{"locations":{"951917ac-a960-4999-8464-e3f0aa25b381":{"Application":"https://spsprodeus25.vssps.visualstudio.com/","Deployment":"https://spsprodeus25.vssps.visualstudio.com/"}}}};</script> <script defer="true" data-bundlelength="138887" data-bundlename="basejs" nonce="x8KR6N2DFZ2rYmbcm6LTCA==" src="/_public/_Bundling/Content?bundle=vss-bundle-basejs-vh-5EDj0aiCZ8U3pbGPKlySQ9T_RAycY0i4geeP5oQDs=" type="text/javascript"></script> <script defer="true" data-bundlelength="212268" data-bundlename="common" data-includedscripts="VSS/Bundling" nonce="x8KR6N2DFZ2rYmbcm6LTCA==" src="/_public/_Bundling/Content?bundle=vss-bundle-common-v80O346hktgek67U3mcoSrchBJeRNPddjRG0DE0rdL4o=" type="text/javascript"></script><script defer="true" data-bundlelength="2257599" data-bundlename="view" data-includedscripts="Gallery/Client/Pages/VSSItemDetailsSSR/VSSItemDetailsSSRAsync" nonce="x8KR6N2DFZ2rYmbcm6LTCA==" src="/_public/_Bundling/Content?bundle=vss-bundle-view-vAuwj5a1y3ufBziRInaM2n9IHfXr64swuYC_uMl0hyRU=" type="text/javascript"></script> <script defer=true nonce="x8KR6N2DFZ2rYmbcm6LTCA==" src="/_static/tfs/M280_20261006.4/_scripts/TFS/min/Gallery/Client/Pages/VSSItemDetailsSSR/SSRModuleWrappers.js"></script> <script nonce="x8KR6N2DFZ2rYmbcm6LTCA==" src="/_static/tfs/M280_20261006.4/_scripts/TFS/min/Gallery/Client/Common/ManageCookieDrop.js"></script> </body> </html>