Skip to content

Commit 9e627d1

Browse files
csharpfritzCopilot
andcommitted
docs(ai-team): v0.14 release log and audit decision merge
Session: 2026-02-24-v014-release Requested by: Jeffrey T. Fritz Changes: - Logged v0.14 release session - Merged Forge's pre-release audit decision from inbox - Propagated team updates to agent histories Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent fec6000 commit 9e627d1

7 files changed

Lines changed: 111 additions & 0 deletions

File tree

.ai-team/agents/beast/history.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,5 @@
6262
Team update (2026-02-24): Menu auto-ID pattern components with JS interop should auto-generate IDs decided by Cyclops
6363
Team update (2026-02-24): M8 scope excludes version bump to 1.0 and release decided by Jeffrey T. Fritz
6464
Team update (2026-02-24): PagerSettings shared sub-component created update docs when component stabilizes decided by Cyclops
65+
66+
Team update (2026-02-24): v0.14 released Forge audit: conditional ship, 6 missing sample pages and PagerSettings defaults noted for 1.0 decided by Forge

.ai-team/agents/colossus/history.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,5 @@ Added 9 smoke tests and 9 interaction tests for M7 sample pages: GridView Select
3434

3535
Team update (2026-02-24): Menu auto-ID pattern Menu now auto-generates IDs, JS interop crash fixed decided by Cyclops
3636
Team update (2026-02-24): M8 scope excludes version bump to 1.0 and release decided by Jeffrey T. Fritz
37+
38+
Team update (2026-02-24): v0.14 released Forge audit: conditional ship, 6 missing sample pages and PagerSettings defaults noted for 1.0 decided by Forge

