Skip to content

feat: bound hkl point preparation and preview transport #153

Description

@pecomyint

Priority P1; F2/F7 and remaining F8. Reuse #139's live grid option and preserve scientific sums/counts; this issue addresses the legacy point-cloud paths and transport choices.

Enforce point and byte budgets for cumulative, per-frame and post-scan modes before flattening/converting/concatenating. Sample intensity and Q with identical indices directly from shape-aware arrays. Reject inconsistent inputs; cap cumulative allocation even when frame-slot count exceeds point budget. Keep preparation off the GUI and preflight all staging buffers.

Make reduced preview products explicit. Full Q transport stays an opt-in scientific product where required; geometry references must be versioned and resolvable by late subscribers. Cache keys include detector shape, ROI/binning, units, energy, UB, axis ordering and calibration. Do not retain full scientific histories just to draw a bounded preview.

Acceptance: C/F nonsquare parity, strict allocation bounds, moving geometry and late-subscriber tests, and measured wire bytes. Sampling must not feed quantitative ROI/grid/storage work; document narrow-peak sampling limitations. Coordinate #109/#144. Depends on #150/#151.

Work already implemented

Local sampling helpers already cap all three legacy HKL modes and avoid full-scan concatenation. Full-image flattening before sampling, lifecycle handling and byte/worker budgets remain.

The local performance implementation passed 14 focused tests and Ruff during the 8 September review; this is not proof of complete issue acceptance. No code from those uncommitted changes has been published as part of this planning batch.

Completion policy

Use Refs for partial PRs. Close only when all acceptance criteria have linked merged code and verification; keep hardware-dependent criteria open until exact-SHA results exist. Retain the closed issue history.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions