NEWS
WMFM 1.0.4.005
- Added a final CRAN reviewer audit script for documentation, example, global-write, and package-availability checks.
- Removed the remaining triple-colon test call so the full checked source tree is clean for the reviewer audit.
- Validated the audit before and after roxygen documentation regeneration as part of the standard stage workflow.
WMFM 1.0.4.004
- Replaced the package-data scan so WMFM no longer uses installed.packages() in package code.
- Added deterministic tests for detecting installed package dataset metadata from temporary library directories.
- Added a CRAN preflight check to confirm the Stage 42 reviewer repair stream remains release-ready.
WMFM 1.0.4.003
- Repaired the Stage 42.2.1 provider-profile save observer so the matched-profile flag is assigned explicitly before status messages are built.
- Removed the CRAN check note about no visible binding for global variable matched in registerChatProviderObservers.
- Kept the repair narrowly scoped to the provider-configuration observer and retained the Stage 42.2 CRAN-audit changes.
- Validated with CRAN reviewer greps, strict tests, and strict check.
WMFM 1.0.4.001
- Addressed the first CRAN reviewer documentation slice by quoting the shiny package name in DESCRIPTION.
- Removed CRAN-facing examples for internal helpers and eliminated generated triple-colon documentation examples.
- Replaced remaining roxygen dontrun examples with interactive guards where examples should stay visible but not run during checks.
- Regenerated documentation and validated the package with the standard WMFM workflow.
WMFM 1.0.3.030
- Removed the remaining provider-credential removal control from the legacy provider setup modal.
- Removed the corresponding server observer so the app no longer advertises API-key deletion in the provider settings workflow.
- Updated provider settings tests to assert that API-key replacement is available, while API-key removal is hidden from the normal user flow.
WMFM 1.0.3.029
- Removed the visible Remove API key control from the provider edit modal.
- Kept API-key replacement through the existing password field: leaving it blank preserves the current credential, while entering a new value replaces it.
- Updated provider settings tests so API-key removal is not advertised in the main edit-provider flow.
WMFM 1.0.3.028
- Reduced the provider registry plus and minus controls to a smaller 28px square size.
- Tightened the provider registry action strip so action controls sit closer to the table row height.
- Added stronger CSS specificity so Bootstrap button defaults do not make the controls visually oversized.
- Updated provider settings tests to assert the compact action-control dimensions.
WMFM 1.0.3.027
- Reduced the provider registry plus and minus controls to a smaller 28px square size.
- Tightened the provider registry action strip so action controls sit closer to the table row height.
- Added stronger CSS specificity for provider action buttons so Bootstrap button defaults do not make them visually oversized.
- Updated provider settings tests to assert the compact action-control dimensions.
WMFM 1.0.3.026
- Expanded the provider registry table and output container so the table fills the rounded settings panel.
- Kept provider columns evenly distributed across the available provider list width.
- Reduced the plus and minus provider action buttons to a consistent compact row-height size.
- Preserved the provider-object settings behaviour while improving the visual layout.
WMFM 1.0.3.023
- Expanded the provider registry table so it fills the rounded settings panel.
- Integrated provider add and remove controls into the provider list footer.
- Applied consistent monospace sizing to the provider action buttons so plus and minus controls align visually.
- Preserved the provider-object settings behaviour while improving the visual layout.
WMFM 1.0.3.022
- Normalised editWmfmConfig() return paths so they match getWmfmConfigPath() across platform-specific path aliases.
- Preserved the provider-object settings UI while fixing a config helper path consistency issue.
- Kept the repair limited to the Stage 41.11.3 path-normalisation failure.
WMFM 1.0.3.018
- Repaired the provider settings developer-mode guard so developer controls are not present when developer mode UI is disabled.
- Updated editWmfmConfig() to accept an injectable editor function for deterministic offline tests.
- Replaced the config editor test's dependency on newer withr mocking helpers with a package-local editor stub.
- Preserved the Stage 41.10 provider registry UI polish and config path helper behavior.
WMFM 1.0.3.016
- Added a confirmation dialog before removing provider objects from the Settings provider registry.
- Kept the existing safeguard that WMFM must retain at least one configured provider.
- Updated provider settings tests and design notes for the confirmed remove workflow.
- Validated by the standard WMFM full package workflow.
WMFM 1.0.3.015
- Added an explicit Edit action for provider objects in the Settings provider registry.
- Reused the provider modal for both adding and editing provider profiles, with existing values pre-populated for edits.
- Updated provider settings tests to cover the edit action while keeping credentials out of the main UI.
- Validated by the standard WMFM full package workflow.
WMFM 1.0.3.014
- Repaired Stage 41.7 provider profile resolution so legacy local configuration remains usable during migration.
- Allowed provider type identifiers such as claude to resolve the corresponding configured provider profile.
- Restored local config precedence for persisted Ollama URLs and models when the active profile does not supply those fields.
- Preserved the provider-object UI redesign while keeping legacy resolver behavior covered by existing tests.
- Validated by the standard WMFM stage workflow.
WMFM 1.0.3.012
- Repaired Stage 41.6 provider settings tests so they match the provider-object Settings redesign.
- Updated expectations for the simplified active-provider status and provider registry controls.
- Removed obsolete assertions for the old inline Ollama-only settings layout.
- Preserved the Stage 41.6 implementation while restoring the standard WMFM validation workflow.
- Validated by the standard WMFM stage workflow.
WMFM 1.0.3.008
- Added Stage 41.5 design notes for the provider-as-object Settings redesign.
- Defined the user-facing provider table, active-provider selector, and add/edit/delete modal workflow.
- Recorded that credentials must remain hidden and exposed only as provider status.
- Clarified that Stage 41.6 is the first implementation stage for the redesign.
- No package-code validation was required because this stage only adds design documentation.
WMFM 1.0.3.007
- Updated README setup guidance for local desktop and deployed WMFM configuration.
- Documented Provider setup as the local desktop path for credential guidance and optional local credential entry.
- Documented usethis::edit_r_environ() for users who prefer standard R environment-variable setup.
- Clarified that deployed Shiny apps are administrator-managed and ordinary users may only choose approved providers or models.
- Updated README coverage tests for the revised setup guide.
WMFM 1.0.3.006
- Repaired Stage 41.3 provider credential wording so existing provider-setting tests continue to match documented messages.
- Preserved the local desktop credential setup behavior and deployed-app administrator controls added in Stage 41.3.
- Kept Claude missing-credential guidance explicit about ANTHROPIC_API_KEY while mentioning the Provider setup modal.
- Validated through the standard WMFM stage workflow.
WMFM 1.0.3.004
- Added Stage 41.2.1 provider setup policy helpers so WMFM can distinguish local desktop use from administrator-managed deployments.
- Moved provider credential guidance into a modal setup dialog rather than keeping API-key guidance front and centre in Settings.
- Blocked ordinary deployed-app users from saving provider configuration while preserving local desktop configuration editing.
- Recorded the Stage 41.2.1 implementation decision in the configuration design notes.
- Validated with the standard WMFM full package workflow.
WMFM 1.0.3.001
- Added Stage 41.1 configuration design principles before changing provider setup code.
- Documented the single-user desktop and deployed Shiny configuration boundaries.
- Recorded security, simplicity, UI, documentation, and testing principles for later implementation stages.
- Skipped package validation because this stage only adds a design note plus the standard version and NEWS updates.
WMFM 1.0.2.009
- Added a developer-mode metadata box beside the built-in example selector.
- Exposed example audience, model family, difficulty, teaching topic, developer purpose, installed path, and specification path for the selected example.
- Kept classroom mode unchanged by hiding the metadata box unless developer mode is unlocked.
- Added deterministic tests for developer example metadata formatting.
- Validated through the standard full WMFM package workflow.
WMFM 1.0.2.008
- Add a Stage 40 manual validation checklist for the reorganised example library.
- Record the completed Stage 40 example-file reorganisation steps in the developer plan.
- Confirm that this documentation-only step does not require devtools document, tests, check, build, or install.
WMFM 1.0.2.007
- Shortened the physically separated internal model-grid example path so package checks no longer report non-portable file names.
- Kept classroom examples at the top level while preserving grouped developer and test fixtures behind metadata-backed lookup.
- Removed the abandoned long
test-fixtures/model-grid fixture location during installation.
- Validated by the standard WMFM full package workflow.
WMFM 1.0.2.005
- Added a metadata-backed example detail listing for classroom and developer example-library views.
- Kept the existing example-name listing compatible by deriving it from the richer detail table.
- Added offline tests for metadata fields, developer-example hiding, and stable empty detail columns.
- Validated by the standard full WMFM package workflow.
WMFM 1.0.2.004
- Prepared Stage 40.3 example loading for future nested example-folder reorganisation.
- Stored package-relative example paths and specification paths in internal example records.
- Updated example lookup so runExample can resolve examples by display name, directory, or specification stem without assuming every example is a direct child of inst/extdata/examples.
- Added regression coverage for nested example record paths before any physical file moves are attempted.
WMFM 1.0.2.002
- Added an installed example metadata manifest that classifies classroom, developer, and test examples without moving example folders.
- Updated packaged example listing so release-mode choices use explicit audience metadata rather than only the test-name prefix.
- Kept developer and regression examples available when test examples are requested, preserving existing example lookup compatibility.
- Added offline tests for metadata-driven visibility and metadata override behaviour.
- Validated by the standard full WMFM package workflow because R code, tests, and installed example files changed.
WMFM 1.0.2.001
- Documented the Stage 40.1 example-file reorganisation plan for separating classroom examples from developer and regression examples.
- Recorded the current example groups and a staged metadata-first implementation strategy before moving installed files.
- Preserved package behaviour for this documentation-only step; devtools document, tests, check, build, and install were intentionally skipped.
WMFM 0.9.9.001
- Started Stage 38 CRAN hardening with beta-style internal build numbering for the 1.0.0 release-preparation stream.
- Moved the completed Stage 37 restart context into dev/Completed so active development contexts stay focused on current work.
- Added a separate future-development ideas context under dev for post-CRAN follow-up work.
- Validated by the standard WMFM stage workflow before committing this entry.
WMFM 0.3.1.010
- Repair the adjustment-aware scaffold test so it rejects generated model-mechanics language without rejecting instruction text.
- Keep adjustment variables in the background while allowing high-level interaction caveats when a single adjusted estimate would be misleading.
- Keep the interaction wording invariants while allowing the prompt to contain negative guidance about model-structure wording.
- Preserve the existing adjustment governance and deterministic scoring behavior from Stage 37.
- Validated by the Stage 37.6.1 runner with strict tests and check.
WMFM 0.3.1.008
- Centralized adjustment-aware LLM scoring policy text in reusable helpers.
- Kept scoring prompts aligned around restrained adjusted-for interpretation and forbidden adjustment-level narration.
- Added offline governance tests for the shared adjustment scoring policy helpers.
WMFM 0.3.1.007
- Aligned deterministic scoring with adjustment-aware restraint for weak interactions involving adjustment variables.
- Allowed research-question-focused adjusted explanations to avoid adjustment-level numeric and cell-by-cell narration.
- Preserved ordinary no-adjustment scoring behavior with a regression test.
WMFM 0.3.1.006
- Aligned deterministic scoring with adjustment-aware restraint for weak interactions involving adjustment variables.
- Allowed research-question-focused adjusted explanations to avoid adjustment-level numeric and cell-by-cell narration.
- Preserved ordinary no-adjustment scoring behavior with a regression test.
WMFM 0.3.1.001
- Added adjustment-variable and primary-variable metadata to raw WMFM run records for downstream scoring.
- Forwarded example-spec adjustment metadata through runExample() into each run record.
- Added offline tests covering run-record metadata and example metadata forwarding.
- Preserved existing non-adjustment and follow-up scoring behavior.
WMFM 0.3.0.007
- Stage 36.5 preserves follow-up scoring context when raw WMFM run records are rebuilt.
- Keeps follow-up prediction type, interval type, future-observation type, extrapolation metadata, and parameter-uncertainty metadata available after rebuilds.
- Adds a deterministic regression test for rebuildWmfmRunRecords with follow-up scoring context.
- Keeps Stage 36.4 developer scoring behaviour unchanged while protecting cached or rebuilt run objects.
- Validated by the standard WMFM stage workflow with deterministic offline tests and strict package check.
WMFM 0.3.0.006
- Stage 36.4 keeps developer scoring comparison-structure metrics applicable for follow-up answers without factor predictors.
- Preserves numeric-only reference-group metrics as not applicable while allowing follow-up comparisonStructureClear to remain scored.
- Adds a deterministic developer-scoring regression test for follow-up comparison-structure display.
- Keeps Stage 36.3 LLM/fake-provider follow-up scoring behaviour unchanged.
- Validated by the standard WMFM stage workflow with deterministic offline tests and strict package check.
WMFM 0.3.0.005
- Stage 36.3 extends LLM scoring prompt guidance for follow-up prediction and interval explanations.
- Maps follow-up scoring policy explicitly onto uncertaintyHandlingAppropriate, comparisonStructureClear, and fatalFlawDetected.
- Adds fake-provider tests confirming follow-up context reaches the LLM scoring prompt and cache key.
- Preserves deterministic follow-up scoring behaviour from Stage 36.2.1.
- Validated by the standard WMFM stage workflow with deterministic offline tests and strict package check.
WMFM 0.3.0.004
- Stage 36.2.1 tightens deterministic scoring for follow-up prediction and interval explanations.
- Distinguishes fitted-mean confidence intervals from future-observation prediction intervals when follow-up context is supplied.
- Adds checks for blocked predictions, extrapolation warnings, Poisson future-count intervals, and logistic Bernoulli outcome framing.
- Preserves ordinary model-explanation scoring when no follow-up context is present.
- Validated by the standard WMFM stage workflow with deterministic offline tests and strict package check.
WMFM 0.3.0.002
- Stage 36.1.1 repairs missing follow-up context defaults in WMFM run records.
- Ensures ordinary non-follow-up explanations keep scalar NA follow-up fields rather than zero-length NULL fields.
- Preserves the Stage 36.1 follow-up scoring metadata when a follow-up scoring context is supplied.
- Adds regression coverage that raw run records without follow-up context can still be coerced to data frames.
- Validated by the standard WMFM stage workflow with deterministic tests and strict package check.
WMFM 0.2.9.055
- Stage 35.16.7 repairs a deterministic post-processing splice that could produce ungrammatical multiplicative conclusion sentences.
- Converts conclusion fragments such as an inserted conditional unit-change phrase into a complete student-facing sentence.
- Keeps the response-transformation and back-transformation explanation path unchanged while tightening final text cleanup.
- Adds regression coverage for the diamond-style spliced conclusion artefact while preserving numeric values.
- Validated by the standard WMFM stage workflow.
WMFM 0.2.9.054
- Stage 35.16.6 polishes recurring student-facing explanation wording after the response-transformation work.
- Adds prompt guidance to avoid spaced percent signs, hyphenated multiplier phrases, and awkward research-question answer wording.
- Adds deterministic post-processing for 95% formatting, hyphenated multiplier phrases, direct research-question answer wording, and sentence capitalization after deterministic rewrites.
- Adds regression coverage for the diamond-style explanation wording artefacts while preserving numeric values.
- Validated by the standard WMFM stage workflow.
WMFM 0.2.9.053
- Stage 35.16.5 prevents Markdown-escaped dollar signs from leaking into student-facing explanation text.
- Adds prompt guidance telling the model not to write escaped currency symbols such as backslash-dollar amounts.
- Adds deterministic post-processing so any literal escaped dollar signs are displayed as ordinary dollar signs without changing the numeric values.
- Adds regression coverage for escaped-dollar cleanup and debug-rule reporting.
- Validated by the standard WMFM stage workflow.
WMFM 0.2.9.052
- Stage 35.16.5 prevents Markdown-escaped dollar signs from leaking into student-facing explanation text.
- Adds prompt guidance telling the model not to write escaped currency symbols such as backslash-dollar amounts.
- Adds deterministic post-processing so any literal escaped dollar signs are displayed as ordinary dollar signs without changing the numeric values.
- Adds regression coverage for escaped-dollar cleanup and debug-rule reporting.
- Validated by the standard WMFM stage workflow.
WMFM 0.2.9.050
- Stage 35.16.4 synchronizes the formula left-hand side to the selected derived response variable whenever derived response metadata is available.
- Preserves the existing right-hand side while ensuring stale inline response expressions no longer control the fitted response.
- Keeps transformation metadata as the source of truth for response-scale interpretation and back-transformation.
- Adds deterministic regression coverage for stale left-hand sides and arbitrary derived response names.
- Validated by the standard WMFM stage workflow.
WMFM 0.2.9.049
- Stage 35.16.3 repairs derived-response formula synchronization after response selection.
- Resynchronises the model formula when a user selects a stored derived response variable such as
logPrice.
- Replaces matching inline left-hand-side transformations such as
log(price) with the recorded derived variable name.
- Keeps existing derived-variable metadata connected to the fitted model and back-transformation payload.
- Adds an offline regression check for the response-selection observer.
WMFM 0.2.9.048
- Stage 35.16.2 repairs response-transformation wording and interval formatting regressions.
- Allows prompt formatting to keep working when anchored baseline confidence interval bounds are unavailable.
- Omits unavailable interval bounds from prompt lines instead of failing validation.
- Repairs malformed unit-change text such as
Each an increase of one unit... into natural phrasing such as Each additional carat....
- Keeps the narrow-confidence-interval precision behavior introduced in Stage 35.16.
WMFM 0.2.9.045
- Stage 35.15 keeps stored derived response variables synchronized with the model formula.
- Replaces a matching inline response transformation on the formula left-hand side with the selected derived response variable name.
- Preserves the existing right-hand side, so examples such as
log(price) ~ log(carat) become logPrice ~ log(carat) after logPrice is selected.
- Keeps derived-response metadata connected to fitted models so later back-transformation logic can use the stored transformation record.
- Adds offline tests for formula substitution and non-matching formula preservation.
WMFM 0.2.9.044
- Stage 35.14.1 polishes multiplicative wording for response back-transformation explanations.
- Steers original-response-scale multiplier phrasing away from awkward
multiplies by wording and toward is multiplied by or times as high wording.
- Adds deterministic cleanup for malformed inserted fragments such as
meaning If ... is associated with.
- Avoids prompting the LLM to state both multiplier and equivalent percentage-change wording unless percentages are specifically requested.
- Adds offline tests for the prompt guidance and post-processing cleanup.
WMFM 0.2.9.043
- Stage 35.16.1 repairs response-scale formatting after Stage 35.16.
- Allows prompt quantity formatting to handle missing confidence interval bounds without failing model-prompt construction.
- Fixes malformed each-increase wording cleanup so phrases such as "Each an increase of one unit" are rewritten for student-facing explanations.
- Keeps the response back-transformation and interval precision changes from Stage 35.16.
WMFM 0.2.9.042
- Stage 35.13 tightens response back-transformation prompt control for derived response variables.
- Keeps Both mode focused on original-response-scale fitted values and effects while retaining only brief model-scale context.
- Suppresses transformed-scale formatted quantity blocks when deterministic original-response-scale quantities are available.
- Adds prompt guidance to avoid expected-log-response and log-scale effect wording in student-facing explanations.
- Adds offline tests for Both and Original response-scale prompt behaviour.
WMFM 0.2.9.041
- Stage 35.12 tightens response back-transformation prompt control for derived response variables.
- Keeps Both mode focused on original-response-scale fitted values and effects while retaining only brief model-scale context.
- Suppresses transformed-scale formatted quantity blocks when deterministic original-response-scale quantities are available.
- Adds prompt guidance to avoid expected-log-response and log-scale effect wording in student-facing explanations.
- Adds offline tests for Both and Original response-scale prompt behaviour.
WMFM 0.2.9.040
- Stage 35.12 tightens response back-transformation prompt control for derived response variables.
- Keeps Both mode focused on original-response-scale fitted values and effects while retaining only brief model-scale context.
- Suppresses transformed-scale formatted quantity blocks when deterministic original-response-scale quantities are available.
- Adds prompt guidance to avoid expected-log-response and log-scale effect wording in student-facing explanations.
- Adds offline tests for Both and Original response-scale prompt behaviour.
WMFM 0.2.9.039
- Stage 35.11 adds deterministic response back-transformation payloads for derived response variables.
- Supplies original-response-scale fitted values and safe multiplicative effects to the explanation prompt when an invertible response transformation is available.
- Respects the response-transformation mode selector so model-scale-only explanations do not include original-scale payloads.
- Keeps predictor-only transformations as metadata without treating them as response back-transformations.
- Adds offline tests for available, not-requested, and predictor-only response transformation paths.
WMFM 0.2.9.038
- Stage 35.10 marks documented s20x package data sets as having data context on the Model tab.
- Treats s20x help files as built-in data context so package data sets display the green Provided status.
- Keeps uploaded-data context behaviour unchanged and preserves the existing data description modal for package data.
WMFM 0.2.9.037
- Stage 35.9.20 removes the empty sortable title gap from the Model tab variable buckets.
- Hid the empty rank-list title element generated by the sortable widget so bucket contents sit directly under the custom headers.
- Preserved the existing bucket-header alignment and did not change modelling or transformation behaviour.
WMFM 0.2.9.036
- Stage 35.9.19 tightens spacing inside the variable bucket containers on the Model tab.
- Reduced sortable bucket container padding so the variable, factor, and numeric headers sit closer to the top of their boxes.
- Preserved the existing bucket-header alignment and did not change modelling or transformation behaviour.
WMFM 0.2.9.035
- Stage 35.9.18 tightens spacing inside the variable bucket containers on the Model tab.
- Reduced sortable bucket container padding so the variable, factor, and numeric headers sit closer to the top of their boxes.
- Preserved the existing bucket-header alignment and did not change modelling or transformation behaviour.
WMFM 0.2.9.034
- Stage 35.9.17 tightens spacing inside the variable bucket containers on the Model tab.
- Reduced sortable bucket container padding so the variable, factor, and numeric headers sit closer to the top of their boxes.
- Preserved the existing bucket-header alignment and did not change modelling or transformation behaviour.
WMFM 0.2.9.033
- Stage 35.9.16 fixes source-tree path lookups in tests so strict tests and R CMD check can run from different working directories.
- Added a test helper for locating project files without relying on brittle ../../ relative paths.
- Updated source-file and README guard tests to use the shared helper while keeping tests offline and deterministic.
Some older entries were reconstructed from completed-stage notes where exact historical build numbers were not recoverable from the available source archive. Reconstructed grouped sections use .9000 version headings and describe feature areas rather than every individual build attempt.
WMFM 0.2.9.031
- Stage 35.9.14 keeps the Model tab CSS source readable after converting escaped newlines to real source newlines.
- Repairs brittle UI tests so they check durable CSS selectors and properties rather than exact newline formatting.
- Preserves the compact variable-bucket and fit-control layout changes from the preceding UI polish work.
- Leaves model fitting, transformation handling, and public APIs unchanged.
- Validates with the standard WMFM stage workflow.
WMFM 0.2.9.029
- Stage 35.9.12 compacts the Model tab so the formula box is easier to see on laptop screens.
- Reduces excess vertical padding above the Variables, Factors, and Numeric bucket headers while keeping their alignment intact.
- Reduces the optional follow-up accordion padding without changing its behaviour.
- Leaves model fitting, transformation handling, and public APIs unchanged.
- Validates with the standard WMFM stage workflow.
WMFM 0.2.9.028
- Stage 35.9.11 tunes the vertical spacing above the Model tab variable bucket headers.
- Keeps the shared Variables, Factors, and Numeric bucket-header alignment introduced in Stage 35.9.10.
- Leaves variable bucket widths, button placement, response transformation controls, and data context controls unchanged.
- Validates with the standard WMFM stage workflow.
WMFM 0.2.9.027
- Stage 35.9.10 aligns the Model tab variable bucket headers by giving Variables, Factors, and Numeric the same header wrapper.
- Keeps the Add variable button inside the Variables header while preventing it from shifting that header out of line with the other buckets.
- Updates the UI layout test to check the shared bucket-header structure rather than exact visual coordinates.
- Removes the stale stage-named UI test during installation if it is still present from earlier repairs.
- Validates with the standard WMFM stage workflow.
WMFM 0.2.9.026
- Stage 35.9.9 relaxes the Model tab UI layout test so it checks durable controls rather than rendered text order.
- Removes brittle substring-window assertions for response transformation and interaction controls.
- Keeps the behavioural checks that the response transformation choices, interaction UI, add-variable button, and data-context status controls exist.
- No app behaviour or public API changes are introduced in this repair.
- Validates with the standard WMFM stage workflow.
WMFM 0.2.9.022
- Stage 35.9.5 polishes the Model tab layout for derived variables, response-transformation controls, interactions, and data-context status.
- Shortens the data-context status labels to Provided and Not provided and keeps the status beside the edit button.
- Aligns the variable bucket headers and keeps the Add variable button separated from the Variables heading.
- Aligns the response-transformation and interactions controls so their headings and input boxes start on matching rows.
- Updates UI tests to check structural layout intent rather than brittle screenshot-specific CSS details.
- Validates with the standard WMFM stage workflow.
WMFM 0.2.9.021
- Stage 35.9.4 polishes the Model tab layout for derived variables, response-transformation controls, interactions, and data-context status.
- Shortens the data-context status labels to Provided and Not provided and keeps the status beside the edit button.
- Aligns the variable bucket headers and keeps the Add variable button separated from the Variables heading.
- Aligns the response-transformation and interactions controls so their headings and input boxes start on matching rows.
- Updates UI tests to check structural layout intent rather than brittle screenshot-specific CSS details.
- Validates with the standard WMFM stage workflow.
WMFM 0.2.9.019
- Stage 35.9.2 relaxes the data-context UI regression test so it checks structure rather than an exact CSS fragment.
- Keeps the test focused on the intended layout: the data-context button and status are rendered in the same inline control container.
- Avoids brittle expectations such as a required white-space CSS declaration, so later UI layout changes are less likely to break unrelated tests.
- No user-facing behavior changes are intended.
- Validates with the standard WMFM stage workflow.
WMFM 0.2.9.017
- Stage 35.9 keeps the derived-variable teaching-summary UI test offline by disabling explanation generation for its model fixture.
- Updated the app-model-explanation UI test to fit the model, build the audit, and render the teaching summary without contacting a chat provider.
- Preserved normal runModel() behaviour by leaving explanation generation enabled by default for ordinary use.
- Reduced slow and CRAN-hostile test paths by avoiding unnecessary LLM prompt generation in this deterministic test.
- Validates with the standard WMFM stage workflow.
WMFM 0.2.9.016
- Stage 35.8 keeps variable-transformation tests offline by allowing runModel() to skip explanation generation.
- Added a generateExplanation argument so deterministic tests can fit models, build audits, and inspect metadata without contacting a chat provider.
- Updated variable-transformation tests to disable explanation generation and added a guard test that fails if a chat provider is requested.
- Preserved normal runModel() behaviour by leaving explanation generation enabled by default for ordinary use.
- Validates with the standard WMFM stage workflow.
WMFM 0.2.9.015
- Stage 35.7 moves the Add variable button into the Variables bucket header so derived-variable creation is colocated with the variable list.
- Shortens the response transformation selector labels and adds an info icon explaining the model-scale, original-scale, and both-scales options.
- Moves the response transformation selector up beside the interaction header to reduce unused vertical space on the Model tab.
- Places the data context status beside the data context button for a more compact response-selection row.
- Validates with the standard WMFM stage workflow.
WMFM 0.2.9.014
- Stage 35.6 moves the Add derived variable button onto the same row as the Interactions optional header on the Model tab.
- Adds a response transformation handling selector with model-scale, original-scale, and both-scales options for later response back-transformation work.
- Stores the selected response transformation mode on fitted model metadata without changing prediction, confidence interval, or explanation calculations yet.
- Keeps predictor-derived-variable transformations distinct from response back-transformation handling.
- Validates with the standard WMFM stage workflow.
WMFM 0.2.9.013
- Stage 35.5.1 repairs a stale no-transformation teaching-summary test expectation.
- Keeps the refined student-facing no-transformation wording introduced in Stage 35.5.
- Confirms that derived-variable evidence rows remain conditional on recorded derived-variable transformations.
- Preserves the metadata-only scope with no prediction, confidence interval, or automatic back-transformation behaviour changes.
- Validates with the standard WMFM stage workflow.
WMFM 0.2.9.011
- Stage 35.4.5 repairs the derived-variable teaching-summary test regressions left by the previous repair.
- Restores the stable checklist shape for models that do not use derived variables while still showing a derived-variable row when transformation records are present.
- Suppresses expected perfect-fit warnings in the new derived-variable teaching-summary tests so strict warning-as-error validation remains focused on real regressions.
- Preserves the metadata-only scope with no prediction, confidence interval, explanation text, or automatic back-transformation behaviour changes.
- Validates with the standard WMFM stage workflow.
WMFM 0.2.9.005
- Stage 35.3.1 repairs the derived-variable transformation helper wiring used by the deterministic explanation audit.
- Add the missing audit-table helper and variable-transformation prompt block so existing explanation-audit tests can run.
- Preserve the Stage 35.3 metadata-only scope with no prediction, confidence interval, explanation text, or automatic back-transformation behaviour changes.
- Validate through offline explanation-audit and variable-transformation tests plus the standard WMFM stage workflow.
WMFM 0.2.9.003
- Stage 35.2 carries derived-variable transformation records from the creation registry into fitted model state.
- Add helpers that select formula-relevant transformation records and attach them to fitted models using a dedicated WMFM attribute.
- Extend runModel() and wmfmModel objects so command-line workflows can preserve the same transformation metadata used by the app.
- Keep the change metadata-only: no prediction, confidence interval, explanation, or automatic back-transformation behaviour is changed yet.
- Validate through offline transformation-registry tests and the standard WMFM stage workflow.
WMFM 0.2.9.002
- Stage 35.1.1 repairs derived-variable transformation evaluation for the Stage 35.1 metadata registry.
- Add log10 and arithmetic operators to the safe derived-variable evaluation environment so recognised expressions can be evaluated before metadata is recorded.
- Preserve the conservative transformation metadata design introduced in Stage 35.1 without changing model fitting, prediction, confidence interval, or back-transformation behaviour.
- Validate through the existing offline variable-transformation tests and the standard WMFM stage workflow.
WMFM 0.2.8.012
-
Recorded the June 2026 branch audit: backup_sync and backup-before-sync are retained as recovery/archive branches, and grading-scoring-revision was audited and tagged as archived.
-
Confirmed that no significant unmerged WMFM functionality was identified from the Stage 32 branch investigation.
-
No merge or cherry-pick action is required for the audited historical branches.
-
Complete the Stage 33 example-coupling close-out with low-risk documentation cleanup only.
-
Replace remaining built-in-example wording in internal helper documentation with neutral outcome and predictor examples.
-
Add a close-out note documenting the durable domain-agnostic regression coverage and final audit command.
-
Preserve production interpretation behavior while keeping NEWS entries version-numbered and newest first.
-
Validate by the standard WMFM stage workflow.
WMFM 0.2.8.011
- Repair intercept-only research-question normalization after the domain-specific prompt cleanup.
- Treat sample data and data sample as generic sample-level wording before converting to relevant-setting language.
- Preserve setting-generic wording without reintroducing course-specific prompt rules.
- Validate the repair through the standard stage script workflow.
WMFM 0.2.8.009
- Remove attendance-specific semantic factor matching from production prediction parsing.
- Keep follow-up prediction parsing based on explicit model variable names and fitted factor levels.
- Replace example-specific binomial documentation examples with generic response-level wording.
- Extend domain-agnostic regression coverage for prediction helpers and binomial notation helpers.
WMFM 0.2.8.008
- Rebuild
NEWS.md with a purpose section at the top.
- Normalize top-level entries to WMFM version-number headings rather than stage headings.
- Reorder package news from newest to oldest and group unrecoverable older stage history under reconstructed version sections.
- Preserve available historical change notes while documenting reconstruction limits.
WMFM 0.2.8.007
- Replace course-specific equation-prompt examples with neutral symbolic examples.
- Keep the teaching data-context placeholder wording intact while avoiding new production coupling.
- Remove course-specific follow-up detection cues from production question handling.
- Support generic prediction requests written as variable-is-level conditions, such as what happens if group is B.
- Extend domain-agnostic regression coverage for prompt text and generic prediction wording.
WMFM 0.2.8.003
- Rename the temporary coupling regression test to a permanent domain-agnostic behaviour test.
- Replace remaining domain-specific examples in production prompt and scoring-description text with generic examples.
- Generalize deterministic parser regression coverage so anti-coupling checks no longer depend on earthquake or diamond examples.
- Preserve built-in example content in example fixtures and focused example tests only.
WMFM 0.2.8.002
- Remove example-specific production handling from selected follow-up classification and prediction helpers.
- Replace magnitude-specific unit-change cleanup with predictor-agnostic unit-change phrasing.
- Add regression tests for generic named-unit requests and model-level factor matching.
- Preserve example-specific wording in tests and example fixtures only.
WMFM 0.2.7.9000
This section reconstructs Stage 31 and Stage 32 development history from the available package news. Exact build numbers for these entries were not recoverable from the source archive.
- Reworked the log-log polishing repair so production code uses only generic log-log wording patterns.
- Removed example-specific post-processing for particular variable names from the pending repair.
- Added generic coverage for raw log-scale estimate sentences, unsupported doubling examples, and coefficient-scale uncertainty leakage.
- Kept anchored fixed-unit follow-up wording while preserving percentage-change interpretation for log-log models.
- Refined log-log unit-change follow-up wording so fixed carat changes keep the reference point and use carat units.
- Tightened log-log explanation guidance to avoid raw coefficient estimates and unsupported doubling examples in student-facing text.
- Added post-processing coverage for model-estimate sentence variants seen in log-log diagnostics.
- Preserved interval dash formatting while keeping log-log uncertainty on the percentage-change scale.
- Allowed the log-log percentage-language post-processing rule to bypass numeric-token preservation while keeping the guard active for other rules.
- Fixed adjusted-estimate confidence interval rewrites so coefficient-scale wording can be converted to percentage-change wording.
- Strengthened log-log guidance so student-facing explanations use percentage-change interpretations.
- Added post-processing for recurring raw log-predictor and log-response coefficient wording.
- Added deterministic tests for percentage-change wording and log-scale leakage cleanup.
- Standardised compact confidence interval labels in student-facing post-processing.
- Rewrote additional log-scale mechanism wording toward proportional-change language.
- Expanded deterministic tests for compact interval labels and log-scale wording leakage.
- Updated adjustment and contrast text to prefer
95% confidence interval over compact 95% CI wording.
- Polished deterministic adjustment-comparison follow-up wording so student-facing answers no longer begin with a bare yes.
- Restated the adjusted-versus-weight-only conclusion in natural language before the caution about in-sample model comparison.
- Updated log-log tests to require improved adjustment-comparison wording and to keep technical diagnostics out of the appended student answer.
- Added a download button for the current student-facing Model plots view.
- Exported the selected observed-vs-fitted or residuals-vs-fitted plot as a deterministic PNG file.
- Reused the same plot helper so smoothing and density-aware point display are preserved in downloaded plots.
- Kept model-plot downloads separate from model explanations and avoided diagnostic or assumption-check wording.
- Added deterministic tests for download filenames, UI wiring, and server wiring.
- Added density-aware point transparency to student-facing model plots without adding new plot types.
- Kept the alpha choice automatic so students do not need to tune plotting parameters.
- Applied lighter points to larger datasets while preserving the existing red reference lines and blue smoother behaviour.
- Added concise student-facing wording that explains lighter points for larger datasets without diagnostic framing.
- Added deterministic tests for alpha thresholds, plot layer alpha values, and cautious wording.
- Added an optional blue smooth trend to linear-model observed-vs-fitted and residuals-vs-fitted model plots.
- Kept the smoother automatic, with no user control over the smoothing parameter.
- Drew plot layers in the order points, blue smoother, then red reference line so the reference remains visible.
- Kept the smoother unavailable for unsupported model families and safely ignored for GLM plots.
- Added deterministic tests for smoother layers, UI controls, and cautious student-facing wording.
WMFM 0.2.6.9000
This section reconstructs Stage 30 development history from the available package news. Exact build numbers for these entries were not recoverable from the source archive.
- Styled the Model plots information control to match the existing provider-settings help control and open as a small modeless details panel.
- Kept the teaching note next to the Model plots heading instead of rendering it as a full-width visible block.
- Added deterministic UI tests for the Model plots information control classes and text.
- Replaced the Model plots hover-only information icon with an expandable information control so the teaching note is visible when clicked.
- Preserved line styling and developer-tab ordering changes.
- Added deterministic UI tests for Model plots information text.
- Added the Model plots teaching note as an information icon next to the tab heading.
- Made linear and Poisson reference lines thicker so they remain visible over the points.
- Used a dashed logistic trend curve on the observed-outcome versus predicted-probability plot.
- Moved the developer Scoring and Grading tab before Settings so developer tabs stay at the end.
- Moved the Model plots tab immediately after Model Explanation and kept the existing Plot tab next to it.
- Drew red reference lines after points for linear and Poisson model plots so the guide remains visible.
- Added a red logistic trend curve to the observed-outcome versus predicted-probability plot.
- Extended offline tests for tab ordering and plot-layer behavior.
- Added a short deterministic summary sentence above each Model plots figure.
- Reported the number of plotted observations and the fitted-value or residual scale used by the selected plot.
- Kept summary text student-facing and separate from diagnostic pass/fail language.
- Extended offline tests for the summary helper and new UI output binding.
- Hardened the Model plots tab for unsupported fitted model families so unavailable choices do not trigger plotting errors.
- Added model-aware plot metadata and ggplot labels based on the fitted response variable.
- Kept student-facing wording focused on visual summaries and missing structure rather than assumption checking.
- Extended offline tests for unsupported models and model-aware plot labels.
- Added a student-facing Model plots tab for fitted models.
- Added deterministic observed-vs-fitted and residuals-vs-fitted model-plot helpers.
- Supported lm, binomial logistic glm, and poisson glm model-plot data on appropriate fitted-value scales.
- Added short teaching notes that frame plots as visual summaries rather than assumption checks.
- Added offline tests for model-plot data, labels, residual types, and cautious UI language.
WMFM 0.2.5.017
- Make the Provider settings information icon expandable/clickable by replacing the title-only tooltip with an inline details panel.
- Keep provider configuration guidance close to the Provider settings heading without showing the longer text permanently on the settings page.
WMFM 0.2.5.016
- Move provider-setting guidance into an information tooltip beside the Provider settings heading so the settings page is less cluttered.
- Remove the redundant current-provider text and rely on the active provider selection box as the visible source of truth.
- Remove the Apply provider button so changing provider selection immediately updates and saves the non-secret provider preference.
- Show configuration guidance when a selected provider is not usable: Ollama uses a modal configuration prompt, while commercial providers use a warning notification when the required API key is missing.
WMFM 0.2.5.015
- Restore password protection for the maintainer-only developer-mode toggle while preserving the local developer-mode preference after a successful unlock.
- Keep developer-mode unlock quiet by avoiding the previous success notification.
- Render explanation prompt diagnostics through the same accordion construction as the student-facing support panels.
- Remove the duplicate standalone diagnostics heading from the diagnostics panel content so the accordion heading provides the visual affordance.
WMFM 0.2.5.012
- Repair
NEWS.md so every top-level news section has a version-like heading that can be parsed by R CMD check.
- Keep the reconstructed pre-Stage 29 history in the package news without using non-version section titles.
WMFM 0.2.5.011
- Persist developer-mode enabled/disabled state in the local WMFM config when the maintainer-only developer-mode UI is exposed.
- Persist provider preferences whenever the selected provider or non-secret provider settings change.
- Avoid Ollama model discovery when the active or preferred provider is not Ollama.
- Add the initial
NEWS.md file reconstructed from completed stage notes and the Stage 29 workflow.
WMFM 0.2.5.010
- Hide developer-mode controls unless
WMFM_SHOW_DEVELOPER_MODE=1 is set in the local R environment.
- Document developer-mode setup in
dev/developer-mode.md rather than in the public-facing README.
- Add README guidance for configuring an AI provider before first use.
- Clarify that commercial API providers require paid API credits and API keys in
.Renviron; a ChatGPT Plus subscription is not sufficient for OpenAI API use.
- Add startup guidance when no usable AI provider has been configured.
- Repair provider-config tests so blank options fall back to package defaults.
WMFM 0.2.5.008
- Replace the developer-mode lock/unlock buttons with a compact slider-style toggle.
- Make the developer toggle visually distinct when on or off, without showing a checkbox tick.
- Update tests to target the custom toggle markup rather than the previous Shiny
checkboxInput() implementation.
- Continue separating provider settings from developer-mode state.
WMFM 0.2.5.006
- Introduce the first version of the developer-mode toggle UI.
- Keep developer mode behind a local opt-in path for maintainers.
- Remove the unlocked developer-mode notification that became redundant once the toggle showed state directly.
- Repair tests for the new red/green toggle styling and startup observer wiring.
WMFM 0.2.5.004
- Correct the Stage 29 build-number recovery path so subsequent Stage 29 work resumes from the intended
0.2.5.xxx sequence.
WMFM 0.2.5.003
- Add
scripts/checkRStringEscapes.R, a fast preflight scanner for suspicious R string escapes in source and tests.
- Add offline tests for the string-escape scanner.
- Update generated stage runners so the escape scan runs before the slower documentation, test, and check workflow.
- Change the runner workflow so failed build attempts still consume the next
0.2.5.xxx build number.
WMFM 0.2.5.001
- Polish UI details that were not specific to log-log modelling.
- Make the optional follow-up placeholder shorter and visually lighter.
- Make explanation prompt diagnostics look and behave like the other accordion sections.
- Begin provider-preference and developer-mode persistence work.
- Harden Ollama discovery so failures are handled gracefully and tests do not require a real Ollama service.
- Rename lasting provider test files to remove stage numbers from durable test names.
WMFM 0.2.4.9000
This section reconstructs earlier development history from completed-stage notes. It is intentionally grouped by feature area rather than by exact release number.
- Add and refine log-log model support, including power-law interpretation and Diamonds II, Diamonds III, and Diamonds IV examples.
- Improve log-log plotting and explanatory guidance for transformed predictors and responses.
- Add deterministic support for adjustment-variable follow-up questions, adjustment comparisons, and follow-up scaffolding.
- Build the structured follow-up-question architecture for predictions, clarification, bounded inputs, and model-aware parsing.
- Add deterministic linear-model and GLM follow-up prediction support.
- Add support for unit-change questions and natural-language parsing of requested predictor changes.
- Add GLM extrapolation policy, diagnostics, and follow-up framing repairs for logistic and Poisson models.
- Add adjustment-variable model specification, prompt payloads, and explanation behaviour.
- Harden adjustment-variable regression handling and interaction guardrails.
- Inventory and progressively refactor app-server responsibilities toward smaller server helper modules and thinner orchestration in the main app server.
- Add diagnostic reports and planning notes for explanation and scoring development.
- Continue GLM explanation work and logistic interaction prompt payload repairs.
- Improve confidence-interval and explanation payload handling for model-specific outputs.
- Improve answer selection, explanation cleanup, and prompt validation.
- Add prompt input audits and prompt/explanation integration refinements.
- Add teaching-summary construction, data contracts, and validation checklists.
- Add a developer-mode feedback system for scoring and explanation diagnostics.
- Define the explanation-audit contract and audit inventory.
- Reorganize package source files into feature-oriented modules.
- Improve data-context handling, loading progress feedback, UI cleanup, and pedagogical stability planning.