release: clarify AAS cadence and coverage limits - #186
Conversation
c082fd0 to
3c6d401
Compare
Document that retained AAS is weighted by the current sampler interval, successful idle ticks are not persisted, and intervals above one minute can overstate minute extrema. Mark the affected user stories partial and expose the limitation in the README, release notes, blueprints, and sample_interval catalog comment. Hand-resolve against current main by retaining NikolayS#182's final grain/provenance contracts, NikolayS#180's until-only window and report disclosures, NikolayS#189's raw-boundary wording, and NikolayS#187's retired-benchmark caveat.
3c6d401 to
18a90f1
Compare
samo-agent
left a comment
There was a problem hiding this comment.
Codex review (standing in for REV)
REV is not installed on this host. I ran an independent static codex review against exact rebased head 18a90f1fa54bc04db3fe2092af1515892ac7ebd4; it found no merge-blocking correctness issue. Separate exact-head Docker verification also passed.
Audit verdict
The #160 audit's surviving N8 verdict was: ash.timeline() cannot distinguish sampled-idle from uncovered time; fix the catalog comment now, while the architectural cadence/coverage fix remains issue #137. Issue #137 separately establishes that current-cadence weighting rescales retained history and that coarse cadences can fabricate minute extrema. This PR matches the release-local containment contract: it documents those limitations without pretending to solve storage.
RED
- Same 12 appearances:
12.00 backend_seconds / 0.20 avg_aasat 1 second, then60.00 / 1.00after changing only current config to 5 seconds; the 5× rescaling remained after rollup and raw truncation. - Twelve successful idle sampler calls stored zero rows and were indistinguishable from a no-call minute (
data_points = 0, AAS NULL). - The >1-minute issue #137 case assigns the whole tick to one minute and can overstate minute extrema.
GREEN
- Fresh PG17 exact-archive install: PASS.
- Installed
ash.config.sample_intervalcomment covers current-cadence rescaling, >1-minute overstatement, and idle-vs-outage ambiguity: PASS. - README, release notes, API, examples, user stories, and catalog comment agree; 8/8 stories are partial: PASS.
- #182 grain/provenance, #180 window/report, #189 logical-vs-physical retention, and #187 benchmark wording survived the hand rebase: PASS.
- The stale examples-wide bare-call sentence found during review was corrected (
report()no-bounds = last day; until-only = preceding hour). git diff --check: PASS.
Approved for merge once CI is green on this exact head.
Summary
ash.config.sample_interval, so changing cadence rescales historysample_intervalcatalog commentRelease decision
No genuinely low-risk behavioral fix exists this late in 2.0. A heartbeat alone would not fix historical weighting, while a per-row interval alone would not represent sampled idle time. The complete storage fix remains tracked for a later release in #137; this PR contains the release-local documentation and catalog containment, including #175's corrected no-observation language.
Rebase and conflict resolution
Hand-rebased onto current
mainat28136cfcadb6628975363aaaf17dd7b46d2f6f1a.The overlapping documentation was resolved by retaining:
rollup_1h_flatcontractsraw_retention_startplanning boundary and physical attribution evidenceThe examples-wide default sentence was also corrected after review: bare readers mean the last hour except
report()(last day), while until-only means the preceding hour.RED reproduction
On current main before this documentation/catalog change:
backend_seconds = 12.00,avg_aas = 0.20at a 1-second config, then60.00/1.00after changing only the current config to 5 seconds; the same 5× rescaling persisted after minute rollup and raw truncationtake_sample()calls stored zero rows and produced the samedata_points = 0, NULL-AAS timeline representation as a minute with no sampler callsGREEN verification
Exact head
18a90f1fa54bc04db3fe2092af1515892ac7ebd4:ash.config.sample_intervalcatalog comment contains current-cadence rescaling, >1-minute extrema overstatement, and idle-vs-outage limitations: PASSgit diff --checkand stale wording scans: PASSRefs #137
Refs #175