Skip to content

Rust service - #28217

Draft
Craig Macomber (Microsoft) (CraigMacomber) wants to merge 438 commits into
microsoft:mainfrom
CraigMacomber:rust-service
Draft

Craig Macomber (Microsoft) (CraigMacomber) wants to merge 438 commits into
microsoft:mainfrom
CraigMacomber:rust-service

Conversation

@CraigMacomber

Copy link
Copy Markdown
Contributor

Description

In progress hackathon project focused on learning. This code is not intended for merging, and draft PR is mainly to make inspecting the diff/divergence simpler.

Reviewer Guidance

Not intended for review.

@github-actions github-actions Bot added area: tools area: build Build related issues area: repo Repo related work dependencies Pull requests that update a dependency file area: website base: main PRs targeted against main branch labels Sep 14, 2026
@github-actions

github-actions Bot commented Sep 14, 2026

Copy link
Copy Markdown
Contributor

Hi! Thank you for opening this PR. Want me to review it?

Based on the diff (81029 lines, 651 files), I've queued these reviewers:

  • Correctness — logic errors, race conditions, lifecycle issues
  • Security — vulnerabilities, secret exposure, injection
  • API Compatibility — breaking changes, release tags, type design
  • Performance — algorithmic regressions, memory leaks
  • Testing — coverage gaps, hollow tests

How this works

  • Adjust the reviewer set by ticking/unticking boxes above. Reviewer toggles alone don't trigger anything.

  • Tick Start review below to dispatch the review fleet.

  • After review finishes, tick Start review again to request another run — it auto-resets after each dispatch.

  • This comment updates as new commits land; your reviewer selections are preserved.

  • Start review

@github-actions github-actions Bot added area: dds Issues related to distributed data structures area: dds: tree labels Sep 14, 2026
Fluid Bot added 21 commits September 15, 2026 17:08
Introduce object-safe document and content storage contracts in core, move built-in backend selection into fluid-service-storage, and inject the composition into NativeService.

Add shared content adapters and opaque position codecs, update architecture documentation, and remove resolved storage coupling issues.
Export and tag the runtime-free SharedTree integration types, narrow the exposed kernel contract, and update its core test message envelope.
Register the minimal WASM driver with client workspace conventions, fix Biome and layer configuration, add required policy headers, and update generated metadata so pnpm build:fast completes without warnings.
Rename Rust package directories so each directory basename matches its Cargo package name, and update workspace manifests and current documentation links.
Remove the local network test that imposed foreign-generation rejection on a transparent wrapper, document position domains as implementation-defined, and normalize final newlines in touched Rust service files.
Implement the final Sea core, storage, sequencing, WebTransport, server, decorators, generated clients, Fluid adapter, examples, tests, and documentation. Remove transitional FSP and service packages.
Use a policy-recognized TypeScript build task, preserve clean output generation, strengthen policy and repo-build validation guidance, and include benchmark/generated-client test fixes.
Add conformance tests for summary handles, attachments, historical snapshots, and stale parents; document current support and a potential wire-efficient path-walking optimization.
Stop deleting TypeScript output before every minimal Fluid driver ESM build. Keep cleanup explicit for occasional stale-output recovery.
Copilot added 3 commits September 19, 2026 01:32
Move the completed investigation into historical records, preserve its evidence and remaining validation caveats, and update the index and relative links.
Migrate the Fluid driver browser trace and snapshot-registration regression to neutral sessions. Retire transport-owned generated bindings, test-support features, and build plumbing. Record stages 1–2 acceptance and preserved lifecycle coverage.
Preserve completed neutral WASM extraction while integrating optional streaming and ordinary WebSocket transports. Keep mechanics in sea-webtransport, shared session construction in sea-wasm, and isolated browser/Node artifacts and openRemote loaders in sea-typescript.

Migrate socket regression and collaboration coverage to package-owned bindings. Preserve strict default WebTransport, archive the completed investigation, and retain external-validation caveats.

