Hygiene: event-modal debug console.logs ship to prod + 6 templates spam NG8011 projection warnings every build #761

Closed
opened 2026-07-21 03:00:04 +00:00 by spikerj · 3 comments
Owner

Two small hygiene items observed repeatedly during the #722 E5 gates:

  1. event-modal logs form contents to the console — ~10 console.logs ("Modal received startDate", "Form values before processing", extracted times, the full event payload incl. title/description/location). Per the #463 lesson, esbuild does NOT strip console.* in prod builds, so user event data lands in the browser console in production. Delete them (the component is now fully signal-model driven; they've lost their debugging value anyway).

  2. NG8011 warnings ×6 on every single build — mat-icon inside a multi-node @if/@else block can't project into MatButton's icon slot: child-account-review (122), book-upload (282, 285), contact (229), geography-explorer (596), info-vault (605). Each is a one-line <ng-container> wrap per the warning text. Six warnings × every build/test invocation is real noise that trains people to ignore compiler output.

Two small hygiene items observed repeatedly during the #722 E5 gates: 1. **event-modal logs form contents to the console** — ~10 `console.log`s ("Modal received startDate", "Form values before processing", extracted times, the full event payload incl. title/description/location). Per the #463 lesson, esbuild does NOT strip `console.*` in prod builds, so user event data lands in the browser console in production. Delete them (the component is now fully signal-model driven; they've lost their debugging value anyway). 2. **NG8011 warnings ×6 on every single build** — mat-icon inside a multi-node `@if`/`@else` block can't project into MatButton's icon slot: child-account-review (122), book-upload (282, 285), contact (229), geography-explorer (596), info-vault (605). Each is a one-line `<ng-container>` wrap per the warning text. Six warnings × every build/test invocation is real noise that trains people to ignore compiler output.
Author
Owner

Board-sweep verification (2026-07-22): still open and still real — event-modal.component.ts carries 18 console.log calls on current master. Note for whoever picks this up: the event-modal is being actively reworked under epic #781 (recurring events UI just merged), so coordinate with that work rather than patching in parallel — but the hygiene issue did NOT get cleaned up by the #781 changes so far.

Board-sweep verification (2026-07-22): still open and still real — event-modal.component.ts carries 18 console.log calls on current master. Note for whoever picks this up: the event-modal is being actively reworked under epic #781 (recurring events UI just merged), so coordinate with that work rather than patching in parallel — but the hygiene issue did NOT get cleaned up by the #781 changes so far.
Author
Owner

Re-verified against origin/master — NOT DONE, both items.

Item 1 — debug logs: projects/spikersoft/src/app/_components/calendar/event-modal/event-modal.component.ts still contains 18 console.log calls, unchanged from the 2026-07-22 board-sweep count. Notable because epic #781's recurrence work has been actively touching this component since — so the file has been edited without the logs being cleaned up.

Item 2 — NG8011 projection warnings: the sites are still unwrapped. mat-icon sits directly inside @if/@else blocks alongside sibling text or interpolation, with no <ng-container>:

  • admin/child-account-review/child-account-review.component.html ~119-124
  • book-upload/book-upload.component.html ~281-287 (both branches)
  • contact/contact.component.html ~224-232
  • learning/info-vault/info-vault.component.html ~603-607
  • plus the geography-explorer site (the 764-line geography-explorer.component.html; I did not individually confirm that line)

Coordination note: epic #781 is actively reworking event-modal.component.ts, so item 1 should either go in with that work or wait for it — a standalone PR deleting 18 lines is a near-certain conflict. Item 2 touches five unrelated templates and has no such dependency, so it can go independently.

Small but worth doing: the NG8011 warnings fire on every build, so this is noise every developer sees constantly. That kind of persistent warning is what trains people to stop reading build output — which is how the #823 strictTemplates error (now gated by #824) got through in the first place.

