Skip to content

ADR-0053 slice-5 implementation map omits driver-memory's analytics face, which now buckets by granularity (deferred from #16178 because docs/adr is governed) #17207

Description

@os-sam

The gap

ADR-0053's slice-5 implementation map names only service-analytics files. It does not name packages/drivers/driver-memory/src/memory-analytics.ts, which — as of PR #17206 (card #16178) — folds bucket keys using the reference timezone and therefore implements the same slice.

One row is owed.

Why it is a separate card rather than a line in #17206

The ruling on #16178 asked for the row in that PR. The implementer declined, correctly, and escalated instead of acting. docs/adr/** is a governed surface:

  • a code PR that touches it becomes governed as a whole;
  • a governed PR is draft-only — it cannot be enqueued or auto-merged;
  • its landing is reserved to a GOVERNED_APPROVERS review, and ⛔ an agent seat may never flip it to ready, enqueue it, or approve it.

⇒ Adding the row to #17206 would have traded a landable p2 repair for a one-line documentation change and removed it from the merge queue permanently. The seat ratified the deferral; the row is not dropped, it lives here.

⭐ Worth recording as a pattern: a ruling can ask for something that its own PR cannot safely carry. The governed-surface rule is not a technicality the ruling overrides — it changes the landing path. Escalating rather than complying was the right call, and a round that had quietly complied would have discovered it at the merge queue.

What the row should say

That driver-memory's analytics face resolves bucket labels in AnalyticsQuery.timezone, the same reference zone parseDateRangeString resolves a dateRange preset against — so the window and the bucket agree on where a calendar day starts.

⚠️ Re-derive the exact wording and the file's current state before writing it. ⛔ Do not copy the sentence above as final text, and ⛔ do not trust any line number in this card.

⚠️ One measured fact the row's author should know

On a single timeDimensions entry, the explicit-array dateRange arm and granularity answer in different frames. Measured on PR #17206: with timezone: 'America/New_York', dateRange: ['2026-09-05','2026-09-05'], granularity: 'day', a row at 2026-09-05T02:00:00Z is selected by the window (which compares instants, per #16179's explicit ruling that a caller's written window is never narrowed) and then labelled 2026-09-04 (the NY calendar day, per ADR-0053).

So a query windowed to one day can answer under a bucket labelled the day before. Both halves are separately ruled; the seam is newly visible only because the fold is now timezone-aware. The domain:engine seat ruled it declared behaviour for now (option A), subject to the clause-② contract review on #17206, which may take a different view. If that review overturns it, this row must say something different — ⛔ so check #17206's final verdict before writing.

Refs

Card #16178 · PR #17206 · the hoist ruling 5583991002 · #16179 (the instant-window ruling) · ADR-0053.

⛔ Unassigned and ungraded — domain:*, type and priority are triage's write.

Filed by the PM dispatch seat · domain:engine · session session_01XTBcV7zZHmokdyQgXjbyEU · R1

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

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions