149 Commits

Author SHA1 Message Date
Nick Beckley
124d380b0d Phase 20AD – Split Story Intelligence Progress and Review Screens 2026-07-06 21:35:15 +01:00
Nick Beckley
908660db1c Phase 20AC – Story Intelligence Progress Page UX and Status Clarity 2026-07-06 21:04:32 +01:00
Nick Beckley
b8541dbbc0 Phase 20H Implement the Story Intelligence framework. 2026-07-04 12:59:22 +01:00
Nick Beckley
e3eb5d3528 Phase 20G – Onboarding Experience Polish. 2026-07-04 12:38:51 +01:00
Nick Beckley
f78e1ac8fc Phase 20E Build the review and edit stage for the scan preview. 2026-07-03 23:12:15 +01:00
Nick Beckley
c8302f2967 Phase 20D.1 – Character Candidate Quality Pass prompt. 2026-07-03 22:45:55 +01:00
Nick Beckley
a70527f3a4 Phase 20D Implement website-led manuscript scanning via the Word Companion. 2026-07-03 22:20:14 +01:00
Nick Beckley
6f41605f08 Phase 20C Implement Companion detection and communication readiness. 2026-07-03 21:57:45 +01:00
Nick Beckley
9b1f3e9a8d Phase 20B Extend the onboarding wizard so the user can create or select their first Project and create or select their first Book as part of onboarding. 2026-07-03 21:36:03 +01:00
Nick Beckley
c8dc116862 Phase 20A Story Intelligence Onboarding. 2026-07-03 21:04:06 +01:00
Nick Beckley
441fd2ebea Phase 19A – Marketing Theme Refresh 2026-07-02 20:48:29 +01:00
Nick Beckley
76750311b3 Tightened the Project Details / Series Dashboard stats strip so the 9 summary tiles use a dedicated responsive grid: 2026-07-01 21:39:33 +01:00
Nick Beckley
2ebaf98cf9 Added Features page 2026-07-01 21:14:53 +01:00
Nick Beckley
e02802ed5c Restore Scene Inspector V2 help integration. 2026-06-30 21:18:42 +01:00
Nick Beckley
fece540d14 PlotDirector Phase 18D - Card Action Placement and Final Dashboard Content Polish 2026-06-30 20:59:54 +01:00
Nick Beckley
fd27074a37 PlotDirector Phase 18C - Edit Action Consolidation and Metrics Bar Fix 2026-06-30 20:42:11 +01:00
Nick Beckley
4fca39a0ff PlotDirector Phase 18B Follow-up - Fix Metrics Bars and Avatar Initial Alignment 2026-06-30 20:25:04 +01:00
Nick Beckley
e761e42ff7 PlotDirector Phase 18B - Dashboard Card Content Refinement and Equal Height Layout 2026-06-30 20:08:24 +01:00
Nick Beckley
191ed8c540 PlotDirector Phase 18A - Dashboard Layout and Density Refinement 2026-06-30 19:49:27 +01:00
Nick Beckley
d334661178 Phase 17Z - Legacy Retirement and Cleanup 2026-06-30 19:32:13 +01:00
Nick Beckley
0adca386d9 PlotDirector Phase 17G - Story Structure Editor Migration 2026-06-30 15:02:35 +01:00
Nick Beckley
7243538b2b PlotDirector Phase 17F - Attachments Editor Migration 2026-06-30 14:37:57 +01:00
Nick Beckley
0d72dc64d0 PlotDirector Phase 17E - Writer Tools Editor Migration 2026-06-30 14:10:31 +01:00
Nick Beckley
be1c508df4 PlotDirector Phase 17D - World Editor Migration 2026-06-30 13:52:32 +01:00
Nick Beckley
fb5b7b6fd9 PlotDirector Phase 17C - People Editor Migration 2026-06-30 13:27:23 +01:00
Nick Beckley
26846f57e7 PlotDirector Phase 17B Follow-up - Scene/Edit Focused Editor Flyout Layout 2026-06-30 13:09:53 +01:00
Nick Beckley
4ae45ab8f9 PlotDirector Phase 17B - Scene Core Focused Editors 2026-06-30 09:44:47 +01:00
Nick Beckley
ab9455ac4e PlotDirector Phase 17A - Scene Inspector V2 Shell, Layout and Summary View 2026-06-30 09:01:58 +01:00
Nick Beckley
f77d9ccfc7 Phase 16R - Word Companion UX Simplification and Workflow Redesign 2026-06-29 14:59:06 +01:00
Nick Beckley
7356a1c6b1 Phase 16Q - Manuscript Unlink and Recovery Tools 2026-06-29 14:08:56 +01:00
Nick Beckley
efa606f7c7 Phase 16J - PlotDirector Follow Word Companion Current Scene 2026-06-28 21:06:50 +01:00
Nick Beckley
429cd5beb5 Phase 16I - Review and Accept Word Companion Character Suggestions 2026-06-28 20:54:07 +01:00
Nick Beckley
772a144d70 Phase 16D.3 - Final Character Discovery Polish 2026-06-27 20:52:02 +01:00
Nick Beckley
ac300a94c8 Phase 16D - Major Character Discovery During Manuscript Import 2026-06-27 20:08:19 +01:00
Nick Beckley
33e8f0857c Phase 16C - Word Companion First-Run Binding and Manuscript Import 2026-06-27 19:41:44 +01:00
Nick Beckley
393fa884ca Fixed 2FA and login pages. 2026-06-26 19:47:25 +01:00
Nick Beckley
44d7253367 Changed 2FA page to input 6 characters and auto submit. 2026-06-26 19:32:55 +01:00
Nick Beckley
aa188baa70 Fixed the home page hero was sitting above the open account dropdown in the stacking order, so clicks were landing on the hero instead of the menu. 2026-06-24 11:39:20 +01:00
Nick Beckley
6896629ed0 Phase 15C - Feature Requests: Layout Polish, Notifications and Public Roadmap Foundation 2026-06-23 21:51:10 +01:00
Nick Beckley
d255407193 Implemented the Phase 14A follow-up fixes. 2026-06-23 19:47:30 +01:00
Nick Beckley
b460b38583 Implement character relationship and identity improvements 2026-06-22 21:39:45 +01:00
Nick Beckley
28cab2adf4 Implemented Phase 14A: Character Galleries & Avatar Cropping. 2026-06-22 21:23:33 +01:00
Nick Beckley
54fdc034ea Implemented the Projects listing redesign. 2026-06-22 20:58:20 +01:00
Nick Beckley
238b8223fd Merged 2026-06-22 13:45:12 +01:00
Nick Beckley
13c97db5a0 Implemented the urgent stability/performance pass.
What I fixed:
Removed the warning-calculation N+1 queries. Occupancy warnings now use one floor-plan participant query instead of per-scene character/asset lookups.
Added SceneFloorPlanParticipant_ListByFloorPlan to the existing migration script with SET ANSI_NULLS ON and SET QUOTED_IDENTIFIER ON.
Reapplied the migration locally.
Confirmed FloorPlanBlock_Save, FloorPlan_GetEditor, and the new participant proc have quoted identifiers enabled.
Reduced drag/resize freeze risk by throttling expensive geometry recalculation to animation frames instead of every pointer event.
Added a final geometry refresh on pointer-up/cancel before autosave.
Improved autosave failure visibility by showing the real error in the editor, not just leaving status stuck.
Made Occupancy mode view/staging only:Blocks no longer start drag/resize in Occupancy mode.
Resize handles are hidden.
Structural toolbox is hidden.
Plan canvas expands to use the freed width.
Structure mode restores normal editing.

