Skip to content

Merge dev to main. - #484

Open
dajmcdon wants to merge 45 commits into
mainfrom
dev
Open

Merge dev to main.#484
dajmcdon wants to merge 45 commits into
mainfrom
dev

Conversation

@dajmcdon

Copy link
Copy Markdown
Contributor

main is about 11 months behind!? And dev has some feature upgrades as well as key website simplifications @dsweber2 made a while back.

Any objections or potential barriers?

JavierMtzRdz and others added 30 commits April 24, 2026 00:06
Co-authored-by: brookslogan <lcbrooks@cs.cmu.edu>
Fix error where autoplot called nonexistent .response column
print.canned_epipred() was supposed to surface latency-adjustment
information for canned forecasters whose recipe contains a
step_adjust_latency. The gating conditional checked for a top-level
"pre" field on the canned forecaster, but canned forecasters'
top-level fields are predictions, epi_workflow, and metadata. The
check always evaluated FALSE, leaving the latency-info block as dead
code.

Replace the predicate with !is.null(x$epi_workflow$pre$actions$recipe),
which correctly tests for a recipe preprocessor on the embedded
workflow.

The existing snapshot tests for arx_forecaster with extend_lags and
extend_ahead regenerate to include the previously-missing
"Lags adjusted" / "Aheads adjusted" lines. Two supplementary
expect_match assertions are added as defensive guards.

Also adds .workflow/, .plans/, .claude/ to both .gitignore and
.Rbuildignore for personal agent-tooling directories.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix: display latency adjustment info on canned forecasters (#447)
…454)

flatline_forecaster() was returning K+1 duplicate prediction rows per geo
when the input epi_df had K trailing rows with NA in the outcome column.
The duplication came from R/get_test_data.R's filter
  max_time_value - time_value <= keep
being one-sided: when na.omit() set max_time_value earlier than the actual
max (because trailing rows had NA in the outcome), rows with
time_value > max_time_value slipped through and produced duplicate
predictions downstream.

Add time_value <= max_time_value to both filter calls in get_test_data.
The new bound is a no-op when there are no trailing NAs, so the existing
test-snapshots.R flatline snapshots and test-get_test_data.R assertions
all pass unchanged.

The deeper na.omit-touches-all-columns issue (#468) is separately tracked
and orthogonal to this narrow fix.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix: flatline_forecaster duplicate predictions on trailing-NA input (#454)
)

When args_list = arx_args_list(target_date = ...) produces
forecast_date + ahead != target_date, the validation error inside
arx_fcast_epi_workflow() was short-circuited by a broken cli template:
the message at R/arx_forecaster.R:147 referenced {ahead}, but inside
that function the value lives at args_list$ahead. Users saw
"Could not evaluate cli {} expression: 'ahead' not found" instead of
the documented validation error.

Change {.val {ahead}} -> {.val {args_list$ahead}} on that line. The
error now fires with class
epipredict__arx_forecaster__inconsistent_target_ahead_forecaste_date
and a message naming all three values. The sibling template at line
335 (inside arx_args_list()) is unchanged because there ahead is a
formal argument.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fix: `arx_forecaster()` cli template error on inconsistent target_date (#473)
Pure regeneration via devtools::document(). The recorded example
output for step_adjust_latency had drifted relative to the current
epi_df print phrasing (lag -> latency) from upstream epiprocess;
running document() updates 12 lines across three example blocks. No
source code or behavior change.

The drift surfaced repeatedly during recent fix PRs (#477, #478,
#479); landing the regen once eliminates the friction.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…er (#229)

arx_forecaster() and flatline_forecaster() now error at the forecaster
boundary when quantile_by_key contains columns that are not in
key_colnames(epi_data), instead of silently dropping them downstream.
For flatline_forecaster() in particular the layer-level warning was
invisible because forecast(wf) is wrapped in suppressWarnings(), so
users got no signal at all on invalid input.

Also adds a warning when arx_forecaster() is called with a quantile-
output trainer (quantile_reg() or rand_forest with engine
"grf_quantiles") plus a non-empty quantile_by_key. The argument is
silently dropped in that code branch; the warning surfaces the
no-op without breaking working code.

The 2023 headline failure (flatline crashing on a valid key) no longer
reproduces - residuals.flatline carries geo_value through and the
call works cleanly. cdc_baseline_forecaster uses a different layer
with the same parallel-structure vulnerability; deferred to a
follow-up issue.

Version bumped 0.2.5 -> 0.2.7 (skipping 0.2.6 for the open PR #480
collision).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Switches the version bump for #229 from 0.2.7 to 0.2.6 so the
maintainer can choose the merge order against the still-open PR #480
(doc regen, also targeting 0.2.6). Whichever PR merges first claims
0.2.6; the other rebases to 0.2.7 at merge time.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
chore: regenerate roxygen-derived `man/step_adjust_latency.Rd`
…-229

fix: validate `quantile_by_key` in `arx_forecaster()` and `flatline_forecaster()` (#229)
enh: pivot_quantiles_longer adds quantile_level to epi_df other_keys

@JavierMtzRdz JavierMtzRdz left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reviewed the changes quickly, file by file. Most of them involve formatting, replacing broken links, fixing global checks, and correcting the autoplot, its corresponding tests, and small fixes discussed on the epitooling Slack before. Those lgtm.

I'm unsure about the changes in R/arx_forecaster.R and other adjustments to the forecasters. They seem to match what is mentioned in the NEWS.md. Do you want me to take a closer look?

@JavierMtzRdz

Copy link
Copy Markdown
Contributor

I reviewed the commits more closely, and everything appears to be in order. I checked R/arx_forecaster.R, R/canned-epipred.R, and R/get_test_data.R, and they align with their corresponding NEWS.md comments.

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.

5 participants