- Added more complex date/time parsing for Time objects. This includes
the ability to provide times in epoch format and several others with
the ability to provide inline timezone offsets without external
codebase works to convert them. Alongside this I added the ability to
do relative time (ex: [+-]2 hours|minutes|days) (along with the ability
to specify timezone if needed)
- Littered the entire codebase with Log object calls to show state of
everything as the framework does it's stuff. Just needs Log to be
configured in the codebase consuming my shard
- removed flag collection for use in displaying all flags in the app
help output. So it will only show global flags & subcommands
- Changed CommandNode#get(short:) & get(long:) & flag?(arg : String)
methods to check @flags -> @commands.@flags -> CliGen::GLOBAL_FLAGS
when finding flags. Making it possible to not PRINT out the flag
output but still be able to set values to a child flag recursively.
anno[:validate] was always nil; validation procs were never wired
into Flag(T).new. Correct key is :validation to match the field
name set by the argument macro in command/argument.cr.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ATnpoEGXj4RyuMoBLGWcjs
- .claude/settings.json: project-level Claude Code config
- .gitignore: ignores test binary, build artifacts, shards cache, tags
- README.md: expanded with usage example, dev commands, and AI assistance
disclosure (Claude used for review/bug-checking, not code generation)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ATnpoEGXj4RyuMoBLGWcjs