The issue was dbo.SceneCharacter_Save being stored with QUOTED_IDENTIFIER off, which SQL Server rejects when inserting into tables involved with filtered-index requirements.
I updated [CoreServices.cs](C:/Source/PlotLine/PlotLine/Services/CoreServices.cs) so RelationshipMapService enriches map nodes from the normal character list, which already includes AvatarImagePath / AvatarThumbnailPath. Maggie Grant’s node detail should now use her avatar image instead of falling back to MG.
Verification: separate-output build passed with 0 warnings and 0 errors.
No database changes were required.
Restored inline field help beside:
Type
X
Y
Width
Height
Label override
Left plain, with no field help in Selected Block:
Location
Notes
The panel-level Selected block [?] help remains. I also verified the help path: HelpIconTagHelper uses HelpService.GetByContextKey, and HelpService caches parsed article metadata after first load.
Measured findings:
Authenticated Calendar House editor load measured around 600 ms locally.
SQL calls were generally around 50-65 ms after warm-up.
The main recent bloat was the Help UI wiring: the editor had 615 help icons and about 1.5 MB of HTML.
Optimisations made:
Reduced repeated hidden help icons in [Edit.cshtml (line 409)](C:/Source/PlotLine/PlotLine/Views/FloorPlans/Edit.cshtml:409), especially per-block editors and repeated transition edit modals.
Help icons now measure at 107, with HTML reduced to about 1.26 MB.
Optimised occupancy warning calculation in [CoreServices.cs (line 7883)](C:/Source/PlotLine/PlotLine/Services/CoreServices.cs:7883) by grouping occupancy rows once instead of repeatedly scanning them per scene.
Added new index migration [083_FloorPlanEditorOccupancyIndexes.sql](C:/Source/PlotLine/PlotLine/Sql/083_FloorPlanEditorOccupancyIndexes.sql) for Floor Plan scene/occupancy lookups. Applied locally.
Verified:
Structure/Occupancy mode still works.
Previous/Next scene changes the selected scene.
Tokens and transitions still render.
Help icons still resolve to articles.
dotnet build PlotLine.slnx passes with 0 warnings and 0 errors.
No Floor Plans behaviour, transition logic, occupancy data model, or feature architecture changes.
What changed:
Added 45 new Floor Plans help articles under [FloorPlans](C:/Source/PlotLine/PlotLine/Help/Articles/FloorPlans), including the seven full guides requested plus field-level help for the contextual icons.
Wired contextual help-icon entries into:Floor Plans list page
Floor Plan editor header
Structure / Occupancy mode controls
floor, block, background, transitions and occupancy UI
transition-specific areas for stairs, ladders, hidden doors and secret passages
Verification:
Confirmed every Floor Plans help-icon key used in the views has a matching article.
Confirmed all 45 new articles have required help metadata.
dotnet build PlotLine.slnx passes with 0 warnings and 0 errors.
No database changes, no Floor Plan behaviour changes, no transition changes, and no editor redesign.
What changed:
X is now a dropdown showing A, B, C, AA, etc., while still saving 0, 1, 2, etc.
Y is now a dropdown showing 1, 2, 3, etc., while still saving 0, 1, 2, etc.
Options are limited to valid positions for the active floor and current block size.
Dragging, manual dropdown changes, block resizing, and grid resizing all keep the controls synced through the existing block write/clamp path.
Verification: dotnet build PlotLine.slnx passes with 0 warnings and 0 errors. No database, rendering model, transition logic, or AJAX architecture changes.
Also removed the “All scene occupants are placed.” message entirely, and filtered “Some occupants are on other floors.” out of the large panel so it can remain only as the compact contextual note near the plan.
Verification: dotnet build PlotLine.slnx passes with 0 warnings and 0 errors. No occupancy model, floor rendering, transition, AJAX, or database changes.