Verification:
dotnet build PlotLine.slnx passes with 0 warnings and 0 errors.
Non-destructive SQL smoke test of FloorPlanBlock_Save against the Lounge block passed inside a transaction and rolled back.
Confirmed the Lounge block stayed unchanged after the rollback.
Reapplied 081_FloorPlanFloorDescriptionAndOccupancyWarnings.sql successfully.
Files changed:
[Repositories.cs](C:/Source/PlotLine/PlotLine/Data/Repositories.cs)
[CoreModels.cs](C:/Source/PlotLine/PlotLine/Models/CoreModels.cs)
[CoreServices.cs](C:/Source/PlotLine/PlotLine/Services/CoreServices.cs)
[081 SQL migration](C:/Source/PlotLine/PlotLine/Sql/081_FloorPlanFloorDescriptionAndOccupancyWarnings.sql)
[Edit.cshtml](C:/Source/PlotLine/PlotLine/Views/FloorPlans/Edit.cshtml)
[site.css](C:/Source/PlotLine/PlotLine/wwwroot/css/site.css)
[site.min.css](C:/Source/PlotLine/PlotLine/wwwroot/css/site.min.css)
Manual browser QA still needed for the exact drag/add/reload flow, but the code path and SQL save path are now stabilized.
2026-06-22 12:06:53 +01:00
Nick Beckley
7ad993aae3 Implemented the cleanup/refinement pass.
What changed:
Removed the standalone floor-plan details panel under the page title.
Added current-floor Description and editable Root Location into the Floors toolbox tab.
Added live computed Occupancy Warnings in Occupancy mode.
Preserved the existing AJAX workspace flow, including active floor/toolbox tab/mode/selected occupancy scene through refreshes.
Added floor description support via a new migration:
[081_FloorPlanFloorDescriptionAndOccupancyWarnings.sql](C:/Source/PlotLine/PlotLine/Sql/081_FloorPlanFloorDescriptionAndOccupancyWarnings.sql)
Database changes:
Added nullable FloorPlanFloors.Description.
Updated active stored procedures:FloorPlan_GetEditor
FloorPlanFloor_Get
FloorPlanFloor_ListByPlan
FloorPlanFloor_Save

