fix: smart shopping family suppression, shelf life pre-warming (v1.7.7)
- Remove recentlyExhausted bypass from shopping_name family suppression: products recently exhausted (<14d) were incorrectly flagged as critical even when the same family had ample stock (Yogurt 2002g, Affettato 1022g, Pane 400g). recentlyExhausted now only bypasses loose token-based coverage. - Add prewarmShelfLifeCache() in cron: pre-warms opened shelf life via Gemini AI (max 5 items/cycle) so the UI never blocks on first load.
This commit is contained in:
@@ -66,6 +66,19 @@ try {
|
||||
echo '[' . date('Y-m-d H:i:s') . '] Bring! sync warning: ' . $be->getMessage() . "\n";
|
||||
}
|
||||
|
||||
// ── Shelf life pre-warming ────────────────────────────────────────────
|
||||
// Pre-warm the opened shelf life cache for opened items not yet cached.
|
||||
// Capped at 5 items per cron cycle to avoid Gemini rate limits.
|
||||
try {
|
||||
$prewarmResult = prewarmShelfLifeCache($db, 5);
|
||||
if ($prewarmResult['warmed'] > 0) {
|
||||
echo '[' . date('Y-m-d H:i:s') . '] Shelf life pre-warm — warmed: ' . $prewarmResult['warmed']
|
||||
. ', skipped: ' . $prewarmResult['skipped'] . "\n";
|
||||
}
|
||||
} catch (Throwable $pe) {
|
||||
echo '[' . date('Y-m-d H:i:s') . '] Shelf life pre-warm warning: ' . $pe->getMessage() . "\n";
|
||||
}
|
||||
|
||||
} catch (Throwable $e) {
|
||||
$msg = $e->getMessage();
|
||||
echo '[' . date('Y-m-d H:i:s') . '] ERROR: ' . $msg . "\n";
|
||||
|
||||
Reference in New Issue
Block a user