.ai-team/agents/cyclops/history.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,5 @@ Audited 13 controls. Found: AccessKey/ToolTip missing from base class (universal
7272
- **Shared PagerSettings sub-component:** Created `PagerSettings` class (plain C# POCO, not a Blazor component) with all 12 Web Forms PagerSettings properties (Mode, PageButtonCount, First/Last/Next/PreviousPageText, image URLs, Position, Visible). Created `PagerPosition` enum in `Enums/` (PagerButtons already existed). Created `IPagerSettingsContainer` interface in `Interfaces/`. Created `UiPagerSettings` abstract base component following the `UiTableItemStyle` CascadingParameter pattern but for settings instead of styles. Created 3 concrete sub-component pairs: `GridViewPagerSettings`, `FormViewPagerSettings`, `DetailsViewPagerSettings` — each inherits `UiPagerSettings` and uses `[CascadingParameter(Name = "ParentXxx")]` to set properties on the parent's `PagerSettings` instance. Wired into GridView, FormView, DetailsView: added `IPagerSettingsContainer` to each control's interface list, added `PagerSettings` property + `PagerSettingsContent` RenderFragment parameter, rendered `@PagerSettingsContent` inside existing `<CascadingValue>` block. Key files: `Enums/PagerPosition.cs`, `PagerSettings.cs`, `Interfaces/IPagerSettingsContainer.cs`, `UiPagerSettings.cs`, `GridViewPagerSettings.razor(.cs)`, `FormViewPagerSettings.razor(.cs)`, `DetailsViewPagerSettings.razor(.cs)`.
7373
Team update (2026-02-24): Substitution/Xml formally deferred no implementation needed decided by Beast
7474
Team update (2026-02-24): M8 scope excludes version bump to 1.0 and release decided by Jeffrey T. Fritz
75+
76+
Team update (2026-02-24): v0.14 released Forge audit: conditional ship, 6 missing sample pages and PagerSettings defaults noted for 1.0 decided by Forge

.ai-team/agents/forge/history.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,3 +89,5 @@ Planned M7: "Control Depth & Navigation Overhaul" — 51 work items targeting ~1
8989
Team update (2026-02-24): Substitution/Xml formally deferred in status.md and README decided by Beast
9090
Team update (2026-02-24): M8 scope excludes version bump to 1.0 and release decided by Jeffrey T. Fritz
9191
Team update (2026-02-24): PagerSettings shared sub-component created for GridView/FormView/DetailsView decided by Cyclops
92+
93+
Team update (2026-02-24): v0.14 released Forge audit: conditional ship, 6 missing sample pages and PagerSettings defaults noted for 1.0 decided by Forge

.ai-team/agents/jubilee/history.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,3 +42,5 @@ Chart: 8 basic + 4 advanced sample pages (DataBinding, MultiSeries, Styling, Cha
4242
Team update (2026-02-24): Menu auto-ID pattern Menu now auto-generates IDs for JS interop decided by Cyclops
4343
Team update (2026-02-24): M8 scope excludes version bump to 1.0 and release decided by Jeffrey T. Fritz
4444
Team update (2026-02-24): PagerSettings shared sub-component created samples may need PagerSettings demos decided by Cyclops
45+
46+
Team update (2026-02-24): v0.14 released Forge audit: conditional ship, 6 missing sample pages and PagerSettings defaults noted for 1.0 decided by Forge

.ai-team/agents/rogue/history.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,3 +91,5 @@ Wrote 41 bUnit tests across 6 new test files for P2 features:
9191

9292
Team update (2026-02-24): M8 scope excludes version bump to 1.0 and release decided by Jeffrey T. Fritz
9393
Team update (2026-02-24): PagerSettings shared sub-component created may need bUnit tests decided by Cyclops
94+
95+
Team update (2026-02-24): v0.14 released Forge audit: conditional ship, 6 missing sample pages and PagerSettings defaults noted for 1.0 decided by Forge

.ai-team/decisions.md

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1924,3 +1924,102 @@ Removed the `@rendermode InteractiveServer` directive. No other sample page in t
19241924
- `dotnet build samples/AfterBlazorClientSide/ --configuration Release` — ✅ passes
19251925
- `dotnet build samples/AfterBlazorServerSide/ --configuration Release` — ✅ passes
19261926
- `dotnet test src/BlazorWebFormsComponents.Test/ --no-restore` — ✅ passes
1927+
1928+
### 2026-02-24: Pre-release audit for v0.14
1929+
**By:** Forge
1930+
**What:** CONDITIONAL SHIP — No blockers found. 0 build errors, 1,206 tests passing across all projects. 51/53 components complete (2 deferred). One WARNING on PagerSettings defaults deviating from Web Forms. Six components missing sample pages. Chart tests exist but not organized in a test subdirectory.
1931+
**Why:** The codebase is in solid shape for a minor release. All 51 completed components exist, build clean, and have documentation. The PagerSettings default deviation is non-blocking for 0.14 but should be fixed before 1.0. Sample page gaps are cosmetic — the components themselves work. Details below.
1932+
1933+
---
1934+
1935+
## Verdict: ✅ CONDITIONAL SHIP
1936+
1937+
Ship v0.14 with the understanding that the WARNING items below are tracked for the next milestone.
1938+
1939+
---
1940+
1941+
## Component Inventory
1942+
1943+
| Metric | Count | Notes |
1944+
|--------|-------|-------|
1945+
| Total components (status.md) | 53 | 51 complete, 2 deferred (Substitution, Xml) |
1946+
| Component .razor files verified | 51 | All present in src/BlazorWebFormsComponents/ (including subdirs) |
1947+
| Documentation coverage | 51/51 (100%) | All components have matching .md files in docs/ |
1948+
| Test coverage | 50/51 (98%) | Chart has tests (ChartTests.cs) but no organized test directory |
1949+
| Sample page coverage | 45/51 (88%) | 6 components missing dedicated sample pages |
1950+
| Build errors | 0 | All 3 projects build clean (Release) |
1951+
| Test results | 1,206 passed, 0 failed, 0 skipped | |
1952+
| Build warnings | 64 (lib) + 243 (server samples) | Mostly BL0007/BL0005 — non-blocking |
1953+
1954+
---
1955+
1956+
## Issues Found
1957+
1958+
### BLOCKER: None
1959+
1960+
### WARNING
1961+
1962+
**W1: PagerSettings FirstPageText/LastPageText defaults deviate from Web Forms**
1963+
- Our defaults: `FirstPageText = "..."`, `LastPageText = "..."`
1964+
- Web Forms defaults: `FirstPageText = "<<"`, `LastPageText = ">>"`
1965+
- **Impact:** Migrated markup that relies on default pager text will render differently
1966+
- **Location:** `src/BlazorWebFormsComponents/PagerSettings.cs` lines 24, 29
1967+
- **Recommendation:** Fix defaults to match Web Forms before 1.0. Non-blocking for 0.14 since most users override these.
1968+
1969+
### NOTE
1970+
1971+
**N1: Six components have no dedicated sample pages**
1972+
Missing sample page directories in `samples/AfterBlazorServerSide/Components/Pages/ControlSamples/`:
1973+
- CheckBoxList
1974+
- ImageButton
1975+
- ListBox
1976+
- RadioButton
1977+
- TextBox
1978+
- DataPager
1979+
1980+
These components are documented and tested, but lack sample pages. Per team decision (2026-02-10), docs and samples must ship with components.
1981+
1982+
**N2: Chart tests not in standard test directory structure**
1983+
- Chart tests exist as `src/BlazorWebFormsComponents.Test/ChartTests.cs` (single .cs file)
1984+
- All other components use `{ComponentName}/` subdirectories with `.razor` test files
1985+
- Not blocking but inconsistent with project test organization pattern
1986+
1987+
**N3: ValidationSummary is named `AspNetValidationSummary` in code**
1988+
- The Blazor component is `AspNetValidationSummary.razor` (not `ValidationSummary.razor`)
1989+
- This is intentional to avoid conflict with Blazor's built-in `ValidationSummary`
1990+
- Documentation correctly references this naming
1991+
- Migration docs should make this rename clear
1992+
1993+
**N4: 64 build warnings in component library**
1994+
- Primarily BL0007 (component parameter should be auto property) in Login controls
1995+
- These are non-functional warnings — Login/ChangePassword/CreateUserWizard use backing fields for state management
1996+
- Should be addressed eventually but not release-blocking
1997+
1998+
---
1999+
2000+
## M8 Additions Review
2001+
2002+
### PagerSettings ✅ GOOD
2003+
- **Architecture:** Clean shared model — `PagerSettings.cs` (POCO), `UiPagerSettings` (abstract base component), `IPagerSettingsContainer` (interface)
2004+
- **Wiring:** GridView, FormView, and DetailsView all implement `IPagerSettingsContainer`, expose `PagerSettings` property, and accept `<GridViewPagerSettings>`, `<FormViewPagerSettings>`, `<DetailsViewPagerSettings>` sub-components
2005+
- **Defaults:** Correct for Mode (Numeric), PageButtonCount (10), NextPageText (">"), PreviousPageText ("<"), Position (Bottom), Visible (true). **Exception:** FirstPageText/LastPageText use "..." instead of Web Forms' "<<"/">>" (see W1)
2006+
- **Enums:** `PagerButtons` (4 values) and `PagerPosition` (3 values) both match Web Forms
2007+
- **Pattern:** Follows established UiTableItemStyle → CascadingParameter pattern
2008+
2009+
### Menu Auto-ID ✅ GOOD
2010+
- Located in `Menu.razor.cs` lines 232-241
2011+
- `OnParametersSet()` checks `string.IsNullOrEmpty(ID)` and auto-generates `menu_{GetHashCode():x}`
2012+
- Ensures JS interop always has a valid element ID target
2013+
- Clean implementation, non-breaking (only activates when no ID provided)
2014+
2015+
### Calendar Attribute Fix ✅ GOOD
2016+
- `Calendar.razor` renders `class="@CssClass"` and `style="@GetTableStyle()"` on the table element
2017+
- Proper attribute rendering with null-safe patterns throughout
2018+
- Style sub-component CascadingValue pattern in place for all 9 calendar styles
2019+
2020+
### Menu.js Null Guard ✅ GOOD
2021+
- Located at `src/BlazorWebFormsComponents/wwwroot/Menu/Menu.js` lines 12-116
2022+
- Constructor wrapped in try/catch with `console.warn` fallback (line 112-115)
2023+
- Element null check at lines 19-21: `if (!this.element) { return; }`
2024+
- Prevents unhandled JS exceptions from crashing the Blazor circuit
2025+
- Appropriate defensive programming for JS interop scenarios

0 commit comments

Comments
 (0)