Skip to content

Tiered build/test reporting: --report=counts|targets|per-rule|full (pay only for detail materialized) #8

Description

@paul-hammant

Motivation

blazerules exposes output-detail tiers (COUNTSCODESDECISIONSBITMASKS) so a caller pays only for the per-record detail it actually materializes — materialization is the cost, so the caller picks the least-expensive level that answers its question.

aeb's analogue is build/test reporting verbosity. Today the [telemetry] block is a single fixed renderer emitted at the end of every build. There's no way to ask for "just the pass/fail totals" (cheap, CI-friendly) versus "per-node cache attribution and timing" (expensive, debugging). This is the same least-expensive-level-required principle, and it directly targets the ◐ Build telemetry and ◐ Test orchestration rows in the scope table.

Proposal

Add --report=<tier> with escalating detail (names illustrative):

Tier Materializes
counts aggregate pass/fail, total targets, total wall-time. No per-node rows.
targets counts + per-target line: label, wall-time, cache hit/miss.
per-rule targets + per-test-target pass/fail counts (the 14/14 PASS / 2/3 FAIL granularity already parsed from aeocha).
full per-rule + per-node toolchain-invocation detail (what the current block plus future renderers show).
  • Default tier = today's behaviour (whatever the [telemetry] block currently emits), so no regression.
  • Renderer stays pure-render over the in-memory telemetry records + .rc markers — same shape as tools/aeb-graph.ae reading _edges.txt. No new I/O sources.
  • Tier is a filter on what gets rendered, not what gets collected — records are collected once; the tier decides how much is printed.

Acceptance criteria

  • aeb --report=counts <target> prints aggregate-only, no per-node rows.
  • aeb --report=full <target> prints everything the current [telemetry] block does, plus per-node detail.
  • Default (no flag) is unchanged from today.
  • The renderer is pure over telemetry records + markers (no extra probing/exec).
  • tests/ string-builder coverage for the tier→render mapping.

Not being asked

Not asking for file-dump or web-view renderers (those are separate build.render_telemetry plug-ins already noted in LLM.md). This is only the CLI verbosity dial over the existing stdout renderer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions