forked from microsoft/FluidFramework
-
Notifications
You must be signed in to change notification settings - Fork 1
Fix lint errors in stagingMode.spec.ts #14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
anthony-murphy
merged 703 commits into
anthony-murphy:sm-pendingState-attachments
from
anthony-murphy-agent:sm-pendingState-attachments
Jan 14, 2026
Merged
Fix lint errors in stagingMode.spec.ts #14
anthony-murphy
merged 703 commits into
anthony-murphy:sm-pendingState-attachments
from
anthony-murphy-agent:sm-pendingState-attachments
Jan 14, 2026
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Description This PR updates the `allowed-types-rollout.mdx` to use beta APIs
Tests have been failing for some time, and we are decommissioning the backing environment. I also disabled it for `next` since we haven't used that branch in a long time, and if we bring it back, we'd want to control the enabling of pipelines like this anyway.
… members (microsoft#25888) Also extracts static method `assertValidRange` and leaves a TODO for future deduplication.
## Description Tree's exception validation test logic was nice enough it got copies twice into other places, which were then not updated as it was improved. This is silly. Instead of duplication, we can have code sharing. This deduplicates the code, and establishes a plan for a follow-up to update validateAssertionError to match the cleaner API for validateUsageError. experimental/tree has been updated to the validateAssertionError2 API to show what its usage looks like. Larger changes to more likely to conflict parts of the codebase will follow if this is approved.
## Description Refactors to cleanup FlexFieldKind and its implementations.
… server stress tests (microsoft#25891) ## Description This PR removes `ConsensusOrderedCollection` from the local server stress test suite. The `setTimeout` workaround seems to not prevent the issue of the container being left in a dirty state, and CI is failing non-deterministically. For now we can remove `ConsensusOrderedCollection` from the local server stress test suite.
…microsoft#25890) ## Description Part of removing the old validateAssertionError.
## Description This PR allows tree-agent to expose properties to the llm.
## Description Removes reading and writing capabilities for the following formats: * EditManager: v1, v2 * Message: vUndefined, v1, v2 * SharedTreeChangeFormatVersion: v1, v2 * ModularChangeFormatVersion: v1, v2 * OptionalChangeset: v1 * SequenceChangeset: v1 Removing these formats reduces the package size and reduces the burden of maintenance when introducing new in-memory representations. ## Breaking Changes * Removes `SharedTreeFormatVersion` (exposed as alpha). It no longer serves a purpose (and should have been removed with microsoft#25752) * Summaries and ops with `SharedTreeFormatVersion.v1` or `SharedTreeFormatVersion.v2` configurations are no longer loadable (a usage error explaining as much will be thrown). This is not expected to cause issues because such formats were only used by default prior to releasing FF 2.0 and have only been usable since through alpha APIs. We do not know of any customer (1st or 3rd party) that depends on such formats.
## Description This adjust several ConfigMap related internal APIs and behaviors, making the code more strict about input and outputs.
## Description The new alpha APIs for handling simple schema as stored schema did not work correctly for staged schema when the simple schema was not implemented by a full view schema. [AB#53901](https://dev.azure.com/fluidframework/235294da-091d-4c29-84fc-cdfc3d90890b/_workitems/edit/53901) Now that all the information needed to translate to stored schema is present on simple schema (Including the SchemUpgrade toke added in this change), it is possible to deduplicate the two code paths for simple schema to stored schema. This change does this deduplication, and also fixes the remaining code path to handle staged schema correctly. Additionally, much more testing for this has been added.
## Description Remove old validateAssertionError
…cation and use in table schema APIs (microsoft#25896) Also updates messaging to provide more information about invalid indices / ranges.
…ng 5 instances of a bug (microsoft#25900) ## Description Expose getConfigForMinVersionForCollab. Use it in tree fixing that clientVersionToDetachedFieldVersion and 4 other similar cases in tree codecs that did not compare version strings correctly (used lexical string ordering, which would put 2.6.0 ahead of 2.52.0, enabling the new format when it should be disabled. ## Reviewer Guidance The review process is outlined on [this wiki page](https://github.com/microsoft/FluidFramework/wiki/PR-Guidelines#guidelines).
… in local server stress tests (microsoft#25894) ## Description This PR re-enables `ConsensusOrderedCollection` in local server stress tests after being disabled in microsoft#25891. To validate, I ran the local server stress test suite (seed 152 only) in a loop 500 times locally. With the old code (from microsoft#25829), it would fail consistently at some point in the loop. With the code in this PR it passed all 500 times. ## Misc [AB#53802](https://dev.azure.com/fluidframework/235294da-091d-4c29-84fc-cdfc3d90890b/_workitems/edit/53802) --------- Co-authored-by: Copilot <[email protected]>
…d during release (microsoft#25873) Added a new check function that will run during a release. For minor and patch releases, it will check the generation for layer compat has been updated before releasing and bumping versions. The check function runs the `pnpm run -r layerGeneration:gen` command and if there are any changes, prompts to commit them before proceeding with the release. This is similar to how type tests and release notes are updated. Follow up to microsoft#25670 and microsoft#25835. [AB#51927](https://dev.azure.com/fluidframework/235294da-091d-4c29-84fc-cdfc3d90890b/_workitems/edit/51927)
Tag asserts for the 2.73.0 release.
…osoft#25908) Generate release notes for 2.73.0. Commands used: ``` pnpm flub generate releaseNotes -g client -t minor --outFile RELEASE_NOTES/2.73.0.md pnpm flub vnext generate changelog -g client ```
…soft#25901) Ensure that single segments with more than one character do not get split when the full range is annotated. [AB#51785](https://dev.azure.com/fluidframework/235294da-091d-4c29-84fc-cdfc3d90890b/_workitems/edit/51785)
Bumps client release group to 2.74.0. Command used: ``` pnpm -r --include-workspace-root exec npm pkg set version=2.74.0 pnpm build --worker ```
…25912) ## Description This PR removes the use of `object-sizeof` from the summary size check flow. ## Context The [object-sizeof](https://www.npmjs.com/package/object-sizeof) library has serious sizing inconsistencies, and has shown performance issues with large data sizes. Using the current dependency version of object-sizeof (1.6), we can see a string of length 13 ("Hello, World!") shows up drastically different in a few scenarios: ```plaintext Original string length: 13 // str.length Sizeof original string: 26 bytes Original buffer length: 13 // buffer.bytelength Sizeof original buffer: 2186 bytes Compressed string length: 21 // using Pako.deflate Sizeof compressed string: 232 bytes Compressed buffer length: 21 // using Pako.deflate Sizeof compressed buffer: 232 bytes ``` Even after upgrading to object-sizeof v2.6, we can see some oddities ```plaintext Original string length: 13 // str.length Sizeof original string: 28 bytes Original buffer length: 13 // buffer.bytelength Sizeof original buffer: 13 bytes Compressed string length: 21 Sizeof compressed string: 21 bytes Compressed buffer length: 21 Sizeof compressed buffer: 21 bytes ``` Sizeof is known to do _some_ amount of internal multipliers to align sizes with ECMA storage values and memory allocation. For our use-case, we want storage-size, and we have the ability to use built-in size checks to achieve that.
…5914) ## Description In some scenarios, Nexus' session pruning will attempt to iterate over too many sessions, causing a timeout or limit errors. We should allow pre-emptively limiting the amount of sessions to retrieve from storage. --------- Co-authored-by: zhangxin511 <[email protected]>
## Description Fixes a grammatical mismatch (documents -> is) and a missing word. ## Reviewer Guidance The review process is outlined on [this wiki page](https://github.com/microsoft/FluidFramework/wiki/PR-Guidelines#guidelines).
## Description This PR updates our `glob` depdencies to `10.5.0` to avoid using `10.4.5` which has security vulnerabilities. Since all consumers of `10.4.5` are able to use `10.5.0`, we only need to update the lockfiles. To do so I did the following: 1. Add a pnpm override to use `[email protected]` 2. Run `pnpm i --no-frozen-lockfile` 3. Remove the override 4. Run `pnpm i --no-frozen-lockfile` again This results in the lock file no longer referencing the `10.4.5` version. ## Misc [AB#53799](https://dev.azure.com/fluidframework/235294da-091d-4c29-84fc-cdfc3d90890b/_workitems/edit/53799)
Renames test modules, test-cases directory, and removes unneeded folder hierarchy.
## Description Add minimal internal only text domain suitable for building an example text editor or tree.
- Process all of packages local source files for assertions. - Apply results to restore missing short codes.
Removes the unicorn/no-array-reduce: off override from the @fluidframework/tree package and fixes the resulting errors. Converts all Array.reduce() calls to explicit for loops. This is part of an ongoing effort to incrementally remove global ESLint rule overrides from eslint.config.mts and .eslintrc.cjs. Changes: - Production code (2 files) - Test code (6 files) No inline overrides were needed - all reduce usages could be converted to for loops.
Removes the unicorn/no-useless-fallback: off override from the @fluidframework/tree package and fixes the resulting errors. This is part of an ongoing effort to incrementally remove global ESLint rule overrides from eslint.config.mts and .eslintrc.cjs.
Removes the unicorn/no-new-array: off override from the @fluidframework/tree package and fixes the resulting errors. This is part of an ongoing effort to incrementally remove global ESLint rule overrides from eslint.config.mts and .eslintrc.cjs. Renamed local schema classes from Array to ArrayNode to avoid shadowing the built-in Array constructor. These were false positives. All violations were fixed without requiring eslint-disable comments.
… `recommended` to `minimal` (microsoft#26174) Also fixes resulting linter violations. Part of a larger effort to collapse the "recommended" and "minimal-deprecated" configs and eventually delete the latter.
This PR refactors snapshot refresh functionality by extracting it from SerializedStateManager into a new dedicated SnapshotRefresher class, improving separation of concerns,maintainability and testing. Current e2e snapshot refresh tests are disabled due to flakiness so this PR adds back some test coverage for those scenarios. --------- Co-authored-by: Copilot <[email protected]>
Adds Mocha testing to inventory-app package to be pure ESM (no CommonJS build) New test suite (src/test/inventoryApp.test.tsx): - Added schema tests to verify Inventory and Part nodes can be created, edited, and manipulated - Added DOM tests for all 3 view implementations (MainView, InventoryViewMonolithic, InventoryViewWithHook) - Tests run in both React StrictMode enabled and disabled to catch potential issues - Tests verify tree invalidation by mutating data and checking view updates Package updates: - Added Mocha, @testing-library/react, and global-jsdom for ESM-compatible testing - Added .mocharc.cjs with exit: true The previous test suite had one test with a commented-out line and was entirely skipped. Jest also required CommonJS builds since it doesn't support ESM natively. This change enables the example to be ESM-only while having meaningful test coverage by utilizing React and jsdom. --------- Co-authored-by: Nori <[email protected]>
Update type test baselines.
…#26179) Removes the unicorn/no-await-expression-member: off override from the @fluidframework/tree package and fixes the resulting errors. Extracts awaited values into intermediate variables before accessing their members. This is part of an ongoing effort to incrementally remove global ESLint rule overrides from eslint.config.mts and .eslintrc.cjs.
Adds links to the staged allowed types guide
## Summary Removes five `.eslintignore` files that are no longer needed in eslint 9. - **examples/data-objects/codemirror**: Was ignoring `*.spec.ts` files - **examples/data-objects/prosemirror**: Was ignoring `*.spec.ts` files - **examples/data-objects/smde**: Was ignoring `*.spec.ts` files - **experimental/PropertyDDS/packages/property-properties**: Was ignoring `*.spec.ts` files - **packages/runtime/runtime-definitions**: Was ignoring `test-d` directory
…ls (microsoft#26152) These changes are in preparation for upgrading to eslint 9 in build-tools. ## Summary - Fix low-count ESLint violations across the build-tools workspace - Address issues from newly enabled ESLint rules without modifying the config ## Changes - Replace `.replace(/x/g, ...)` with `.replaceAll()` (unicorn/prefer-string-replace-all) - Change `import * as path` to `import path` (unicorn/import-style) - Remove useless `undefined` arguments (unicorn/no-useless-undefined) - Fix JSDoc `@param` names to match actual parameters (jsdoc/check-param-names) - Add inline disables for idiomatic usage patterns: - `async.mapLimit`, `semver.parse`, `sortJson.overwrite` (import-x/no-named-as-default-member) - `prompts` default export (import-x/no-named-as-default) - Remove unused eslint-disable directives for import-x/no-default-export - Change `@module` to `@packageDocumentation` for TSDoc compatibility (tsdoc/syntax)
Force filtering directory to use `/` on Windows. Additionally, add additional per package and per file (verbose) processing logging.
## Summary Replaces the axios HTTP client library with native `fetch` API across client-side packages to reduce bundle size and simplify dependencies. ## Changes ### Routerlicious Driver (`packages/drivers/routerlicious-driver`) - Replaced axios with native `fetch` via `cross-fetch` polyfill - Created `request.cts` with fetch-compatible type definitions (`RequestConfig`, `RequestHeaders`, `RawRequestHeaders`) that maintain API compatibility with server-side axios usage - Removed `axios.cts` re-export file - Moved `uuid` from runtime to dev dependencies (only used in tests) ### Driver Utils (`packages/loader/driver-utils`) - Updated `insecureUrlResolver.ts` to use native `fetch` instead of axios - Removed axios dependency from package.json ### Azure Client E2E Tests (`packages/service-clients/end-to-end-tests/azure-client`) - Refactored `AzureClientFactory.ts` to use native `fetch` - Introduced `FetchResponse` interface to replace `AxiosResponse` type - Updated response handling with explicit `response.ok` checks (fetch doesn't auto-throw on non-2xx) - Improved type safety in `getContainerIdFromPayloadResponse` with explicit type guards - Removed `AxiosResponse` type imports from all test files
…#26191) ## Summary Adds inline `eslint-disable-next-line` comments across ~79 files to prepare for upcoming stricter lint rules in typescript-eslint. These suppressions prevent behavioral changes from automatic code transformations. The suppressed rules are: - `@typescript-eslint/prefer-nullish-coalescing` - Using `??` instead of `||` could change behavior for falsy values like `0`, `""`, or `false` - `@typescript-eslint/prefer-optional-chain` - Using `?.` instead of `&&` could change behavior in some edge cases - `@typescript-eslint/strict-boolean-expressions` - Intentional truthy/falsy checks - `@typescript-eslint/no-unsafe-enum-comparison` - Intentional enum comparisons - `@typescript-eslint/await-thenable` - Known patterns where await is used intentionally - `@typescript-eslint/no-base-to-string` - Known cases where toString behavior is expected Two files (directory.ts, client.rollback.spec.ts) use file-wide disables with TODO comments to track fixing the violations later.
- Renamed inventoryList.tsx to inventoryView.tsx in view folder. - Removed ESlint disable by adding an index.ts in view folder and importing from there
cmd: `pnpm flub bump build-tools -t minor`
…recated" as warnings (microsoft#26190) Part of a larger effort to collapse "recommended" into "minimal-deprecated" so we can remove the "minimal" config from the package. Promotes rules explicitly enabled in "recommended" to "minimal" as warnings (for now). This will encourage developers to not introduce new violations and potentially fix existing ones while we do the larger config migration. --------- Co-authored-by: Copilot <[email protected]>
Add optional loadPendingChannels method to IFluidDataStoreChannel for pending state rehydration. This replaces the duck-typed cast in channelCollection.ts with proper type-safe optional chaining. Co-Authored-By: Claude Opus 4.5 <[email protected]> Co-Authored-By: anthony-murphy <[email protected]>
Co-Authored-By: Claude Opus 4.5 <[email protected]> Co-Authored-By: anthony-murphy <[email protected]>
- Convert inline type imports to top-level type qualifiers - Add explicit types to fix eslint errors Co-Authored-By: Claude Opus 4.5 <[email protected]> Co-Authored-By: anthony-murphy <[email protected]>
b44c9ed to
aee853d
Compare
|
🔗 No broken links found! ✅ Your attention to detail is admirable. linkcheck output |
Removed unnecessary MapLike interface and cast, using SharedMap type directly. Co-Authored-By: Claude Opus 4.5 <[email protected]> Co-Authored-By: anthony-murphy <[email protected]>
Resolved merge conflicts to incorporate upstream changes. Co-Authored-By: Claude Opus 4.5 <[email protected]> Co-Authored-By: anthony-murphy <[email protected]>
Added explicit type checking for the resolved handle object: - If DataObjectWithStagingMode: recursively enumerate its data - If SharedMap: recursively call loadStateInt - Otherwise: keep the resolved value as-is This makes the code more robust and clearer about its intent. Co-Authored-By: anthony-murphy <[email protected]> Co-Authored-By: Claude Opus 4.5 <[email protected]>
Author
|
Fixed the if (obj instanceof DataObjectWithStagingMode) {
state[key] = await obj.enumerateDataWithHandlesResolved();
} else if (obj instanceof SharedMap) {
state[key] = await loadStateInt(obj);
} else {
// For other resolved handle types, just keep the resolved value
state[key] = obj;
}This makes the code more robust and clearer about its intent. |
ddeecf8
into
anthony-murphy:sm-pendingState-attachments
2 checks passed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This allows the pending state rehydration tests to build and run.
🤖 Generated with Claude Code