Skip to content

Commit afd03cd

Browse files
committed
Save current implementation and rename build/test workflow
1 parent f2efe86 commit afd03cd

153 files changed

Lines changed: 6402 additions & 12146 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/AGENTS.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,7 @@
8080
## Final Benchmarks Website trigger, owner clarification 2026-10-06
8181

8282
- Benchmarks ends with only a bounded dispatch of `website.yml` on main, after its aggregation dependencies settle even when benchmark work fails. Keep site building, tests and Pages entirely in Website; remove its `workflow_run` subscription. Only the final trigger job receives `actions: write`. Website authenticates an optional triggering run against GitHub and waits boundedly for completion before its existing newest-ready selection; no input supplies trusted measurements. Push/manual Website publication and all original qualification/freshness gates remain independent.
83+
84+
## Build and Tests workflow filename, owner direction 2026-10-06
85+
86+
- The canonical Build and Tests workflow is `.github/workflows/build-and-tests.yml`, renamed from `ci.yml`. Dispatch with `gh workflow run build-and-tests.yml --repo managedcode/KeyLoad --ref main`. This supersedes earlier active filename/dispatch references only; preserve all build/test gates, stable job IDs, permissions and historical evidence.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,8 @@ jobs:
136136
process.stderr.write(verification.stderr ?? '');
137137
if (verification.error || verification.status !== 0) throw verification.error ?? new Error('Native FTS package signature verification failed.');
138138
JS
139+
- name: Build current Debug analyzer for native formatting
140+
run: dotnet build src/KeyLoad.Analyzers/KeyLoad.Analyzers.csproj --no-restore --configuration Debug
139141
- name: Check code formatting
140142
run: dotnet format KeyLoad.slnx --verify-no-changes --no-restore
141143
- name: Check repository rules
@@ -144,8 +146,6 @@ jobs:
144146
run: dotnet run --project src/KeyLoad.AppHost --no-build --no-restore --configuration Release -- --KeyLoadTests:Suite=analyzers --KeyLoadTests:ReportTrx=true
145147
- name: Test prompt termination on Aspire resource failures
146148
run: dotnet run --project src/KeyLoad.AppHost --no-build --no-restore --configuration Release -- --KeyLoadTests:Suite=comparison '--KeyLoadTests:Filter=/*/*/AspireFailure*/*' --KeyLoadTests:ResultsDirectory=TestResults/aspire-failure --KeyLoadTests:ReportTrx=true
147-
- name: Test Aspire recovery prerequisite ownership
148-
run: dotnet run --project src/KeyLoad.AppHost --no-build --no-restore --configuration Release -- --KeyLoadTests:Suite=comparison '--KeyLoadTests:Filter=/*/*/PriorProbePrerequisiteTests/*' --KeyLoadTests:ResultsDirectory=TestResults/recovery-prerequisites --KeyLoadTests:ReportTrx=true
149149
- name: Test live benchmark progress capture
150150
run: dotnet run --project src/KeyLoad.AppHost --no-build --no-restore --configuration Release -- --KeyLoadTests:Suite=comparison '--KeyLoadTests:Filter=/*/*/ComparisonProgress*/*' --KeyLoadTests:ResultsDirectory=TestResults/live-benchmark-progress --KeyLoadTests:ReportTrx=true
151151
- name: Test live benchmark process entry

‎AGENTS.md‎

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ ADR-047 additionally introduces `benchmarks/KeyLoad.BenchmarkScenarios`, bringin
500500

501501
ADR-063 additionally introduces `src/KeyLoad.Diagnostics`, bringing the shared workspace count to26. Its local policy precedes implementation. The BCL-only ResourceExecution project owns fixed callback-free phase diagnostics; every prior root/local policy, preserved installation prefix and native qualification gate remains mandatory.
502502

503-
ADR-077 additionally introduces `src/KeyLoad.Storage.IO`, bringing the shared workspace count to27. Its local policy precedes implementation. The internal StorageRecovery primitive uses public OS interfaces to reject non-regular migration inputs without blocking and preserves existing owner-lock interoperability. It owns no engine, database state or replication; all prior policies, immutable formats and qualification gates remain mandatory.
503+
`src/KeyLoad.Storage.IO` brings the shared workspace count to27. Its local policy precedes implementation. The internal StorageRecovery primitive uses public OS interfaces to open current native files, reject non-regular inputs without blocking and preserve owner-lock interoperability under ADR-011/116. It owns no engine, database state or replication; all current-format, ownership and qualification gates remain mandatory.
504504

505505
A bounded website qualification candidate contains the20-project historical runtime base plus KeyLoad.Analyzers, KeyLoad.Analyzers.Tests and KeyLoad.SiteTests (23projects). Its derived inventory MUST record the shared25-project scope and omitted concurrent projects explicitly, preserve all28 included root/local policy blobs exactly, and qualify only the actual included website/analyzer source. This is an evidence-scope record, never an exception to any solution-wide architecture, project-policy or required product qualification rule.
506506