Validated canonical Rust gates (150 tests), WASM Clippy, test.sh, Chromium WebTransport/WebSocketStream/WebSocket flows and shutdown, real Node WebSocket sessions, artifact dependency isolation, repository policy, and root build:fast.
Copilot added 5 commits September 19, 2026 02:16
Share binding ownership helpers, add combined compression, and validate identical local/remote scenarios with exact browser artifact loading. Record reproducible raw/gzip/Brotli measurements and stage-three acceptance.
Support detached and attached creation, registry-driven loading, compatibility options, and caller-owned local or remote sessions. Fix failed initial-summary ownership cleanup. Validate Node contracts and real browser collaboration across both presets and compression modes.
Keep existing driver defaults unchanged, own native service lifecycle in an opt-in runner, and record known SEA contract failures before production fixes. Default local and Tinylicious suites, repository build, and canonical Rust-service checks passed.
Add lazy local, WebTransport, and explicit WebSocket SEA selection with split/combined loader presets. Keep Node WASM artifacts out of browser bundles and document public Codespaces forwarding for disposable demos.

Retain inventory browser regression coverage and generalize generated example setup guidance. Validate the new Playwright files with typed lint.

Validation: frozen install; package lint/typechecks and policy checks; root build:fast; canonical Rust fmt, Clippy, rustdoc, build, tests, and documentation checks; full test.sh WASM/browser harness; 5 selector tests; 52 markdown-magic tests; 16 inventory UI tests across both presets. Public WebSocket create/edit/reload verified in the embedded browser and confirmed by the user.

This is an example-integration checkpoint, not a claim that all SERVICE_CLIENT_PLAN follow-up work is complete.
@github-actions github-actions Bot added the area: examples Changes that focus on our examples label Sep 19, 2026
Copilot added 12 commits September 19, 2026 04:05
Add opt-in neutral membership announcements with durable join and leave ordering across close, replacement, and recovery. Carry membership through transport and generated bindings, and project actual Fluid client identities with reconnect catch-up.

Retain focused Rust, Node, and browser regressions and the remaining opt-in SEA integration failure inventory. SEA remains disabled by default.

Validation: canonical Rust-service harness, root build:fast, scoped policy, strict Clippy/rustdoc/native build, and unchanged SEA lifecycle smoke passed.
Integrate a8a8a5a, including the shared SEA ServiceClient and inventory example.

Resolve a behavioral integration failure in ServiceClient reopen: SEA's active-member minimum can decrease on admission and is not Fluid's retention watermark. Keep the Fluid minimum conservatively at zero while this adapter retains all history; cover membership turnover and bounded replay in a focused regression.

Validation: frozen install, root build:fast, scoped policy, strict native gates, canonical Rust/Node/Chromium harness, and unchanged SEA lifecycle smoke passed. SEA remains off by default; broader integration failures remain inventoried.
Require accepted-prefix append order, fail-stop authority, durable terminal leave barriers, and application-owned transformed resubmission. Specify a durable monotonic reference floor separately from membership.

Mark implementation gaps with source TODOs and known issues RS-023 through RS-025. Documentation links, strict rustdoc, formatting, and scoped policy pass.
@github-actions github-actions Bot added the area: tests Tests to add, test infrastructure improvements, etc label Sep 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🔗 No broken links found! ✅

Your attention to detail is admirable.

linkcheck output

$ start-server-and-test "npm run serve -- --host 127.0.0.1 --no-open" http://127.0.0.1:3000 check-links
1: starting server using command "npm run serve -- --host 127.0.0.1 --no-open"
and when url "[ 'http://127.0.0.1:3000' ]" is responding with HTTP status code 200
running tests using command "npm run check-links"


> fluid-framework-website@0.0.0 serve
> docusaurus serve --host 127.0.0.1 --no-open

[SUCCESS] Serving "build" directory at: http://127.0.0.1:3000/

> fluid-framework-website@0.0.0 check-links
> linkcheck http://127.0.0.1:3000 --skip-file skipped-urls.txt

Crawling...

Stats:
  658102 links
    3579 destination URLs
    3898 URLs ignored
       0 warnings
       0 errors


@github-actions

Copy link
Copy Markdown
Contributor

Bundle size comparison

Base commit: unresolved
Head commit: d06eb822330f3b486a91031317823597b5191823

⚠️ Comparison unavailable.

The PR's CI build failed — fix the build and the comment will update once the next run succeeds.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: build Build related issues area: dds: tree area: dds Issues related to distributed data structures area: examples Changes that focus on our examples area: repo Repo related work area: tests Tests to add, test infrastructure improvements, etc area: tools area: website base: main PRs targeted against main branch changeset-present dependencies Pull requests that update a dependency file public api change Changes to a public API

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant