Skip to content

Sprint3/detailsview passwordrecovery#340

Open
csharpfritz wants to merge 27 commits intoFritzAndFriends:devfrom
csharpfritz:sprint3/detailsview-passwordrecovery
Open

Sprint3/detailsview passwordrecovery#340
csharpfritz wants to merge 27 commits intoFritzAndFriends:devfrom
csharpfritz:sprint3/detailsview-passwordrecovery

Conversation

@csharpfritz
Copy link
Collaborator

This pull request adds a comprehensive set of templates and documentation files to the .ai-team-templates/ directory, establishing conventions, workflows, and patterns for AI agent team collaboration in the project. The changes introduce templates for team charters, ceremonies, routing, logging, skills, and project context, as well as policy and registry files for agent orchestration. These templates are designed to standardize multi-agent collaboration, memory management, and project conventions.

The most important changes are:

Team Process & Collaboration Templates:

  • Added templates for team ceremonies (ceremonies.md), agent charters (charter.md), team roster (roster.md), work routing (routing.md), orchestration logs (orchestration-log.md), and run output (run-output.md), providing structured processes for meetings, roles, work assignment, and artifact assembly. [1] [2] [3] [4] [5] [6]

Agent Memory & Decision Management:

  • Introduced the Scribe agent charter (scribe-charter.md) detailing responsibilities for session logging, decision merging, and cross-agent updates, along with templates for agent history (history.md) and raw agent output (raw-agent-output.md). [1] [2] [3]

Skills & Conventions:

  • Added a generic skill template (skill.md) and a specific skill file for Squad conventions (skills/squad-conventions/SKILL.md), documenting core patterns such as zero dependencies, error handling, file structure, and Windows compatibility. [1] [2]

AI Agent Orchestration Policy & Registry:

  • Added casting policy (casting-policy.json), casting history (casting-history.json), and casting registry (casting-registry.json) files to define universe allowlists, agent assignments, and capacity constraints for agent orchestration. [1] [2] [3]

Copilot AI and others added 27 commits February 9, 2026 17:08
Co-authored-by: csharpfritz <78577+csharpfritz@users.noreply.github.com>
Co-authored-by: csharpfritz <78577+csharpfritz@users.noreply.github.com>
Co-authored-by: csharpfritz <78577+csharpfritz@users.noreply.github.com>
Co-authored-by: csharpfritz <78577+csharpfritz@users.noreply.github.com>
…ends#333)

- Create CalendarSelectionMode enum (None, Day, DayWeek, DayWeekMonth)
- Refactor Calendar.SelectionMode from string to CalendarSelectionMode enum
- Remove .GetAwaiter().GetResult() blocking call in CreateDayRenderArgs
- Add Caption, CaptionAlign, UseAccessibleHeader properties
- Update tests and samples to use enum values
- Calendar: date selection, selection modes, styling, day/title formats, events

- FileUpload: basic upload, file type filtering, multiple files, disabled, styled

- ImageMap: navigate/postback/mixed hot spot modes, rectangle/circle/polygon shapes

- Updated NavMenu and ComponentList with links to all three new components
…ents into dev

# Conflicts:
#	docs/EditorControls/FileUpload.md
…Friends#338 merge

