Releases: coko7/boat-cli
v0.9.0
What's changed?
feat(init): add init command and tag filtering for list/report by @coko7 in #6
- add
boat initcommand that outputs a default config to stdout, useful
for bootstrapping or recovering from a broken config. Improve error
handling when config fails to load by printing a helpful message
pointing users toboat init - add
--filter-by-tags(-t) flag toFilterActivitiesArgs, applied
in bothlistandreportcommands to restrict output to entries
matching all specified tags (closes #4) - improve
--perioderror messages by replacing the static string with
a formatted help message showing all valid period presets and formats - change default
quick_startin generated config fromfalsetotrue - add comprehensive usage documentation for all commands
Full Changelog: v0.8.0...v0.9.0
v0.8.0: Improve configuration, add new report command, add group_by arguments and more...
What's Changed
Configuration
Added new configuration settings for customizing default command behaviors when no argument provided:
database_path = "/home/<user>/.config/boat/boat.db"
period = "all"
format = "plain"
[commands.new]
auto_start = false
[commands.start]
quick_start = true
[commands.cancel]
confirm = true
[commands.edit]
show_instructions = true
show_activity_definitions = true
confirm = true
[commands.delete]
confirm = true
[commands.list]
period = "month"
group_by = "day"
[commands.report]
period = "day"Commands
- add new command
reportto replacelist --summarymode - update
startcommand to allow to quick start a new activity if given an argument that is not purely a number (can be disabled in config file or with arguments)
boat start 1-> will start tracking time for an existing activity with ID1
boat start 'new activity'-> will create a new activity and start it (same asboat new 'new actvity --start-now) - update sensitive commands (
modify,edit,cancel,delete) to ask user for confirmation by default (can be disabled in config file or with arguments) - remove
querycommand
Args
- add
--group-by(day, week, month, year, none) inlistcommand - remove
--no-groupingargument (now use--group-by=none) - update
--periodargument to accept a date or date range - remove
--dateargument (now merged with--period) - drop support for boundary inclusion '=' in date ranges (the end date is now always included)
- add many 'toggle flags' arguments:
--start-nowand--no-start-nowfornewcommand--confirmand--no-confirmforedit,update,cancelanddeletecommands--with-instructions,--no-instructions,--with-activity-definitions,--no-activity-definitionsforeditcommand
- add support for hiding activity definitions in
editfile by setting--no-activity-definitions
Misc
- refactor and split modules
- improve test coverage (mainly using Claude)
- v0.8: Improve configuration, add new
reportcommand, addgroup_byarguments and more... by @coko7 in #5
Full Changelog: v0.7.0...v0.8.0
v0.7.0
v0.6.1
What's Changed
- refactor: put commands into individual files + add more logging
Full Changelog: v0.6.0...v0.6.1
v0.6.0
What's Changed
feat!: improve list command + UX + tests:
- feat(list): add date range filter and summaries
- support date ranges (
--date) and per-activity summaries in list command. - refactor internals for clearer filtering and output.
- update table output and error handling for new options.
- support date ranges (
- refactor(list,activity): improve data modeling and output formatting
- replace ad-hoc activity/log output logic with SimpleActivity presentation type
- refactor list command to use cleaner models and helpers
- adjust table output to show durations with new format helpers
- improve error message and update test for invalid date input
- test: gen/write more integration tests + improve error handling on some cmds
Full Changelog: v0.5.0...v0.6.0
v0.5.0
What's Changed
chore: refactor and tests (#2):
-
refactor(cli,models,commands,utils): modularize activity logic, update list cmd, and reorganize utils:
- move activity command logic into src/commands/activity.rs for improved modularity
- remove activity_with_log.rs, introduce activity_log.rs with a focused log model
- refactor list and log printing logic for consistency; improve JSON and table output
- enhance CLI: add better period/date filters, clarify subcommands and argument validation
- split utils.rs into utils/date.rs, add utils/mod.rs and placeholder utils/common.rs
- add tags to PrintableActivity, improve models and row output
- simplify main.rs by delegating logic to command modules
- BREAKING CHANGE: activity listing model and CLI argument structure have changed
-
test(cli): add comprehensive CLI integration and unit tests:
- add integration tests covering activity flow, error scenarios, and CLI output validation using assert_cmd, predicates, and tempfile.
- add unit tests for formatting, parsing, and edge case handling in models and utility modules.
- fix command argument handling and config injection in tests to use
BOAT_CONFIGenv var. - update error message assertions for compatibility with current clap output.
- ensure robust duration formatting and corresponding expectation in tests.
Full Changelog: v0.4.0...v0.5.0
v0.4.0
What's Changed
refactor(cli,models,commands): modularize activity logic, update list handling, and reorganize utils:
- move activity-related command logic into
src/commands/activity.rs - update CLI commands and subcommands for improved UX, including better period/date filtering, richer aliases, and input validation
- refactor list command and printable logic; optimize data flow for listing activities, logs, and tags
- Update models to add tags to activities, rework how activity rows are rendered
- Clean up
main.rscommand dispatch and remove obsolete local implementations, using refactored modules instead - various small improvements and internal API changes
Full Changelog: v0.3.0...v0.4.0
v0.3.0
What's Changed
refactor(cli,models,config): modularize commands, update config to use db, and modernize listing system:
- replace monolithic CLI and models with modular structure (new commands/* and models/* modules)
- switch config from CSV-based to database-based; add setup of config/database paths and improve config initialization
- update list command to use subcommands (logs/activities/tags), wip support for advanced filtering/formatting
- refine help/usage output text
- clean up main.rs for new flow and generalized configuration/command bootstrapping
- add date utilities for period filtering (today, week, month, etc.)
Full Changelog: v0.2.1...v0.3.0
v0.2.1
What's Changed
- chore: add
bundled-sqlitefeature + setupboat halias forboat help
Full Changelog: v0.2.0...v0.2.1
v0.2.0
What's Changed
- use tables with pretty-printed output (tabular + yansi)
- add some more print messages
- start working on period select for list
- re-enable config cmd but not implemented yet
- remove
clap_verbosity_flagfor now as it seems to cause some issues
Full Changelog: v0.1.0...v0.2.0