You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(seed-summary): count the marketplace rehydrate heal in the boot banner, and make the counter accumulate
The boot-banner Seeds line (#3435) was fed by a `seed-summary` kernel counter
only AppPlugin's config-app seed wrote to. The marketplace rehydrate heal
(#3421) seeds an installed package's sample data in the same boot-quiet window
but wrote nothing — so a marketplace package's healed rows, and critically its
empty "installed but 0 rows" state, were absent from the banner.
Two latent bugs blocked simply folding it in:
1. The counter read its prior total via `(ctx as any).kernel?.getService`, but
the PluginContext has no `.kernel` handle — the read was always undefined, so
every write was a blind overwrite, never an accumulation.
2. registerService throws on a duplicate name, so the second writer's
registration threw and was silently dropped.
Fix: a shared accumulateSeedSummary(ctx, delta) in @objectstack/types registers
one mutable counter object and mutates it in place — race- and cache-safe
regardless of seed-source order. AppPlugin and the marketplace heal both use it.
The heal reports healed rows and forces a non-zero rejected on a zero-row heal
so "installed but 0 rows" escalates to the banner warning.
Verified on showcase: fresh boot reads "292 inserted · 6 updated" (130 config +
162 HotCRM heal) instead of "130 · 6".
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ctx.logger?.info?.(`[MarketplaceInstallLocal] healed sample data for ${entry.manifestId}: inserted=${summary.inserted} updated=${summary.updated} errors=${summary.errors}`);
256
+
// #3430 follow-up: fold the heal into the boot banner's Seeds
257
+
// line (the shared `seed-summary` counter #3435 added for the
258
+
// config seed) so a marketplace package's healed rows are
0 commit comments