* fix(diagnostics): align Relational structured-log sort and ListSources with InMemory
Include SourceId in the Relational ORDER BY tie-break chain, MarkSeen on the durable write path, and prefer the in-process source registry for ListSources so heartbeat and identity metadata survive Sqlite persistence.
Fixes#8117
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
* fix(diagnostics): keep MarkSeen monotonic and ListSources IDs distinct
Do not regress LastSeen when a delayed older flush replays MarkSeen. Use Ordinal keys when merging registry sources so case-distinct IDs stay distinct.
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* fix(diagnostics): honor MaxRecentLogQuerySize for relational Take
Relational recent-log queries used a hard-coded null→100 default and
1000 clamp, so enabling Sqlite silently dropped the page size from the
InMemory contract of StructuredLogsOptions.MaxRecentLogQuerySize.
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
* test(diagnostics): disambiguate Options.Create in SQL builder tests
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
* fix(diagnostics): normalize negative MaxRecentLogQuerySize before Clamp
Math.Clamp throws when the configured ceiling is negative. Both
InMemory and Relational now share ClampRecentLogQueryTake, which treats
a negative max as zero so query construction cannot fail.
Co-authored-by: Sipke Schoorstra <sipkeschoorstra@outlook.com>
---------
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
* Add live server logs Spec Kit plan
* Implement live server logs diagnostics module
* Add server log sources and redaction hardening
* Add diagnostics unit tests
* Harden server log hub subscriptions
* Secure server log hub permissions
* Validate server log filter updates
* Add diagnostics logger and source tests
* Add diagnostics integration test project
* Add multi-source diagnostics provider coverage
* Broadcast server log source changes
* Document diagnostics server log streaming
* Add diagnostics sample host wiring
* Record diagnostics validation results
* Address server log PR feedback
* Rename diagnostics module to server logs
* Add server logs shell feature
* Make server logs shell options bindable
* Accept read wildcard for server logs
* Align server logs authorization with API patterns
* Update CShells structure and logging levels, add diagnostics module
* Rename PostgreSql shell feature classes for consistency
* Switch from Sqlite to PostgreSQL for workflow and identity persistence, add QuartzPostgreSql configuration
* Refactor server logs into diagnostics structured logs (#7440)
* Specify diagnostics structured logs refactor
* docs: clarify structured logs spec
* docs: plan diagnostics structured logs
* docs: add diagnostics structured logs tasks
* refactor: rename server logs to diagnostics structured logs
* Refactor PostgreSql persistence features to use centralized entity model handler registration.
* Refactor EFCore persistence features to centralize entity model handler registration for MySql, Sqlite, and Oracle providers.
* Integrate structured logs by renaming server logs, adjusting appsettings, and updating project references.
* Switch from PostgreSQL to Sqlite for workflow and identity persistence, update appsettings configuration.