You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`format`: `dotnet format ManagedCode.Storage.slnx`
142
143
143
144
Toolchain notes:
@@ -240,6 +241,7 @@ Toolchain notes:
240
241
- Coverage uses the repo-defined `coverlet.msbuild` flow and must not regress without a written exception.
241
242
- Place provider suites under `Tests/ManagedCode.Storage.Tests/Storages/` and reuse `Tests/ManagedCode.Storage.Tests/Common/` helpers for Testcontainers infrastructure such as Azurite, LocalStack, and FakeGcsServer.
242
243
- For browser providers, put end-to-end Playwright coverage in `Tests/ManagedCode.Storage.Tests/Storages/Browser/` and keep the executable test hosts under `Tests/ManagedCode.Storage.BrowserServerHost/` and `Tests/ManagedCode.Storage.BrowserWasmHost/`.
244
+
- Keep browser large-file verification tiered: the default `test` path keeps the fast browser large-file lane, while `browser-stress` runs the heavier explicit browser stress checks separately and must stay automated in CI and release.
243
245
244
246
### Storage Platform
245
247
@@ -323,9 +325,11 @@ Ask first:
323
325
324
326
- Repository-facing docs, especially `README.md`, should stay in English and describe only the current supported behavior, not transitional legacy or fallback paths.
325
327
- Temporary root-level `*.plan.md` files should be removed once a task is complete and their contents are no longer needed.
328
+
- Browser large-file coverage should use tiered automation: a fast default CI lane plus an explicit stress lane, so merge confidence stays high without accepting 30+ minute default runs.
326
329
327
330
### Dislikes
328
331
329
332
- Template-generated scaffolding in tests; keep test hosts and verification surfaces minimal, hand-written, and purpose-built.
330
333
- CI regressions that inflate `build-and-test` far beyond the historical baseline; browser large-file coverage must stay meaningful without turning the default GitHub Actions path into a 30+ minute run.
334
+
- Disabling meaningful regression tests in default CI or release flows just to hide performance or flakiness problems; fix the runtime cost, or move them into a separate explicit required lane instead of silently dropping coverage.
331
335
- Unnecessary product-code fallbacks; prefer one clear production path unless backward compatibility is an explicit requirement for the task.
Copy file name to clipboardExpand all lines: README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -106,7 +106,7 @@ Cloud storage vendors expose distinct SDKs, option models, and authentication pa
106
106
-`ManagedCode.Storage.Client` brings streaming uploads/downloads, CRC32 helpers, and MIME discovery via `MimeHelper` to any .NET app.
107
107
- Strongly typed option objects (`UploadOptions`, `DownloadOptions`, `DeleteOptions`, `MetadataOptions`, `LegalHoldOptions`, etc.) let you configure directories, metadata, and legal holds in one place.
108
108
- Virtual File System package provides a file/directory API (`IVirtualFileSystem`) on top of the configured `IStorage` and can cache metadata for faster repeated operations, including browser storage verified through real Playwright flows in both Blazor WebAssembly and Interactive Server hosts.
109
-
- Comprehensive automated test suite with cross-provider sync fixtures, multi-gigabyte streaming simulations (4 MB units per "GB"), ASP.NET controller harnesses, SFTP/local filesystem coverage, and Playwright browser verification for browser storage small-file overwrites, concurrent tabs, VFS flows, and `1 GiB` round-trips in both Interactive Server and Blazor WebAssembly hosts.
109
+
- Comprehensive automated test suite with cross-provider sync fixtures, multi-gigabyte streaming simulations (4 MB units per "GB"), ASP.NET controller harnesses, SFTP/local filesystem coverage, and Playwright browser verification for browser storage small-file overwrites, concurrent tabs, VFS flows, a fast `128 MiB` browser large-file lane, and a separate `256 MiB` browser stress lane in both Interactive Server and Blazor WebAssembly hosts.
110
110
- ManagedCode.Storage.TestFakes package plus Testcontainers-based fixtures make it easy to run offline or CI tests without touching real cloud accounts.
111
111
112
112
## Packages
@@ -979,7 +979,7 @@ If an MVC or Razor Pages application needs the packaged browser module path for
979
979
980
980
> Browser payloads use the browser Origin Private File System (OPFS). IndexedDB stays in the design only for blob metadata and list or lookup operations. If OPFS is unavailable in the current browser, uploads fail fast instead of silently falling back to a second payload backend.
981
981
982
-
> The real Playwright browser hosts in this repo verify small-file saves and overwrites, concurrent tabs, VFS flows, and `1 GiB` round-trips in both Blazor WebAssembly and Interactive Server. The large-file flows emit progress logs every `100 MiB`, and both the small-file and large-file paths assert that payload storage resolves to OPFS.
982
+
> The real Playwright browser hosts in this repo verify small-file saves and overwrites, concurrent tabs, VFS flows, a default `128 MiB` large-file path, and a separate `256 MiB` browser stress lane in both Blazor WebAssembly and Interactive Server. The large-file flows emit progress logs every `100 MiB`, and both the small-file and large-file paths assert that payload storage resolves to OPFS.
-`format`: `dotnet format ../../ManagedCode.Storage.slnx`
31
32
- Active test framework: `xUnit`
32
33
- Runner model: `VSTest`
@@ -54,3 +55,4 @@ Parent: `../../AGENTS.md`
54
55
- Every new public behavior needs integration coverage that asserts observable outcomes, not only successful method calls.
55
56
- Keep architecture dependency rules in `Architecture/` focused on durable package boundaries so they stay stable as implementation details move.
56
57
- Do not weaken assertions or skip suites to get a green run; fix the real regression or document an explicit exception.
58
+
- Browser stress tests are an explicit lane, not hidden debt: keep them automated via the dedicated `browser-stress` command or workflow instead of folding them into the fast default test path.
0 commit comments