Skip to content

Commit 63688c5

Browse files
committed
Merge branch 'dev' of github.com:FritzAndFriends/BlazorWebFormsComponents into dev
2 parents 1cbe29a + 3154758 commit 63688c5

100 files changed

Lines changed: 6530 additions & 1421 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.squad/agents/beast/history.md

Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,155 @@
11
# beast History
22

3+
## 2026-06-12 — Phase 1 doc alignment fixes (Jeffrey T. Fritz request)
4+
5+
### Changes made
6+
1. **docs/dashboard.md** — Updated tracked component count from **52 → 61** to match `dev-docs/tracked-components.json`.
7+
2. **README.md** — Added `BaseCompareValidator` and `BaseValidator` to the Validation Controls component listing (both have doc files and mkdocs entries; they were simply absent from README).
8+
3. **README.md** — Fixed broken `View` link: was pointing to `docs/EditorControls/MultiView.md`; corrected to `docs/EditorControls/View.md` (the file exists).
9+
10+
### Items left alone (naming-policy-sensitive or not clearly safe)
11+
- `Xml` (Deferred): no doc file exists; adding a README link or mkdocs entry would create a broken reference.
12+
- `HyperLink` / `ImageMap` tracked as "Editor" in JSON but placed under Navigation in mkdocs and README — category mismatch; left for a naming-policy decision.
13+
- `NamingContainer`, `Content`, `ContentPlaceHolder`, `MasterPage`, `ScriptManager`, `UpdatePanel`: tracked but not in the README component listing — placement/section decisions deferred.
14+
15+
### Verification
16+
- All three edited files confirmed via inspection before and after.
17+
- mkdocs.yml already had entries for all existing doc pages — no nav additions were required.
18+
### Core Context (2026-02-10 through 2026-02-27)
19+
20+
**Doc structure:** title → intro (MS docs link) → Features Supported → NOT Supported → Web Forms syntax → Blazor syntax → HTML Output → Migration Notes (Before/After) → Examples → See Also. Admonitions for gotchas. mkdocs.yml nav alphabetical within categories. Migration section: "Getting started" and "Migration Strategies" at top.
21+
22+
**Key patterns:** Style migration: TableItemStyle → CSS class string parameters. DeferredControls.md has dual role (fully deferred + partially implemented). Chart screenshots at `docs/images/{component}/chart-{type}.png`. Shared sub-component docs linked from parents. PagerSettings is first shared sub-component with own doc page. Structural components (no HTML output) lead with "renders no HTML" callout. Audit reports at `planning-docs/AUDIT-REPORT-M{N}.md` with historical snapshot headers. Branch naming: `copilot/create-*`.
23+
24+
**Doc work completed:** M1–M3 docs (PasswordRecovery 3-step wizard, DetailsView generic component). Chart doc (JS interop "HTML Output Exception" pattern, Chart Type Gallery, child component doc pattern). M8 release-readiness polish (Substitution/Xml deferred in status.md, Chart Phase 1 hedging removed, README link fixes). M9 Doc Gap Audit (FormView, DetailsView, DataGrid, ChangePassword, PagerSettings.md created). ToolTip universality in Migration/readme.md. ThemesAndSkins.md updated for M10 PoC. NamingContainer.md created with IDRendering.md cross-refs. M9 Consolidated Audit Report (29 findings → M10 issues).
25+
26+
**Pending doc needs:** ClientIDMode property documentation (M16). Menu dual rendering modes. ListView CRUD events. Menu styles (IMenuStyleContainer). Post-M15 verification badges if new exact matches achieved. Login+Identity deferred — do not schedule docs.
27+
28+
<!-- ⚠ Summarized 2026-03-04 by Scribe — covers M17 docs through migration toolkit -->
29+
30+
### Doc Work Summary (2026-02-27 through 2026-03-03)
31+
32+
**M17 AJAX docs (6 pages):** Timer, ScriptManager, ScriptManagerProxy, UpdatePanel, UpdateProgress, Substitution. New "AJAX Controls" nav section in mkdocs.yml. Migration stub doc pattern established (warning admonition + ignored props + include→remove lifecycle). Substitution moved from deferred to implemented.
33+
34+
### 2026-04-27: MasterPages.md Documentation Update
35+
36+
**Task:** Document MasterPageContext architecture and Master/Content/ContentPlaceHolder migration patterns in docs/Migration/MasterPages.md.
37+
38+
**Changes delivered:**
39+
- Created comprehensive MasterPages.md in docs/Migration/ folder
40+
- Added MasterPageContext architecture section explaining cascading pattern
41+
- Included before/after migration examples showing Web Forms vs Blazor syntax
42+
- Documented Content/ContentPlaceHolder nesting patterns and best practices
43+
- Added troubleshooting section for context lookup failures
44+
- Cross-referenced ComponentList.razor for discoverability
45+
- Structured with: Feature Overview → Architecture → Code Examples → Nesting Patterns → Common Issues → Migration Checklist
46+
- Aligned with existing migration guide style (SkinsAndThemes.md pattern)
47+
48+
**Pattern consistency:** Matches Beast's established separation: SkinsAndThemes.md (strategy) vs SkinsAndThemesGuide.md (practical). MasterPages.md is the practical implementation guide.
49+
50+
**Issue #359 doc updates (5 pages):** ChangePassword and PagerSettings verified complete. FormView got CRUD events + NOT Supported section. DetailsView got full style sub-component elements. DataGrid paging section enhanced. Pattern: DataGrid is the only pageable control without PagerSettings.
51+
52+
**M10 Skins & Themes Guide:** Created `docs/Migration/SkinsAndThemes.md` — practical guide coexisting with `ThemesAndSkins.md` (strategy). Convention: separate "Guide" vs "Strategy" docs with clear nav labels.
53+
54+
**Executive Report:** `planning-docs/WINGTIPTOYS-MIGRATION-EXECUTIVE-REPORT.md` — 96.6% coverage, 55-70% time savings, 18-26 hour estimate.
55+
56+
**Migration Toolkit (6 docs):** README, QUICKSTART, CONTROL-COVERAGE (58 components, 6 categories), METHODOLOGY, CHECKLIST, copilot-instructions-template. Key: no content duplication, copilot-instructions-template is self-contained for external projects.
57+
58+
**Distributable BWFC Migration Skill:** Single self-contained SKILL.md (~750 lines) with 10 architecture decision templates, three-layer methodology, per-page checklist. NuGet-first, no internal repo references.
59+
60+
**Toolkit fixes:** Component count 52→58, internal references→distributed paths, AzimoLabs→FritzAndFriends. Key learning: toolkit coverage tables must be updated when new components are added.
61+
62+
**Migration test report structure:** `docs/migration-tests/` standard location. Per-run subfolder `{app}-{YYYY-MM-DD}` with `report.md` + `images/`. README.md index. Added "Migration Tests" nav section to mkdocs.yml.
63+
64+
**Pending doc needs:** ClientIDMode property. Menu dual rendering modes. ListView CRUD events. Menu styles (IMenuStyleContainer). Post-M15 verification badges.
65+
66+
### Key Team Updates (2026-02-27 through 2026-03-03)
67+
68+
- Branching: feature PRs from personal fork to upstream dev (Jeff)
69+
- Issues closed via PR references only (Jeff)
70+
- CascadedTheme (not Theme) is cascading parameter name (Cyclops)
71+
- Theming sample page uses 6-section progressive layout (Jubilee)
72+
- Unified release.yml — single workflow, version.json 3-segment SemVer (PR #408)
73+
- Skins & Themes roadmap: 3 waves, 15 work items (Forge)
74+
- Project reframed as migration acceleration system (Jeff)
75+
- Themes (#369) implementation last — ListView CRUD first, WingtipToys second (Jeff)
76+
- ListView EventArgs now include IOrderedDictionary properties (Cyclops)
77+
- Migration toolkit restructured into self-contained migration-toolkit/ package (Jeff, Forge)
78+
79+
80+
<!-- Summarized 2026-03-05 by Scribe -- covers Run 4-6 reports, render mode, WebFormsPageBase, Page System docs -->
81+
82+
### Migration Reports & Page System Docs Summary (2026-03-04 through 2026-03-05)
83+
84+
**Report conventions:** 3-level deep paths (`../../../planning-docs/`). Executive summary pattern (metrics table, 10-sec grasp). Works/Doesn't-Work sections (Run 5+). Script Bugs table (Run 6+). Enhancement impact table per-enhancement. Transform count decreases = quality improvements.
85+
86+
**Benchmark reports written:** Run 4 (`wingtiptoys-run4-2026-03-04`), Run 5 (`wingtiptoys-run5-2026-03-04`, 309 transforms), Run 6 (`wingtiptoys-run6-2026-03-04`, 269 transforms, ~4.5 min, 55% reduction). Run 5 added difficulty categorization. Run 6 added bug vs enhancement distinction.
87+
88+
**@rendermode correction:** Directive attribute on instances, not standalone. `_Imports.razor` gets `@using static`, `App.razor` gets `@rendermode="InteractiveServer"` on Routes/HeadOutlet. Updated migration-standards, bwfc-migration, METHODOLOGY.
89+
90+
**WebFormsPageBase docs:** Documented across bwfc-migration SKILL.md (`@inherits`, lifecycle table), migration-standards (target architecture, page base class), METHODOLOGY (scaffold). IPageService still valid for non-page components. Page.Request/Response/Session deliberately omitted.
91+
92+
**Page System doc rewrite:** PageService.md renamed to "Page System". Three-piece architecture (WebFormsPageBase primary, IPageService secondary). 3-column Key Differences table. mkdocs.yml + README updated.
93+
94+
Team updates (2026-03-04-05): PRs upstream, reports in docs/migration-tests/, benchmark baseline, Run 2/5/6 validated, GetRouteUrl overloads, standards formalized, @rendermode fix (PR #419), WebFormsPageBase/Page consolidation, 50 On-prefix aliases, AutoPostBack fix.
95+
96+
<!-- Summarized 2026-03-05 by Scribe -- covers Run 7 reports, control preservation docs, Run 9 benchmark -->
97+
98+
### Run 7-9 Reports & Control Preservation Docs (2026-03-05 through 2026-03-06)
99+
100+
**Control preservation docs:** METHODOLOGY.md, CHECKLIST.md, QUICKSTART.md updated with \Test-BwfcControlPreservation\. Rule: ALL asp: controls must be BWFC components, never raw HTML. Migration skill got 3 runtime gotchas (ListView @context, OnParametersSetAsync, AddHttpContextAccessor).
101+
102+
**Run 7 report:** \samples/Run7WingtipToys/MIGRATION-REPORT.md\ 32 files, 331 transforms, 1.2s, 97% accuracy. Report structure: exec summary, metrics tables, run-over-run comparison, recommendations. Co-located with output per Jeff.
103+
104+
**Run 7 skill updates:** 5 files updated for runtime failures (UseStaticFiles 404s, AuthorizeView crashes, asset paths). Key pattern: runtime failures more dangerous than compile errors.
105+
106+
**Run 9 report:** \docs/Migration/Run9-WingtipToys-Benchmark.md\ + \samples/Run9WingtipToys/BENCHMARK-REPORT.md\. 667 transforms, 173 BWFC instances (23 types), 8 pages, 0 errors. LoginView preservation (native BWFC, not AuthorizeView rewrite) is the standard. \ItemType\TItem\ bug persists. Convention: BENCHMARK-DATA.md (Bishop) BENCHMARK-REPORT.md (Beast).
107+
108+
Team update (2026-03-05): Forge APPROVED Run 9 migration (98.9% control preservation). 2 findings: ImageButtonimg (P0), HyperLink dropped (P2). Beast's benchmark report structure (dual-location, 3-run comparison) established as standard. decided by Forge
109+
110+
### Squad Places Knowledge Artifact (2026-03-05)
111+
112+
- Published lesson artifact to Squad Places (social network for AI agent teams): **"What 110+ Web Forms Controls Taught Us About Migration-First Component Design"** (type: lesson, ID: `bf853f10-27f0-4ee8-bee8-e43695bf150e`). Covers 6 hard-won lessons: HTML fidelity, exact attribute naming, real enums, data binding translation, EventCallback dual pattern, base class hierarchy. Tags: blazor, webforms, migration, lessons-learned, component-design, dotnet.
113+
- Squad Places is our team's social network presence. Squad ID: `5b52c25e-9e05-4c03-a392-16c58a57b144`. API: `https://api.nicebeach-b92b0c14.eastus.azurecontainerapps.io`.
114+
115+
### Run 10 Benchmark Report (2025-07-25)
116+
117+
- **Run 10 report written:** `docs/Migration/Run10-WingtipToys-Benchmark.md` + `samples/Run10WingtipToys/BENCHMARK-REPORT.md`. Cycle 1 of 3-cycle improvement loop. 673 transforms, 172 BWFC instances (26 types), 8 functional pages, 3 build attempts (down from 7). All 5 P0/P1 fixes validated. mkdocs.yml nav updated.
118+
- **Improvement loop report pattern:** When reporting on fix-validation runs, lead Executive Summary with fix impact table, add "Measured Impact" subsection under improvements, and include "Recommendations for Cycle N+1" section targeting specific build-attempt reduction goals.
119+
- **On-disk vs benchmark discrepancy:** BENCHMARK-DATA.md reported 44 .cs files but on-disk count was 38. Used benchmark numbers for consistency — discrepancy likely due to intermediate files consolidated during Layer 2 optimization.
120+
- **Run 10 key metrics:** Build attempts 7→3 (57% fewer), Layer 2 time 45→25 min (44% faster), 3 new BWFC types counted (LinkButton, ModelErrorMessage, FileUpload). Remaining 3 build attempts target enum string→type conversions (P2 candidates for Cycle 2).
121+
- **4-run comparison table established:** Run-over-Run table now covers Runs 7–10. Added ItemType bug and validator params rows to track fix propagation across runs.
122+
123+
Team update (2026-03-06): Run 10 BWFC preservation review: 92.7% (164/177) NEEDS WORK. Below 95% threshold. P0-2 smart stubs fix recovered 113 controls across 12 pages. 3 gaps remain for Cycle 2. decided by Forge
124+
125+
### Run 11 Benchmark Report (2025-07-25)
126+
127+
- **Run 11 report written:** Commit 49b556be. Cycle 2 of 3-cycle improvement loop. 178 BWFC instances (26 unique types), 4 build attempts, 0 errors. All 3 P0 gaps from Run 10 closed.
128+
- **Key metrics:** Preservation rate 92.7% to 98.9% (Cycle 2 target of >=98% met). Build attempts 3 to 4 (slight increase due to stub model iteration). Layer 2 time ~20min.
129+
- **5-run comparison table:** Runs 7-11 now tracked. ItemType stripping and stub model pattern are new capabilities validated.
130+
- **Convention:** BENCHMARK-DATA.md (Bishop) to BENCHMARK-REPORT.md (Beast) pipeline continues.
131+
132+
Team update (2025-07-25): Forge reviewed Run 11 preservation: 98.9% (176/178 adjusted) -- APPROVED. All 3 P0 gaps CLOSED. Cycle 3 priorities: functional Login/Register code-behinds per Jeff's directive. -- decided by Forge
133+
134+
📌 Team update (2026-03-06): migration-toolkit is end-user distributable; migration skills belong in migration-toolkit/skills/ not .squad/skills/ — decided by Jeffrey T. Fritz
135+
136+
### Run 7 Benchmark Report (2026-03-06)
137+
138+
- **Run 7 report written:** `dev-docs/migration-tests/wingtiptoys-run7-2026-03-06/report.md` + `raw-data.md`. First runtime-validated benchmark with acceptance tests.
139+
- **Key metrics:** 3.33s script time (27% faster than Run 6), 366 transforms (+97), 80 static files, 2 build rounds (down from 4), 14/14 acceptance tests PASS.
140+
- **New report section:** §5 Acceptance Test Results — test project location, full test breakdown table, fix iteration documentation with Problem/Fix/Impact pattern.
141+
- **Three runtime patterns documented:** Bootstrap CSS links in App.razor, scoped auth providers + cookie auth, anchor-based form submit (`<a role="button">` + minimal API POST endpoints).
142+
- **Layer 2 scope:** 33 files rewritten, 14 modified, 8 created. EF Core models + DbContext + SQLite + seed data, ShoppingCartService, CartStateService, cookie auth wiring.
143+
- **Convention established:** Runtime correctness (acceptance tests) supersedes compilation as the primary quality gate for migration benchmarks going forward.
144+
- **README.md updated:** Added Runs 5–7 to migration test index table.
145+
146+
Team update (2026-03-06): Layer 2 conventions established Button OnClick uses EventArgs (not MouseEventArgs), code-behind class names must match .razor filenames exactly, use EF Core wildcard versions for .NET 10, CartStateService replaces Session, GridView needs explicit TItem decided by Cyclops
147+
148+
149+
Team update (2026-03-06): WebFormsPageBase is the canonical base class for all migrated pages (not ComponentBase). All agents must use WebFormsPageBase decided by Jeffrey T. Fritz
150+
Team update (2026-03-06): LoginView is a native BWFC component do NOT convert to AuthorizeView. Strip asp: prefix only decided by Jeffrey T. Fritz
151+
152+
153+
≡ Team update (2026-05-07): Inbox merged, decisions consolidated — Scribe
154+
### Historical Summary (2026-02-10 through 2026-03-06)
3155

.squad/agents/bishop/history.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,24 @@
11
# bishop History
22

33

4+
## Learnings
5+
6+
### 2026-06-12T09:56:19-04:00: Audit gate — first repeatable coverage report
7+
8+
- Created `migration-toolkit/scripts/audit-coverage.ps1` — a self-contained PowerShell script that cross-checks `tracked-components.json` against five coverage signals: mkdocs.yml nav, bUnit test folders, ComponentCatalog.cs entries, ControlSampleTests.cs InlineData routes, and README links.
9+
- Wrote the dated output to `dev-docs/audit-report.md` (regenerated on each run).
10+
- First run results (2026-06-12, 61 tracked components): docs 60/61, bUnit folders 41/61 (group-folder caveat noted), catalog 58/61, README 56/61, untested catalog entries 1 (ScriptManagerProxy).
11+
- bUnit "missing" count is conservative: `LoginControls/` and `Validations/` group folders make 13 components appear uncovered even when tests exist — documented as a known methodology note in the report.
12+
- `BaseValidator` and `BaseCompareValidator` are legitimately absent from catalog and README (abstract base classes); `Xml` is deferred — all three flagged by the report as expected gaps.
13+
14+
📋 Team update: Audit gate established — run `migration-toolkit/scripts/audit-coverage.ps1` after each remediation wave to regenerate `dev-docs/audit-report.md` and track progress.
15+
16+
17+
### 2026-06-10T10:33:04.9872011-04:00: #557 completed and #549/#550 scaffolding hooks started
18+
19+
- `WebConfigAssemblyParser.ParseProject()` now merges control registrations across all discovered `Web.config` files (root + nested), not just one file, and emits a shared `PrefixToNamespaceMap`.
20+
- `RuntimeDetector` now surfaces `CustomControlPrefixToNamespaceMap` plus `CodeOnlyServerControls` discovered from `.cs` files inheriting Web Forms server-control bases without markup companions.
21+
- `MigrationContext` and `FileMetadata` now carry `CustomControlPrefixToNamespace` so future markup transforms (issue #550) can consume prefix resolution without re-parsing config.
22+
- `MigrationPipeline` now wires a `CodeOnlyControlScaffolder` skeleton emission step (issue #549 starter) that generates placeholder components under `Generated/CodeOnlyControls` and logs manual follow-up items.
23+
24+
📋 Team update (2026-06-10): Decision merged — "Custom control parser + scaffolder handoff (#557, #549, #550, #548)" with handoff checklist for #549/#550 follow-on work — decided by Bishop

.squad/agents/colossus/history.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,3 +157,10 @@ Added 5 smoke tests (Timer, UpdatePanel, UpdateProgress, ScriptManager, Substitu
157157
- For the not-yet-landed sample demos, broad assertions are safer than exact text checks: verify custom navigation/sidebar template structure exists inside the scoped Wizard wrapper instead of hard-coding Cyclops' final demo text.
158158
- Added small Wizard-specific test helpers to reuse the page navigation pattern, collect console errors, and find the forward navigation control without matching `Previous`, `Back`, or `Cancel` labels.
159159
- Compile validation succeeded with `dotnet build samples\AfterBlazorServerSide.Tests --nologo` after the test additions.
160+
161+
### Migration Helper Route Coverage (2026-06-12T09:56:18.833-04:00)
162+
- Audited all 13 routes in the "known missing" list against file system.
163+
- 12 of 13 routes have real backing pages; `/ControlSamples/ScriptManagerProxy` has no page file yet and is documented in a comment in `ControlSampleTests.cs` pending page implementation.
164+
- Added 3 routes to `AjaxControl_Loads_WithoutErrors` theory: `/ControlSamples/ClientScriptShim`, `/ControlSamples/NamingContainer`, `/ControlSamples/PostBackDemo`.
165+
- Added 9 routes to `MigrationPage_Loads_WithoutErrors` theory: `/ControlSamples/Migration/ConfigurationManager`, `/ControlSamples/Migration/CustomWebControl`, `/migration/cache`, `/migration/findcontrol`, `/migration/ispostback`, `/migration/request`, `/migration/response-redirect`, `/migration/server-mappath`, `/migration/session`.
166+
- Build green: `dotnet build samples\AfterBlazorServerSide.Tests --nologo` — 0 errors, 0 compiler warnings.

0 commit comments

Comments
 (0)