Codex introduction. Base process tidy.
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
# Conversation Documentation
|
||||
|
||||
This folder records review findings and follow-up work relevant to the Common workspace.
|
||||
|
||||
## Files
|
||||
|
||||
- `topics.md` tracks prioritised work, work in progress, and completed work.
|
||||
- `component-reviews.md` records which projects, paths, and classes have been reviewed.
|
||||
|
||||
## Project Trackers
|
||||
|
||||
- `../SacsMobileMaui/docs/` contains topics and component reviews specific to the shared MAUI project and its consumers.
|
||||
|
||||
## Tracking Rules
|
||||
|
||||
- Read both shared trackers and any relevant project trackers before continuing an existing review or starting related work.
|
||||
- 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 the active topic between state sections.
|
||||
- Preserve the original date noted when moving a topic. Add the date started and date completed as the topic progresses.
|
||||
- Record concrete next steps and validation evidence. Link to workspace files using repository-relative paths.
|
||||
- Update the component register after a review, even when no action is required.
|
||||
@@ -0,0 +1,10 @@
|
||||
# Component Review Register
|
||||
|
||||
Last updated: 2026-09-10
|
||||
|
||||
| Component | Scope | Status | Date reviewed | Next steps | Notes |
|
||||
|---|---|---|---|---|---|
|
||||
| [`SacsMobileMaui`](../SacsMobileMaui/docs/component-reviews.md) | Project | Tracked in project docs | 2026-09-10 | Continue in the project component register and topic tracker. | Project-specific findings have been moved to `SacsMobileMaui/docs`. |
|
||||
| `SacsStandardBase/Base/Procs/SaProcess_Base.cs` | Class | In progress | 2026-09-09 | Complete the Process Base actions recorded in `topics.md`; review derived processes separately for cooperative polling. | Lifecycle state ownership and cancellation lock ordering were changed. Five focused tests pass. Remaining concerns include mixed sync/async execution, durable cancellation outcome, cancellation exception handling, disposal, and status synchronization. |
|
||||
| `SacsStandardBase/Base/Email/SaEmailConsole.cs` | Class | Reviewed; action required | 2026-09-08 | Restore SMTP certificate validation and require the configured TLS mode. Add invalid-certificate and unavailable-TLS tests. | The current SMTP client accepts every server certificate. |
|
||||
| `SacsStandardBase/Base/Helpers/SacsEncryptionHelper.cs` and `SacsStandardBase/Base/Data/SacsAesIvCrypter.cs` | Classes | Reviewed; action required | 2026-09-08 | Design a versioned authenticated-encryption format with legacy migration and tamper tests. | Current CBC encryption is unauthenticated; password-based key derivation uses a fixed salt and low iteration count. |
|
||||
@@ -0,0 +1,31 @@
|
||||
# Topic Tracker
|
||||
|
||||
Last updated: 2026-09-10
|
||||
|
||||
## Prioritised Topics to Be Actioned
|
||||
|
||||
| Priority | Topic | Date noted | Next step | Notes |
|
||||
|---|---|---|---|---|
|
||||
| P1 | Prevent synchronous and asynchronous execution from overlapping in `SaProcess_Base` | 2026-09-09 | Route `RunProcess()` and `RunAsync()` through one guarded start operation and extend the lifecycle tests. | A synchronous call can currently reuse and dispose the asynchronous worker's task data. |
|
||||
| P2 | Retain cancellation as a completed process outcome | 2026-09-09 | Store a durable cancellation result until the next process reset and test post-completion state. | `IsInterrupted` currently loses token-based cancellation after task-data cleanup. |
|
||||
| P2 | Handle `OperationCanceledException` as cancellation | 2026-09-09 | Catch cancellation separately in `RunProcess()` and avoid recording it as an error. | The general exception handler currently consumes cancellation before `RunAsync()` can distinguish it. |
|
||||
| P2 | Observe background `RunAsync()` tasks in consumers | 2026-09-09 | Review downstream fire-and-forget call sites and give their process consoles ownership of the returned task. | Rebuilt consumers are binary-compatible, but some source call sites still discard the task. |
|
||||
| P3 | Define disposal and cross-thread status semantics | 2026-09-09 | Decide whether to add asynchronous disposal and a synchronized process-status snapshot. | Disposal currently requests cancellation without awaiting termination; several status properties are read across threads. |
|
||||
|
||||
## Project-Specific Trackers
|
||||
|
||||
- [`SacsMobileMaui`](../SacsMobileMaui/docs/topics.md) tracks the MAUI framework upgrade, UI-thread helpers, native handlers, controls, and resources.
|
||||
|
||||
## In-Progress Topics
|
||||
|
||||
| Priority | Topic | Date noted | Date started | Next step | Notes |
|
||||
|---|---|---|---|---|---|
|
||||
| P1 | Review and harden `SaProcess_Base` lifecycle and cancellation | 2026-09-08 | 2026-09-08 | Address the prioritised Process Base findings above, beginning with prevention of mixed synchronous/asynchronous execution. | Task ownership, timeout retention, cancellation lock ordering, documentation, and initial lifecycle tests are complete. Cooperative polling in individual derived processes will be handled separately. |
|
||||
|
||||
## Completed Topics
|
||||
|
||||
| Topic | Date noted | Date started | Date completed | Outcome |
|
||||
|---|---|---|---|---|
|
||||
| Make asynchronous Process Base execution awaitable and retain state after a stop timeout | 2026-09-08 | 2026-09-08 | 2026-09-08 | `RunAsync()` returns `Task`; `StopProcessAsync()` reports success and leaves active state owned by a worker that has not stopped. |
|
||||
| Remove cancellation callbacks from the Process Base lifecycle lock | 2026-09-08 | 2026-09-08 | 2026-09-08 | Cancellation and task-data disposal use separate synchronization; worker cleanup detaches state before disposal. |
|
||||
| Add Process Base lifecycle tests | 2026-09-08 | 2026-09-08 | 2026-09-08 | Five focused MSTest cases cover completion, duplicate starts, stop timeout retention, cooperative cancellation, and cancellation callback lock behavior. |
|
||||
Reference in New Issue
Block a user