This commit is contained in:
2026-05-14 14:24:29 +02:00
parent edc8da02a3
commit 403f271083
12 changed files with 291 additions and 13 deletions

View File

@@ -166,7 +166,8 @@
<div class="mb-3">
<label for="demoPipeline2ValidationProfileSelect" class="form-label">Validation profile</label>
<select id="demoPipeline2ValidationProfileSelect" class="form-select">
<option value="0.7.36_meteora_family_consolidation" selected>0.7.36Meteora family consolidation</option>
<option value="0.7.37_token_metadata_catalog_enrichment" selected>0.7.37token metadata/catalog enrichment</option>
<option value="0.7.36_meteora_family_consolidation">0.7.36 — Meteora family consolidation</option>
<option value="0.7.35_non_trade_fee_reward_admin">0.7.35 — non-trade fee/reward admin</option>
<option value="0.7.34_non_trade_liquidity_lifecycle">0.7.34 — non-trade liquidity/lifecycle</option>
<option value="0.7.33_pair_trading_readiness">0.7.33 — pair trading readiness</option>

View File

@@ -1,7 +1,7 @@
{
"name": "kb-demo-app",
"private": true,
"version": "0.7.36",
"version": "0.7.37",
"type": "module",
"scripts": {
"dev": "vite",

View File

@@ -167,6 +167,39 @@ pub(crate) struct DemoPipeline2LocalPipelineValidationReport {
/// Total persisted pool lifecycle events.
#[ts(type = "number")]
pub pool_lifecycle_event_count: i64,
/// Total persisted fee events.
#[ts(type = "number")]
pub fee_event_count: i64,
/// Total persisted reward events.
#[ts(type = "number")]
pub reward_event_count: i64,
/// Total persisted pool administration events.
#[ts(type = "number")]
pub pool_admin_event_count: i64,
/// Total known tokens.
#[ts(type = "number")]
pub token_count: i64,
/// Total tokens missing symbol or name.
#[ts(type = "number")]
pub token_metadata_missing_count: i64,
/// Total tokens used by trade-materialized pairs that still miss symbol or name.
#[ts(type = "number")]
pub tradable_token_metadata_missing_count: i64,
/// Total quote-side tokens used by pairs that still miss symbol or name.
#[ts(type = "number")]
pub quote_token_metadata_missing_count: i64,
/// Total pairs whose display symbol is missing or still falls back to raw mints.
#[ts(type = "number")]
pub pair_symbol_fallback_count: i64,
/// Total pairs whose display symbol is present and does not include raw mints.
#[ts(type = "number")]
pub pair_symbol_resolved_count: i64,
/// Total pairs whose quote token is WSOL.
#[ts(type = "number")]
pub wsol_quote_pair_count: i64,
/// Total pairs whose quote token is a known stable quote.
#[ts(type = "number")]
pub stable_quote_pair_count: i64,
/// Number of entries currently exposed by the DEX support matrix.
#[ts(type = "number")]
pub dex_support_matrix_entry_count: i64,
@@ -283,6 +316,15 @@ pub(crate) struct DemoPipeline2LocalPipelineDiagnosticSummary {
/// Total persisted pool lifecycle events.
#[ts(type = "number")]
pub pool_lifecycle_event_count: i64,
/// Total persisted fee events.
#[ts(type = "number")]
pub fee_event_count: i64,
/// Total persisted reward events.
#[ts(type = "number")]
pub reward_event_count: i64,
/// Total persisted pool administration events.
#[ts(type = "number")]
pub pool_admin_event_count: i64,
/// Whether the local persisted pipeline has no blocking diagnostic issue.
pub diagnostics_clean: bool,
/// Number of blocking diagnostic issues.
@@ -333,6 +375,24 @@ pub(crate) struct DemoPipeline2LocalPipelineDiagnosticSummary {
/// Total tokens missing symbol or name.
#[ts(type = "number")]
pub token_metadata_missing_count: i64,
/// Total tokens used by trade-materialized pairs that still miss symbol or name.
#[ts(type = "number")]
pub tradable_token_metadata_missing_count: i64,
/// Total quote-side tokens used by pairs that still miss symbol or name.
#[ts(type = "number")]
pub quote_token_metadata_missing_count: i64,
/// Total pairs whose display symbol is missing or still falls back to raw mints.
#[ts(type = "number")]
pub pair_symbol_fallback_count: i64,
/// Total pairs whose display symbol is present and does not include raw mints.
#[ts(type = "number")]
pub pair_symbol_resolved_count: i64,
/// Total pairs whose quote token is WSOL.
#[ts(type = "number")]
pub wsol_quote_pair_count: i64,
/// Total pairs whose quote token is a known stable quote.
#[ts(type = "number")]
pub stable_quote_pair_count: i64,
/// Total known pools.
#[ts(type = "number")]
pub pool_count: i64,
@@ -1087,7 +1147,7 @@ pub(crate) async fn demo_pipeline2_validate_local_pipeline(
let service = kb_lib::LocalPipelineValidationService::new(database.clone());
let profile_code = match request {
Some(request) => request.profile_code,
None => "0.7.36_meteora_family_consolidation".to_string(),
None => "0.7.37_token_metadata_catalog_enrichment".to_string(),
};
let run_result = match profile_code.as_str() {
"0.7.27" | "0.7.27_dexes_non_regression" => {
@@ -1120,6 +1180,9 @@ pub(crate) async fn demo_pipeline2_validate_local_pipeline(
"0.7.36" | "0.7.36_meteora_family_consolidation" => {
service.validate_v0_7_36_current_database().await
},
"0.7.37" | "0.7.37_token_metadata_catalog_enrichment" => {
service.validate_v0_7_37_current_database().await
},
other => Err(kb_lib::Error::InvalidState(format!(
"unsupported local pipeline validation profile: {other}"
))),
@@ -1551,6 +1614,17 @@ fn demo_pipeline2_map_local_validation_report(
decoded_unknown_event_count: report.decoded_unknown_event_count,
liquidity_event_count: report.liquidity_event_count,
pool_lifecycle_event_count: report.pool_lifecycle_event_count,
fee_event_count: report.fee_event_count,
reward_event_count: report.reward_event_count,
pool_admin_event_count: report.pool_admin_event_count,
token_count: report.token_count,
token_metadata_missing_count: report.token_metadata_missing_count,
tradable_token_metadata_missing_count: report.tradable_token_metadata_missing_count,
quote_token_metadata_missing_count: report.quote_token_metadata_missing_count,
pair_symbol_fallback_count: report.pair_symbol_fallback_count,
pair_symbol_resolved_count: report.pair_symbol_resolved_count,
wsol_quote_pair_count: report.wsol_quote_pair_count,
stable_quote_pair_count: report.stable_quote_pair_count,
dex_support_matrix_entry_count: report.dex_support_matrix_entry_count,
dex_support_matrix,
issues,
@@ -1679,6 +1753,9 @@ fn demo_pipeline2_map_local_diagnostics_summary(
decoded_unknown_event_count: summary.decoded_unknown_event_count,
liquidity_event_count: summary.liquidity_event_count,
pool_lifecycle_event_count: summary.pool_lifecycle_event_count,
fee_event_count: summary.fee_event_count,
reward_event_count: summary.reward_event_count,
pool_admin_event_count: summary.pool_admin_event_count,
diagnostics_clean: summary.diagnostics_clean,
blocking_issue_count: summary.blocking_issue_count,
missing_trade_event_count: summary.missing_trade_event_count,
@@ -1701,6 +1778,12 @@ fn demo_pipeline2_map_local_diagnostics_summary(
duplicate_candle_bucket_count: summary.duplicate_candle_bucket_count,
token_count: summary.token_count,
token_metadata_missing_count: summary.token_metadata_missing_count,
tradable_token_metadata_missing_count: summary.tradable_token_metadata_missing_count,
quote_token_metadata_missing_count: summary.quote_token_metadata_missing_count,
pair_symbol_fallback_count: summary.pair_symbol_fallback_count,
pair_symbol_resolved_count: summary.pair_symbol_resolved_count,
wsol_quote_pair_count: summary.wsol_quote_pair_count,
stable_quote_pair_count: summary.stable_quote_pair_count,
pool_count: summary.pool_count,
pair_count: summary.pair_count,
pair_gap_counter_semantics: summary.pair_gap_counter_semantics,

View File

@@ -1,7 +1,7 @@
{
"$schema": "https://schema.tauri.app/config/2",
"productName": "kb-demo-app",
"version": "0.7.36",
"version": "0.7.37",
"identifier": "com.sasedev.kb-demo-app",
"build": {
"beforeDevCommand": "npm run dev",