Added and refined input validation across API helpers, XML generation, stay-time table preparation, response coding inputs, and shared validation helpers.
Kept response-coding edge cases compatible with current behavior, including ordinary data-frame inputs, missing response payload rows, and structured empty coded outputs.
eatPrepTBA 0.9.8.9019
Added unpack_response_jsons() for auto-detecting and unpacking response JSON columns distributed across wide response tables, including matching *_ts timestamp columns and showing progress while JSON payloads are parsed.
Added prepare_unpacked_codes() to convert code-bearing unpacked slots into the core code_responses(..., prepare = TRUE) output shape, including code_type and unnested value output for direct binding before complete_design().
These helpers are particularly useful for BKT-like question-slot preparation, where coded responses are stored across question_*_content columns rather than in one coded column.
Made the unpack_response_jsons() progress indicator visible immediately and persistent during long JSON parsing runs.
Added keep_empty_rows = TRUE as the default for unpack_response_jsons(), preserving one empty output row for source rows that do not produce unpacked JSON records, and renamed the payload-level empty-cell argument to keep_empty_payloads.
Relaxed code_responses() input validation so ordinary data frames are accepted and normalised internally to tibbles.
Extended prepare_unpacked_codes(keep_uncoded = TRUE) to preserve source rows that have no target response record, so identifiers such as unit_key survive BKT-like preparation.
eatPrepTBA 0.9.8.9018
Fixed read_booklet() for booklet XMLs where Unit elements already carry testlet_id or testlet_label attributes, avoiding duplicate-column failures while preserving testlet information.
Added regression tests for read_booklet() with pre-existing testlet attributes on standalone and nested units.
eatPrepTBA 0.9.8.9017
Added recode_omissions_to_not_reached to complete_design() so users can choose whether trailing omission sequences at the end of a testlet are recoded as not reached.
Kept complete_design() not-reached detection within each testlet_no.
eatPrepTBA 0.9.8.9016
Added and corrected input validation across response coding, booklet/testtaker generation, metadata, settings, and psychometric helper functions.
Removed the redundant plain-text Author field from DESCRIPTION; contributor metadata is now maintained via Authors@R.
eatPrepTBA 0.9.8.9015
Refreshed the getting-started vignette with IQB Studio login, workspace, unit metadata, and coding-scheme walkthroughs.
Added anonymized example unit data and Studio screenshots used by the vignette.
Kept the shared RStudio project file tracked in the repository.
eatPrepTBA 0.9.8.9014
Added shape-aware diagnostics in download_responses(), get_responses(), and read_responses() for changed Testcenter response slot ids. The new diagnostics argument controls compact, full, or suppressed feedback without changing output behavior.
Refined response slot diagnostics to classify subform/state response containers separately from standard Testcenter wrapper slots.
Made compact response slot diagnostics less alarming and less silent by confirming OK standard slots and pointing to diagnostics = "full" when id examples are shortened.
Let diagnostics = "none" suppress missing-payload announcements and animated preparation progress while keeping stable preparation checkpoint messages.
Kept elapsed-time response preparation completion messages for all response diagnostics modes.
Added stable checkpoint messages while reading and combining multiple response files.
Added stable checkpoint messages while checking response payload structure before response slot diagnostics are printed.
Treated the known coded-response slot id responses as a special response slot, which can occur for stored coded responses such as StarS Player data, instead of warning that it is unexpected.
Restored default response preparation progress indicators for compact and full diagnostics while keeping diagnostics = "none" free of animated progress.
Added broad testthat coverage for XML readers/generators, response and log preparation, metadata/codebook helpers, S4 workspace/login methods, mocked API wrappers, and analysis routines.
Fixed compute_sizes() by assigning the intermediate dependency-size table before summarising resource sizes.
Made codebook preparation helpers robust to single-variable and single-code JSON structures.
Declared the methods dependency used by S4 class exports and constructors.
Corrected WorkspaceTestcenter slot documentation.
Reduced R CMD check diagnostics for startup messages, Rd files, imports, and data-masked column names.
Added a GitHub Actions workflow for Codecov coverage uploads.
eatPrepTBA 0.9.8.9012
Made prepare_coding_scheme() more robust for missing, partial, and mixed-type schemer payloads.
Preserved multi-parameter rule expansion and normalized rule operators, rule positions, code models, and code identifiers to stable output types.
Made add_coding_scheme() tolerate units with missing coding schemes while preserving the original unit rows.
Kept read_booklet() working for both flat Units > Unit and nested Units > Testlet > Unit booklet structures.
Added regression tests for missing coding schemes, incomplete schemer columns, multi-parameter rules, mixed rule-position types, and coded-response joins.
eatPrepTBA 0.9.8.9011
Added focus lost/regained event extraction to estimate_unit_times(), including optional block-aware handling of automatic block switches.
Improved unit loading summaries with failed loading counts and explicit run_no_load handling.
Added warnings when block information from full_design cannot be joined for automatic block-switch detection.
Added regression tests for focus-event durations, automatic block-switch handling, failed loading counts, and missing load starts.
eatPrepTBA 0.9.8.9010
Fixed add_metadata() so item and unit metadata are matched against the workspace metadata profile when Studio returns stale isCurrent flags. This preserves item metadata such as Variablenbezeichnung even when the relevant profile is marked as not current in the returned properties JSON.
Added regression tests for metadata profiles with stale isCurrent values.
Removed a deprecated dplyr usage in add_metadata() that produced a lifecycle warning when deriving unit_has_uuids.
eatPrepTBA 0.9.8.9009
Added download_responses() for retrieving raw response reports from the Testcenter response endpoint.
Preserved units whose response report payload only contains empty coded responses (responses = []) so they remain available for design-based missing completion.
Fixed response report edge cases for empty API results, parsed laststate objects, and units_filter_off handling.
Kept rows with responses = NA out of code_responses() before coding-scheme preparation so design-based missing completion in complete_design() remains responsible for those cases.
Added aggregate info and warning messages for empty response payloads, skipped automatic coding rows, filtered response units, and empty response report results.
Added regression tests for response reports with empty nested response data.
Fixed booklet metadata parsing in read_booklet() so metadata with mixed text nodes no longer breaks booklet parsing. Added a regression test for this case.
Updated package governance metadata in DESCRIPTION.
Updated README/pkgdown links to the iqb-research repository location.
Added the package logo and refreshed package site configuration.
Updated contributor metadata.
eatPrepTBA 0.9.8.9000
Added support in change_unit_settings() for changing unit metadata such as unit keys, names, descriptions, player/editor/schemer versions, groups, and states.
Updated Studio login handling used by the unit-setting workflow.
Updated display and documentation for the changed unit-setting behavior.