Initial commit: Add project files
ci / backend (push) Failing after 12s
ci / frontend (push) Failing after 19s
ci / static (push) Failing after 45s

This commit is contained in:
2026-08-02 05:15:36 +09:00
commit dcd1322d41
636 changed files with 122352 additions and 0 deletions
@@ -0,0 +1,68 @@
using Dapper;
using KArtSell.BuildingBlocks.Data;
using KArtSell.BuildingBlocks.Versioning;
using KArtSell.Modules.ModelOperations.Application;
namespace KArtSell.Modules.ModelOperations.Infrastructure;
public sealed class DapperApprovedModelContextReader(IDbConnectionFactory connectionFactory) : IApprovedModelContextReader
{
private const string Sql = """
select mv.scope_key as ScopeKey,
mv.model_version as ModelVersion,
mv.config_version as ConfigVersion,
mv.code_sha as CodeSha,
mv.contract_version as ContractVersion,
mv.lifecycle_state as LifecycleState,
mv.effective_at as EffectiveAt,
dm.dataset_id as DatasetId,
dm.content_hash as DataHash
from governance.model_version_registry mv
join lateral (
select dataset_id, content_hash
from evaluation.dataset_manifest
where scope_key = mv.scope_key
and status = 'APPROVED'
and frozen_at <= @AsOf
order by frozen_at desc
limit 1
) dm on true
where mv.scope_key = @ScopeKey
and mv.lifecycle_state in ('RESEARCH', 'CHALLENGER', 'SHADOW', 'CANDIDATE', 'APPROVED')
and mv.effective_at <= @AsOf
order by mv.effective_at desc
limit 1;
""";
public async Task<ApprovedModelContext?> ReadAsync(
string scopeKey,
DateTimeOffset asOf,
CancellationToken cancellationToken)
{
await using var connection = await connectionFactory.OpenAsync(cancellationToken);
var row = await connection.QuerySingleOrDefaultAsync<Row>(new CommandDefinition(
Sql,
new { ScopeKey = scopeKey, AsOf = asOf },
cancellationToken: cancellationToken));
if (row is null)
return null;
return new ApprovedModelContext(
row.ScopeKey,
new VersionSet(row.DatasetId, row.DataHash, row.ModelVersion, row.ConfigVersion, row.CodeSha, row.ContractVersion),
row.LifecycleState,
row.EffectiveAt);
}
private sealed record Row(
string ScopeKey,
string DatasetId,
string DataHash,
string ModelVersion,
string ConfigVersion,
string CodeSha,
string ContractVersion,
string LifecycleState,
DateTimeOffset EffectiveAt);
}