Due database, interruttore dell'apprendimento, barre a icone; via kill-switch, esportazioni e voci deprecate
Tutto ciò che l'applicazione registra sta ora in due file SQLite in %LocalAppData%\AutoBidder\Database: autobidder.sqlite per le osservazioni e esercizio.sqlite per i documenti d'esercizio (aste nel monitor, prodotti, promozioni, modelli appresi con prefisso ml/) e per i registri applicativo e del riscatto puntate. Il motore comune è SqliteDatabase; i file JSON e la cartella Apprendimento delle versioni precedenti vengono importati la prima volta e lasciati dove sono. La cartella si cambia dalle Impostazioni: al salvataggio si chiede se spostare i file, e si riavvia. Le cartelle Dati/Statistiche/Registri, i registri su file, le misure dell'anticipo e le impostazioni morte (LogBids, AutoApplyProductDefaults, NewAuctionLimitsPriority…) non esistono più. Il kill-switch se ne va: al suo posto un solo interruttore in barra, accanto ad Avvia/Osserva/Ferma, che spegne l'apprendimento. Spento, il motore punta solo entro i limiti dell'utente (prezzo, puntate, budget, fascia oraria, rischio) con l'anticipo fisso: niente valore atteso, regime, duello, bandit, anticipo adattivo. Le aste vengono comunque registrate e studiate. Tre difetti visti osservando il motore dal vivo per un'ora, in Osserva: - la copertura «Compralo Ora» con V lasciato al listino azzerava la perdita coperta e il motore diceva BID a ogni scadenza con P dell'1%: ora vale solo per i prodotti con «Valore reale €» scritto, altrimenti la puntata si conta persa e P decide; - la chiusura di un'asta arrivava due volte (fine, poi rimozione dal monitor) e di nuovo al riavvio: modello, profilo, bandit e statistiche per prodotto contavano ogni asta due volte. Il monitor la comunica una volta sola, l'apprendimento salta le aste già apprese, e le schede prodotto vengono ricostruite una volta dallo storico; - la pagina delle ricompense veniva scambiata per la pagina di accesso perché porta un collegamento a /login.php: prima si guarda se è la pagina delle ricompense. Interfaccia: la scheda Esporta e tutto il suo codice sono tolti; le esportazioni chiedono sempre dove salvare. Prodotti, Storico e Apprendimento hanno barre a sole icone con tooltip che dicono esattamente cosa succede, colorate come il monitor, con i nuovi pulsanti di pulizia (spegni tutte le stelline, togli i non seguiti, pulizia completa; seleziona tutte / elimina le selezionate / svuota lo storico). Impostazioni: sezione Database, Manutenzione con «Elimina tutti i dati (tranne la login)» e «Impostazioni di fabbrica», esportazione dei registri in testo. Modifiche.txt, il prompt ormai realizzato, esce dal repository. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
@@ -26,24 +26,14 @@
|
||||
ToolTip="I totali per prodotto (aste viste, prezzi medi, puntate del vincitore). Le opzioni scelte nella scheda Prodotti restano: si azzerano i numeri, non le scelte."
|
||||
Checked="Option_Changed" Unchecked="Option_Changed"/>
|
||||
|
||||
<CheckBox x:Name="ChkBidLead" Margin="0,4" IsChecked="True"
|
||||
<CheckBox x:Name="ChkLegacy" Margin="0,4" IsChecked="False"
|
||||
Foreground="{DynamicResource Brush.Text}"
|
||||
ToolTip="Le misure dell'anticipo effettivo di ogni puntata (bid-lead-stats.json)."
|
||||
Checked="Option_Changed" Unchecked="Option_Changed"/>
|
||||
|
||||
<CheckBox x:Name="ChkExports" Margin="0,4" IsChecked="True"
|
||||
Foreground="{DynamicResource Brush.Text}"
|
||||
ToolTip="Tutti i file nella cartella Esportazioni. Sono copie: si rigenerano in qualunque momento dalla scheda Esporta."
|
||||
Checked="Option_Changed" Unchecked="Option_Changed"/>
|
||||
|
||||
<CheckBox x:Name="ChkLegacy" Margin="0,4" IsChecked="True"
|
||||
Foreground="{DynamicResource Brush.Text}"
|
||||
ToolTip="I file JSON delle versioni precedenti (storico compatto completed-auctions.json e archivi mensili aste-AAAA-MM): il database li ha sostituiti e l'applicazione non li legge più."
|
||||
ToolTip="La vecchia cartella Dati delle versioni precedenti: i file JSON già importati nel database, le statistiche, i registri di testo e i dossier delle aste (possono essere gigabyte). L'applicazione non li legge più."
|
||||
Checked="Option_Changed" Unchecked="Option_Changed"/>
|
||||
|
||||
<CheckBox x:Name="ChkLearning" Margin="0,4" IsChecked="False"
|
||||
Foreground="{DynamicResource Brush.Text}"
|
||||
ToolTip="Il modello appreso, il profilo per prodotto e ora, il modello di latenza e l'elenco dei dossier già studiati. Non si perde niente di irrecuperabile: al prossimo avvio l'applicazione ristudia tutti i dossier da capo (qualche minuto in sottofondo)."
|
||||
ToolTip="Il modello appreso, il profilo per prodotto e ora, lo sfidante, il bandit, il modello di latenza e il contatore delle aste già studiate. Non si perde niente di irrecuperabile: al prossimo avvio l'applicazione ristudia da capo tutte le aste chiuse del database (qualche minuto in sottofondo)."
|
||||
Checked="Option_Changed" Unchecked="Option_Changed"/>
|
||||
|
||||
<Border Style="{StaticResource InfoBox}" Margin="0,14,0,0">
|
||||
@@ -55,7 +45,7 @@
|
||||
<TextBlock TextWrapping="Wrap" Margin="0,8,0,0"
|
||||
Foreground="{DynamicResource Brush.TextMuted}"
|
||||
FontSize="{StaticResource Font.Size.Sm}" LineHeight="17"
|
||||
Text="I dossier delle aste (cartella Registri\Aste) non vengono toccati da qui: sono i dati grezzi da cui tutto il resto si ricostruisce. Per liberare quello spazio usa la scheda Dati."/>
|
||||
Text="Per cancellare tutto — database, copie di sicurezza, cartella vecchia — c'è «Elimina tutti i dati» nelle Impostazioni."/>
|
||||
</StackPanel>
|
||||
</Border>
|
||||
|
||||
|
||||
@@ -29,8 +29,6 @@ namespace AutoBidder.Dialogs
|
||||
{
|
||||
History = ChkHistory.IsChecked == true,
|
||||
ProductStats = ChkProducts.IsChecked == true,
|
||||
BidLeadMeasures = ChkBidLead.IsChecked == true,
|
||||
Exports = ChkExports.IsChecked == true,
|
||||
LegacyArchives = ChkLegacy.IsChecked == true,
|
||||
Learning = ChkLearning.IsChecked == true
|
||||
};
|
||||
@@ -43,17 +41,13 @@ namespace AutoBidder.Dialogs
|
||||
|
||||
ChkHistory.Content = $"Osservazioni nel database: aste, puntate, interrogazioni, decisioni ({_sizes.HistoryAuctions} aste, {Fmt(_sizes.HistoryBytes)})";
|
||||
ChkProducts.Content = $"Statistiche per prodotto ({Fmt(_sizes.ProductsBytes)})";
|
||||
ChkBidLead.Content = $"Misure dell'anticipo effettivo ({_sizes.BidLeadSamples} misure, {Fmt(_sizes.BidLeadBytes)})";
|
||||
ChkExports.Content = $"Esportazioni ({_sizes.ExportFiles} file, {Fmt(_sizes.ExportBytes)})";
|
||||
ChkLegacy.Content = $"Archivi JSON delle versioni precedenti ({_sizes.LegacyFiles} file, {Fmt(_sizes.LegacyBytes)})";
|
||||
ChkLegacy.Content = $"Vecchia cartella Dati delle versioni precedenti ({_sizes.LegacyFiles} file, {Fmt(_sizes.LegacyBytes)})";
|
||||
ChkLearning.Content = $"Apprendimento: modello, profilo, latenza ({Fmt(_sizes.LearningBytes)})";
|
||||
|
||||
var o = ReadOptions();
|
||||
long totale = 0;
|
||||
if (o.History) totale += _sizes.HistoryBytes;
|
||||
if (o.ProductStats) totale += _sizes.ProductsBytes;
|
||||
if (o.BidLeadMeasures) totale += _sizes.BidLeadBytes;
|
||||
if (o.Exports) totale += _sizes.ExportBytes;
|
||||
if (o.LegacyArchives) totale += _sizes.LegacyBytes;
|
||||
if (o.Learning) totale += _sizes.LearningBytes;
|
||||
|
||||
@@ -61,7 +55,7 @@ namespace AutoBidder.Dialogs
|
||||
? "Nessuna voce scelta."
|
||||
: $"Si liberano circa {Fmt(totale)}." +
|
||||
(o.History ? " Lo storico viene prima copiato nei backup." : "") +
|
||||
(o.Learning ? " L'apprendimento ripartirà da zero e ristudierà i dossier al prossimo avvio." : "");
|
||||
(o.Learning ? " L'apprendimento ripartirà da zero e ristudierà le aste al prossimo avvio." : "");
|
||||
|
||||
WipeButton.IsEnabled = !o.Nothing;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user