@@ -532,3 +532,7 @@ A bounded website qualification candidate contains the20-project historical runt
532532
- This prohibition is the highest project rule for migration/legacy scope and explicitly supersedes every earlier plan, ADR, feature requirement, acceptance gate, local policy and inferred authorization to maintain unreleased or previous KeyLoad implementations. A generic instruction to finish the product, an agent proposal or a recorded migration contract is not the owner's direct permission.
533533
- Delete existing KeyLoad-owned migration and legacy implementations now, together with their exclusive tests, helpers, prior-binary/image preparation, configuration, routes, dependencies and active documentation/plan references. Do not preserve them as dead branches or deferred cleanup and do not replace them with a new migration mechanism.
534534
- Implement and qualify the current product contract. Preserve current-format crash recovery, verified backup/restore, persisted authorization, strict unsupported/corrupt-version rejection and genuine Aspire RF3. Native Orleans activation movement and SQL interoperability with external clients are current product capabilities, not authorization for legacy KeyLoad code or data conversion.
535+
536+
## Build and Tests workflow filename, owner direction 2026-10-06
537+
538+
- The canonical Build and Tests workflow is `.github/workflows/build-and-tests.yml`, renamed from `ci.yml`. Dispatch with `gh workflow run build-and-tests.yml --repo managedcode/KeyLoad --ref main`. This supersedes earlier active filename/dispatch references only; preserve all build/test gates, stable job IDs, permissions and historical evidence.

‎README.md‎

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
</p>
1212

1313
<p align="center">
14-
<a href="https://github.com/managedcode/KeyLoad/actions/workflows/ci.yml"><img src="https://github.com/managedcode/KeyLoad/actions/workflows/ci.yml/badge.svg" alt="Build and Tests"></a>
14+
<a href="https://github.com/managedcode/KeyLoad/actions/workflows/build-and-tests.yml"><img src="https://github.com/managedcode/KeyLoad/actions/workflows/build-and-tests.yml/badge.svg" alt="Build and Tests"></a>
1515
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Elastic%202.0-black" alt="Elastic License 2.0"></a>
1616
<img src="https://img.shields.io/badge/.NET-10-512BD4" alt=".NET 10">
1717
<img src="https://img.shields.io/badge/built%20on-Orleans-0b5cad" alt="Built on Orleans">
@@ -357,26 +357,25 @@ native report preservation and complete-operation test requirements.
357357
| SQL `SELECT`, model views and `CALL`, plus the .NET SDK, MCP server and HTTP API | Combining data across partitions in one request |
358358
| Queue ↔ graph composition within one partition | [Approximate vector search (ANN)](docs/Features/Search/ManagedAnn.md); vector search is exact for now |
359359
| Three-node Orleans cluster, crash recovery, local backup and restore | Production, endurance and power-loss qualification |
360-
| Admin console and CLI | [Storage upgrades](docs/Features/StorageRecovery.md) from older versions, which still have an [open cold-cluster failure](docs/implementation/node-epoch-linux-0d78-2026-10-04.json) |
360+
| Admin console and CLI | |
361361
| | The full performance comparison with other databases (current runs are on the [website](https://www.keyload.cloud/#benchmarks)) |
362362

363363
Full-text search comes from [ZoneTree.FullTextSearch](https://github.com/ZoneTree/ZoneTree.FullTextSearch). KeyLoad then ranks the results it finds and checks permissions on each one.
364364

365365
Native Orleans [runtime adoption](docs/Features/ClusterRouting/RuntimeAdoption.md)
366366
and [journal-backed Durable Jobs](docs/Features/ClusterRouting/RuntimeJournal.md)
367367
are being integrated. The source includes due-work wakeups, bounded telemetry,
368-
local lifecycle ownership and saga timeout jobs; its final build and runtime
369-
tests remain blocked by the current shared compiler/analyzer migration. Native
368+
local lifecycle ownership and saga timeout jobs; current-source build and runtime
369+
qualification remain in progress. Native
370370
job restart/adoption and real SDK/MCP RF3 fault qualification remain open.
371371

372-
Runtime timeouts, retries and resource limits are being moved to centrally
373-
validated typed options. The [configuration contract](docs/ADR/ADR-113-centralized-runtime-options.md)
372+
Runtime timeouts, retries and resource limits use centrally validated typed options. The [configuration contract](docs/ADR/ADR-113-centralized-runtime-options.md)
374373
also covers the SDK, CLI and Aspire host; complete build and runtime verification
375-
of this migration remain pending.
374+
of the current source remain pending.
376375

377376
For detailed status, see the [implementation tracker](docs/implementation/status.json) and the [qualification records](docs/implementation/). We publish performance numbers only from real GitHub Actions runs, on the [website](https://www.keyload.cloud/).
378377

379-
The [TimeProvider migration](docs/Features/ResourceExecution/TimeProvider.md)
378+
The [TimeProvider contract](docs/Features/ResourceExecution/TimeProvider.md)
380379
supplies explicit clocks for timestamps, elapsed budgets and managed timers.
381380
Controlled-time regressions and the remaining runtime qualification gates
382381
are tracked in the feature specification.

0 commit comments

Comments
 (0)