classify_employment_status() gains an unemployment_duration_threshold parameter as a convenience shortcut to override rules$unemployment$duration_threshold without constructing a full custom rule set.
add_unemployment_periods() defers its internal copy() until ordering must be mutated, and uses .I-based indexing instead of .SD[1] / .SD[.N] to extract the first and last record per person.
Internal
Extracted the repeated extra-column type detection block in merge_consecutive_employment.R into the internal helper .classify_extra_columns().
Resolved all test failures in classify_employment_status and test suite
vecshift 1.0.4
Bug Fixes
Fixed critical bug in add_external_events() that caused “storage mode of IDate is somehow no longer integer” errors when mixing Date and IDate objects. Added explicit IDate conversions in .prepare_events_data() and .create_synthetic_unemployment() helper functions to ensure consistent date type handling throughout the pipeline. (#PR)
vecshift 1.0.3
Documentation
Enhanced documentation with comprehensive examples
Added complete workflow vignette
Added pkgdown documentation website with GitHub Pages deployment