GC back compat - Add flag in summary to allow/disallow#5558
GC back compat - Add flag in summary to allow/disallow#5558arinwt merged 18 commits intomicrosoft:mainfrom
Conversation
■ @fluidframework/base-host: No change
⯅ @fluid-example/bundle-size-tests: +1.09 KB
Baseline commit: 30d6b5d |
|
|
||
| // Flag that will disable garbage collection if set to true. | ||
| /* Flag that will disable garbage collection if set to true. */ | ||
| disableGC?: boolean; |
There was a problem hiding this comment.
can we put all the gc options into a sub-object, rather than having them all directly on IContainerRuntimeOptions. seems to be sprawling a bit
There was a problem hiding this comment.
I broke into summaryOptions and gcOptions. Let me know what you think.
|
|
||
| private shouldRunGC(): boolean { | ||
| // Can override with localStorage flag. | ||
| return localStorageEnableGC() ?? ( |
There was a problem hiding this comment.
I don't like this as a member function of this class, and i don't like the value changing at runtime, we should use this data to build the initial configuration, and then only depend on the config, two sources of truth like this always leads to bugs
There was a problem hiding this comment.
I agree with you.
I changed to readonly properties: shouldRunGC and disableIsolatedChannels. Now I no longer modify the passed in runtimeOptions for those.
I kept the shouldWriteMetadata getter, because it is a computed property using all readonly properties.
| /** True if channels are not isolated in .channels subtrees, otherwise isolated. */ | ||
| readonly disableIsolatedChannels?: true; | ||
| /** True to enable GC, false to disable GC, undefined to not specify a preference. */ | ||
| readonly enableGC?: boolean; |
There was a problem hiding this comment.
i don't like that enableGc means one thing here, and somethings else on the container, please unify the config names
There was a problem hiding this comment.
I don't know how much it would help, but maybe I can change to summaryAllowGC ?
summary - to indicate it is per document / stored in summary
allow - vs. enable to show that this is less of an option more of a restriction?
@agarwal-navin also thoughts?
There was a problem hiding this comment.
I am wondering if having both enableGC / summaryEnableGC and disableGC is a bit too much. It is confusing for sure. We can probably just have enableGC and the override (to disable it) can be done via the local storage or via loader options (which would be hidden).
| // Can override with localStorage flag. | ||
| this.shouldRunGC = localStorageEnableGC() ?? ( | ||
| // Must not be disabled permanently in summary. | ||
| (this.summaryEnableGC ?? true) |
There was a problem hiding this comment.
If there is metadata blob but it does not have enableGC property in it, this will default to running GC right. I am wondering if that is the behavior we want.
What will happen in this scenario - A document is created before the "GC waterline" and it does not provide the summaryEnableGC runtime option. But we write the metadata blob for it (maybe because of disableIsolatedChannels?) then we will end up running GC on this document right?
There was a problem hiding this comment.
Yes I thought that was correct (since we are in v1+), but now I have changed it to always write false for now.
|
We need tests to verify that we do enable / disable GC correctly based on different combination of these options. We can probably add more combinations to the tests I have in this PR - #5539. |
|
Couple mete-observations around GC and similar features:
Note that for GC, we would love to enable as much of GC pipeline as quickly as possible, so I think waiting enabling 2.3 is not great. I'd use 2.2 and maybe use runtime version (that created a file) as a poor man's indicator of GC versions. Storage may want to play this game with us, or maybe not and just index it all the time based on GC data, at which case it's 2.1, but we have our own telemetry to say "oh yes, that's an old file, it's expected it's not perfect when it comes to GC" Note that if we find bugs after GA, having version in the file (that created a file) might be handy - we might write some scripts that run in storage, find these files and fix them. This is super expensive, so we will likely do it only if absolutely required, but we should leave this option available as a safety net. |
|
@vladsud - let me know if I got something wrong here. The suggestion is to include the runtime version in the metadata blob, and use it to map to "GC version", so we know which version of GC we are on, and thus which files we need to exclude/filter as "bad"? (2.2 above) |
|
I can also imagine the property bag you mention in 1, but it just has the version for each feature, or 0/null/undefined if it is disabled. And it is stored in the metadata blob.
|
|
Hey @vladsud, after some discussion, I think we can switch to a 0/1 number type instead of a boolean, but keep everything else the same. It feels like the example of app using handles is more of an app-problem, and would have nothing to do with a GC version from the runtime's perspective. Let me know if you see any problem with this. |
…allow/disallow (microsoft#5558) * Add enableGC to metadata blob * Add comment and encapsulate shouldRunGC with localStorage flag to bypass * Fix tests * Split runtimeOptions into summaryOptions and gcOptions * Handle back-compat for old version and breaking changes * Make test work back-compat * Make summaryEnableGC false by default * Use context.existing instead of base snapshot existing * Add helper for tests to handle back-compat runtimeOptions * Add missing copyright header * Fix tests build * Switch to number * PR fixes and renames * Fix breaking.md * Comment fixes * Fix comment
Bumps [axios](https://github.com/axios/axios) from 1.12.2 to 1.13.5. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/axios/axios/releases">axios's releases</a>.</em></p> <blockquote> <h2>v1.13.5</h2> <h2>Release 1.13.5</h2> <h3>Highlights</h3> <ul> <li><strong>Security:</strong> Fixed a potential <strong>Denial of Service</strong> issue involving the <code>__proto__</code> key in <code>mergeConfig</code>. (PR <a href="https://redirect.github.com/axios/axios/pull/7369">#7369</a>)</li> <li><strong>Bug fix:</strong> Resolved an issue where <code>AxiosError</code> could be missing the <code>status</code> field on and after <strong>v1.13.3</strong>. (PR <a href="https://redirect.github.com/axios/axios/pull/7368">#7368</a>)</li> </ul> <h3>Changes</h3> <h4>Security</h4> <ul> <li>Fix Denial of Service via <code>__proto__</code> key in <code>mergeConfig</code>. (PR <a href="https://redirect.github.com/axios/axios/pull/7369">#7369</a>)</li> </ul> <h4>Fixes</h4> <ul> <li>Fix/5657. (PR <a href="https://redirect.github.com/axios/axios/pull/7313">#7313</a>)</li> <li>Ensure <code>status</code> is present in <code>AxiosError</code> on and after v1.13.3. (PR <a href="https://redirect.github.com/axios/axios/pull/7368">#7368</a>)</li> </ul> <h4>Features / Improvements</h4> <ul> <li>Add input validation to <code>isAbsoluteURL</code>. (PR <a href="https://redirect.github.com/axios/axios/pull/7326">#7326</a>)</li> <li>Refactor: bump minor package versions. (PR <a href="https://redirect.github.com/axios/axios/pull/7356">#7356</a>)</li> </ul> <h4>Documentation</h4> <ul> <li>Clarify object-check comment. (PR <a href="https://redirect.github.com/axios/axios/pull/7323">#7323</a>)</li> <li>Fix deprecated <code>Buffer</code> constructor usage and README formatting. (PR <a href="https://redirect.github.com/axios/axios/pull/7371">#7371</a>)</li> </ul> <h4>CI / Maintenance</h4> <ul> <li>Chore: fix issues with YAML. (PR <a href="https://redirect.github.com/axios/axios/pull/7355">#7355</a>)</li> <li>CI: update workflow YAMLs. (PR <a href="https://redirect.github.com/axios/axios/pull/7372">#7372</a>)</li> <li>CI: fix run condition. (PR <a href="https://redirect.github.com/axios/axios/pull/7373">#7373</a>)</li> <li>Dev deps: bump <code>karma-sourcemap-loader</code> from 0.3.8 to 0.4.0. (PR <a href="https://redirect.github.com/axios/axios/pull/7360">#7360</a>)</li> <li>Chore(release): prepare release 1.13.5. (PR <a href="https://redirect.github.com/axios/axios/pull/7379">#7379</a>)</li> </ul> <h3>New Contributors</h3> <ul> <li><a href="https://github.com/sachin11063"><code>@sachin11063</code></a> (first contribution — PR <a href="https://redirect.github.com/axios/axios/pull/7323">#7323</a>)</li> <li><a href="https://github.com/asmitha-16"><code>@asmitha-16</code></a> (first contribution — PR <a href="https://redirect.github.com/axios/axios/pull/7326">#7326</a>)</li> </ul> <p><strong>Full Changelog:</strong> <a href="https://github.com/axios/axios/compare/v1.13.4...v1.13.5">https://github.com/axios/axios/compare/v1.13.4...v1.13.5</a></p> <h2>v1.13.4</h2> <h2>Overview</h2> <p>The release addresses issues discovered in v1.13.3 and includes significant CI/CD improvements.</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/axios/axios/compare/v1.13.3...v1.13.4">v1.13.3...v1.13.4</a></p> <h2>What's New in v1.13.4</h2> <h3>Bug Fixes</h3> <ul> <li><strong>fix: issues with version 1.13.3</strong> (<a href="https://redirect.github.com/axios/axios/issues/7352">#7352</a>) (<a href="https://github.com/axios/axios/commit/ee90dfc28abffbb61e24974b2bd3139a4a40ac76">ee90dfc</a>) <ul> <li>Fixed issues discovered in v1.13.3 release</li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/axios/axios/blob/v1.x/CHANGELOG.md">axios's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <h2><a href="https://github.com/axios/axios/compare/v1.13.2...v1.13.3">1.13.3</a> (2026-01-20)</h2> <h3>Bug Fixes</h3> <ul> <li><strong>http2:</strong> Use port 443 for HTTPS connections by default. (<a href="https://redirect.github.com/axios/axios/issues/7256">#7256</a>) (<a href="https://github.com/axios/axios/commit/d7e60653460480ffacecf85383012ca1baa6263e">d7e6065</a>)</li> <li><strong>interceptor:</strong> handle the error in the same interceptor (<a href="https://redirect.github.com/axios/axios/issues/6269">#6269</a>) (<a href="https://github.com/axios/axios/commit/5945e40bb171d4ac4fc195df276cf952244f0f89">5945e40</a>)</li> <li>main field in package.json should correspond to cjs artifacts (<a href="https://redirect.github.com/axios/axios/issues/5756">#5756</a>) (<a href="https://github.com/axios/axios/commit/7373fbff24cd92ce650d99ff6f7fe08c2e2a0a04">7373fbf</a>)</li> <li><strong>package.json:</strong> add 'bun' package.json 'exports' condition. Load the Node.js build in Bun instead of the browser build (<a href="https://redirect.github.com/axios/axios/issues/5754">#5754</a>) (<a href="https://github.com/axios/axios/commit/b89217e3e91de17a3d55e2b8f39ceb0e9d8aeda8">b89217e</a>)</li> <li>silentJSONParsing=false should throw on invalid JSON (<a href="https://redirect.github.com/axios/axios/issues/7253">#7253</a>) (<a href="https://redirect.github.com/axios/axios/issues/7257">#7257</a>) (<a href="https://github.com/axios/axios/commit/7d19335e43d6754a1a9a66e424f7f7da259895bf">7d19335</a>)</li> <li>turn AxiosError into a native error (<a href="https://redirect.github.com/axios/axios/issues/5394">#5394</a>) (<a href="https://redirect.github.com/axios/axios/issues/5558">#5558</a>) (<a href="https://github.com/axios/axios/commit/1c6a86dd2c0623ee1af043a8491dbc96d40e883b">1c6a86d</a>)</li> <li><strong>types:</strong> add handlers to AxiosInterceptorManager interface (<a href="https://redirect.github.com/axios/axios/issues/5551">#5551</a>) (<a href="https://github.com/axios/axios/commit/8d1271b49fc226ed7defd07cd577bd69a55bb13a">8d1271b</a>)</li> <li><strong>types:</strong> restore AxiosError.cause type from unknown to Error (<a href="https://redirect.github.com/axios/axios/issues/7327">#7327</a>) (<a href="https://github.com/axios/axios/commit/d8233d9e8e9a64bfba9bbe01d475ba417510b82b">d8233d9</a>)</li> <li>unclear error message is thrown when specifying an empty proxy authorization (<a href="https://redirect.github.com/axios/axios/issues/6314">#6314</a>) (<a href="https://github.com/axios/axios/commit/6ef867e684adf7fb2343e3b29a79078a3c76dc29">6ef867e</a>)</li> </ul> <h3>Features</h3> <ul> <li>add <code>undefined</code> as a value in AxiosRequestConfig (<a href="https://redirect.github.com/axios/axios/issues/5560">#5560</a>) (<a href="https://github.com/axios/axios/commit/095033c626895ecdcda2288050b63dcf948db3bd">095033c</a>)</li> <li>add automatic minor and patch upgrades to dependabot (<a href="https://redirect.github.com/axios/axios/issues/6053">#6053</a>) (<a href="https://github.com/axios/axios/commit/65a7584eda6164980ddb8cf5372f0afa2a04c1ed">65a7584</a>)</li> <li>add Node.js coverage script using c8 (closes <a href="https://redirect.github.com/axios/axios/issues/7289">#7289</a>) (<a href="https://redirect.github.com/axios/axios/issues/7294">#7294</a>) (<a href="https://github.com/axios/axios/commit/ec9d94e9f88da13e9219acadf65061fb38ce080a">ec9d94e</a>)</li> <li>added copilot instructions (<a href="https://github.com/axios/axios/commit/3f83143bfe617eec17f9d7dcf8bafafeeae74c26">3f83143</a>)</li> <li>compatibility with frozen prototypes (<a href="https://redirect.github.com/axios/axios/issues/6265">#6265</a>) (<a href="https://github.com/axios/axios/commit/860e03396a536e9b926dacb6570732489c9d7012">860e033</a>)</li> <li>enhance pipeFileToResponse with error handling (<a href="https://redirect.github.com/axios/axios/issues/7169">#7169</a>) (<a href="https://github.com/axios/axios/commit/88d78842541610692a04282233933d078a8a2552">88d7884</a>)</li> <li><strong>types:</strong> Intellisense for string literals in a widened union (<a href="https://redirect.github.com/axios/axios/issues/6134">#6134</a>) (<a href="https://github.com/axios/axios/commit/f73474d02c5aa957b2daeecee65508557fd3c6e5">f73474d</a>), closes <a href="https://redirect.github.com//redirect.github.com/microsoft/TypeScript/issues/33471/issues/issuecomment-1376364329">microsoft/TypeScript#33471</a></li> </ul> <h3>Reverts</h3> <ul> <li>Revert "fix: silentJSONParsing=false should throw on invalid JSON (<a href="https://redirect.github.com/axios/axios/issues/7253">#7253</a>) (<a href="https://redirect.github.com/axios/axios/issues/7">#7</a>…" (<a href="https://redirect.github.com/axios/axios/issues/7298">#7298</a>) (<a href="https://github.com/axios/axios/commit/a4230f5581b3f58b6ff531b6dbac377a4fd7942a">a4230f5</a>), closes <a href="https://redirect.github.com/axios/axios/issues/7253">#7253</a> <a href="https://redirect.github.com/axios/axios/issues/7">#7</a> <a href="https://redirect.github.com/axios/axios/issues/7298">#7298</a></li> <li><strong>deps:</strong> bump peter-evans/create-pull-request from 7 to 8 in the github-actions group (<a href="https://redirect.github.com/axios/axios/issues/7334">#7334</a>) (<a href="https://github.com/axios/axios/commit/2d6ad5e48bd29b0b2b5e7e95fb473df98301543a">2d6ad5e</a>)</li> </ul> <h3>Contributors to this release</h3> <ul> <li><!-- raw HTML omitted --> <a href="https://github.com/ashvin2005" title="+1752/-4 ([#7218](axios/axios#7218) [#7218](axios/axios#7218) )">Ashvin Tiwari</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/mochinikunj" title="+940/-12 ([#7294](axios/axios#7294) [#7294](axios/axios#7294) )">Nikunj Mochi</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/imanchalsingh" title="+544/-102 ([#7169](axios/axios#7169) [#7185](axios/axios#7185) )">Anchal Singh</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/jasonsaayman" title="+317/-73 ([#7334](axios/axios#7334) [#7298](axios/axios#7298) )">jasonsaayman</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/brodo" title="+99/-120 ([#5558](axios/axios#5558) )">Julian Dax</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/AKASHDHARDUBEY" title="+167/-0 ([#7287](axios/axios#7287) [#7288](axios/axios#7288) )">Akash Dhar Dubey</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/madhumitaaa" title="+20/-68 ([#7198](axios/axios#7198) )">Madhumita</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/Tackoil" title="+80/-2 ([#6269](axios/axios#6269) )">Tackoil</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/justindhillon" title="+41/-41 ([#6324](axios/axios#6324) [#6315](axios/axios#6315) )">Justin Dhillon</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/Rudrxxx" title="+71/-2 ([#7257](axios/axios#7257) )">Rudransh</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/WuMingDao" title="+36/-36 ([#7215](axios/axios#7215) )">WuMingDao</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/codenomnom" title="+70/-0 ([#7201](axios/axios#7201) [#7201](axios/axios#7201) )">codenomnom</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/Nandann018-ux" title="+60/-10 ([#7272](axios/axios#7272) )">Nandan Acharya</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/KernelDeimos" title="+22/-40 ([#7042](axios/axios#7042) )">Eric Dubé</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/tiborpilz" title="+40/-4 ([#5551](axios/axios#5551) )">Tibor Pilz</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/joaoGabriel55" title="+31/-4 ([#6314](axios/axios#6314) )">Gabriel Quaresma</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/turadg" title="+23/-6 ([#6265](axios/axios#6265) )">Turadg Aleahmad</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/axios/axios/commit/29f75425f0c9f73021f5eedc869c176e30e05fe7"><code>29f7542</code></a> chore(release): prepare release 1.13.5 (<a href="https://redirect.github.com/axios/axios/issues/7379">#7379</a>)</li> <li><a href="https://github.com/axios/axios/commit/431c3a361490a2e3d5ac5d9e08d66d4bb5f3cd2a"><code>431c3a3</code></a> ci: fix run condition (<a href="https://redirect.github.com/axios/axios/issues/7373">#7373</a>)</li> <li><a href="https://github.com/axios/axios/commit/9ff3a78ad72ecd665a4b673686f1517d824284bf"><code>9ff3a78</code></a> ci: update ymls (<a href="https://redirect.github.com/axios/axios/issues/7372">#7372</a>)</li> <li><a href="https://github.com/axios/axios/commit/265b71234c20fabbd6d691858c65a7e9c978659f"><code>265b712</code></a> docs: fix deprecated Buffer constructor and formatting issues in README (<a href="https://redirect.github.com/axios/axios/issues/7371">#7371</a>)</li> <li><a href="https://github.com/axios/axios/commit/475e75a260668d227aec9f77735a49748c9041ff"><code>475e75a</code></a> feat: add input validation to isAbsoluteURL (<a href="https://redirect.github.com/axios/axios/issues/7326">#7326</a>)</li> <li><a href="https://github.com/axios/axios/commit/28c721588c7a77e7503d0a434e016f852c597b57"><code>28c7215</code></a> fix: Denial of Service via <strong>proto</strong> Key in mergeConfig (<a href="https://redirect.github.com/axios/axios/issues/7369">#7369</a>)</li> <li><a href="https://github.com/axios/axios/commit/04cf01969ed58f96920da032f340bfe4614aab90"><code>04cf019</code></a> docs: clarify object check comment (<a href="https://redirect.github.com/axios/axios/issues/7323">#7323</a>)</li> <li><a href="https://github.com/axios/axios/commit/696fa753c5366afbd21859c294c64c9ff2b359ab"><code>696fa75</code></a> fix: status is missing in AxiosError on and after v1.13.3 (<a href="https://redirect.github.com/axios/axios/issues/7368">#7368</a>)</li> <li><a href="https://github.com/axios/axios/commit/569f028a5878faaec8d7d138ba686aac407bda4c"><code>569f028</code></a> fix: added a option to choose between legacy and the new request/response int...</li> <li><a href="https://github.com/axios/axios/commit/44b7c9f0c4900fd8784f18e871199402f07fc69f"><code>44b7c9f</code></a> chore(deps-dev): bump karma-sourcemap-loader (<a href="https://redirect.github.com/axios/axios/issues/7360">#7360</a>)</li> <li>Additional commits viewable in <a href="https://github.com/axios/axios/compare/v1.12.2...v1.13.5">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by [GitHub Actions](<a href="https://www.npmjs.com/~GitHub">https://www.npmjs.com/~GitHub</a> Actions), a new releaser for axios since your current version.</p> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) You can trigger a rebase of this PR by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/microsoft/FluidFramework/network/alerts). </details> > **Note** > Automatic rebases have been disabled on this pull request as it has been open for over 30 days. Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Matt Rakow <ChumpChief@users.noreply.github.com>
Bumps [axios](https://github.com/axios/axios) from 1.12.2 to 1.13.5. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/axios/axios/releases">axios's releases</a>.</em></p> <blockquote> <h2>v1.13.5</h2> <h2>Release 1.13.5</h2> <h3>Highlights</h3> <ul> <li><strong>Security:</strong> Fixed a potential <strong>Denial of Service</strong> issue involving the <code>__proto__</code> key in <code>mergeConfig</code>. (PR <a href="https://redirect.github.com/axios/axios/pull/7369">#7369</a>)</li> <li><strong>Bug fix:</strong> Resolved an issue where <code>AxiosError</code> could be missing the <code>status</code> field on and after <strong>v1.13.3</strong>. (PR <a href="https://redirect.github.com/axios/axios/pull/7368">#7368</a>)</li> </ul> <h3>Changes</h3> <h4>Security</h4> <ul> <li>Fix Denial of Service via <code>__proto__</code> key in <code>mergeConfig</code>. (PR <a href="https://redirect.github.com/axios/axios/pull/7369">#7369</a>)</li> </ul> <h4>Fixes</h4> <ul> <li>Fix/5657. (PR <a href="https://redirect.github.com/axios/axios/pull/7313">#7313</a>)</li> <li>Ensure <code>status</code> is present in <code>AxiosError</code> on and after v1.13.3. (PR <a href="https://redirect.github.com/axios/axios/pull/7368">#7368</a>)</li> </ul> <h4>Features / Improvements</h4> <ul> <li>Add input validation to <code>isAbsoluteURL</code>. (PR <a href="https://redirect.github.com/axios/axios/pull/7326">#7326</a>)</li> <li>Refactor: bump minor package versions. (PR <a href="https://redirect.github.com/axios/axios/pull/7356">#7356</a>)</li> </ul> <h4>Documentation</h4> <ul> <li>Clarify object-check comment. (PR <a href="https://redirect.github.com/axios/axios/pull/7323">#7323</a>)</li> <li>Fix deprecated <code>Buffer</code> constructor usage and README formatting. (PR <a href="https://redirect.github.com/axios/axios/pull/7371">#7371</a>)</li> </ul> <h4>CI / Maintenance</h4> <ul> <li>Chore: fix issues with YAML. (PR <a href="https://redirect.github.com/axios/axios/pull/7355">#7355</a>)</li> <li>CI: update workflow YAMLs. (PR <a href="https://redirect.github.com/axios/axios/pull/7372">#7372</a>)</li> <li>CI: fix run condition. (PR <a href="https://redirect.github.com/axios/axios/pull/7373">#7373</a>)</li> <li>Dev deps: bump <code>karma-sourcemap-loader</code> from 0.3.8 to 0.4.0. (PR <a href="https://redirect.github.com/axios/axios/pull/7360">#7360</a>)</li> <li>Chore(release): prepare release 1.13.5. (PR <a href="https://redirect.github.com/axios/axios/pull/7379">#7379</a>)</li> </ul> <h3>New Contributors</h3> <ul> <li><a href="https://github.com/sachin11063"><code>@sachin11063</code></a> (first contribution — PR <a href="https://redirect.github.com/axios/axios/pull/7323">#7323</a>)</li> <li><a href="https://github.com/asmitha-16"><code>@asmitha-16</code></a> (first contribution — PR <a href="https://redirect.github.com/axios/axios/pull/7326">#7326</a>)</li> </ul> <p><strong>Full Changelog:</strong> <a href="https://github.com/axios/axios/compare/v1.13.4...v1.13.5">https://github.com/axios/axios/compare/v1.13.4...v1.13.5</a></p> <h2>v1.13.4</h2> <h2>Overview</h2> <p>The release addresses issues discovered in v1.13.3 and includes significant CI/CD improvements.</p> <p><strong>Full Changelog</strong>: <a href="https://github.com/axios/axios/compare/v1.13.3...v1.13.4">v1.13.3...v1.13.4</a></p> <h2>What's New in v1.13.4</h2> <h3>Bug Fixes</h3> <ul> <li><strong>fix: issues with version 1.13.3</strong> (<a href="https://redirect.github.com/axios/axios/issues/7352">#7352</a>) (<a href="https://github.com/axios/axios/commit/ee90dfc28abffbb61e24974b2bd3139a4a40ac76">ee90dfc</a>) <ul> <li>Fixed issues discovered in v1.13.3 release</li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/axios/axios/blob/v1.x/CHANGELOG.md">axios's changelog</a>.</em></p> <blockquote> <h1>Changelog</h1> <h2><a href="https://github.com/axios/axios/compare/v1.13.2...v1.13.3">1.13.3</a> (2026-01-20)</h2> <h3>Bug Fixes</h3> <ul> <li><strong>http2:</strong> Use port 443 for HTTPS connections by default. (<a href="https://redirect.github.com/axios/axios/issues/7256">#7256</a>) (<a href="https://github.com/axios/axios/commit/d7e60653460480ffacecf85383012ca1baa6263e">d7e6065</a>)</li> <li><strong>interceptor:</strong> handle the error in the same interceptor (<a href="https://redirect.github.com/axios/axios/issues/6269">#6269</a>) (<a href="https://github.com/axios/axios/commit/5945e40bb171d4ac4fc195df276cf952244f0f89">5945e40</a>)</li> <li>main field in package.json should correspond to cjs artifacts (<a href="https://redirect.github.com/axios/axios/issues/5756">#5756</a>) (<a href="https://github.com/axios/axios/commit/7373fbff24cd92ce650d99ff6f7fe08c2e2a0a04">7373fbf</a>)</li> <li><strong>package.json:</strong> add 'bun' package.json 'exports' condition. Load the Node.js build in Bun instead of the browser build (<a href="https://redirect.github.com/axios/axios/issues/5754">#5754</a>) (<a href="https://github.com/axios/axios/commit/b89217e3e91de17a3d55e2b8f39ceb0e9d8aeda8">b89217e</a>)</li> <li>silentJSONParsing=false should throw on invalid JSON (<a href="https://redirect.github.com/axios/axios/issues/7253">#7253</a>) (<a href="https://redirect.github.com/axios/axios/issues/7257">#7257</a>) (<a href="https://github.com/axios/axios/commit/7d19335e43d6754a1a9a66e424f7f7da259895bf">7d19335</a>)</li> <li>turn AxiosError into a native error (<a href="https://redirect.github.com/axios/axios/issues/5394">#5394</a>) (<a href="https://redirect.github.com/axios/axios/issues/5558">#5558</a>) (<a href="https://github.com/axios/axios/commit/1c6a86dd2c0623ee1af043a8491dbc96d40e883b">1c6a86d</a>)</li> <li><strong>types:</strong> add handlers to AxiosInterceptorManager interface (<a href="https://redirect.github.com/axios/axios/issues/5551">#5551</a>) (<a href="https://github.com/axios/axios/commit/8d1271b49fc226ed7defd07cd577bd69a55bb13a">8d1271b</a>)</li> <li><strong>types:</strong> restore AxiosError.cause type from unknown to Error (<a href="https://redirect.github.com/axios/axios/issues/7327">#7327</a>) (<a href="https://github.com/axios/axios/commit/d8233d9e8e9a64bfba9bbe01d475ba417510b82b">d8233d9</a>)</li> <li>unclear error message is thrown when specifying an empty proxy authorization (<a href="https://redirect.github.com/axios/axios/issues/6314">#6314</a>) (<a href="https://github.com/axios/axios/commit/6ef867e684adf7fb2343e3b29a79078a3c76dc29">6ef867e</a>)</li> </ul> <h3>Features</h3> <ul> <li>add <code>undefined</code> as a value in AxiosRequestConfig (<a href="https://redirect.github.com/axios/axios/issues/5560">#5560</a>) (<a href="https://github.com/axios/axios/commit/095033c626895ecdcda2288050b63dcf948db3bd">095033c</a>)</li> <li>add automatic minor and patch upgrades to dependabot (<a href="https://redirect.github.com/axios/axios/issues/6053">#6053</a>) (<a href="https://github.com/axios/axios/commit/65a7584eda6164980ddb8cf5372f0afa2a04c1ed">65a7584</a>)</li> <li>add Node.js coverage script using c8 (closes <a href="https://redirect.github.com/axios/axios/issues/7289">#7289</a>) (<a href="https://redirect.github.com/axios/axios/issues/7294">#7294</a>) (<a href="https://github.com/axios/axios/commit/ec9d94e9f88da13e9219acadf65061fb38ce080a">ec9d94e</a>)</li> <li>added copilot instructions (<a href="https://github.com/axios/axios/commit/3f83143bfe617eec17f9d7dcf8bafafeeae74c26">3f83143</a>)</li> <li>compatibility with frozen prototypes (<a href="https://redirect.github.com/axios/axios/issues/6265">#6265</a>) (<a href="https://github.com/axios/axios/commit/860e03396a536e9b926dacb6570732489c9d7012">860e033</a>)</li> <li>enhance pipeFileToResponse with error handling (<a href="https://redirect.github.com/axios/axios/issues/7169">#7169</a>) (<a href="https://github.com/axios/axios/commit/88d78842541610692a04282233933d078a8a2552">88d7884</a>)</li> <li><strong>types:</strong> Intellisense for string literals in a widened union (<a href="https://redirect.github.com/axios/axios/issues/6134">#6134</a>) (<a href="https://github.com/axios/axios/commit/f73474d02c5aa957b2daeecee65508557fd3c6e5">f73474d</a>), closes <a href="https://redirect.github.com//redirect.github.com/microsoft/TypeScript/issues/33471/issues/issuecomment-1376364329">microsoft/TypeScript#33471</a></li> </ul> <h3>Reverts</h3> <ul> <li>Revert "fix: silentJSONParsing=false should throw on invalid JSON (<a href="https://redirect.github.com/axios/axios/issues/7253">#7253</a>) (<a href="https://redirect.github.com/axios/axios/issues/7">#7</a>…" (<a href="https://redirect.github.com/axios/axios/issues/7298">#7298</a>) (<a href="https://github.com/axios/axios/commit/a4230f5581b3f58b6ff531b6dbac377a4fd7942a">a4230f5</a>), closes <a href="https://redirect.github.com/axios/axios/issues/7253">#7253</a> <a href="https://redirect.github.com/axios/axios/issues/7">#7</a> <a href="https://redirect.github.com/axios/axios/issues/7298">#7298</a></li> <li><strong>deps:</strong> bump peter-evans/create-pull-request from 7 to 8 in the github-actions group (<a href="https://redirect.github.com/axios/axios/issues/7334">#7334</a>) (<a href="https://github.com/axios/axios/commit/2d6ad5e48bd29b0b2b5e7e95fb473df98301543a">2d6ad5e</a>)</li> </ul> <h3>Contributors to this release</h3> <ul> <li><!-- raw HTML omitted --> <a href="https://github.com/ashvin2005" title="+1752/-4 ([microsoft#7218](axios/axios#7218) [microsoft#7218](axios/axios#7218) )">Ashvin Tiwari</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/mochinikunj" title="+940/-12 ([microsoft#7294](axios/axios#7294) [microsoft#7294](axios/axios#7294) )">Nikunj Mochi</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/imanchalsingh" title="+544/-102 ([microsoft#7169](axios/axios#7169) [microsoft#7185](axios/axios#7185) )">Anchal Singh</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/jasonsaayman" title="+317/-73 ([microsoft#7334](axios/axios#7334) [microsoft#7298](axios/axios#7298) )">jasonsaayman</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/brodo" title="+99/-120 ([microsoft#5558](axios/axios#5558) )">Julian Dax</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/AKASHDHARDUBEY" title="+167/-0 ([microsoft#7287](axios/axios#7287) [microsoft#7288](axios/axios#7288) )">Akash Dhar Dubey</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/madhumitaaa" title="+20/-68 ([microsoft#7198](axios/axios#7198) )">Madhumita</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/Tackoil" title="+80/-2 ([microsoft#6269](axios/axios#6269) )">Tackoil</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/justindhillon" title="+41/-41 ([microsoft#6324](axios/axios#6324) [microsoft#6315](axios/axios#6315) )">Justin Dhillon</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/Rudrxxx" title="+71/-2 ([microsoft#7257](axios/axios#7257) )">Rudransh</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/WuMingDao" title="+36/-36 ([microsoft#7215](axios/axios#7215) )">WuMingDao</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/codenomnom" title="+70/-0 ([microsoft#7201](axios/axios#7201) [microsoft#7201](axios/axios#7201) )">codenomnom</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/Nandann018-ux" title="+60/-10 ([microsoft#7272](axios/axios#7272) )">Nandan Acharya</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/KernelDeimos" title="+22/-40 ([microsoft#7042](axios/axios#7042) )">Eric Dubé</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/tiborpilz" title="+40/-4 ([microsoft#5551](axios/axios#5551) )">Tibor Pilz</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/joaoGabriel55" title="+31/-4 ([microsoft#6314](axios/axios#6314) )">Gabriel Quaresma</a></li> <li><!-- raw HTML omitted --> <a href="https://github.com/turadg" title="+23/-6 ([microsoft#6265](axios/axios#6265) )">Turadg Aleahmad</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/axios/axios/commit/29f75425f0c9f73021f5eedc869c176e30e05fe7"><code>29f7542</code></a> chore(release): prepare release 1.13.5 (<a href="https://redirect.github.com/axios/axios/issues/7379">#7379</a>)</li> <li><a href="https://github.com/axios/axios/commit/431c3a361490a2e3d5ac5d9e08d66d4bb5f3cd2a"><code>431c3a3</code></a> ci: fix run condition (<a href="https://redirect.github.com/axios/axios/issues/7373">#7373</a>)</li> <li><a href="https://github.com/axios/axios/commit/9ff3a78ad72ecd665a4b673686f1517d824284bf"><code>9ff3a78</code></a> ci: update ymls (<a href="https://redirect.github.com/axios/axios/issues/7372">#7372</a>)</li> <li><a href="https://github.com/axios/axios/commit/265b71234c20fabbd6d691858c65a7e9c978659f"><code>265b712</code></a> docs: fix deprecated Buffer constructor and formatting issues in README (<a href="https://redirect.github.com/axios/axios/issues/7371">#7371</a>)</li> <li><a href="https://github.com/axios/axios/commit/475e75a260668d227aec9f77735a49748c9041ff"><code>475e75a</code></a> feat: add input validation to isAbsoluteURL (<a href="https://redirect.github.com/axios/axios/issues/7326">#7326</a>)</li> <li><a href="https://github.com/axios/axios/commit/28c721588c7a77e7503d0a434e016f852c597b57"><code>28c7215</code></a> fix: Denial of Service via <strong>proto</strong> Key in mergeConfig (<a href="https://redirect.github.com/axios/axios/issues/7369">#7369</a>)</li> <li><a href="https://github.com/axios/axios/commit/04cf01969ed58f96920da032f340bfe4614aab90"><code>04cf019</code></a> docs: clarify object check comment (<a href="https://redirect.github.com/axios/axios/issues/7323">#7323</a>)</li> <li><a href="https://github.com/axios/axios/commit/696fa753c5366afbd21859c294c64c9ff2b359ab"><code>696fa75</code></a> fix: status is missing in AxiosError on and after v1.13.3 (<a href="https://redirect.github.com/axios/axios/issues/7368">#7368</a>)</li> <li><a href="https://github.com/axios/axios/commit/569f028a5878faaec8d7d138ba686aac407bda4c"><code>569f028</code></a> fix: added a option to choose between legacy and the new request/response int...</li> <li><a href="https://github.com/axios/axios/commit/44b7c9f0c4900fd8784f18e871199402f07fc69f"><code>44b7c9f</code></a> chore(deps-dev): bump karma-sourcemap-loader (<a href="https://redirect.github.com/axios/axios/issues/7360">#7360</a>)</li> <li>Additional commits viewable in <a href="https://github.com/axios/axios/compare/v1.12.2...v1.13.5">compare view</a></li> </ul> </details> <details> <summary>Maintainer changes</summary> <p>This version was pushed to npm by [GitHub Actions](<a href="https://www.npmjs.com/~GitHub">https://www.npmjs.com/~GitHub</a> Actions), a new releaser for axios since your current version.</p> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) You can trigger a rebase of this PR by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/microsoft/FluidFramework/network/alerts). </details> > **Note** > Automatic rebases have been disabled on this pull request as it has been open for over 30 days. Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Matt Rakow <ChumpChief@users.noreply.github.com>
Right now it works like so: the flag on the metadata (in the summary) will specify a preference whether or not GC is allowed. True to enable GC, false to disable it, or undefined to leave the decision totally up to the runtime.
Behavior is as follows (for now):
Right now there is no way to change this value after it is initially set.
For documents earlier than
summaryFormatVersion == 1(i.e. if they don't have the metadata blob yet), then we assumegcFeatureis explicitly0which means disallowed, and will never runGC.To set it the first time, just pass the desired value in runtimeOptions as
gcAllowed. If nothing is passed to this runtime option, then it defaults tofalseand will stay that way. When serializedtrue -> 1for allowed, andfalse -> 0for disallowed. In the future we may repurpose the 1+ to be an incrementing version for GC.Fixes #4948