Warnings are not persisted. No warning tables were added.
Files changed include:
[Edit.cshtml](C:/Source/PlotLine/PlotLine/Views/FloorPlans/Edit.cshtml)
[CoreServices.cs](C:/Source/PlotLine/PlotLine/Services/CoreServices.cs)
[Repositories.cs](C:/Source/PlotLine/PlotLine/Data/Repositories.cs)
[CoreModels.cs](C:/Source/PlotLine/PlotLine/Models/CoreModels.cs)
[CoreViewModels.cs](C:/Source/PlotLine/PlotLine/ViewModels/CoreViewModels.cs)
[site.css](C:/Source/PlotLine/PlotLine/wwwroot/css/site.css)
[site.min.css](C:/Source/PlotLine/PlotLine/wwwroot/css/site.min.css)
Verification:
Applied the new migration locally.
Confirmed FloorPlanFloors.Description exists.
Confirmed scene/occupancy source data exists for The Calendar House.
dotnet build PlotLine.slnx passes with 0 warnings and 0 errors.
Manual QA still needed in the browser: edit floor description/root location, switch Structure/Occupancy mode, step scenes, and confirm warnings/tokens update visually without jumps.
2026-06-22 11:56:01 +01:00
Nick Beckley
a943ac3da4 Implemented the targeted Scene Occupancy refinement pass. 2026-06-22 11:34:38 +01:00
Nick Beckley
cea82a922f Implemented Phase 1 Scene Occupancy.
What Changed
Added scene-owned occupancy data:Scenes.FloorPlanID
Scenes.InitialFloorPlanFloorID
new SceneFloorPlanOccupancy table

