Changes in version 0.2.1 (2026-07-16) CRAN resubmission fixes - Removed "for R" from the package description - Package names now in single quotes in DESCRIPTION ('shiny', 'SHA-256') - Shiny examples wrapped in if(interactive()){} per CRAN policy Changes in version 0.2.0 New functions - log_note() — log a free-text annotation or analytical decision as a tamper-evident NOTE entry. Mandatory-reason enforced and included in the hash chain. - log_signature() — apply an electronic signature per 21 CFR Part 11 §11.100/§11.200. Signer identity is resolved from the session user; entries covered is captured automatically. - filter_log() — query log entries as a data.frame by type, user, action, or date range. Works directly on .rlog file paths without an active session. - as.data.frame.regulog() — S3 method to convert a regulog object to a flat data frame, one row per entry (genesis record excluded). - rl_read() — explicit, logged read of any data source. Records the reader function, resolved file path, row count, and column count as a data_read ACTION entry. Path is resolved by argument name (file, path, data_file, input), falling back to the first unnamed argument — correct even when arguments are supplied out of position. - with_log() — scoped logging for a code block. Provides a local read() binding tied to the supplied log. Each call is isolated via lexical scope — concurrent calls across Shiny sessions never interfere, and errors inside the block propagate normally without corrupting previously logged entries. Validation - IQ/OQ/PQ qualification scripts updated to v0.2: - OQ-015 to OQ-024c: tests for log_note(), log_signature(), filter_log(), as.data.frame.regulog(), rl_read(), and with_log(), including concurrent-session isolation - PQ-006: annotated clinical analysis workflow with notes and signature - PQ-007: regulatory inspector query workflow using filter_log() - RTM extended with rows covering 21 CFR Part 11 §11.100/§11.200, annotation trail, data read logging, and audit trail query interface. Documentation - Package-level documentation with complete workflow, entry type reference, and regulatory coverage table. - Three vignettes: getting-started, hash-chain, shiny-integration. Changes in version 0.1.0 - Initial release. - regulog_init(), log_action(), log_change() — core audit logging. - verify_log() — SHA-256 hash chain verification. - export_audit_trail() — CSV and JSON export with optional signing. - regulog_shiny_init(), regulog_observer() — Shiny integration. - IQ/OQ/PQ validation suite (IQ-001–009, OQ-001–014, PQ-001–005).