Re-verified against `origin/master` — **NOT DONE, both items.** **Item 1 — debug logs:** `projects/spikersoft/src/app/_components/calendar/event-modal/event-modal.component.ts` still contains **18** `console.log` calls, unchanged from the 2026-07-22 board-sweep count. Notable because epic #781's recurrence work has been actively touching this component since — so the file has been edited without the logs being cleaned up. **Item 2 — NG8011 projection warnings:** the sites are still unwrapped. `mat-icon` sits directly inside `@if`/`@else` blocks alongside sibling text or interpolation, with no `<ng-container>`: - `admin/child-account-review/child-account-review.component.html` ~119-124 - `book-upload/book-upload.component.html` ~281-287 (both branches) - `contact/contact.component.html` ~224-232 - `learning/info-vault/info-vault.component.html` ~603-607 - plus the geography-explorer site (the 764-line `geography-explorer.component.html`; I did not individually confirm that line) **Coordination note:** epic #781 is actively reworking `event-modal.component.ts`, so item 1 should either go in with that work or wait for it — a standalone PR deleting 18 lines is a near-certain conflict. Item 2 touches five unrelated templates and has no such dependency, so it can go independently. Small but worth doing: the NG8011 warnings fire on **every build**, so this is noise every developer sees constantly. That kind of persistent warning is what trains people to stop reading build output — which is how the #823 strictTemplates error (now gated by #824) got through in the first place.
Author
Owner

Migrated to spikerj/spikersoft-angular#647 as part of the umbrella-tracker breakup.

Verified 2026-08-07 against spikersoft-angular@8e5a404, and live against the deployed main-KZKZUOSX.js bundle on learn.spikersoft.com.

  • Code: Both items unchanged. Item 1: _components/calendar/event-modal/event-modal.component.ts still contains exactly 18 console.log calls (:170-172, :190-191, :194-196, :279-283, :304-307, :326, …) — same count as the 2026-07-22 and 2026-07-29 sweeps, despite epic #781's recurrence work editing the file since. Item 2: the NG8011 sites are still unwrapped — mat-icon sits directly beside sibling text inside @if/@else, with no <ng-container>: admin/child-account-review/child-account-review.component.html:119-124, book-upload/book-upload.component.html:281-287 (both branches), contact/contact.component.html:224-233, learning/info-vault/info-vault.component.html:605-608, plus the geography-explorer site.
  • Live: Item 1 is confirmed shipping. The deployed event-modal chunk (learn.spikersoft.com → main-KZKZUOSX.js → chunk-CMGMHm8b2.js) contains the literal strings Modal received startDate / endDate / allDay, Extracted start time, Form values before processing, Combined start date, Start date ISO and Event data being sent — so user event titles, descriptions and locations are being written to the production browser console right now, exactly as filed.

Status: not done — Both. Item 1 should ride along with epic #781's event-modal rework to avoid a near-certain conflict; item 2 touches five unrelated templates and can go independently at any time.

Closing here. Work now lives in the repo that holds the fix, so fixes #647 in a PR will auto-close it on merge. The umbrella tracker keeps cross-repo epics only.

— Opus 5 Agent

Migrated to **spikerj/spikersoft-angular#647** as part of the umbrella-tracker breakup. Verified 2026-08-07 against `spikersoft-angular@8e5a404`, and live against the deployed `main-KZKZUOSX.js` bundle on learn.spikersoft.com. - **Code:** Both items unchanged. **Item 1:** `_components/calendar/event-modal/event-modal.component.ts` still contains exactly **18** `console.log` calls (`:170-172`, `:190-191`, `:194-196`, `:279-283`, `:304-307`, `:326`, …) — same count as the 2026-07-22 and 2026-07-29 sweeps, despite epic #781's recurrence work editing the file since. **Item 2:** the NG8011 sites are still unwrapped — `mat-icon` sits directly beside sibling text inside `@if`/`@else`, with no `<ng-container>`: `admin/child-account-review/child-account-review.component.html:119-124`, `book-upload/book-upload.component.html:281-287` (both branches), `contact/contact.component.html:224-233`, `learning/info-vault/info-vault.component.html:605-608`, plus the geography-explorer site. - **Live:** **Item 1 is confirmed shipping.** The deployed event-modal chunk (`learn.spikersoft.com` → `main-KZKZUOSX.js` → `chunk-CMGMHm8b2.js`) contains the literal strings `Modal received startDate` / `endDate` / `allDay`, `Extracted start time`, `Form values before processing`, `Combined start date`, `Start date ISO` and `Event data being sent` — so user event titles, descriptions and locations are being written to the production browser console right now, exactly as filed. Status: **not done** — Both. Item 1 should ride along with epic #781's event-modal rework to avoid a near-certain conflict; item 2 touches five unrelated templates and can go independently at any time. Closing here. Work now lives in the repo that holds the fix, so `fixes #647` in a PR will auto-close it on merge. The umbrella tracker keeps cross-repo epics only. — Opus 5 Agent
Sign in to join this conversation.