Added Occupancy section to the Scene Inspector with AJAX save/refresh.
Added Floor Plan editor Structure / Occupancy mode.
Occupancy mode shows linked scenes, previous/next scene controls, and character/asset tokens inside assigned locations.
Character tokens use image thumbnail, then initials fallback. Asset tokens do the same, smaller.
No Features, no new floor-plan architecture, no transition changes.
Files Changed
[CoreModels.cs](C:/Source/PlotLine/PlotLine/Models/CoreModels.cs)
[CoreViewModels.cs](C:/Source/PlotLine/PlotLine/ViewModels/CoreViewModels.cs)
[Repositories.cs](C:/Source/PlotLine/PlotLine/Data/Repositories.cs)
[CoreServices.cs](C:/Source/PlotLine/PlotLine/Services/CoreServices.cs)
[ScenesController.cs](C:/Source/PlotLine/PlotLine/Controllers/ScenesController.cs)
[Program.cs](C:/Source/PlotLine/PlotLine/Program.cs)
[Edit.cshtml](C:/Source/PlotLine/PlotLine/Views/FloorPlans/Edit.cshtml)
[_SceneInspector.cshtml](C:/Source/PlotLine/PlotLine/Views/Scenes/_SceneInspector.cshtml)
[_SceneOccupancy.cshtml](C:/Source/PlotLine/PlotLine/Views/Scenes/_SceneOccupancy.cshtml)
[site.js](C:/Source/PlotLine/PlotLine/wwwroot/js/site.js)
[site.css](C:/Source/PlotLine/PlotLine/wwwroot/css/site.css)
minified CSS/JS updated.
Database
Added new migration only: [080_SceneFloorPlanOccupancy.sql](C:/Source/PlotLine/PlotLine/Sql/080_SceneFloorPlanOccupancy.sql)
Applied locally.
Added constraints/FKs and filtered unique indexes for one character/asset occupancy row per scene.
Stored Procedures Added/Updated
Scene_Save
Scene_Get
Scene_FloorPlanLink_Save
Scene_ListByFloorPlan
FloorPlanFloor_ListByPlan
FloorPlanBlock_ListByPlan
SceneFloorPlanOccupancy_ListByScene
SceneFloorPlanOccupancy_ListByFloorPlan
SceneFloorPlanOccupancy_Save
Test Data
Permanent Calendar House seed data added:
Book: The Calendar House
Chapters 1-3
14 scenes
Characters: Ellie, Grant, Stephen, Housekeeper, Gardener
Assets: Brass Key, Journal, Candle, Map, Letter
45 occupancy assignments
Verification
dotnet build PlotLine.slnx passes with 0 warnings/errors.
Migration applied locally.
Local app boots and returns HTTP 200.
DB checks confirm 14 linked scenes and 45 occupancy rows.
Manual browser click-through of the authenticated UI still needs a human pass for the AJAX controls and visual token placement.
2026-06-22 10:45:30 +01:00
Nick Beckley
34a8d94cb4 Implemented the Visual Identity infrastructure pass.
Changed
Added image fields for Characters and Story Assets in models, view models, repositories, services, and save flows.
Added reusable avatar/initials rendering via [AvatarHelper.cs](C:/Source/PlotLine/PlotLine/Services/AvatarHelper.cs) and [_Avatar.cshtml](C:/Source/PlotLine/PlotLine/Views/Shared/_Avatar.cshtml).
Added upload/remove processing through existing upload storage in [VisualIdentityImageService.cs](C:/Source/PlotLine/PlotLine/Services/VisualIdentityImageService.cs).
Updated Character and Story Asset list/detail/edit views with thumbnails, initials fallback, upload, replace, and remove controls.
Added styling in [site.css](C:/Source/PlotLine/PlotLine/wwwroot/css/site.css) and refreshed site.min.css.
Database
Added new migration [079_VisualIdentityCharacterAssetImages.sql](C:/Source/PlotLine/PlotLine/Sql/079_VisualIdentityCharacterAssetImages.sql).
Adds nullable ImagePath and ThumbnailPath to Characters and StoryAssets.
Applied locally and confirmed the columns exist.
Stored Procedures
Updated active procedure definitions only:
Character_ListByProject
Character_Get
Character_Save
Character_UpdateImage
StoryAsset_ListByProject
StoryAsset_Get
StoryAsset_Save
StoryAsset_UpdateImage
2026-06-22 10:10:39 +01:00
Nick Beckley
b91bdeb138 Implemented the transition refinement pass.
Changed:
[Edit.cshtml (line 29)](C:/Source/PlotLine/PlotLine/Views/FloorPlans/Edit.cshtml:29): added Sliding Door, French Door, and Ladder marker mappings/SVGs.
[Edit.cshtml (line 1729)](C:/Source/PlotLine/PlotLine/Views/FloorPlans/Edit.cshtml:1729): Ladder To Location filtering now lists placed locations on floors above, sorted by level/floor/name with clean labels like First Floor > East Hallway 1st.
[Edit.cshtml (line 2072)](C:/Source/PlotLine/PlotLine/Views/FloorPlans/Edit.cshtml:2072): Ladder renders inside the From Location using the existing position system.
[CoreServices.cs (line 7966)](C:/Source/PlotLine/PlotLine/Services/CoreServices.cs:7966): server validation now treats Ladder as a vertical upward transition, without stairs reciprocity.
[CoreModels.cs (line 1243)](C:/Source/PlotLine/PlotLine/Models/CoreModels.cs:1243): normalisation accepts Ladders.
[site.css (line 4902)](C:/Source/PlotLine/PlotLine/wwwroot/css/site.css:4902) and minified CSS: added light/dark styling for the new marker types.
No database changes. No new tables. No Features, architecture, AJAX, or secret/hidden room logic changes.
2026-06-22 09:26:19 +01:00