The FileUpload PR (FritzAndFriends#338) inadvertently reverted Sprint 1 gate review
entries from agent histories (beast, cyclops, forge, jubilee, rogue)
and downgraded the FileUpload InputFile decision in decisions.md.

Restored from commit f85aa42 (docs(ai-team): Sprint 1 gate review results).
Creates .agent.md files for all 6 team agents (Beast, Cyclops, Forge,
Jubilee, Rogue, Scribe) so they appear in GitHub Copilot's agent picker.
Content sourced from existing .ai-team/agents/*/charter.md files.
Squad is the single Copilot agent that delegates to the specialized
agents defined in .ai-team/agents/. Individual agent files were
incorrectly created  the correct pattern is one coordinator agent
(squad.agent.md) that routes work to Forge, Cyclops, Beast, Jubilee,
Rogue, and Scribe based on task type.
Session: 2026-02-10-sprint2-complete
Requested by: Jeffrey T. Fritz

Changes:
- Logged Sprint 2 session (4 components shipped with docs, samples, tests)
- Merged Sprint 2 design review decision from inbox
- Removed duplicate FileUpload InputFile decision from inbox (already consolidated)
- Appended Sprint 2 completion decision to decisions.md
- Propagated cross-agent updates to all 5 agent histories
…ents into dev

# Conflicts:
#	docs/UtilityFeatures/PageService.md
#	samples/AfterBlazorServerSide/Components/Pages/ControlSamples/Calendar/Index.razor
Session: 2026-02-11-sprint3-planning
Requested by: Jeffrey T. Fritz

Changes:
- Logged session to .ai-team/log/2026-02-11-sprint3-planning.md
- Merged 3 decisions from inbox into decisions.md
- Updated status.md to reflect 48/53 components complete
- Sprint 3 scope: DetailsView + PasswordRecovery
- Propagated cross-agent updates to all agent history files
Session: 2026-02-12-sprint3-execution
Requested by: Jeffrey T. Fritz

Changes:
- Logged Sprint 3 execution session
- Merged 7 decisions from inbox into decisions.md
- Sprint 3 gate review: DetailsView + PasswordRecovery APPROVED
- Propagated cross-agent updates to Beast, Colossus, Cyclops, Rogue, Jubilee
- status.md updated to 50/53 (94%)
DetailsView: Single-record data display with auto-generated rows, edit/insert
modes, paging, and full CRUD events. Inherits DataBoundComponent<T>.

PasswordRecovery: 3-step password reset wizard (UserName  Question  Success)
following ChangePassword/CreateUserWizard table-based patterns.

Also includes:
- 71 new bUnit tests (42 DetailsView + 29 PasswordRecovery), 797 total passing
- Documentation for both components
- Deferred controls migration guide (Chart, Substitution, Xml)
- Sample pages for both components
- Integration tests (smoke + interaction) for both sample pages
- NavMenu and ComponentList updated

Components: 50/53 complete (94%)
…ests

- Remove duplicate Pages/ControlSamples/FileUpload/Default.razor that conflicted
  with Components/Pages/ControlSamples/FileUpload/Index.razor (same @page route
  caused System.InvalidOperationException: ambiguous routes on every page load)
- Fix PasswordRecovery integration tests: InputText in .NET 10 renders without
  explicit type=text attribute; use ID-based selectors instead
- Fix DetailsView EditButton test: use exact role match to avoid matching sidebar
  links; use Locator.WaitForAsync for Blazor interactive DOM updates
- ChangePassword/CreateUserWizard: use ID-based selectors instead of
  type-based selectors (.NET 10 InputText rendering change)
- Image/ImageMap: replace external via.placeholder.com URLs with local
  SVG placeholder images to eliminate network dependency
- TreeView/Images: fix image path /img/C#.png -> /img/CSharp.png
- Calendar: filter ASP.NET Core structured log messages from console
  error assertions (timestamp-prefixed messages are not real errors)
- Remove duplicate ImageMap InlineData from EditorControl tests
  (ImageMap is categorized as Navigation Control per team decisions)

Result: 111/111 integration tests passing, 797/797 bUnit tests passing
Session: 2026-02-12-boy-scout-test-fixes
Requested by: Jeffrey T. Fritz

Changes:
- Logged session to .ai-team/log/
- Merged 3 decisions from inbox into decisions.md
- Propagated cross-agent updates to Jubilee and Colossus history
DetailsViewAutoField.GetValue() was ignoring the mode parameter, always
rendering plain text regardless of Edit/Insert mode. Now renders:
- ReadOnly: plain text (unchanged)
- Edit: <input type="text" value="{current}"> pre-filled
- Insert: <input type="text" value=""> empty

Added integration test DetailsView_EditMode_RendersInputTextboxes that
verifies clicking Edit produces input textboxes and Cancel returns to
plain text.

Result: 112/112 integration tests passing, 797/797 bUnit tests passing
Session: 2026-02-12-detailsview-edit-mode-fix
Requested by: Jeffrey T. Fritz

Changes:
- Logged session
- Merged decisions from inbox
- Updated agent histories
…criteria

- Add 4 missing integration tests: DetailsView_EmptyData, PasswordRecovery full flow, help link, custom text
- Record milestone exit criteria: samples + integration tests + all green required before submission
- Total: 116/116 integration tests passing
…p to Navigation

- Merged two 'Utility Features' TreeNode branches into one (ID Rendering + PageService)
- Moved ImageMap from Editor Components to Navigation Components per team decision
- Alphabetized Editor Components entries (Button before Calendar, HyperLink before Image)
…tion

- Create DataBinder sample: Eval(), shorthand Eval, formatted Eval, modern alternative
- Create ViewState sample: dictionary API with counter demo, settings form, modern alternative
- Alphabetize all NavMenu TreeView branches, ComponentList columns, and mkdocs.yml nav
- Move ImageMap from Editor Controls to Navigation Controls in ComponentList and mkdocs
- Add Utility Features section to ComponentList with all 4 entries
- Add 4 integration tests: 2 smoke + 2 interaction (120/120 passing)
var rowIndex = 0;
@foreach (var field in fieldList)
{
var isAlternating = rowIndex % 2 == 1;

Check warning

Code scanning / CodeQL

Useless assignment to local variable Warning

This assignment to
isAlternating
is useless, since its value is never read.
Comment on lines +362 to +367
foreach (var prop in properties)
{
if (!prop.CanRead) continue;

fields.Add(new DetailsViewAutoField(prop.Name, prop));
}

Check notice

Code scanning / CodeQL

Missed opportunity to use Where Note

This foreach loop
implicitly filters its target sequence
- consider filtering the sequence explicitly using '.Where(...)'.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants