Project Restructure #82
No reviewers
Labels
No labels
blocked
duplicate
needs
approval
needs
criteria
needs
estimate
needs
tests
question
type
admin
type
alert
type
bug
type
change
type
defect
type
dependencies
type
epic
type
idea
type
incident
type
investigation
type
spike
type
story
won't fix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
RabbitLabs/droplet-next!82
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/restructure"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
#81
PR Review: Project Restructure (#82)
Branch:
feature/restructure→release/0.1.0Issue: #81 (spike, empty description)
Scope: 6 commits, 117 files, +5,487 / −3,363
Build: Succeeds locally with 27 warnings, 0 errors
Verdict: Request changes — the structural direction is sound, but debug leftovers and a broken asset reference should be fixed before merge.
Summary
This PR does several things at once:
@codeblocks into.razor.cspartials, addsAccountLayoutfor static rendering, and introducesIdentityUserAccessor.Counter,Weather), passkey UI, and simplifies nav/layout.The Identity refactor is the right shape for a maintainable Blazor Server app. The main problems are accidental debug instrumentation and an orphaned script reference, not the architecture itself.
Blockers (fix before merge)
1. Debug instrumentation left in source
Cursor debug logging is still wired into production code with a hardcoded absolute path to another checkout (
/home/vylpes/projects/droplet-next/.cursor/debug-99de3c.log).Affected files:
Program.csComponents/Account/Shared/AccountLayout.razor.csComponents/Account/IdentityRedirectManager.csComponents/Account/Pages/Login.razor.csComponents/Account/Pages/Manage/Index.razor.csThis will silently no-op on other machines, but it is still noise in startup, redirects, and login flows and should not ship.
2. Committed debug log file
.cursor/debug-99de3c.logis included in the PR and contains localhost URLs and session metadata. Remove it and add.cursor/debug*.log(or.cursor/) to.gitignore.3. Broken script reference after passkey removal
Passkey components were deleted, but
App.razorstill loads the removedPasskeySubmit.razor.jsscript. This will cause a 404 on every page load.Important (should address)
4.
IdentityUserAccessordoes not stop execution after redirectIn
IdentityUserAccessor.GetRequiredUserAsync, afterRedirectToWithStatusis called whenuser is null, execution continues andreturn usercan returnnull(CS8603). The usual Blazor pattern isthrow new InvalidOperationException("Redirect")after redirect, or make the return type nullable and handle it at call sites.5. Login Remember me removed from UI but still in logic
Login.razor.csstill passesInput.RememberMetoPasswordSignInAsyncand the 2FA redirect, butLogin.razorno longer renders the checkbox — so remember-me is alwaysfalse. Either restore the UI or remove the property from the model/flow.6. Passkeys removed without a follow-up note
Removed:
Passkeys.razor,RenamePasskey.razor,PasskeySubmit, related models, and manage-nav links. The DB schema still hasAspNetUserPasskeysfrom the initial migration. If this is intentional for v1, call it out in the PR description or a short ADR/note so it is not mistaken for an accident.7.
ExternalLoginPickeris now dead codeThe component still exists but is not referenced from
Login.razororRegister.razor. Remove it or wire it back in if external auth is planned.Minor / polish
#81. The PR adds.forgejo/PULL_REQUEST_TEMPLATE.mdbut does not use it.epic-9-cicd-forgejo-actions.mdandepic-9-cicd-github-actions.md— pick one canonical CI story.github.com/Vylpes/droplet-next; repo isRabbitLabs/droplet-nexton Forgejo.Droplet.Auth.Components.AccountvsDroplet.Components.Account.*— works, but inconsistent. Worth standardizing in a follow-up.BL0008([SupplyParameterFromForm]+ initializer). Pre-existing template pattern, but worth cleaning up incrementally.RedirectToDashboard.razor— Valid with code-behind, but adding a one-line markup comment would make intent clearer.What looks good
AccountLayout+NavigationManager.Refresh— Correct pattern for Identity pages that needHttpContextduring static render.IdentityUserAccessorregistration inProgram.cs— Fixes the DI issue from the debugging commits.RedirectToDashboard.Suggested test plan
dotnet buildis clean of agent-log regionsPasskeySubmit.razor.jsin network tab/dashboardwhen authenticated/while logged in → redirects to dashboardRememberMepropagates correctly)Recommended next steps
#region agent logblocks and delete.cursor/debug-99de3c.log.PasskeySubmit.razor.jsscript tag fromApp.razor.IdentityUserAccessorcontrol flow after redirect.View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.