Codex introduction. Base process tidy.

This commit is contained in:
Andy Howard
2026-09-10 09:35:05 +01:00
parent c2020c8302
commit c2a8757ebf
10 changed files with 466 additions and 63 deletions
+20
View File
@@ -0,0 +1,20 @@
# SacsMobileMaui Conversation Documentation
This folder records review findings and follow-up work specific to the `SacsMobileMaui` project and its mobile-app consumers.
## Files
- `topics.md` tracks prioritised, in-progress, and completed project work.
- `component-reviews.md` records reviewed project paths and classes.
The Common workspace documentation in `../../docs` remains the index for shared and cross-project work.
## Tracking Rules
- Read both project trackers and the shared trackers before continuing a related review.
- Use ISO `YYYY-MM-DD` dates.
- Assign priorities as P1 (urgent or high risk), P2 (important), or P3 (improvement).
- Keep an active topic in one state section. Move its row when work starts or completes rather than copying it between sections.
- Preserve the original date noted when moving a topic. Add the dates started and completed as work progresses.
- Record concrete next steps and validation evidence. Link to project files using paths relative to `SacsMobileMaui`.
- Update the component register after a review, even when no action is required.
+7
View File
@@ -0,0 +1,7 @@
# SacsMobileMaui Component Review Register
Last updated: 2026-09-10
| Component | Scope | Status | Date reviewed | Next steps | Notes |
|---|---|---|---|---|---|
| `SacsMobileMaui` | Project | Reviewed; action required | 2026-09-10 | Address the MAUI 10 migration and focused defects recorded in `topics.md`, then build Windows/Android and validate Apple targets on a Mac. | The project targets unsupported MAUI 9.0.120 while its Sandalwood and Sandtrap consumers still target MAUI 8. Review found compatibility API debt, UI-thread synchronization defects, incorrect handler casts, an `AllowInvalid` setter bug, and discarded resource streams. Local validation was limited by an inconsistent installed workload manifest and write-protected existing `obj` output. |
+23
View File
@@ -0,0 +1,23 @@
# SacsMobileMaui Topic Tracker
Last updated: 2026-09-10
## Prioritised Topics to Be Actioned
| Priority | Topic | Date noted | Next step | Notes |
|---|---|---|---|---|
| P1 | Upgrade `SacsMobileMaui` and its consumers from unsupported .NET MAUI 8/9 to .NET MAUI 10 | 2026-09-10 | Replace MAUI 9 compatibility APIs, align and validate consumer projects, then retarget to `net10.0` and the current MAUI 10 servicing release. | MAUI 9.0.120 is the final MAUI 9 patch, but MAUI 9 support ended on 2026-05-12. Sandalwood and Sandtrap still target MAUI 8 while referencing the `net9.0` shared project. The shared library also uses removed/deprecated compatibility layouts, `Frame`, `MainPage`, and popup APIs. |
| P1 | Make `SamThreadUtil` and form dialogs genuinely asynchronous and deadlock-safe | 2026-09-10 | Replace synchronous UI-thread bridges with `Task`-returning APIs, update the Sandtrap caller, and add focused tests. | The void `InvokeOnMainThreadSync` overload never waits; the generic overload and `DisplayConfirmSync` block on `Task.Result` and can deadlock on the UI thread. `DisplayAlertSync` also passes an async lambda to `Action`, producing `async void` behavior. |
| P2 | Correct MAUI native handler type checks | 2026-09-10 | Use `SamEditor` in editor mappings and `SamPicker` in picker mappings; validate each platform-specific option. | Several editor and every picker option currently cast to the wrong custom control type, so configured native styling is silently skipped. |
| P2 | Fix `SamDatePicker.AllowInvalid` state transition | 2026-09-10 | Change the assignment in the equality guard, verify both transitions, and add tests for display and reset behavior. | Setting `AllowInvalid` to `true` returns before refreshing the control; the guard uses `allowInvalidDate = value`. |
| P3 | Remove unused resource-stream enumeration | 2026-09-10 | Return `null` immediately after a failed named lookup or implement an intentional lookup strategy that disposes rejected streams. | `GetResourceStream` opens every manifest resource, discards each stream, and returns `null`. |
## In-Progress Topics
| Priority | Topic | Date noted | Date started | Next step | Notes |
|---|---|---|---|---|---|
## Completed Topics
| Topic | Date noted | Date started | Date completed | Outcome |
|---|---|---|---|---|