Revision history for Concierge-Users

v0.9.3  2026-07-16
    - Meta.pm: remove 'required' flag from the created_date system field.
      It is set internally by the service layer, not collected from
      user input, so callers consulting field hints should not be told
      it is required.

v0.9.2  2026-06-08
    - Remove 'system' attribute entirely: drop from field definitions,
      get_field_hints(), config_to_yaml() YAML output, POD, __DATA__
      template, and tests; system fields are identifiable via
      user_system_fields() or field name
    - Fix Field Overrides POD: add last_login_date to protected fields list
    - Fix user_system_fields POD: add last_login_date to listed return values
    - Fix README version (was stale at v0.7.1)
    - Fix config_to_yaml() show_config() bug: format_as was omitted from
      generated YAML (v0.9.1 fix, documented here)
    - Fix init_field_meta() protection logic: last_login_date added to
      protected field set; format_as and label now pass through on all
      protected fields without warning (v0.9.1 fix, documented here)

v0.9.1  2026-06-05
    - Add format_as test coverage to t/06-field-metadata.t: built-in
      convention values, app-supplied tokens via app_fields, field_overrides
      pass-through, and missing format_as returns undef

v0.9.0  2026-06-05
    - get_field_hints: add format_as to returned hashref
    - Add format_as property to all built-in field definitions (core,
      standard, system); enum fields use 'options', others use the
      type-appropriate convention (text, boolean, date, datetime)
    - format_as is not validated by Concierge; apps may supply their own
      native format codes via app_fields or field_overrides during setup
      and retrieve them unchanged via get_field_hints()
    - Conventional format_as values: text, options, boolean, number,
      date, datetime, time
    - Fix stale POD VERSION sections in Database, File, and YAML backends
      (were v0.8.2, now in sync at v0.9.0)

v0.8.5  2026-05-31
    - Refactor: replace field_use => 'system' with system => 1 boolean on
      last_mod_date and created_date; remove field_use => 'identity' from
      user_id (identity field identified by name only)
    - Move last_login_date from Standard Fields (12) to System Fields (3);
      system fields bypass validation
    - get_field_hints: returns system => 1/0 for all fields
    - config_to_yaml: emits system: 1 instead of field_use: system

v0.8.4  2026-05-31
    - Fix version consistency: bump Database, File, and YAML backend modules
      to v0.8.4 (were not bumped during v0.8.3 release)
    - Update Makefile.PL provides section to v0.8.4

v0.8.3  2026-05-27
    - get_field_hints: add default, null, and validate_as to returned hashref;
      document required semantics (service-layer, not app-level conditional)
    - Enum options: support value:Label syntax; v_options and default detection
      strip :Label suffix to extract bare stored value
    - show_default_config / show_config: return service hashrefs
      { success, config, ... } instead of printing to STDOUT
    - Separate data type from operational role: user_id type=>text +
      field_use=>identity; last_mod_date / created_date type=>timestamp +
      field_use=>system
    - Add %Concierge::Users::Meta::field_types with the eight canonical data
      types; moniker and name remain in type_validator_map as validate_as
      targets only
    - config_to_yaml: emit field_use when present
    - __DATA__: fix inconsistent tab indentation on validate_as lines

v0.8.2  2026-05-25
    - Replace real personal data in examples/__DATA__ with mock data
      (fictional names, 555- phone numbers, @example.com addresses)

v0.8.1  2026-05-25
    - Expand test coverage across all test files

v0.8.0  2026-02-15
    - Fixed distribution issue with MANIFEST.SKIP

v0.7.4 2026-02-12
    - Rebuilt tarball with GNU tar (fixes PaxHeader issue on CPAN)

v0.7.1 2026-02-12
    - Fixed use of Capture::Tiny in tests

v0.7.1 2026-02-11
    - Documentation fixes: include_standard_fields default behavior, core enum override via field_overrides
    - Moved scalability benchmarks to xt/ author tests

v0.7.0 2026-02-11
    - Initial release to CPAN
    - SQLite, CSV/TSV, and YAML storage backends
    - Field validation with multiple validators (email, phone, date, timestamp, boolean, enum, moniker, name)
    - Field overrides and custom application fields
    - Automatic data archiving on re-setup
    - Service layer pattern with structured hashref returns
    - Comprehensive test suite (115 tests)
v0.7.2 2026-02-11
    - Improved documentation