Pulse/pkg/reporting
rcourtman ff97e3943c test(reporting): slice PDF streams by declared /Length in text extraction
TestSummarySection_PaginatesCardGridForManyMetrics failed once on CI
(run 31058903048) with metric card "Disk Read" missing and all of page
2 absent from the extracted text. The card-grid pagination is fine; the
bug is in the test helper. Its stream regexp
(?s)stream\r?\n(.*?)\r?\nendstream let the optional \r consume the final
byte of the compressed payload whenever that byte (the last Adler-32
checksum byte) happened to be 0x0D. The truncated stream fails to
inflate and the helper silently skipped the entire page, roughly 1 in
256 streams. fpdf's compressed bytes are a pure function of the report
text, which embeds the report period, so specific date windows fail
deterministically. The CI window (period Jul 30 00:23 to Aug 6 00:23
UTC) reproduces on the first render while neighbouring windows pass,
which is why the test passed locally and on the previous run.

Slice each stream by the /Length declared in its object dictionary the
way a real PDF reader does. fpdf always writes /Length as a direct
integer, and compressed bytes can contain any sequence, so keyword
scanning can never be exact. Verified against the pinned CI window plus
400 shifted windows, and the full package.
2026-08-06 09:51:01 +01:00
..
branding.go Add entitlement-gated report branding 2026-06-02 18:11:25 +01:00
catalog.go Refresh advanced_reporting paywall and guidance copy 2026-05-11 10:16:27 +01:00
catalog_test.go Remove customer commercial analytics wrappers 2026-04-30 11:46:16 +01:00
csv.go fix(reporting): make report PDFs read like client documents, not generated artifacts 2026-06-10 18:11:42 +01:00
csv_additional_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
engine.go fix(reporting): make report PDFs read like client documents, not generated artifacts 2026-06-10 18:11:42 +01:00
engine_additional2_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
engine_additional3_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
engine_additional_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
engine_integration_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
engine_narrative_test.go Harden Patrol and Assistant action boundaries 2026-05-12 12:06:27 +01:00
engine_test.go Add agentless availability targets 2026-05-06 10:35:34 +01:00
fleet_narrative.go fix(reporting): resolve unified resource IDs to metrics targets and render honest report subjects 2026-06-10 17:10:30 +01:00
fleet_narrative_test.go Add fleet-level AI narrative for multi-resource reports 2026-05-10 21:23:12 +01:00
multi_report_visual_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
narrative.go Make Narrative / FleetOutlier JSON shape consistent with prompt schema 2026-05-11 11:29:35 +01:00
narrative_json_test.go Make Narrative / FleetOutlier JSON shape consistent with prompt schema 2026-05-11 11:29:35 +01:00
narrative_test.go Replace heuristic report narrative with optional AI-generated layer 2026-05-10 19:30:54 +01:00
pdf.go reporting: fit and wrap operator-controlled cover title and brand lines 2026-07-10 00:42:06 +01:00
pdf_additional2_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
pdf_additional_test.go feat: Pulse v6 release 2026-03-18 16:06:30 +00:00
pdf_codepage.go fix(reporting): translate UTF-8 report strings to cp1252 before PDF render 2026-06-10 17:18:19 +01:00
pdf_codepage_test.go fix(reporting): translate UTF-8 report strings to cp1252 before PDF render 2026-06-10 17:18:19 +01:00
pdf_insights_test.go Replace heuristic report narrative with optional AI-generated layer 2026-05-10 19:30:54 +01:00
pdf_logo_branchcov0719pm_test.go Add Go branch-coverage tests for pure helpers across six packages 2026-07-19 15:11:02 +01:00
pdf_ux_test.go test(reporting): slice PDF streams by declared /Length in text extraction 2026-08-06 09:51:01 +01:00
report_branding_test.go Make report branding PDF assertion case-insensitive 2026-07-21 10:23:06 +01:00
reporting.go feat(reporting): availability section computed from the resource state timeline 2026-06-10 17:48:11 +01:00
reporting_test.go Expose engine narrative entry points for non-rendering callers 2026-05-10 22:23:09 +01:00
vm_inventory.go Canonicalize reporting fallback filename date style 2026-03-26 09:28:17 +00:00
vm_inventory_test.go Define VM inventory export schema contract 2026-03-25 22:09:37 +00:00