Skip to content

chore(0135): correct two stale criteria and split the outlier decision to 0217 - #239

Merged
stkrolikiewicz merged 3 commits into
developfrom
chore/0135_split-out-the-outlier-decision
Aug 21, 2026
Merged

chore(0135): correct two stale criteria and split the outlier decision to 0217#239
stkrolikiewicz merged 3 commits into
developfrom
chore/0135_split-out-the-outlier-decision

Conversation

@stkrolikiewicz

Copy link
Copy Markdown
Collaborator

Summary

  • Correct two acceptance criteria in 0135 that the final revision invalidated: they still described the carry bound as applying to price_usd (it does not — it lives only in per_source) and measured it against the asset's own newest candle (the reference moved to now(), because the old one spans quote legs enrichment can never price and therefore never resolves).
  • Split failure mode 1 — whether price_usd should go through the §5.5 keep-mask — into task 0217. That is the question 0135 is named for, and it is the one thing here that cannot be settled by working harder: 0135's own sequencing note puts it after 0118, which changes which sources reach the median and therefore what "outlier" means, with 0123 as its evidence base. Both are still in backlog.

Carrying it would hold 0135 open indefinitely on a question it is not allowed to answer, while the two failure modes it did fix — the un-enriched-tip zero and C2's enrichment-timing-dependent sources membership — sit shipped and unarchived.

0217 also inherits a consequence worth naming rather than discovering later: by skipping to the newest priced close, 0135 made the outlier case more reachable, not less. Previously an un-enriched tip often landed price_usd on a 0, which was loudly broken; now it can land on the thin outlier venue the mask rejected, which is quietly wrong and passes every 0-means-unavailable consumer guard.

Remaining before 0135 can be archived (not in this PR): prod apply per the 0072 runbook, zero_but_vwap_ok = 0, XLM publishing a real price — which may be blocked by 0215 rather than by this change — and a green 0120 re-run.

… 0217

The criteria still described the carry bound as applying to price_usd and
measured against the asset's newest candle; the final revision does
neither.

Failure mode 1 - whether price_usd goes through the 5.5 keep-mask, which
is the question this task is named for - moves to 0217. It is blocked by
sequencing 0135 itself recorded (after 0118, evidenced by 0123, both in
backlog), so carrying it would hold the task open on a question it is
not allowed to answer while its two shipped fixes wait to be archived.
…he rollback

The two target metrics moved as intended (zero_but_vwap_ok 36->0,
zero_price_usd 1129->376) but empty_sources went 1096->3380: 2,284
assets lost sources and had vwap_24h zeroed, because the 2h bound was
calibrated on the enrichment schedule while enrichment has been down for
two days, so almost no venue has a priced close younger than 2h.

Rolled back and verified. The design lesson is recorded: the bound
should be conditional - drop stale venues only when a fresh one
survives - since the defect it guards against needs a live venue to
evict.
… function names

Two failures from the 0135 rollout, both general rather than specific to
that change.

Step 1b: step 1 measures what the new SELECT costs and says nothing about
what it publishes. 0135 shipped on a green step 1 and was rolled back an
hour later - it fixed 753 assets while blanking sources and vwap on
2,284. Every number needed for that call was available beforehand, from
artifacts step 0 already produces; nobody thought to run the old
definition forwards.

Step 3: SHOW CREATE re-renders the definition, so INTERVAL 2 HOUR comes
back as toIntervalHour(2). Grepping the source spelling reports a working
apply as failed - it did exactly that mid-deploy. Function names survive
verbatim and are the reliable discriminator.
@stkrolikiewicz
stkrolikiewicz merged commit 1244e99 into develop Aug 21, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants