You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .ai-team/agents/beast/history.md
+12-1Lines changed: 12 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -38,4 +38,15 @@
38
38
-**Child component docs pattern:** Chart introduces a multi-component documentation pattern (Chart, ChartSeries, ChartArea, ChartLegend, ChartTitle) with separate parameter tables for each. This nested-component doc approach should be used for any future components with required child components.
39
39
-**Chart Type Gallery added:** Added a "Chart Type Gallery" section to `docs/DataControls/Chart.md` between "Chart Palettes" and "Web Forms Features NOT Supported". Contains 8 subsections (Column, Line, Bar, Pie, Doughnut, Area, Scatter, Stacked Column) each with a screenshot, `SeriesChartType` enum value, and 1-2 sentence usage guidance. Includes `!!! warning` admonitions on Pie and Doughnut for the Phase 1 palette limitation (single series color instead of per-segment colors).
40
40
-**Chart image path convention:** Chart screenshots live at `docs/images/chart/chart-{type}.png` (lowercase, hyphenated). Referenced from Chart.md using relative paths: `../images/chart/chart-{type}.png`. This `docs/images/{component}/` pattern should be used for any future component screenshots.
41
-
41
+
-**AccessKey and ToolTip missing across all WebControl-based components:** Neither `BaseWebFormsComponent` nor `BaseStyledComponent` defines `AccessKey` or `ToolTip` parameters. Every control inheriting from WebControl in Web Forms has these, so they are universally 🔴 Missing. Adding them to `BaseStyledComponent` would fix all styled controls in one shot.
42
+
-**Label uses wrong base class for style support:**`Label` inherits `BaseWebFormsComponent` (no style) instead of `BaseStyledComponent`. Web Forms `Label` inherits from `WebControl` and supports all style properties (CssClass, BackColor, Font, etc.). This is the biggest gap for Label — 11 style properties are missing.
43
+
-**ListControl-derived components share common gaps:** ListBox, RadioButtonList (and CheckBoxList, DropDownList) all have the same missing properties: `AppendDataBoundItems`, `DataTextFormatString`, `CausesValidation`, `ValidationGroup`, and `TextChanged` event. These could be fixed once in a shared base.
44
+
-**Literal/Localize/PlaceHolder/View/MultiView are near-complete:** Controls inheriting from `Control` (not `WebControl`) have no style properties by design. The Blazor implementations are essentially feature-complete — matching all relevant properties and events.
45
+
-**Substitution and Xml are permanently deferral candidates:** Both controls are tightly coupled to server-side ASP.NET infrastructure (output caching and XSLT transformation respectively). Neither concept maps to Blazor's component model. Recommend documenting migration alternatives rather than implementing.
46
+
-**Style property computed but not directly settable:** Across all `BaseStyledComponent`-derived controls, the `Style` property is computed from BackColor/ForeColor/Font/etc. via `IStyle.ToStyle()`. Web Forms allowed direct `Style["property"] = "value"` assignment. This pattern difference is consistent but worth noting in migration guides.
47
+
-**Panel is the most feature-complete styled control:** Panel implements 6 out of 7 specific Web Forms properties (only BackImageUrl missing). Combined with full BaseStyledComponent inheritance, it has the highest coverage of any editor control.
48
+
49
+
50
+
Team update (2026-02-23): AccessKey/ToolTip must be added to BaseStyledComponent decided by Beast, Cyclops
51
+
Team update (2026-02-23): Chart implementation architecture consolidated (10 decisions) decided by Cyclops, Forge
52
+
Team update (2026-02-23): DetailsView/PasswordRecovery branch (sprint3) must be merged forward decided by Forge
Copy file name to clipboardExpand all lines: .ai-team/agents/colossus/history.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -48,3 +48,6 @@
48
48
- Chart pages use JS interop (`ChartJsInterop.cs`) — console errors are expected if Chart.js CDN/bundle isn't fully loaded; page errors are not
49
49
- Pre-existing test suite has 97 failures on non-Chart tests due to ASP.NET structured log console errors (`[timestamp] Error:`) being caught by `Assert.Empty(consoleErrors)` — these are unrelated to Chart work
50
50
51
+
52
+
Team update (2026-02-23): DetailsView/PasswordRecovery branch (sprint3) must be merged forward decided by Forge
53
+
Team update (2026-02-23): AccessKey/ToolTip must be added to BaseStyledComponent decided by Beast, Cyclops
Copy file name to clipboardExpand all lines: .ai-team/agents/cyclops/history.md
+16Lines changed: 16 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -58,4 +58,20 @@
58
58
-**JS interop pattern for Chart:** Uses `IJSRuntime` directly (not the shared `BlazorWebFormsJsInterop` service) because Chart.js interop is chart-specific, not page-level. `ChartJsInterop` lazily imports the ES module and exposes `CreateChartAsync`, `UpdateChartAsync`, `DestroyChartAsync`.
59
59
-**BaseStyledComponent already has Width/Height as Unit type:** Chart adds `ChartWidth`/`ChartHeight` as string parameters for CSS dimension styling on the wrapper div, avoiding conflict with the base class Unit properties.
60
60
-**Instance-based canvas IDs:** Uses `Guid.NewGuid()` (truncated to 8 chars) for canvas element IDs, consistent with the ImageMap pattern that avoids static counters.
61
+
-**Feature audit — Editor Controls A–I (13 controls):** Created audit docs in `planning-docs/` comparing Web Forms API vs Blazor implementation for AdRotator, BulletedList, Button, Calendar, CheckBox, CheckBoxList, DropDownList, FileUpload, HiddenField, HyperLink, Image, ImageButton, ImageMap.
62
+
-**Common missing property: AccessKey.** Every component that inherits WebControl in Web Forms has AccessKey. Neither `BaseStyledComponent` nor `BaseWebFormsComponent` provides it. This is the single most pervasive gap — affects all 13 audited controls.
63
+
-**ToolTip inconsistently provided.** Some components (Button, FileUpload, Calendar, HyperLink, Image, ImageButton, ImageMap) add ToolTip directly. Others (AdRotator, BulletedList, CheckBox, CheckBoxList, DropDownList) do not. ToolTip should be on the base class.
64
+
-**Image base class mismatch.**`Image` inherits `BaseWebFormsComponent` but Web Forms `Image` inherits `WebControl`. This means Image is missing ALL style properties (CssClass, BackColor, ForeColor, Font, Width, Height, BorderColor, BorderStyle, BorderWidth, Style). ImageMap correctly uses `BaseStyledComponent` per team decision. Image should follow the same pattern.
65
+
-**HyperLink.NavigateUrl naming mismatch.** Web Forms uses `NavigateUrl`; Blazor uses `NavigationUrl`. This breaks migration — developers must rename the attribute.
66
+
-**List controls missing common ListControl properties.** BulletedList, CheckBoxList, and DropDownList all lack DataTextFormatString, AppendDataBoundItems, CausesValidation, and ValidationGroup. These are inherited from ListControl in Web Forms.
67
+
-**Calendar style sub-properties use CSS strings.** All 9 style sub-properties (DayStyle, TitleStyle, etc.) are implemented as CSS class strings instead of `TableItemStyle` objects. Functional but not API-compatible.
68
+
-**HiddenField correctly uses BaseWebFormsComponent.** Matches Web Forms where HiddenField inherits Control (not WebControl), so no style properties needed.
61
69
70
+
71
+
Team update (2026-02-23): AccessKey/ToolTip must be added to BaseStyledComponent decided by Beast, Cyclops
72
+
Team update (2026-02-23): Label should inherit BaseStyledComponent instead of BaseWebFormsComponent decided by Beast
73
+
Team update (2026-02-23): DataBoundComponent style gap DataBoundStyledComponent<T> recommended decided by Forge
74
+
Team update (2026-02-23): Chart implementation architecture consolidated (10 decisions) decided by Cyclops, Forge
75
+
Team update (2026-02-23): Validation Display property missing from all validators migration-blocking decided by Rogue
76
+
Team update (2026-02-23): ValidationSummary comma-split bug is data corruption risk decided by Rogue
77
+
Team update (2026-02-23): Login controls missing outer WebControl style properties decided by Rogue
📌 Team update (2026-02-12): Chart component feasibility confirmed — Chart.js recommended via JS interop. Effort: L. Target Milestone 4. — decided by Forge
50
50
📌 Team update (2026-02-12): Milestone 4 planned — Chart component with Chart.js via JS interop. 8 work items, design review required before implementation. — decided by Forge + Squad
51
51
52
+
### Feature Comparison Audit: Data Controls + Navigation Controls (2026-02-12)
53
+
54
+
Completed full API surface audit of 12 controls (9 Data + 3 Navigation) comparing Web Forms API vs Blazor implementation. Created `planning-docs/{ControlName}.md` for each.
2.**Good but incomplete:** DetailsView (27 props, 16 events — strong CRUD events, missing style props; on sprint3 branch), TreeView (21 props, 11 events — good core + data binding + accessibility, missing node styles), Menu (16 props, 7 events — good rendering + JS interop, missing base styles and Orientation).
61
+
62
+
3.**Weakest coverage:** GridView (9 props, 8 events — only basic table rendering, no paging/sorting/editing/selection), FormView (10 props, 12 events — good mode switching but missing nearly all display properties), ListView (14 props, 9 events — great templates, no CRUD events), Chart (14 props, 6 events — architectural deviation to Chart.js/canvas).
63
+
64
+
**Recurring pattern — style property gap:** Controls inheriting DataBoundComponent<T> (DataGrid, GridView, FormView, DetailsView, ListView) lack WebControl-level style properties (BackColor, ForeColor, Font, BorderColor, Width, Height, etc.) because DataBoundComponent inherits BaseWebFormsComponent, not BaseStyledComponent. DataList is the exception — it implements IStyle directly with all style parameters.
65
+
66
+
**Recurring pattern — missing CRUD events:** GridView, ListView, and DataGrid are all missing row/item-level CRUD events (RowDeleting/RowDeleted, ItemEditing, etc.) that are essential for inline editing scenarios. Only DetailsView and FormView have these.
67
+
68
+
**Recurring pattern — no PagerSettings:** All controls that support paging (GridView, DetailsView, FormView) are missing the PagerSettings configuration object that Web Forms uses to configure pager appearance.
69
+
70
+
**DetailsView branch status:** DetailsView exists on `sprint3/detailsview-passwordrecovery` but is not on the current working branch (`milestone4/chart-component`).
71
+
52
72
### Themes and Skins Migration Strategy (2026-02-12)
53
73
54
74
- Evaluated 5 approaches for migrating Web Forms Themes/Skins to Blazor: CSS Custom Properties, CascadingValue ThemeProvider, Generated CSS Isolation, DI Service, and Hybrid.
Copy file name to clipboardExpand all lines: .ai-team/agents/rogue/history.md
+14Lines changed: 14 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,3 +32,17 @@
32
32
33
33
📌 Test pattern: Chart component tests use `BunitContext` directly (not `BlazorWebFormsTestContext`) with `JSInterop.Mode = JSRuntimeMode.Loose` to handle Chart.js interop calls. ChartConfigBuilder is the most testable part — pure static class, no JS/canvas dependency. bUnit 2.x requires `Render<T>` not `RenderComponent<T>`. `GetPaletteColors` is internal, so palette behavior is tested indirectly via BuildConfig dataset colors. — Rogue
34
34
35
+
📌 Feature Comparison Audit — Validation Controls + Login Controls (2026-02-12): Created 13 audit documents in `planning-docs/` comparing Web Forms API vs Blazor implementation for CompareValidator, CustomValidator, RangeValidator, RegularExpressionValidator, RequiredFieldValidator, ValidationSummary, ChangePassword, CreateUserWizard, Login, LoginName, LoginStatus, LoginView, PasswordRecovery. — Rogue
36
+
37
+
📌 Validation controls common gaps: (1) `Display` property (None/Static/Dynamic) missing from all validators — affects layout behavior. (2) `SetFocusOnError` missing from all validators. (3) `ControlToValidate` uses `ForwardRef<InputBase<T>>` instead of string ID — different API shape from Web Forms. (4) `InitialValue` missing from RequiredFieldValidator. (5) `ControlToCompare` missing from CompareValidator. (6) `AccessKey` and `ToolTip` missing from all validators. (7) ValidationSummary is missing `HeaderText`, `ShowMessageBox`, `ShowSummary`, `ShowValidationErrors`, and `ValidationGroup` — significant functional gaps. (8) ValidationSummary error message parsing uses fragile comma-split (`x.Split(',')[1]`). — Rogue
38
+
39
+
📌 Login control template support status: (1) ChangePassword: `ChangePasswordTemplate` and `SuccessTemplate` both supported as RenderFragment. (2) CreateUserWizard: `CreateUserStep`, `CompleteStep`, `SideBarTemplate`, `HeaderTemplate` all supported — but limited to 2 fixed wizard steps (no arbitrary WizardSteps). (3) Login: `LayoutTemplate` NOT supported (commented out in code). (4) LoginView: `AnonymousTemplate`, `LoggedInTemplate`, `RoleGroups` all supported — best template coverage of all login controls. (5) PasswordRecovery: component NOT FOUND in source tree despite Sprint 3 history references — needs investigation. — Rogue
40
+
41
+
📌 Login controls inherit BaseWebFormsComponent (not BaseStyledComponent): Login, ChangePassword, CreateUserWizard, LoginView all lack outer-level WebControl style properties (BackColor, CssClass, ForeColor, Width, Height, etc.). Only LoginName and LoginStatus inherit BaseStyledComponent and have full style support. Sub-element styles are handled via CascadingParameters for the composite login controls. — Rogue
42
+
43
+
44
+
Team update (2026-02-23): AccessKey/ToolTip must be added to BaseStyledComponent decided by Beast, Cyclops
45
+
Team update (2026-02-23): DataBoundComponent style gap DataBoundStyledComponent<T> recommended decided by Forge
46
+
Team update (2026-02-23): DetailsView/PasswordRecovery branch (sprint3) must be merged forward decided by Forge
47
+
Team update (2026-02-23): Validation Display property gap confirmed migration-blocking decided by Rogue
48
+
Team update (2026-02-23): ValidationSummary comma-split bug confirmed immediate fix needed decided by Rogue
0 commit comments