Apply Bswup improvements (#12408) - #12418
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughBit.Bswup updates service-worker caching and lifecycle coordination, registration-aware page behavior, accessible progress UI, build outputs, demo applications, documentation, and comprehensive JavaScript validation. ChangesBit.Bswup runtime and service worker
Build, demos, documentation, and validation
Estimated code review effort: 5 (Critical) | ~120 minutes Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts`:
- Around line 47-57: The manifest validation detects errors (MANIFEST_ERRORS
from validateAssetsManifest) but the code continues to run and later
dereferences self.assetsManifest.assets, causing a crash; after calling
sendError you should stop further startup: return/throw to prevent asset
enumeration, and guard any access to self.assetsManifest.assets (e.g., use
Array.isArray(self.assetsManifest.assets) before iterating) and ensure VERSION
fallback is computed safely (use (self.assetsManifest && typeof
self.assetsManifest.version === 'string') ? self.assetsManifest.version :
'0.0.0-invalid-manifest') so the service worker does not proceed when the
manifest is invalid; update the block around MANIFEST_ERRORS, sendError,
VERSION, and any asset-enumeration code that uses self.assetsManifest.assets to
enforce this early exit and safe checks.
In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts`:
- Around line 321-324: The catch block in checkForUpdate currently calls
handle(BswupMessage.error, ...) which routes transient registration.update()
failures into the blocking install-error path; change this to emit a
non-blocking message instead (e.g., add a new enum/value like
BswupMessage.updateCheckFailed or use a non-fatal level such as
BswupMessage.warn/info) and call handle(...) with that new message name,
preserving the payload ({ reason: 'update', message: String((err && (err as
any).message) || err), reload }) so callers can still react but the default
progress handler will not hide the app or show the install-failed UI. Ensure to
update any switch/handler that consumes BswupMessage.* to treat the new
updateCheckFailed value as non-blocking.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: ae99fd6f-8550-4920-b5b5-7982f9b3572d
📒 Files selected for processing (7)
src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup/BswupProgress.razorsrc/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.tssrc/Bswup/Bit.Bswup/Styles/bit-bswup.progress.csssrc/Bswup/README.md
|
@coderabbitai re-review |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
echo "=== bit-bswup.sw.ts ==="
fd "bit-bswup.sw.ts" --exec cat {}
echo ""
echo "=== bit-bswup.ts ==="
fd "bit-bswup.ts" -E "*.js" --exec cat {}
echo ""
echo "=== bit-bswup.progress.ts ==="
fd "bit-bswup.progress.ts" --exec cat {}
echo ""
echo "=== BswupProgress.razor ==="
fd "BswupProgress.razor" --exec cat {}
echo ""
echo "=== bit-bswup.progress.css ==="
fd "bit-bswup.progress.css" --exec cat {}
echo ""
echo "=== service-worker.js (demo) ==="
fd "service-worker.js" --search-path "Bit.Bswup.Demo" --exec cat {}
echo ""
echo "=== README.md (Bswup) ==="
cat src/Bswup/README.mdLength of output: 87174
🔴 Critical — Crash when
|
There was a problem hiding this comment.
Pull request overview
This PR improves Bit.Bswup’s update experience and robustness by adding user-visible install error reporting (with retry), introducing opt-in update polling (interval and/or tab visibility), improving multi-tab update consistency, and expanding Blazor script auto-detection to cover both Blazor Web App and standalone WebAssembly entry points.
Changes:
- Add update polling controls (
updateInterval,updateOnVisibility) and expose/extend JS API docs (BitBswup.checkForUpdate,skipWaiting,forceRefresh). - Improve service worker install reliability (manifest validation, retries/backoff, strict vs lax error tolerance, safer multi-tab activation/claim behavior).
- Enhance the progress UI with an error panel (message/details + retry) and corresponding styles.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| src/Bswup/README.md | Documents new script attributes, error tolerance behavior, multi-tab behavior, security notes, and JS API. |
| src/Bswup/Bit.Bswup/Styles/bit-bswup.progress.css | Adds styling for the new install error panel and retry button behavior. |
| src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts | Adds idempotent initialization, update polling, better controllerchange handling, richer logging levels, and expanded Blazor script detection. |
| src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts | Adds manifest validation + error reporting, retry/backoff for asset fetches, strict/lax install semantics, safer cache update sequencing, and RegExp parsing improvements. |
| src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts | Adds UI handling for install errors (message/details/retry) and keeps assets list visibility in sync with runtime config changes. |
| src/Bswup/Bit.Bswup/BswupProgress.razor | Updates the progress component markup to include an error panel and changes initialization to run via a <script> block. |
| src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js | Removes demo precachedAssetsInclude config line. |
| src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.js | Adjusts demo config to use errorTolerance = 'lax' with explanatory comment. |
|
@coderabbitai re-review |
|
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Actionable comments posted: 6
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts (1)
333-362:⚠️ Potential issue | 🟠 Major | ⚡ Quick winUse
e.waitUntil()for async work in the service workermessagehandler.Returning a Promise from the
messagelistener doesn’t reliably keep the worker alive; useExtendableMessageEvent.waitUntil(...)forskipWaiting(),clients.claim(), cache deletion/filling, and the follow-uppostMessage.Suggested fix
-function handleMessage(e: MessageEvent<string>) { +function handleMessage(e: any) { diag('handleMessage:', e); if (e.data === 'SKIP_WAITING') { - return self.skipWaiting() - .then(() => self.clients.claim()) - .then(() => deleteOldCaches()) - .then(() => sendMessage('WAITING_SKIPPED')); + e.waitUntil( + self.skipWaiting() + .then(() => self.clients.claim()) + .then(() => deleteOldCaches()) + .then(() => sendMessage('WAITING_SKIPPED')) + ); + return; } if (e.data === 'CLAIM_CLIENTS') { - return self.clients.claim() - .then(() => deleteOldCaches()) - .then(() => e.source?.postMessage('CLIENTS_CLAIMED')); + e.waitUntil( + self.clients.claim() + .then(() => deleteOldCaches()) + .then(() => e.source?.postMessage('CLIENTS_CLAIMED')) + ); + return; } if (e.data === 'BLAZOR_STARTED') { - createAssetsCache(true); + e.waitUntil(createAssetsCache(true)); + return; } if (e.data === 'CLEAN_UP') { - deleteOldCaches(); // remove the old caches + e.waitUntil(deleteOldCaches()); // remove the old caches } }🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts` around lines 333 - 362, The message handler currently returns Promises but must use e.waitUntil(...) to keep the service worker alive; wrap each async branch so that SKIP_WAITING uses e.waitUntil(self.skipWaiting().then(() => self.clients.claim()).then(() => deleteOldCaches()).then(() => sendMessage('WAITING_SKIPPED'))), CLAIM_CLIENTS uses e.waitUntil(self.clients.claim().then(() => deleteOldCaches()).then(() => e.source?.postMessage('CLIENTS_CLAIMED'))), BLAZOR_STARTED uses e.waitUntil(createAssetsCache(true)), and CLEAN_UP uses e.waitUntil(deleteOldCaches()), ensuring all calls to self.skipWaiting(), self.clients.claim(), deleteOldCaches(), createAssetsCache(true), sendMessage and e.source?.postMessage are inside the waitUntil chains.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/Bswup/Bit.Bswup/BswupProgress.razor`:
- Around line 37-39: The inline script in BswupProgress.razor calls
BitBswupProgress.start(...) unguarded which throws if bit-bswup.progress.js
hasn't loaded; update the init to check for the global before invoking (e.g.,
use window.BitBswupProgress?.start(...) or an explicit if
(window.BitBswupProgress) call) passing the same parameters (AutoReload,
ShowLogs, ShowAssets, AppContainer, HideApp, AutoHide, Handler), or
alternatively move the startup into the component lifecycle (OnAfterRenderAsync)
and call JS interop to invoke BitBswupProgress.start to guarantee ordering.
- Line 38: The call to BitBswupProgress.start injects AppContainer and Handler
as raw single-quoted JS literals which can be broken by
quotes/backslashes/newlines; change those embeddings to JSON-encoded JS-safe
strings instead (e.g., replace the single-quoted '@(AppContainer)' and
'@(Handler)' with the output of
System.Text.Json.JsonSerializer.Serialize(AppContainer) and
JsonSerializer.Serialize(Handler) so the values are properly escaped and already
quoted), update the BswupProgress.razor to use JsonSerializer.Serialize for both
AppContainer and Handler and add the required using/import for System.Text.Json
if missing.
In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts`:
- Around line 86-94: The cache bucket currently uses only CACHE_VERSION (derived
from self.cacheVersion or VERSION) which allows different manifests to share a
bucket; change the cache naming so the manifest VERSION is always part of the
bucket identity. Keep the existing CACHE_VERSION calculation (using
self.cacheVersion fallback to VERSION) but construct CACHE_NAME to include both
VERSION and CACHE_VERSION (e.g. `${CACHE_NAME_PREFIX} - ${VERSION} -
${CACHE_VERSION}`), so the manifest VERSION remains in the cache bucket while
cacheVersion can still be used to pin/force refresh.
- Around line 516-540: The current logic sets isIntegrity true whenever
hasIntegrity && fetchErr instanceof TypeError, which treats all TypeError fetch
rejections as SRI failures and prevents retries; change the detection in the
addCache flow so a bare TypeError does NOT automatically mark an integrity
failure: remove fetchErr instanceof TypeError from the isIntegrity predicate and
instead only classify as integrity when there is a clear integrity signal (e.g.,
the error message matches the integrity/digest regex) or after explicitly
recomputing and comparing the response bytes to asset.hash; keep transient
TypeError cases as retryable (use lastError/continue while attempt <
MAX_RETRIES), and only increment integrityFailureCount, set sendError.reason to
'integrity', and skip retries when you have a confirmed integrity mismatch (use
the integrity regex or the explicit digest comparison to decide).
In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts`:
- Line 35: Guard runBswup against late script injection by checking
document.readyState before adding the listener: if the document is already
"interactive" or "complete" call runBswup() immediately, otherwise attach
window.addEventListener('DOMContentLoaded', runBswup) (refer to the runBswup
symbol). Also fix BitBswup.forceRefresh where cacheFilter.test(key) is used:
avoid inconsistent results when cacheFilter has the global (g) or sticky (y)
flags by resetting cacheFilter.lastIndex = 0 before each test or by creating a
non-global equivalent RegExp from cacheFilter (use cacheFilter.source with flags
stripped of g/y) and testing against that; reference the BitBswup.forceRefresh
method and the cacheFilter variable so the change is made exactly where repeated
RegExp.test calls occur.
- Around line 497-500: forceRefresh builds the shouldDelete predicate from
cacheFilter but when cacheFilter is a RegExp it calls cacheFilter.test()
repeatedly, which can misbehave for /.../g or /.../y because RegExp.lastIndex is
mutated; fix by updating the RegExp branch in the shouldDelete construction
(used in forceRefresh) to reset cacheFilter.lastIndex = 0 before calling
cacheFilter.test(key) so each key is tested from the start; reference the
shouldDelete variable and cacheFilter RegExp usage in forceRefresh when making
the change.
---
Outside diff comments:
In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts`:
- Around line 333-362: The message handler currently returns Promises but must
use e.waitUntil(...) to keep the service worker alive; wrap each async branch so
that SKIP_WAITING uses e.waitUntil(self.skipWaiting().then(() =>
self.clients.claim()).then(() => deleteOldCaches()).then(() =>
sendMessage('WAITING_SKIPPED'))), CLAIM_CLIENTS uses
e.waitUntil(self.clients.claim().then(() => deleteOldCaches()).then(() =>
e.source?.postMessage('CLIENTS_CLAIMED'))), BLAZOR_STARTED uses
e.waitUntil(createAssetsCache(true)), and CLEAN_UP uses
e.waitUntil(deleteOldCaches()), ensuring all calls to self.skipWaiting(),
self.clients.claim(), deleteOldCaches(), createAssetsCache(true), sendMessage
and e.source?.postMessage are inside the waitUntil chains.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: d3c76fdc-5fec-4833-85fc-89e300ee0dd0
📒 Files selected for processing (8)
src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup/BswupProgress.razorsrc/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.tssrc/Bswup/Bit.Bswup/Styles/bit-bswup.progress.csssrc/Bswup/README.md
💤 Files with no reviewable changes (1)
- src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js
|
@coderabbitai re-review |
|
✅ Action performedFull review finished. |
There was a problem hiding this comment.
Actionable comments posted: 7
🧹 Nitpick comments (1)
src/Bswup/README.md (1)
105-110: ⚡ Quick winConsider showing complete error details in the example.
The comment documents that
data.urlanddata.hashare available "when known", but the example only logsdata.reasonanddata.message. For a more complete reference example, consider showing all available fields.📝 Suggested enhancement
case BswupMessage.error: // Structured install failure. data.reason is one of 'manifest' | 'integrity' | // 'fetch' | 'cache' | 'request' | 'install-incomplete'; data.message is human // readable, and data.url / data.hash point at the offending asset when known. - console.error('Bswup install error:', data.reason, data.message); + console.error('Bswup install error:', data.reason, data.message, data.url, data.hash); return;🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/README.md` around lines 105 - 110, The example logging for the BswupMessage.error case only prints data.reason and data.message; update the handler for the BswupMessage.error branch (the switch case) to log all available error details (data.reason, data.message, and when present data.url and data.hash, plus the whole data object for unknown fields) so consumers see the complete failure context; use the existing BswupMessage.error case and data variable to append url and hash if defined and include a fallback of logging the entire data object.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts`:
- Around line 129-149: The retry suppression omitted the 'install-incomplete'
reason so deterministic failures can still show the retry button; update the
nonRetriableReasons used where errorRetryButton is handled (the
nonRetriableReasons array and the isRetriable check in the same block) to
include 'install-incomplete' alongside 'manifest' and 'integrity' so isRetriable
becomes false for that reason, keep the existing behavior for invoking
data.reload() or window.location.reload() unchanged.
In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts`:
- Around line 388-425: The extract() function currently assigns options =
(window[optionsName] || defaultoptions) which replaces defaults when a partial
window[optionsName] exists; change it to merge defaults with any global config
(e.g. create options by combining defaultoptions and window[optionsName] such as
Object.assign({}, defaultoptions, window[optionsName]) or using the spread
operator) so missing keys in window[optionsName] fall back to defaultoptions;
keep the subsequent attribute overrides (log, sw, scope, handlerName,
blazorScript, updateInterval, updateOnVisibility) applied on top of the merged
options.
- Around line 427-438: The current handle function permanently replaces
options.handler with a noop when window[options.handlerName] is missing,
preventing later attachment from being picked up; change it so you do not
overwrite options.handler on missing handler — instead read
window[options.handlerName] into a local variable (e.g., foundHandler) or only
assign to options.handler when a real function is present, call that local/found
handler if available, and leave options.handler untouched (so future
registrations on window[options.handlerName] can be discovered); update the
logic in the handle function that references options.handlerName and
options.handler to reflect this non-destructive check.
In `@src/Bswup/Bit.Bswup/Styles/bit-bswup.progress.css`:
- Around line 74-89: Replace the deprecated word-break: break-word in the
.bit-bswup-error-message and .bit-bswup-error-details selectors by removing
those declarations and adding overflow-wrap: anywhere (leave existing
white-space: pre-wrap intact) so the stylesheet no longer triggers the Stylelint
warning.
In `@src/Bswup/README.md`:
- Line 218: Update the README entry for the `FullOffline` mode to correct the
grammar by changing "from first time the app is loaded" to "from the first time
the app is loaded" so the description reads: "Enables the full offline mode
where all assets are cached and served from the cache from the first time the
app is loaded."
- Around line 228-234: Update the "Polling for updates" paragraph to fix the
numeric inconsistency: change "There are three ways to check more often:" to
"There are two ways to check more often:" (since only the built-in options using
updateInterval/updateOnVisibility and calling BitBswup.checkForUpdate() are
listed), ensuring the section header "Polling for updates" and references to
updateInterval, updateOnVisibility and BitBswup.checkForUpdate() remain
unchanged.
- Line 213: The README wording incorrectly states that per-asset ?v= and SRI
derive from the manifest version; update the text to accurately reflect that
CACHE_VERSION / cacheVersion only affect the cache bucket name (computed into
CACHE_NAME) while per-asset cache-buster and integrity are set inside
createNewAssetRequest() using each asset's asset.hash (with fallback to
self.assetsManifest.version) and requestInit.integrity = asset.hash; replace the
sentence to mention that ?v= primarily comes from asset.hash (fallback to
manifest.version) and SRI uses asset.hash, and remove any implication that those
values reference self.cacheVersion or CACHE_VERSION.
---
Nitpick comments:
In `@src/Bswup/README.md`:
- Around line 105-110: The example logging for the BswupMessage.error case only
prints data.reason and data.message; update the handler for the
BswupMessage.error branch (the switch case) to log all available error details
(data.reason, data.message, and when present data.url and data.hash, plus the
whole data object for unknown fields) so consumers see the complete failure
context; use the existing BswupMessage.error case and data variable to append
url and hash if defined and include a fallback of logging the entire data
object.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 427f1025-c5ef-456e-b74d-6a2168e132d7
📒 Files selected for processing (9)
src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup/BswupProgress.razorsrc/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.tssrc/Bswup/Bit.Bswup/Styles/bit-bswup.progress.csssrc/Bswup/README.md
💤 Files with no reviewable changes (1)
- src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js
|
@coderabbitai re-review |
|
✅ Action performedFull review finished. |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (2)
src/Bswup/Tests/bit-bswup-js/page-script.test.js (1)
263-285: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueOptional: hoist
fakeWorker/progress100into the harness. Both are duplicated here (Lines 264-278, 285, 765, 868) and again inprogress-ui.test.js(Lines 377-390); a shared export keeps the lifecycle fake in one place as the SW contract evolves.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Tests/bit-bswup-js/page-script.test.js` around lines 263 - 285, Optionally extract the duplicated fakeWorker helper and progress100 fixture from the reload determinism tests and progress UI tests into the shared test harness. Export and reuse these shared symbols so the ServiceWorker lifecycle fake and 100% progress message remain defined in one place.src/Bswup/Tests/bit-bswup-js/harness.js (1)
465-473: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueOptional: window and document listeners share one registry.
document.addEventListenerandwindow.addEventListenerboth push intolisteners, soapi.fire('visibilitychange')can't distinguish which target the bundle actually registered on — a regression that moves a listener between targets stays green. Separate maps (withfire(type, target)) would pin the contract.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Tests/bit-bswup-js/harness.js` around lines 465 - 473, Separate the event listener registries used by the sandbox window and document in the harness setup, rather than sharing listeners. Update the exposed fire API to accept a target and dispatch only listeners registered on that target, preserving addEventListener and removeEventListener behavior for each registry so target-specific registration regressions are detected.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/Bswup/Bit.Bswup.Demo/Pages/ServiceWorkerPage.razor`:
- Around line 172-192: Update the errorTolerance documentation in the
ServiceWorkerPage markup to identify strict as the default instead of lax, and
ensure the strict description reflects that default without changing the
documented lax behavior.
In `@src/Bswup/Bit.Bswup/Bit.Bswup.csproj`:
- Around line 90-99: The BuildJavaScript incremental inputs do not change when
switching configurations, allowing Release-minified outputs to be reused in
Debug. Update the BuildJavaScript Target’s Inputs to include a
configuration-scoped stamp or equivalent build-configuration signal, ensuring
tsc reruns after configuration changes while preserving the existing source and
package inputs.
---
Nitpick comments:
In `@src/Bswup/Tests/bit-bswup-js/harness.js`:
- Around line 465-473: Separate the event listener registries used by the
sandbox window and document in the harness setup, rather than sharing listeners.
Update the exposed fire API to accept a target and dispatch only listeners
registered on that target, preserving addEventListener and removeEventListener
behavior for each registry so target-specific registration regressions are
detected.
In `@src/Bswup/Tests/bit-bswup-js/page-script.test.js`:
- Around line 263-285: Optionally extract the duplicated fakeWorker helper and
progress100 fixture from the reload determinism tests and progress UI tests into
the shared test harness. Export and reuse these shared symbols so the
ServiceWorker lifecycle fake and 100% progress message remain defined in one
place.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: c597aa0d-26a2-4097-b2f0-a34d3f38f4f1
⛔ Files ignored due to path filters (8)
src/Bswup/Demos/BasicDemo/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/BasicDemo/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/BasicDemo/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/FullDemo/Client/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Tests/bit-bswup-js/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (100)
.github/workflows/bit.ci.Bswup.ymlsrc/Bit.CI.Release.slnxsrc/Bit.slnxsrc/Bswup/Bit.Bswup.Demo/App.razorsrc/Bswup/Bit.Bswup.Demo/Bit.Bswup.Demo.csprojsrc/Bswup/Bit.Bswup.Demo/Pages/CleanupPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/EventsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/GettingStartedPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/HomePage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/JsApiPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/MigrationPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/PlaygroundPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ProgressUIPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ScriptOptionsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ServiceWorkerPage.razorsrc/Bswup/Bit.Bswup.Demo/Properties/launchSettings.jsonsrc/Bswup/Bit.Bswup.Demo/Shared/Callout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/CodeBlock.razorsrc/Bswup/Bit.Bswup.Demo/Shared/MainLayout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/NavMenu.razorsrc/Bswup/Bit.Bswup.Demo/_Imports.razorsrc/Bswup/Bit.Bswup.Demo/wwwroot/app.csssrc/Bswup/Bit.Bswup.Demo/wwwroot/demo.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/index.htmlsrc/Bswup/Bit.Bswup.Demo/wwwroot/manifest.jsonsrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csprojsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.jsonsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.jsonsrc/Bswup/Bit.Bswup.slnxsrc/Bswup/Bit.Bswup/Bit.Bswup.csprojsrc/Bswup/Bit.Bswup/BswupProgress.razorsrc/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.tssrc/Bswup/Bit.Bswup/Styles/bit-bswup.progress.csssrc/Bswup/Bit.Bswup/tsconfig.jsonsrc/Bswup/Bit.Bswup/tsconfig.sw.jsonsrc/Bswup/Demos/BasicDemo/App.razorsrc/Bswup/Demos/BasicDemo/Bit.Bswup.BasicDemo.csprojsrc/Bswup/Demos/BasicDemo/Pages/CounterPage.razorsrc/Bswup/Demos/BasicDemo/Pages/HomePage.razorsrc/Bswup/Demos/BasicDemo/Program.cssrc/Bswup/Demos/BasicDemo/Properties/launchSettings.jsonsrc/Bswup/Demos/BasicDemo/_Imports.razorsrc/Bswup/Demos/BasicDemo/wwwroot/index.htmlsrc/Bswup/Demos/BasicDemo/wwwroot/manifest.jsonsrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.jssrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Client/Bit.Bswup.FullDemo.Client.csprojsrc/Bswup/Demos/FullDemo/Client/Pages/Counter.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Error.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Home.razorsrc/Bswup/Demos/FullDemo/Client/Program.cssrc/Bswup/Demos/FullDemo/Client/Routes.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razorsrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razor.csssrc/Bswup/Demos/FullDemo/Client/_Imports.razorsrc/Bswup/Demos/FullDemo/Client/wwwroot/manifest.jsonsrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Server/Bit.Bswup.FullDemo.Server.csprojsrc/Bswup/Demos/FullDemo/Server/Components/App.razorsrc/Bswup/Demos/FullDemo/Server/Components/_Imports.razorsrc/Bswup/Demos/FullDemo/Server/Program.cssrc/Bswup/Demos/FullDemo/Server/Properties/launchSettings.jsonsrc/Bswup/Demos/FullDemo/Server/appsettings.jsonsrc/Bswup/FullDemo/Client/Pages/Counter.razorsrc/Bswup/FullDemo/Client/Properties/launchSettings.jsonsrc/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/FullDemo/Client/_Imports.razorsrc/Bswup/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/FullDemo/Server/Pages/_Host.cshtmlsrc/Bswup/FullDemo/Server/Pages/_Layout.cshtmlsrc/Bswup/FullDemo/Server/Program.cssrc/Bswup/FullDemo/Server/Startup/Middlewares.cssrc/Bswup/FullDemo/Server/Startup/Services.cssrc/Bswup/README.mdsrc/Bswup/Tests/bit-bswup-js/.gitignoresrc/Bswup/Tests/bit-bswup-js/fetch-resilience.test.jssrc/Bswup/Tests/bit-bswup-js/harness.jssrc/Bswup/Tests/bit-bswup-js/package.jsonsrc/Bswup/Tests/bit-bswup-js/page-script.test.jssrc/Bswup/Tests/bit-bswup-js/progress-ui.test.jssrc/Bswup/Tests/bit-bswup-js/service-worker.test.jssrc/Bswup/Tests/bit-bswup-js/version-consistency.test.js
💤 Files with no reviewable changes (23)
- src/Bswup/FullDemo/Client/_Imports.razor
- src/Bswup/FullDemo/Server/Pages/_Host.cshtml
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csproj
- src/Bswup/FullDemo/Server/Program.cs
- src/Bswup/FullDemo/Client/wwwroot/service-worker.js
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cs
- src/Bswup/FullDemo/Server/Pages/_Layout.cshtml
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razor
- src/Bswup/FullDemo/Client/Properties/launchSettings.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razor
- src/Bswup/FullDemo/Server/Startup/Services.cs
- src/Bswup/FullDemo/Server/Startup/Middlewares.cs
- src/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razor
- src/Bswup/FullDemo/Client/Pages/Counter.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.js
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.js
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.css
|
@coderabbitai full-review |
|
✅ Action performedFull review finished. |
There was a problem hiding this comment.
Actionable comments posted: 4
🧹 Nitpick comments (2)
src/Bswup/Bit.Bswup.Demo/Pages/PlaygroundPage.razor (1)
21-80: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winAnnounce event-log updates to assistive tech.
#bswup-demo-eventsand the#pg-*status cells are mutated by JS after user actions ("Refresh status", "Check for update"), but nothing signals the change to a screen reader — the button appears to do nothing. Addingaria-live="polite"to the log list and the status<dl>makes the playground usable without sight.🔧 Proposed fix
- <dl class="status-list"> + <dl class="status-list" aria-live="polite"> @@ - <ul id="bswup-demo-events" class="event-log"></ul> + <ul id="bswup-demo-events" class="event-log" aria-live="polite"></ul>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Bit.Bswup.Demo/Pages/PlaygroundPage.razor` around lines 21 - 80, Add aria-live="polite" to the status-list <dl> containing the `#pg-`* status cells and to the `#bswup-demo-events` event-log <ul>. Keep the existing status and event markup unchanged so screen readers announce JavaScript-driven updates after user actions.src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts (1)
399-423: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winLocal
elshadows the module-levelel(id)helper.
autoStart()(Line 400), theMutationObservercallback (Line 470), andstartObserving()(Line 493) each declareconst el = document.getElementById('bit-bswup'), shadowing the cached element-resolverfunction el(id: string)defined at Line 36. No current call site inside these scopes invokes the outer helper, so it's not an active bug, but any future edit that tries to callel('some-other-id')inside these functions will silently resolve to the DOM element instead and throw at runtime.Suggested fix
function autoStart() { - const el = document.getElementById('bit-bswup'); - if (!el || el.getAttribute('data-bit-bswup-config') !== 'true') return; - if (el.getAttribute('data-bit-bswup-initialized') === 'true') return; + const bswupRoot = document.getElementById('bit-bswup'); + if (!bswupRoot || bswupRoot.getAttribute('data-bit-bswup-config') !== 'true') return; + if (bswupRoot.getAttribute('data-bit-bswup-initialized') === 'true') return; ... }Also applies to: 469-498
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts` around lines 399 - 423, Rename the local DOM-element variables in autoStart, the MutationObserver callback, and startObserving so they no longer shadow the module-level el(id) helper. Update all references within those scopes to use the new local name while preserving the existing behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/Bswup/Bit.Bswup.Demo/wwwroot/demo.js`:
- Around line 17-20: Update record so it tracks a monotonically increasing event
revision independently of the capped events array, and have renderEvents use
that revision when determining whether new events need rendering. Preserve the
200-item cap while ensuring events added after the cap continue updating the UI.
In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts`:
- Around line 340-367: Update the nonRetriableReasons list in the
errorRetryButton handling to include 'install-infra', ensuring this terminal
install failure hides the retry button while preserving existing behavior for
all other reasons.
In `@src/Bswup/Demos/BasicDemo/wwwroot/index.html`:
- Around line 132-144: Update the data.reload flow in the demo startup handler
to include the same timeout fallback used by bit-bswup.progress.ts. Ensure a
reload that neither navigates nor settles eventually restores the splash and
retry controls, wiring reloadButton back to data.reload just like the existing
rejection path, while preserving successful reload behavior.
In `@src/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.js`:
- Line 69: Remove the self.importScripts call from the development service
worker so it remains a no-op and always uses network behavior. Keep the Bswup
engine import only in service-worker.published.js.
---
Nitpick comments:
In `@src/Bswup/Bit.Bswup.Demo/Pages/PlaygroundPage.razor`:
- Around line 21-80: Add aria-live="polite" to the status-list <dl> containing
the `#pg-`* status cells and to the `#bswup-demo-events` event-log <ul>. Keep the
existing status and event markup unchanged so screen readers announce
JavaScript-driven updates after user actions.
In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts`:
- Around line 399-423: Rename the local DOM-element variables in autoStart, the
MutationObserver callback, and startObserving so they no longer shadow the
module-level el(id) helper. Update all references within those scopes to use the
new local name while preserving the existing behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 634c7f63-19dd-4c00-a5dc-69c393c88e63
⛔ Files ignored due to path filters (8)
src/Bswup/Demos/BasicDemo/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/BasicDemo/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/BasicDemo/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/FullDemo/Client/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Tests/bit-bswup-js/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (100)
.github/workflows/bit.ci.Bswup.ymlsrc/Bit.CI.Release.slnxsrc/Bit.slnxsrc/Bswup/Bit.Bswup.Demo/App.razorsrc/Bswup/Bit.Bswup.Demo/Bit.Bswup.Demo.csprojsrc/Bswup/Bit.Bswup.Demo/Pages/CleanupPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/EventsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/GettingStartedPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/HomePage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/JsApiPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/MigrationPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/PlaygroundPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ProgressUIPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ScriptOptionsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ServiceWorkerPage.razorsrc/Bswup/Bit.Bswup.Demo/Properties/launchSettings.jsonsrc/Bswup/Bit.Bswup.Demo/Shared/Callout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/CodeBlock.razorsrc/Bswup/Bit.Bswup.Demo/Shared/MainLayout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/NavMenu.razorsrc/Bswup/Bit.Bswup.Demo/_Imports.razorsrc/Bswup/Bit.Bswup.Demo/wwwroot/app.csssrc/Bswup/Bit.Bswup.Demo/wwwroot/demo.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/index.htmlsrc/Bswup/Bit.Bswup.Demo/wwwroot/manifest.jsonsrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csprojsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.jsonsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.jsonsrc/Bswup/Bit.Bswup.slnxsrc/Bswup/Bit.Bswup/Bit.Bswup.csprojsrc/Bswup/Bit.Bswup/BswupProgress.razorsrc/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.tssrc/Bswup/Bit.Bswup/Styles/bit-bswup.progress.csssrc/Bswup/Bit.Bswup/tsconfig.jsonsrc/Bswup/Bit.Bswup/tsconfig.sw.jsonsrc/Bswup/Demos/BasicDemo/App.razorsrc/Bswup/Demos/BasicDemo/Bit.Bswup.BasicDemo.csprojsrc/Bswup/Demos/BasicDemo/Pages/CounterPage.razorsrc/Bswup/Demos/BasicDemo/Pages/HomePage.razorsrc/Bswup/Demos/BasicDemo/Program.cssrc/Bswup/Demos/BasicDemo/Properties/launchSettings.jsonsrc/Bswup/Demos/BasicDemo/_Imports.razorsrc/Bswup/Demos/BasicDemo/wwwroot/index.htmlsrc/Bswup/Demos/BasicDemo/wwwroot/manifest.jsonsrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.jssrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Client/Bit.Bswup.FullDemo.Client.csprojsrc/Bswup/Demos/FullDemo/Client/Pages/Counter.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Error.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Home.razorsrc/Bswup/Demos/FullDemo/Client/Program.cssrc/Bswup/Demos/FullDemo/Client/Routes.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razorsrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razor.csssrc/Bswup/Demos/FullDemo/Client/_Imports.razorsrc/Bswup/Demos/FullDemo/Client/wwwroot/manifest.jsonsrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Server/Bit.Bswup.FullDemo.Server.csprojsrc/Bswup/Demos/FullDemo/Server/Components/App.razorsrc/Bswup/Demos/FullDemo/Server/Components/_Imports.razorsrc/Bswup/Demos/FullDemo/Server/Program.cssrc/Bswup/Demos/FullDemo/Server/Properties/launchSettings.jsonsrc/Bswup/Demos/FullDemo/Server/appsettings.jsonsrc/Bswup/FullDemo/Client/Pages/Counter.razorsrc/Bswup/FullDemo/Client/Properties/launchSettings.jsonsrc/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/FullDemo/Client/_Imports.razorsrc/Bswup/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/FullDemo/Server/Pages/_Host.cshtmlsrc/Bswup/FullDemo/Server/Pages/_Layout.cshtmlsrc/Bswup/FullDemo/Server/Program.cssrc/Bswup/FullDemo/Server/Startup/Middlewares.cssrc/Bswup/FullDemo/Server/Startup/Services.cssrc/Bswup/README.mdsrc/Bswup/Tests/bit-bswup-js/.gitignoresrc/Bswup/Tests/bit-bswup-js/fetch-resilience.test.jssrc/Bswup/Tests/bit-bswup-js/harness.jssrc/Bswup/Tests/bit-bswup-js/package.jsonsrc/Bswup/Tests/bit-bswup-js/page-script.test.jssrc/Bswup/Tests/bit-bswup-js/progress-ui.test.jssrc/Bswup/Tests/bit-bswup-js/service-worker.test.jssrc/Bswup/Tests/bit-bswup-js/version-consistency.test.js
💤 Files with no reviewable changes (23)
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.js
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cs
- src/Bswup/FullDemo/Server/Program.cs
- src/Bswup/FullDemo/Server/Pages/_Host.cshtml
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csproj
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.json
- src/Bswup/FullDemo/Server/Startup/Services.cs
- src/Bswup/FullDemo/Client/Pages/Counter.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.js
- src/Bswup/FullDemo/Server/Startup/Middlewares.cs
- src/Bswup/FullDemo/Server/Pages/_Layout.cshtml
- src/Bswup/FullDemo/Client/_Imports.razor
- src/Bswup/FullDemo/Client/Properties/launchSettings.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razor
- src/Bswup/FullDemo/Client/wwwroot/service-worker.js
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razor
- src/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.css
|
@coderabbitai full-review |
|
✅ Action performedFull review finished. |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts (1)
55-60: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valuePrefer a locally-named event shape over augmenting the global
Event.Declaring
waitUntil/respondWithon the lib'sEventinterface makes them appear (as required,any) on everyEventin this compilation — includingbit-bswup.sw-cleanup.ts, which shares these ambient declarations. A dedicatedinterface BswupExtendableEvent { waitUntil: any; respondWith: any }used in the handler signatures keeps the same untyped ergonomics without widening a lib type.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts` around lines 55 - 60, Replace the locally declared global Event interface with a dedicated BswupExtendableEvent interface containing waitUntil and respondWith, then update the install, activate, and fetch handler signatures to use it. Preserve the existing untyped handler ergonomics without augmenting Event for other compilation units.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/Bswup/Bit.Bswup.Demo/Pages/ProgressUIPage.razor`:
- Line 29: Update the AutoReload documentation row in ProgressUIPage to use the
same v-10-5-0 release noted by the BswupProgress parameter XML comment, keeping
the stated default and behavior unchanged.
In `@src/Bswup/README.md`:
- Around line 210-214: Update the security note in the README to qualify SRI
verification of service-worker manifest assets with the opt-in
enableIntegrityCheck setting, stating that verification is available only when
it is enabled; leave the service-worker script limitation unchanged.
---
Nitpick comments:
In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.ts`:
- Around line 55-60: Replace the locally declared global Event interface with a
dedicated BswupExtendableEvent interface containing waitUntil and respondWith,
then update the install, activate, and fetch handler signatures to use it.
Preserve the existing untyped handler ergonomics without augmenting Event for
other compilation units.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: f7414868-2f18-4d6d-98ed-007b65f06587
⛔ Files ignored due to path filters (8)
src/Bswup/Demos/BasicDemo/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/BasicDemo/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/BasicDemo/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/FullDemo/Client/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Tests/bit-bswup-js/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (100)
.github/workflows/bit.ci.Bswup.ymlsrc/Bit.CI.Release.slnxsrc/Bit.slnxsrc/Bswup/Bit.Bswup.Demo/App.razorsrc/Bswup/Bit.Bswup.Demo/Bit.Bswup.Demo.csprojsrc/Bswup/Bit.Bswup.Demo/Pages/CleanupPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/EventsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/GettingStartedPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/HomePage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/JsApiPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/MigrationPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/PlaygroundPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ProgressUIPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ScriptOptionsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ServiceWorkerPage.razorsrc/Bswup/Bit.Bswup.Demo/Properties/launchSettings.jsonsrc/Bswup/Bit.Bswup.Demo/Shared/Callout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/CodeBlock.razorsrc/Bswup/Bit.Bswup.Demo/Shared/MainLayout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/NavMenu.razorsrc/Bswup/Bit.Bswup.Demo/_Imports.razorsrc/Bswup/Bit.Bswup.Demo/wwwroot/app.csssrc/Bswup/Bit.Bswup.Demo/wwwroot/demo.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/index.htmlsrc/Bswup/Bit.Bswup.Demo/wwwroot/manifest.jsonsrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csprojsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.jsonsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.jsonsrc/Bswup/Bit.Bswup.slnxsrc/Bswup/Bit.Bswup/Bit.Bswup.csprojsrc/Bswup/Bit.Bswup/BswupProgress.razorsrc/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.tssrc/Bswup/Bit.Bswup/Styles/bit-bswup.progress.csssrc/Bswup/Bit.Bswup/tsconfig.jsonsrc/Bswup/Bit.Bswup/tsconfig.sw.jsonsrc/Bswup/Demos/BasicDemo/App.razorsrc/Bswup/Demos/BasicDemo/Bit.Bswup.BasicDemo.csprojsrc/Bswup/Demos/BasicDemo/Pages/CounterPage.razorsrc/Bswup/Demos/BasicDemo/Pages/HomePage.razorsrc/Bswup/Demos/BasicDemo/Program.cssrc/Bswup/Demos/BasicDemo/Properties/launchSettings.jsonsrc/Bswup/Demos/BasicDemo/_Imports.razorsrc/Bswup/Demos/BasicDemo/wwwroot/index.htmlsrc/Bswup/Demos/BasicDemo/wwwroot/manifest.jsonsrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.jssrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Client/Bit.Bswup.FullDemo.Client.csprojsrc/Bswup/Demos/FullDemo/Client/Pages/Counter.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Error.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Home.razorsrc/Bswup/Demos/FullDemo/Client/Program.cssrc/Bswup/Demos/FullDemo/Client/Routes.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razorsrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razor.csssrc/Bswup/Demos/FullDemo/Client/_Imports.razorsrc/Bswup/Demos/FullDemo/Client/wwwroot/manifest.jsonsrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Server/Bit.Bswup.FullDemo.Server.csprojsrc/Bswup/Demos/FullDemo/Server/Components/App.razorsrc/Bswup/Demos/FullDemo/Server/Components/_Imports.razorsrc/Bswup/Demos/FullDemo/Server/Program.cssrc/Bswup/Demos/FullDemo/Server/Properties/launchSettings.jsonsrc/Bswup/Demos/FullDemo/Server/appsettings.jsonsrc/Bswup/FullDemo/Client/Pages/Counter.razorsrc/Bswup/FullDemo/Client/Properties/launchSettings.jsonsrc/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/FullDemo/Client/_Imports.razorsrc/Bswup/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/FullDemo/Server/Pages/_Host.cshtmlsrc/Bswup/FullDemo/Server/Pages/_Layout.cshtmlsrc/Bswup/FullDemo/Server/Program.cssrc/Bswup/FullDemo/Server/Startup/Middlewares.cssrc/Bswup/FullDemo/Server/Startup/Services.cssrc/Bswup/README.mdsrc/Bswup/Tests/bit-bswup-js/.gitignoresrc/Bswup/Tests/bit-bswup-js/fetch-resilience.test.jssrc/Bswup/Tests/bit-bswup-js/harness.jssrc/Bswup/Tests/bit-bswup-js/package.jsonsrc/Bswup/Tests/bit-bswup-js/page-script.test.jssrc/Bswup/Tests/bit-bswup-js/progress-ui.test.jssrc/Bswup/Tests/bit-bswup-js/service-worker.test.jssrc/Bswup/Tests/bit-bswup-js/version-consistency.test.js
💤 Files with no reviewable changes (23)
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razor
- src/Bswup/FullDemo/Client/Properties/launchSettings.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.json
- src/Bswup/FullDemo/Server/Startup/Services.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csproj
- src/Bswup/FullDemo/Client/_Imports.razor
- src/Bswup/FullDemo/Server/Pages/_Host.cshtml
- src/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.js
- src/Bswup/FullDemo/Client/wwwroot/service-worker.js
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.js
- src/Bswup/FullDemo/Client/Pages/Counter.razor
- src/Bswup/FullDemo/Server/Startup/Middlewares.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razor
- src/Bswup/FullDemo/Server/Program.cs
- src/Bswup/FullDemo/Server/Pages/_Layout.cshtml
|
@coderabbitai full-review |
|
✅ Action performedFull review finished. |
There was a problem hiding this comment.
Actionable comments posted: 2
♻️ Duplicate comments (2)
src/Bswup/Demos/FullDemo/Server/Components/App.razor (1)
42-43: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winProgress bootstrap still loads before the progress markup.
bit-bswup.progress.jsself-initializes from thedata-bit-bswup-*attributes emitted byBswupProgress.razor, but the script tag on Line 42 is parsed before<DemoBswupProgressBar />renders on Line 43, so the config element isn't in the DOM yet.🔧 Proposed reorder
- <script src="_content/Bit.Bswup/bit-bswup.progress.js"></script> - <DemoBswupProgressBar /> + <DemoBswupProgressBar /> + <script src="_content/Bit.Bswup/bit-bswup.progress.js"></script>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Demos/FullDemo/Server/Components/App.razor` around lines 42 - 43, Reorder the progress bootstrap in App.razor so DemoBswupProgressBar renders before the bit-bswup.progress.js script tag, ensuring the script can discover its data-bit-bswup-* configuration attributes during initialization.src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts (1)
729-743: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winFailed/unavailable Blazor start still reports
BLAZOR_STARTED.The rejection branch (Line 733-736) and the
undefinedbranch (Line 742) both callonStarted(), which postsBLAZOR_STARTEDto the worker even though Blazor never booted. Releasing the queued reload resolvers is correct; signalling startup success to the worker is not — consider splitting the resolver release from theBLAZOR_STARTEDpost (e.g. postBLAZOR_START_FAILEDon those paths).🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts` around lines 729 - 743, Separate the reload-promise resolver from the worker startup-success notification in the startPromise rejection and unavailable-Blazor branches of the surrounding startup logic. Keep resolving queued reloads on failure, but do not call the success-reporting onStarted path; instead notify the worker with the established failure signal, such as BLAZOR_START_FAILED, while preserving the successful BLAZOR_STARTED behavior for actual startup completion.
🧹 Nitpick comments (2)
src/Bswup/Demos/BasicDemo/wwwroot/index.html (1)
116-127: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winWrap the
downloadProgresscase body in a block.
const li,const urlEl,const percentare declared directly in thecaseclause, leaking into switch-scope — the same pattern already fixed with a block wrapper inbit-bswup.progress.ts's equivalent case. Apply the same fix here for consistency and to avoid a future duplicate-declaration error if another case adds a same-namedconst.♻️ Proposed fix
- case BswupMessage.downloadProgress: + case BswupMessage.downloadProgress: { const li = document.createElement('li'); const urlEl = document.createElement('b'); urlEl.textContent = data.asset.url; li.append(`${data.index}: `, urlEl, `: ${data.asset.hash}`); assetsUl.prepend(li); const percent = Math.round(data.percent); progressBar.style.width = `${percent}%`; percentLabel.textContent = `${percent} %`; return console.log('asset downloaded:', data); + }🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Demos/BasicDemo/wwwroot/index.html` around lines 116 - 127, Wrap the body of the BswupMessage.downloadProgress case in its own block, enclosing the const declarations for li, urlEl, and percent and the associated statements, while preserving the existing behavior and return.src/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.js (1)
70-117: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winRemove leftover template dead code.
This is the default Blazor WASM PWA scaffold (
onInstall/onActivate/onFetch), fully superseded by the Bswup engine loaded above. Keeping it commented out invites confusion about which caching logic is actually active, and the PR's own goals call for removing dead code.♻️ Proposed removal
-//// Caution! Be sure you understand the caveats before publishing an application with -//// offline support. See https://aka.ms/blazor-offline-considerations - -//self.importScripts('./service-worker-assets.js'); -//self.addEventListener('install', event => event.waitUntil(onInstall(event))); -//self.addEventListener('activate', event => event.waitUntil(onActivate(event))); -//self.addEventListener('fetch', event => event.respondWith(onFetch(event))); - -//const cacheNamePrefix = 'offline-cache-'; -//const cacheName = `${cacheNamePrefix}${self.assetsManifest.version}`; -//const offlineAssetsInclude = [ /\.dll$/, /\.pdb$/, /\.wasm/, /\.html/, /\.js$/, /\.json$/, /\.css$/, /\.woff$/, /\.png$/, /\.jpe?g$/, /\.gif$/, /\.ico$/, /\.blat$/, /\.dat$/ ]; -//const offlineAssetsExclude = [ /^service-worker\.js$/ ]; - -//async function onInstall(event) { -// console.info('Service worker: Install'); - -// // Fetch and cache all matching items from the assets manifest -// const assetsRequests = self.assetsManifest.assets -// .filter(asset => offlineAssetsInclude.some(pattern => pattern.test(asset.url))) -// .filter(asset => !offlineAssetsExclude.some(pattern => pattern.test(asset.url))) -// .map(asset => new Request(asset.url, { integrity: asset.hash })); -// await caches.open(cacheName).then(cache => cache.addAll(assetsRequests)); -//} - -//async function onActivate(event) { -// console.info('Service worker: Activate'); - -// // Delete unused caches -// const cacheKeys = await caches.keys(); -// await Promise.all(cacheKeys -// .filter(key => key.startsWith(cacheNamePrefix) && key !== cacheName) -// .map(key => caches.delete(key))); -//} - -//async function onFetch(event) { -// let cachedResponse = null; -// if (event.request.method === 'GET') { -// // For all navigation requests, try to serve index.html from cache -// // If you need some URLs to be server-rendered, edit the following check to exclude those URLs -// const shouldServeIndexHtml = event.request.mode === 'navigate'; - -// const request = shouldServeIndexHtml ? 'index.html' : event.request; -// const cache = await caches.open(cacheName); -// cachedResponse = await cache.match(request); -// } - -// return cachedResponse || fetch(event.request); -//}🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.js` around lines 70 - 117, Remove the fully commented-out Blazor PWA scaffold, including the inactive service-worker event registrations and the onInstall, onActivate, and onFetch functions, along with their related cache configuration constants and comments; retain the active Bswup service-worker implementation.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/Bswup/Bit.Bswup.Demo/Pages/PlaygroundPage.razor`:
- Around line 54-68: Update the BswupDemo.checkForUpdate wrapper in demo.js to
await BitBswup.checkForUpdate() and catch unexpected rejections, recording the
failure consistently with the other async wrappers. Ensure button-triggered
calls do not produce unhandled promise rejections while preserving the existing
successful update-check behavior.
In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.ts`:
- Around line 314-330: Update the fatal-error handling block to also hide or
clear assetsEl, the downloaded-asset list populated by downloadProgress when
showAssets is enabled. Ensure no partial asset rows remain visible beside the
failure message, while preserving the existing progress and percentage cleanup.
---
Duplicate comments:
In `@src/Bswup/Bit.Bswup/Scripts/bit-bswup.ts`:
- Around line 729-743: Separate the reload-promise resolver from the worker
startup-success notification in the startPromise rejection and
unavailable-Blazor branches of the surrounding startup logic. Keep resolving
queued reloads on failure, but do not call the success-reporting onStarted path;
instead notify the worker with the established failure signal, such as
BLAZOR_START_FAILED, while preserving the successful BLAZOR_STARTED behavior for
actual startup completion.
In `@src/Bswup/Demos/FullDemo/Server/Components/App.razor`:
- Around line 42-43: Reorder the progress bootstrap in App.razor so
DemoBswupProgressBar renders before the bit-bswup.progress.js script tag,
ensuring the script can discover its data-bit-bswup-* configuration attributes
during initialization.
---
Nitpick comments:
In `@src/Bswup/Demos/BasicDemo/wwwroot/index.html`:
- Around line 116-127: Wrap the body of the BswupMessage.downloadProgress case
in its own block, enclosing the const declarations for li, urlEl, and percent
and the associated statements, while preserving the existing behavior and
return.
In `@src/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.js`:
- Around line 70-117: Remove the fully commented-out Blazor PWA scaffold,
including the inactive service-worker event registrations and the onInstall,
onActivate, and onFetch functions, along with their related cache configuration
constants and comments; retain the active Bswup service-worker implementation.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 5d259870-34f2-4057-9580-77304034fb80
⛔ Files ignored due to path filters (8)
src/Bswup/Demos/BasicDemo/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/BasicDemo/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/BasicDemo/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/FullDemo/Client/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Tests/bit-bswup-js/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (100)
.github/workflows/bit.ci.Bswup.ymlsrc/Bit.CI.Release.slnxsrc/Bit.slnxsrc/Bswup/Bit.Bswup.Demo/App.razorsrc/Bswup/Bit.Bswup.Demo/Bit.Bswup.Demo.csprojsrc/Bswup/Bit.Bswup.Demo/Pages/CleanupPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/EventsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/GettingStartedPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/HomePage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/JsApiPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/MigrationPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/PlaygroundPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ProgressUIPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ScriptOptionsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ServiceWorkerPage.razorsrc/Bswup/Bit.Bswup.Demo/Properties/launchSettings.jsonsrc/Bswup/Bit.Bswup.Demo/Shared/Callout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/CodeBlock.razorsrc/Bswup/Bit.Bswup.Demo/Shared/MainLayout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/NavMenu.razorsrc/Bswup/Bit.Bswup.Demo/_Imports.razorsrc/Bswup/Bit.Bswup.Demo/wwwroot/app.csssrc/Bswup/Bit.Bswup.Demo/wwwroot/demo.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/index.htmlsrc/Bswup/Bit.Bswup.Demo/wwwroot/manifest.jsonsrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csprojsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.jsonsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.jsonsrc/Bswup/Bit.Bswup.slnxsrc/Bswup/Bit.Bswup/Bit.Bswup.csprojsrc/Bswup/Bit.Bswup/BswupProgress.razorsrc/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.tssrc/Bswup/Bit.Bswup/Styles/bit-bswup.progress.csssrc/Bswup/Bit.Bswup/tsconfig.jsonsrc/Bswup/Bit.Bswup/tsconfig.sw.jsonsrc/Bswup/Demos/BasicDemo/App.razorsrc/Bswup/Demos/BasicDemo/Bit.Bswup.BasicDemo.csprojsrc/Bswup/Demos/BasicDemo/Pages/CounterPage.razorsrc/Bswup/Demos/BasicDemo/Pages/HomePage.razorsrc/Bswup/Demos/BasicDemo/Program.cssrc/Bswup/Demos/BasicDemo/Properties/launchSettings.jsonsrc/Bswup/Demos/BasicDemo/_Imports.razorsrc/Bswup/Demos/BasicDemo/wwwroot/index.htmlsrc/Bswup/Demos/BasicDemo/wwwroot/manifest.jsonsrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.jssrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Client/Bit.Bswup.FullDemo.Client.csprojsrc/Bswup/Demos/FullDemo/Client/Pages/Counter.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Error.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Home.razorsrc/Bswup/Demos/FullDemo/Client/Program.cssrc/Bswup/Demos/FullDemo/Client/Routes.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razorsrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razor.csssrc/Bswup/Demos/FullDemo/Client/_Imports.razorsrc/Bswup/Demos/FullDemo/Client/wwwroot/manifest.jsonsrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Server/Bit.Bswup.FullDemo.Server.csprojsrc/Bswup/Demos/FullDemo/Server/Components/App.razorsrc/Bswup/Demos/FullDemo/Server/Components/_Imports.razorsrc/Bswup/Demos/FullDemo/Server/Program.cssrc/Bswup/Demos/FullDemo/Server/Properties/launchSettings.jsonsrc/Bswup/Demos/FullDemo/Server/appsettings.jsonsrc/Bswup/FullDemo/Client/Pages/Counter.razorsrc/Bswup/FullDemo/Client/Properties/launchSettings.jsonsrc/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/FullDemo/Client/_Imports.razorsrc/Bswup/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/FullDemo/Server/Pages/_Host.cshtmlsrc/Bswup/FullDemo/Server/Pages/_Layout.cshtmlsrc/Bswup/FullDemo/Server/Program.cssrc/Bswup/FullDemo/Server/Startup/Middlewares.cssrc/Bswup/FullDemo/Server/Startup/Services.cssrc/Bswup/README.mdsrc/Bswup/Tests/bit-bswup-js/.gitignoresrc/Bswup/Tests/bit-bswup-js/fetch-resilience.test.jssrc/Bswup/Tests/bit-bswup-js/harness.jssrc/Bswup/Tests/bit-bswup-js/package.jsonsrc/Bswup/Tests/bit-bswup-js/page-script.test.jssrc/Bswup/Tests/bit-bswup-js/progress-ui.test.jssrc/Bswup/Tests/bit-bswup-js/service-worker.test.jssrc/Bswup/Tests/bit-bswup-js/version-consistency.test.js
💤 Files with no reviewable changes (23)
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.js
- src/Bswup/FullDemo/Client/Pages/Counter.razor
- src/Bswup/FullDemo/Client/Properties/launchSettings.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.json
- src/Bswup/FullDemo/Server/Program.cs
- src/Bswup/FullDemo/Server/Startup/Middlewares.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razor
- src/Bswup/FullDemo/Client/wwwroot/service-worker.js
- src/Bswup/FullDemo/Server/Pages/_Host.cshtml
- src/Bswup/FullDemo/Client/_Imports.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.css
- src/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csproj
- src/Bswup/FullDemo/Server/Pages/_Layout.cshtml
- src/Bswup/FullDemo/Server/Startup/Services.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.js
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razor
|
@coderabbitai full-review |
|
✅ Action performedFull review finished. |
There was a problem hiding this comment.
♻️ Duplicate comments (2)
src/Bswup/Bit.Bswup/Bit.Bswup.csproj (1)
29-34: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winRe-flagging:
None Includestill duplicates SDK default globbing.
package*.json/tsconfig*.jsonare already implicitly included as@(None)by the SDK's default item globs (EnableDefaultNoneItemsdefaults totrue). Re-including them here without first removing the implicit entries risks anNETSDK1022duplicate-item build error. This was flagged in a prior review round and does not appear to have been addressed yet.🐛 Proposed fix
<ItemGroup> <Content Remove="package*.json;tsconfig*.json" /> + <None Remove="package*.json;tsconfig*.json" /> <None Include="package*.json;tsconfig*.json" /> </ItemGroup>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Bit.Bswup/Bit.Bswup.csproj` around lines 29 - 34, Update the project-file item handling around the Content and None entries so the implicitly included package*.json and tsconfig*.json items are removed before being explicitly included as None. Preserve their visibility in the project while preventing duplicate SDK default items and NETSDK1022 errors.src/Bswup/Bit.Bswup.Demo/Shared/NavMenu.razor (1)
19-19: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winVersion label still mismatched.
Rest of the PR ships as
10.5.0; this label still reads "10-6-0". Update for consistency.Proposed fix
- <NavLink href="migration">Migrating to 10-6-0</NavLink> + <NavLink href="migration">Migrating to 10-5-0</NavLink>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Bit.Bswup.Demo/Shared/NavMenu.razor` at line 19, Update the NavLink label in the navigation menu from “Migrating to 10-6-0” to match the PR’s 10.5.0 version, while preserving the existing migration link and navigation structure.
🧹 Nitpick comments (1)
src/Bswup/Bit.Bswup.Demo/Shared/CodeBlock.razor (1)
4-4: 🔒 Security & Privacy | 🔵 Trivial | ⚡ Quick winAvoid inline event handlers in the documentation app.
These
onclickattributes require CSP to allow inline scripts, so copy, navigation, and theme controls fail under a strict policy. Use Blazor@onclickbindings where interactive, ordata-*actions with an externally bound listener.
src/Bswup/Bit.Bswup.Demo/Shared/CodeBlock.razor#L4-L4: replace the inline copy handler.src/Bswup/Bit.Bswup.Demo/Shared/MainLayout.razor#L4-L4: replace the sidebar-toggle handler.src/Bswup/Bit.Bswup.Demo/Shared/MainLayout.razor#L13-L13: replace the theme-toggle handler.src/Bswup/Bit.Bswup.Demo/Shared/MainLayout.razor#L22-L22: replace the sidebar-close handler.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Bit.Bswup.Demo/Shared/CodeBlock.razor` at line 4, Replace the inline onclick handlers with CSP-compatible Blazor `@onclick` bindings or externally handled data-* actions: update CodeBlock.razor lines 4-4 for copy, MainLayout.razor lines 4-4 for sidebar toggle, line 13 for theme toggle, and line 22 for sidebar close, preserving each control’s existing behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Duplicate comments:
In `@src/Bswup/Bit.Bswup.Demo/Shared/NavMenu.razor`:
- Line 19: Update the NavLink label in the navigation menu from “Migrating to
10-6-0” to match the PR’s 10.5.0 version, while preserving the existing
migration link and navigation structure.
In `@src/Bswup/Bit.Bswup/Bit.Bswup.csproj`:
- Around line 29-34: Update the project-file item handling around the Content
and None entries so the implicitly included package*.json and tsconfig*.json
items are removed before being explicitly included as None. Preserve their
visibility in the project while preventing duplicate SDK default items and
NETSDK1022 errors.
---
Nitpick comments:
In `@src/Bswup/Bit.Bswup.Demo/Shared/CodeBlock.razor`:
- Line 4: Replace the inline onclick handlers with CSP-compatible Blazor
`@onclick` bindings or externally handled data-* actions: update CodeBlock.razor
lines 4-4 for copy, MainLayout.razor lines 4-4 for sidebar toggle, line 13 for
theme toggle, and line 22 for sidebar close, preserving each control’s existing
behavior.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 7fd5edb2-3193-4ad6-afe2-1773c2220fd5
⛔ Files ignored due to path filters (8)
src/Bswup/Demos/BasicDemo/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/BasicDemo/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/BasicDemo/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/FullDemo/Client/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Tests/bit-bswup-js/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (100)
.github/workflows/bit.ci.Bswup.ymlsrc/Bit.CI.Release.slnxsrc/Bit.slnxsrc/Bswup/Bit.Bswup.Demo/App.razorsrc/Bswup/Bit.Bswup.Demo/Bit.Bswup.Demo.csprojsrc/Bswup/Bit.Bswup.Demo/Pages/CleanupPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/EventsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/GettingStartedPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/HomePage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/JsApiPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/MigrationPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/PlaygroundPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ProgressUIPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ScriptOptionsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ServiceWorkerPage.razorsrc/Bswup/Bit.Bswup.Demo/Properties/launchSettings.jsonsrc/Bswup/Bit.Bswup.Demo/Shared/Callout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/CodeBlock.razorsrc/Bswup/Bit.Bswup.Demo/Shared/MainLayout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/NavMenu.razorsrc/Bswup/Bit.Bswup.Demo/_Imports.razorsrc/Bswup/Bit.Bswup.Demo/wwwroot/app.csssrc/Bswup/Bit.Bswup.Demo/wwwroot/demo.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/index.htmlsrc/Bswup/Bit.Bswup.Demo/wwwroot/manifest.jsonsrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csprojsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.jsonsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.jsonsrc/Bswup/Bit.Bswup.slnxsrc/Bswup/Bit.Bswup/Bit.Bswup.csprojsrc/Bswup/Bit.Bswup/BswupProgress.razorsrc/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.tssrc/Bswup/Bit.Bswup/Styles/bit-bswup.progress.csssrc/Bswup/Bit.Bswup/tsconfig.jsonsrc/Bswup/Bit.Bswup/tsconfig.sw.jsonsrc/Bswup/Demos/BasicDemo/App.razorsrc/Bswup/Demos/BasicDemo/Bit.Bswup.BasicDemo.csprojsrc/Bswup/Demos/BasicDemo/Pages/CounterPage.razorsrc/Bswup/Demos/BasicDemo/Pages/HomePage.razorsrc/Bswup/Demos/BasicDemo/Program.cssrc/Bswup/Demos/BasicDemo/Properties/launchSettings.jsonsrc/Bswup/Demos/BasicDemo/_Imports.razorsrc/Bswup/Demos/BasicDemo/wwwroot/index.htmlsrc/Bswup/Demos/BasicDemo/wwwroot/manifest.jsonsrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.jssrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Client/Bit.Bswup.FullDemo.Client.csprojsrc/Bswup/Demos/FullDemo/Client/Pages/Counter.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Error.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Home.razorsrc/Bswup/Demos/FullDemo/Client/Program.cssrc/Bswup/Demos/FullDemo/Client/Routes.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razorsrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razor.csssrc/Bswup/Demos/FullDemo/Client/_Imports.razorsrc/Bswup/Demos/FullDemo/Client/wwwroot/manifest.jsonsrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Server/Bit.Bswup.FullDemo.Server.csprojsrc/Bswup/Demos/FullDemo/Server/Components/App.razorsrc/Bswup/Demos/FullDemo/Server/Components/_Imports.razorsrc/Bswup/Demos/FullDemo/Server/Program.cssrc/Bswup/Demos/FullDemo/Server/Properties/launchSettings.jsonsrc/Bswup/Demos/FullDemo/Server/appsettings.jsonsrc/Bswup/FullDemo/Client/Pages/Counter.razorsrc/Bswup/FullDemo/Client/Properties/launchSettings.jsonsrc/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/FullDemo/Client/_Imports.razorsrc/Bswup/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/FullDemo/Server/Pages/_Host.cshtmlsrc/Bswup/FullDemo/Server/Pages/_Layout.cshtmlsrc/Bswup/FullDemo/Server/Program.cssrc/Bswup/FullDemo/Server/Startup/Middlewares.cssrc/Bswup/FullDemo/Server/Startup/Services.cssrc/Bswup/README.mdsrc/Bswup/Tests/bit-bswup-js/.gitignoresrc/Bswup/Tests/bit-bswup-js/fetch-resilience.test.jssrc/Bswup/Tests/bit-bswup-js/harness.jssrc/Bswup/Tests/bit-bswup-js/package.jsonsrc/Bswup/Tests/bit-bswup-js/page-script.test.jssrc/Bswup/Tests/bit-bswup-js/progress-ui.test.jssrc/Bswup/Tests/bit-bswup-js/service-worker.test.jssrc/Bswup/Tests/bit-bswup-js/version-consistency.test.js
💤 Files with no reviewable changes (23)
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cs
- src/Bswup/FullDemo/Server/Pages/_Layout.cshtml
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csproj
- src/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.js
- src/Bswup/FullDemo/Client/_Imports.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.js
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razor
- src/Bswup/FullDemo/Server/Startup/Services.cs
- src/Bswup/FullDemo/Client/wwwroot/service-worker.js
- src/Bswup/FullDemo/Server/Startup/Middlewares.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razor
- src/Bswup/FullDemo/Server/Program.cs
- src/Bswup/FullDemo/Client/Properties/launchSettings.json
- src/Bswup/FullDemo/Server/Pages/_Host.cshtml
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razor
- src/Bswup/FullDemo/Client/Pages/Counter.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.css
|
@coderabbitai full-review |
|
✅ Action performedFull review finished. |
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (2)
src/Bswup/Tests/bit-bswup-js/harness.js (1)
375-396: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winFake DOM nodes have no parent links, so the error path's bar-hiding branch is untestable.
bit-bswup.progress.tshides the progress bar throughprogressEl.parentElement, which the harness never populates; the resulting assertion in the progress suite passes unconditionally.
src/Bswup/Tests/bit-bswup-js/harness.js#L375-L396: setparentElementon appended/prepended nodes increateElementso the fake models parent links.src/Bswup/Tests/bit-bswup-js/progress-ui.test.js#L93-L93: once parents exist, assert the bar's wrapperdisplayon the error path instead of the currently vacuousnot.toBe('none')check on the bar itself.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Tests/bit-bswup-js/harness.js` around lines 375 - 396, The fake DOM in createElement lacks parent links, making the progress bar error-path hide behavior untestable. In src/Bswup/Tests/bit-bswup-js/harness.js lines 375-396, update append and prepend to assign each inserted node’s parentElement to the containing element while preserving child ordering. In src/Bswup/Tests/bit-bswup-js/progress-ui.test.js line 93, change the error-path assertion to verify the bar wrapper’s display state rather than the bar’s own display value.src/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.js (1)
1-18: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueVersion references are inconsistent. Header says
10.5.0(matchingbit-bswup.sw version/BitBswup.version), but the comments here and in the runtime describe behavior "since v-10-6-0". Consider aligning the wording (or the version) so readers don't chase a release that doesn't match the shipped bundle.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.js` around lines 1 - 18, The version references in the service-worker header and explanatory comments are inconsistent. Update the “since v-10-6-0” wording near self.assetsUrl to match the shipped 10.5.0 version and its actual behavior, without changing the runtime configuration or asset-path logic.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js`:
- Around line 6-11: Update the Resiliency knobs comment beside
self.errorTolerance to document strict as the default and lax as the opt-in
best-effort mode, without changing the configuration code.
In `@src/Bswup/Demos/BasicDemo/wwwroot/service-worker.js`:
- Around line 11-14: Update the comments in
src/Bswup/Demos/BasicDemo/wwwroot/service-worker.js lines 11-14 to describe lax
as an explicit demo override of the strict default, while preserving the
rationale about exercising progress and error reporting. Also update the
resiliency example comments in
src/Bswup/Demos/BasicDemo/wwwroot/service-worker.published.js lines 12-17 to
identify strict as the default error tolerance.
In `@src/Bswup/Tests/bit-bswup-js/progress-ui.test.js`:
- Line 93: Remove or replace the vacuous display assertion in the progress UI
test because the fake progress bar never receives a display value and its parent
element is not modeled. Assert the progress behavior that the implementation
actually updates, such as style.width or aria-valuenow, using the existing
progress test setup.
---
Nitpick comments:
In `@src/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.js`:
- Around line 1-18: The version references in the service-worker header and
explanatory comments are inconsistent. Update the “since v-10-6-0” wording near
self.assetsUrl to match the shipped 10.5.0 version and its actual behavior,
without changing the runtime configuration or asset-path logic.
In `@src/Bswup/Tests/bit-bswup-js/harness.js`:
- Around line 375-396: The fake DOM in createElement lacks parent links, making
the progress bar error-path hide behavior untestable. In
src/Bswup/Tests/bit-bswup-js/harness.js lines 375-396, update append and prepend
to assign each inserted node’s parentElement to the containing element while
preserving child ordering. In src/Bswup/Tests/bit-bswup-js/progress-ui.test.js
line 93, change the error-path assertion to verify the bar wrapper’s display
state rather than the bar’s own display value.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: e88fc714-d4d8-40e3-9a76-2760dba3dc4f
⛔ Files ignored due to path filters (8)
src/Bswup/Demos/BasicDemo/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/BasicDemo/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/BasicDemo/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/FullDemo/Client/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Tests/bit-bswup-js/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (100)
.github/workflows/bit.ci.Bswup.ymlsrc/Bit.CI.Release.slnxsrc/Bit.slnxsrc/Bswup/Bit.Bswup.Demo/App.razorsrc/Bswup/Bit.Bswup.Demo/Bit.Bswup.Demo.csprojsrc/Bswup/Bit.Bswup.Demo/Pages/CleanupPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/EventsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/GettingStartedPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/HomePage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/JsApiPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/MigrationPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/PlaygroundPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ProgressUIPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ScriptOptionsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ServiceWorkerPage.razorsrc/Bswup/Bit.Bswup.Demo/Properties/launchSettings.jsonsrc/Bswup/Bit.Bswup.Demo/Shared/Callout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/CodeBlock.razorsrc/Bswup/Bit.Bswup.Demo/Shared/MainLayout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/NavMenu.razorsrc/Bswup/Bit.Bswup.Demo/_Imports.razorsrc/Bswup/Bit.Bswup.Demo/wwwroot/app.csssrc/Bswup/Bit.Bswup.Demo/wwwroot/demo.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/index.htmlsrc/Bswup/Bit.Bswup.Demo/wwwroot/manifest.jsonsrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csprojsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.jsonsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.jsonsrc/Bswup/Bit.Bswup.slnxsrc/Bswup/Bit.Bswup/Bit.Bswup.csprojsrc/Bswup/Bit.Bswup/BswupProgress.razorsrc/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.tssrc/Bswup/Bit.Bswup/Styles/bit-bswup.progress.csssrc/Bswup/Bit.Bswup/tsconfig.jsonsrc/Bswup/Bit.Bswup/tsconfig.sw.jsonsrc/Bswup/Demos/BasicDemo/App.razorsrc/Bswup/Demos/BasicDemo/Bit.Bswup.BasicDemo.csprojsrc/Bswup/Demos/BasicDemo/Pages/CounterPage.razorsrc/Bswup/Demos/BasicDemo/Pages/HomePage.razorsrc/Bswup/Demos/BasicDemo/Program.cssrc/Bswup/Demos/BasicDemo/Properties/launchSettings.jsonsrc/Bswup/Demos/BasicDemo/_Imports.razorsrc/Bswup/Demos/BasicDemo/wwwroot/index.htmlsrc/Bswup/Demos/BasicDemo/wwwroot/manifest.jsonsrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.jssrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Client/Bit.Bswup.FullDemo.Client.csprojsrc/Bswup/Demos/FullDemo/Client/Pages/Counter.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Error.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Home.razorsrc/Bswup/Demos/FullDemo/Client/Program.cssrc/Bswup/Demos/FullDemo/Client/Routes.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razorsrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razor.csssrc/Bswup/Demos/FullDemo/Client/_Imports.razorsrc/Bswup/Demos/FullDemo/Client/wwwroot/manifest.jsonsrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Server/Bit.Bswup.FullDemo.Server.csprojsrc/Bswup/Demos/FullDemo/Server/Components/App.razorsrc/Bswup/Demos/FullDemo/Server/Components/_Imports.razorsrc/Bswup/Demos/FullDemo/Server/Program.cssrc/Bswup/Demos/FullDemo/Server/Properties/launchSettings.jsonsrc/Bswup/Demos/FullDemo/Server/appsettings.jsonsrc/Bswup/FullDemo/Client/Pages/Counter.razorsrc/Bswup/FullDemo/Client/Properties/launchSettings.jsonsrc/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/FullDemo/Client/_Imports.razorsrc/Bswup/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/FullDemo/Server/Pages/_Host.cshtmlsrc/Bswup/FullDemo/Server/Pages/_Layout.cshtmlsrc/Bswup/FullDemo/Server/Program.cssrc/Bswup/FullDemo/Server/Startup/Middlewares.cssrc/Bswup/FullDemo/Server/Startup/Services.cssrc/Bswup/README.mdsrc/Bswup/Tests/bit-bswup-js/.gitignoresrc/Bswup/Tests/bit-bswup-js/fetch-resilience.test.jssrc/Bswup/Tests/bit-bswup-js/harness.jssrc/Bswup/Tests/bit-bswup-js/package.jsonsrc/Bswup/Tests/bit-bswup-js/page-script.test.jssrc/Bswup/Tests/bit-bswup-js/progress-ui.test.jssrc/Bswup/Tests/bit-bswup-js/service-worker.test.jssrc/Bswup/Tests/bit-bswup-js/version-consistency.test.js
💤 Files with no reviewable changes (23)
- src/Bswup/FullDemo/Server/Startup/Services.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cs
- src/Bswup/FullDemo/Server/Program.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.json
- src/Bswup/FullDemo/Client/wwwroot/service-worker.js
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razor
- src/Bswup/FullDemo/Client/Pages/Counter.razor
- src/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.js
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.js
- src/Bswup/FullDemo/Server/Pages/_Layout.cshtml
- src/Bswup/FullDemo/Client/_Imports.razor
- src/Bswup/FullDemo/Client/Properties/launchSettings.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csproj
- src/Bswup/FullDemo/Server/Pages/_Host.cshtml
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razor
- src/Bswup/FullDemo/Server/Startup/Middlewares.cs
|
@coderabbitai full-review |
|
✅ Action performedFull review finished. |
There was a problem hiding this comment.
Actionable comments posted: 5
♻️ Duplicate comments (2)
src/Bswup/Demos/FullDemo/Server/Components/App.razor (1)
42-43: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winDuplicate: render the progress component before its bootstrap script.
The script initializes before
<DemoBswupProgressBar />emits the requireddata-bit-bswup-*elements, so first-load initialization cannot discover its configuration.Proposed fix
- <script src="_content/Bit.Bswup/bit-bswup.progress.js"></script> <DemoBswupProgressBar /> + <script src="_content/Bit.Bswup/bit-bswup.progress.js"></script>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Demos/FullDemo/Server/Components/App.razor` around lines 42 - 43, Reorder the DemoBswupProgressBar markup and the bit-bswup.progress.js script in the App component so the progress component renders first and emits its data-bit-bswup-* configuration elements before the bootstrap script initializes.src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js (1)
6-11: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winCorrect the shared error-tolerance documentation. These samples still state that
laxis the default, but this PR establishesstrictas the default andlaxas the opt-in best-effort mode.
src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js#L6-L11: describelaxas opt-in.src/Bswup/Demos/BasicDemo/wwwroot/service-worker.js#L11-L14: describe the activelaxassignment as an intentional override.src/Bswup/Demos/BasicDemo/wwwroot/service-worker.published.js#L12-L17: identifystrictas the default.src/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.js#L61-L66: identifystrictas the default.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js` around lines 6 - 11, Update the shared error-tolerance comments in src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js lines 6-11, src/Bswup/Demos/BasicDemo/wwwroot/service-worker.js lines 11-14, src/Bswup/Demos/BasicDemo/wwwroot/service-worker.published.js lines 12-17, and src/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.js lines 61-66: state that strict is the default, describe lax as opt-in best-effort behavior, and identify the active lax assignment in BasicDemo’s service-worker.js as an intentional override.
🧹 Nitpick comments (3)
src/Bswup/Bit.Bswup.Demo/Shared/MainLayout.razor (1)
9-9: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winUnify the Bswup version strings to
10.5.0/v10.5.0. The demo service workers, component scripts, and demo layout all mark this release as10.5.0, while several docs and page references still usev-10-6-0/10-6-0; align those docs links and headers with the current release instead of labeling10.5.0as migration content.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Bit.Bswup.Demo/Shared/MainLayout.razor` at line 9, Unify release references to 10.5.0/v10.5.0: update MainLayout.razor (9-9) and NavMenu.razor (21-21) version labels, and revise EventsPage.razor (57-63) documentation links and headers from v-10-6-0/10-6-0 migration content to the current 10.5.0 release.src/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.js (1)
70-117: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winRemove the obsolete template service-worker implementation.
This disabled install/activate/fetch implementation describes a competing cache lifecycle after Bswup is imported. Keep the short offline-support reference, but remove the dead template implementation to avoid conflicting guidance.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.js` around lines 70 - 117, Remove the commented-out service-worker implementation, including the importScripts call, lifecycle event registrations, cache configuration constants, and onInstall/onActivate/onFetch functions. Preserve only the introductory offline-support caution and reference link in service-worker.published.js.src/Bswup/Tests/bit-bswup-js/service-worker.test.js (1)
62-73: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueConsider draining pending work in tests that skip
settle().This test (and a few others, e.g. Lines 1032-1033 do it correctly) resolves the install without awaiting
sw.settle(), so background download/report work can still be running when the test ends. That risks cross-test unhandled rejections and flakes. Addingawait sw.settle()after the assertion keeps each case self-contained.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Tests/bit-bswup-js/service-worker.test.js` around lines 62 - 73, Add await sw.settle() after the install assertion in the test around the boot call, ensuring all background download and reporting work completes before the test exits.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/Bswup/Bit.Bswup.Demo/Pages/EventsPage.razor`:
- Around line 84-93: Resolve the contradiction in the EventsPage reason and
fatality documentation: update the `reason` description for `install-infra` to
acknowledge that it can be lax/non-fatal, while retaining the fatal behavior for
strict failures. Ensure the adjacent `fatal` column remains consistent with this
distinction and does not describe all `install-infra` failures as always fatal.
In `@src/Bswup/Bit.Bswup.Demo/Pages/ProgressUIPage.razor`:
- Around line 7-10: Update the lifecycle wording in the explanatory paragraph
near the BswupProgress reference from past tense to present tense: change “It
registered” to “It registers.”
- Around line 54-56: Update the first-install failure handling and its
documentation around the ProgressUIPage fatal-error panel so manifest parsing
failures and integrity mismatches do not render the Retry button, while other
retryable fatal errors retain it. Ensure the documented behavior matches the
runtime contract and the existing error classification used by the page.
In `@src/Bswup/Demos/BasicDemo/wwwroot/index.html`:
- Line 77: Update the first-install overlay text in the bit-bswup-title
paragraph to use wording that indicates the application is being installed or
downloaded for the first time, rather than announcing a new version. Preserve
the existing title element and styling.
In `@src/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.js`:
- Around line 16-18: Align both service workers with the stamped Bswup version:
update self.assetsUrl in service-worker.js and service-worker.published.js to
use the 10.5.0 root-absolute default, or consistently upgrade their
stamped/runtime version to 10.6.0 and retain the relative
service-worker-assets.js behavior.
---
Duplicate comments:
In `@src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js`:
- Around line 6-11: Update the shared error-tolerance comments in
src/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.js lines 6-11,
src/Bswup/Demos/BasicDemo/wwwroot/service-worker.js lines 11-14,
src/Bswup/Demos/BasicDemo/wwwroot/service-worker.published.js lines 12-17, and
src/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.js lines 61-66:
state that strict is the default, describe lax as opt-in best-effort behavior,
and identify the active lax assignment in BasicDemo’s service-worker.js as an
intentional override.
In `@src/Bswup/Demos/FullDemo/Server/Components/App.razor`:
- Around line 42-43: Reorder the DemoBswupProgressBar markup and the
bit-bswup.progress.js script in the App component so the progress component
renders first and emits its data-bit-bswup-* configuration elements before the
bootstrap script initializes.
---
Nitpick comments:
In `@src/Bswup/Bit.Bswup.Demo/Shared/MainLayout.razor`:
- Line 9: Unify release references to 10.5.0/v10.5.0: update MainLayout.razor
(9-9) and NavMenu.razor (21-21) version labels, and revise EventsPage.razor
(57-63) documentation links and headers from v-10-6-0/10-6-0 migration content
to the current 10.5.0 release.
In `@src/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.js`:
- Around line 70-117: Remove the commented-out service-worker implementation,
including the importScripts call, lifecycle event registrations, cache
configuration constants, and onInstall/onActivate/onFetch functions. Preserve
only the introductory offline-support caution and reference link in
service-worker.published.js.
In `@src/Bswup/Tests/bit-bswup-js/service-worker.test.js`:
- Around line 62-73: Add await sw.settle() after the install assertion in the
test around the boot call, ensuring all background download and reporting work
completes before the test exits.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: ff3e1742-facc-4583-9902-09a1e8faf121
⛔ Files ignored due to path filters (8)
src/Bswup/Demos/BasicDemo/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/BasicDemo/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/BasicDemo/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/FullDemo/Client/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Tests/bit-bswup-js/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (100)
.github/workflows/bit.ci.Bswup.ymlsrc/Bit.CI.Release.slnxsrc/Bit.slnxsrc/Bswup/Bit.Bswup.Demo/App.razorsrc/Bswup/Bit.Bswup.Demo/Bit.Bswup.Demo.csprojsrc/Bswup/Bit.Bswup.Demo/Pages/CleanupPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/EventsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/GettingStartedPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/HomePage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/JsApiPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/MigrationPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/PlaygroundPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ProgressUIPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ScriptOptionsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ServiceWorkerPage.razorsrc/Bswup/Bit.Bswup.Demo/Properties/launchSettings.jsonsrc/Bswup/Bit.Bswup.Demo/Shared/Callout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/CodeBlock.razorsrc/Bswup/Bit.Bswup.Demo/Shared/MainLayout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/NavMenu.razorsrc/Bswup/Bit.Bswup.Demo/_Imports.razorsrc/Bswup/Bit.Bswup.Demo/wwwroot/app.csssrc/Bswup/Bit.Bswup.Demo/wwwroot/demo.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/index.htmlsrc/Bswup/Bit.Bswup.Demo/wwwroot/manifest.jsonsrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csprojsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.jsonsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.jsonsrc/Bswup/Bit.Bswup.slnxsrc/Bswup/Bit.Bswup/Bit.Bswup.csprojsrc/Bswup/Bit.Bswup/BswupProgress.razorsrc/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.tssrc/Bswup/Bit.Bswup/Styles/bit-bswup.progress.csssrc/Bswup/Bit.Bswup/tsconfig.jsonsrc/Bswup/Bit.Bswup/tsconfig.sw.jsonsrc/Bswup/Demos/BasicDemo/App.razorsrc/Bswup/Demos/BasicDemo/Bit.Bswup.BasicDemo.csprojsrc/Bswup/Demos/BasicDemo/Pages/CounterPage.razorsrc/Bswup/Demos/BasicDemo/Pages/HomePage.razorsrc/Bswup/Demos/BasicDemo/Program.cssrc/Bswup/Demos/BasicDemo/Properties/launchSettings.jsonsrc/Bswup/Demos/BasicDemo/_Imports.razorsrc/Bswup/Demos/BasicDemo/wwwroot/index.htmlsrc/Bswup/Demos/BasicDemo/wwwroot/manifest.jsonsrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.jssrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Client/Bit.Bswup.FullDemo.Client.csprojsrc/Bswup/Demos/FullDemo/Client/Pages/Counter.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Error.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Home.razorsrc/Bswup/Demos/FullDemo/Client/Program.cssrc/Bswup/Demos/FullDemo/Client/Routes.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razorsrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razor.csssrc/Bswup/Demos/FullDemo/Client/_Imports.razorsrc/Bswup/Demos/FullDemo/Client/wwwroot/manifest.jsonsrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Server/Bit.Bswup.FullDemo.Server.csprojsrc/Bswup/Demos/FullDemo/Server/Components/App.razorsrc/Bswup/Demos/FullDemo/Server/Components/_Imports.razorsrc/Bswup/Demos/FullDemo/Server/Program.cssrc/Bswup/Demos/FullDemo/Server/Properties/launchSettings.jsonsrc/Bswup/Demos/FullDemo/Server/appsettings.jsonsrc/Bswup/FullDemo/Client/Pages/Counter.razorsrc/Bswup/FullDemo/Client/Properties/launchSettings.jsonsrc/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/FullDemo/Client/_Imports.razorsrc/Bswup/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/FullDemo/Server/Pages/_Host.cshtmlsrc/Bswup/FullDemo/Server/Pages/_Layout.cshtmlsrc/Bswup/FullDemo/Server/Program.cssrc/Bswup/FullDemo/Server/Startup/Middlewares.cssrc/Bswup/FullDemo/Server/Startup/Services.cssrc/Bswup/README.mdsrc/Bswup/Tests/bit-bswup-js/.gitignoresrc/Bswup/Tests/bit-bswup-js/fetch-resilience.test.jssrc/Bswup/Tests/bit-bswup-js/harness.jssrc/Bswup/Tests/bit-bswup-js/package.jsonsrc/Bswup/Tests/bit-bswup-js/page-script.test.jssrc/Bswup/Tests/bit-bswup-js/progress-ui.test.jssrc/Bswup/Tests/bit-bswup-js/service-worker.test.jssrc/Bswup/Tests/bit-bswup-js/version-consistency.test.js
💤 Files with no reviewable changes (23)
- src/Bswup/FullDemo/Client/Pages/Counter.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razor
- src/Bswup/FullDemo/Server/Program.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razor
- src/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.css
- src/Bswup/FullDemo/Client/Properties/launchSettings.json
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.js
- src/Bswup/FullDemo/Server/Startup/Services.cs
- src/Bswup/FullDemo/Client/wwwroot/service-worker.js
- src/Bswup/FullDemo/Server/Startup/Middlewares.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csproj
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.js
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.json
- src/Bswup/FullDemo/Server/Pages/_Layout.cshtml
- src/Bswup/FullDemo/Server/Pages/_Host.cshtml
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.json
- src/Bswup/FullDemo/Client/_Imports.razor
|
@coderabbitai full-review |
|
✅ Action performedFull review finished. |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
src/Bswup/Tests/bit-bswup-js/service-worker.test.js (1)
1345-1350: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winConsider pinning install behavior for the malformed (not just missing) manifest. The sibling test asserts
installrejects whenassetsManifestisundefined, but this one only asserts module evaluation doesn't throw. Sinceversion: 5/assets: 'not-an-array'also failsvalidateAssetsManifest, asserting the resulting error message (reason === 'manifest',fatal) and whetherinstallrejects would lock down the normalize-vs-refuse contract that this PR changed.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@src/Bswup/Tests/bit-bswup-js/service-worker.test.js` around lines 1345 - 1350, Extend the malformed-manifest test around createServiceWorkerContext and sw.load to exercise install behavior as well as module evaluation. Assert that the invalid assets manifest is refused with the expected manifest reason and fatal status, and pin whether install rejects, matching the sibling undefined-manifest test while preserving the non-throwing load assertion.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@src/Bswup/Tests/bit-bswup-js/service-worker.test.js`:
- Around line 1345-1350: Extend the malformed-manifest test around
createServiceWorkerContext and sw.load to exercise install behavior as well as
module evaluation. Assert that the invalid assets manifest is refused with the
expected manifest reason and fatal status, and pin whether install rejects,
matching the sibling undefined-manifest test while preserving the non-throwing
load assertion.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 568c502b-416c-45c4-9046-9c23c1655711
⛔ Files ignored due to path filters (8)
src/Bswup/Demos/BasicDemo/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/BasicDemo/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/BasicDemo/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/bit-bw-64.pngis excluded by!**/*.pngsrc/Bswup/Demos/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Demos/FullDemo/Client/wwwroot/icon-512.pngis excluded by!**/*.pngsrc/Bswup/FullDemo/Client/wwwroot/favicon.icois excluded by!**/*.icosrc/Bswup/Tests/bit-bswup-js/package-lock.jsonis excluded by!**/package-lock.json
📒 Files selected for processing (100)
.github/workflows/bit.ci.Bswup.ymlsrc/Bit.CI.Release.slnxsrc/Bit.slnxsrc/Bswup/Bit.Bswup.Demo/App.razorsrc/Bswup/Bit.Bswup.Demo/Bit.Bswup.Demo.csprojsrc/Bswup/Bit.Bswup.Demo/Pages/CleanupPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/EventsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/GettingStartedPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/HomePage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/JsApiPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/MigrationPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/PlaygroundPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ProgressUIPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ScriptOptionsPage.razorsrc/Bswup/Bit.Bswup.Demo/Pages/ServiceWorkerPage.razorsrc/Bswup/Bit.Bswup.Demo/Properties/launchSettings.jsonsrc/Bswup/Bit.Bswup.Demo/Shared/Callout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/CodeBlock.razorsrc/Bswup/Bit.Bswup.Demo/Shared/MainLayout.razorsrc/Bswup/Bit.Bswup.Demo/Shared/NavMenu.razorsrc/Bswup/Bit.Bswup.Demo/_Imports.razorsrc/Bswup/Bit.Bswup.Demo/wwwroot/app.csssrc/Bswup/Bit.Bswup.Demo/wwwroot/demo.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/index.htmlsrc/Bswup/Bit.Bswup.Demo/wwwroot/manifest.jsonsrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.Demo/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.csssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.jssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csprojsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razorsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cssrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.jsonsrc/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.jsonsrc/Bswup/Bit.Bswup.slnxsrc/Bswup/Bit.Bswup/Bit.Bswup.csprojsrc/Bswup/Bit.Bswup/BswupProgress.razorsrc/Bswup/Bit.Bswup/Scripts/bit-bswup.progress.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw-cleanup.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.sw.tssrc/Bswup/Bit.Bswup/Scripts/bit-bswup.tssrc/Bswup/Bit.Bswup/Styles/bit-bswup.progress.csssrc/Bswup/Bit.Bswup/tsconfig.jsonsrc/Bswup/Bit.Bswup/tsconfig.sw.jsonsrc/Bswup/Demos/BasicDemo/App.razorsrc/Bswup/Demos/BasicDemo/Bit.Bswup.BasicDemo.csprojsrc/Bswup/Demos/BasicDemo/Pages/CounterPage.razorsrc/Bswup/Demos/BasicDemo/Pages/HomePage.razorsrc/Bswup/Demos/BasicDemo/Program.cssrc/Bswup/Demos/BasicDemo/Properties/launchSettings.jsonsrc/Bswup/Demos/BasicDemo/_Imports.razorsrc/Bswup/Demos/BasicDemo/wwwroot/index.htmlsrc/Bswup/Demos/BasicDemo/wwwroot/manifest.jsonsrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.jssrc/Bswup/Demos/BasicDemo/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Client/Bit.Bswup.FullDemo.Client.csprojsrc/Bswup/Demos/FullDemo/Client/Pages/Counter.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Error.razorsrc/Bswup/Demos/FullDemo/Client/Pages/Home.razorsrc/Bswup/Demos/FullDemo/Client/Program.cssrc/Bswup/Demos/FullDemo/Client/Routes.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razorsrc/Bswup/Demos/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razorsrc/Bswup/Demos/FullDemo/Client/Shared/MainLayout.razor.csssrc/Bswup/Demos/FullDemo/Client/_Imports.razorsrc/Bswup/Demos/FullDemo/Client/wwwroot/manifest.jsonsrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/Demos/FullDemo/Client/wwwroot/service-worker.published.jssrc/Bswup/Demos/FullDemo/Server/Bit.Bswup.FullDemo.Server.csprojsrc/Bswup/Demos/FullDemo/Server/Components/App.razorsrc/Bswup/Demos/FullDemo/Server/Components/_Imports.razorsrc/Bswup/Demos/FullDemo/Server/Program.cssrc/Bswup/Demos/FullDemo/Server/Properties/launchSettings.jsonsrc/Bswup/Demos/FullDemo/Server/appsettings.jsonsrc/Bswup/FullDemo/Client/Pages/Counter.razorsrc/Bswup/FullDemo/Client/Properties/launchSettings.jsonsrc/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.csssrc/Bswup/FullDemo/Client/_Imports.razorsrc/Bswup/FullDemo/Client/wwwroot/service-worker.jssrc/Bswup/FullDemo/Server/Pages/_Host.cshtmlsrc/Bswup/FullDemo/Server/Pages/_Layout.cshtmlsrc/Bswup/FullDemo/Server/Program.cssrc/Bswup/FullDemo/Server/Startup/Middlewares.cssrc/Bswup/FullDemo/Server/Startup/Services.cssrc/Bswup/README.mdsrc/Bswup/Tests/bit-bswup-js/.gitignoresrc/Bswup/Tests/bit-bswup-js/fetch-resilience.test.jssrc/Bswup/Tests/bit-bswup-js/harness.jssrc/Bswup/Tests/bit-bswup-js/package.jsonsrc/Bswup/Tests/bit-bswup-js/page-script.test.jssrc/Bswup/Tests/bit-bswup-js/progress-ui.test.jssrc/Bswup/Tests/bit-bswup-js/service-worker.test.jssrc/Bswup/Tests/bit-bswup-js/version-consistency.test.js
💤 Files with no reviewable changes (23)
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.Development.json
- src/Bswup/FullDemo/Server/Startup/Middlewares.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.csproj
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Routes.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/MainLayout.razor.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Program.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Program.cs
- src/Bswup/FullDemo/Server/Startup/Services.cs
- src/Bswup/FullDemo/Client/Properties/launchSettings.json
- src/Bswup/FullDemo/Server/Pages/_Host.cshtml
- src/Bswup/FullDemo/Server/Program.cs
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/appsettings.json
- src/Bswup/FullDemo/Client/Shared/DemoBswupProgressBar.razor.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.published.js
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/Pages/Error.razor
- src/Bswup/FullDemo/Client/_Imports.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/app.css
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/Layout/DemoBswupProgressBar.razor
- src/Bswup/FullDemo/Server/Pages/_Layout.cshtml
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo/Components/App.razor
- src/Bswup/Bit.Bswup.NewDemo/Bit.Bswup.NewDemo.Client/wwwroot/service-worker.js
- src/Bswup/FullDemo/Client/Pages/Counter.razor
- src/Bswup/FullDemo/Client/wwwroot/service-worker.js
closes #12408
Summary by CodeRabbit
forceRefreshcache filtering.BswupProgress.AutoReloadnow defaults off.