Skip to content

Releases: coko7/boat-cli

v0.9.0

25 Apr 14:16

Choose a tag to compare

What's changed?

feat(init): add init command and tag filtering for list/report by @coko7 in #6

  • add boat init command 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 to boat init
  • add --filter-by-tags (-t) flag to FilterActivitiesArgs, applied
    in both list and report commands to restrict output to entries
    matching all specified tags (closes #4)
  • improve --period error messages by replacing the static string with
    a formatted help message showing all valid period presets and formats
  • change default quick_start in generated config from false to true
  • 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...

24 Apr 07:52

Choose a tag to compare

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 report to replace list --summary mode
  • update start command 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 ID 1
    boat start 'new activity' -> will create a new activity and start it (same as boat 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 query command

Args

  • add --group-by (day, week, month, year, none) in list command
  • remove --no-grouping argument (now use --group-by=none)
  • update --period argument to accept a date or date range
  • remove --date argument (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-now and --no-start-now for new command
    • --confirm and--no-confirm for edit, update, cancel and delete commands
    • --with-instructions, --no-instructions, --with-activity-definitions, --no-activity-definitions for edit command
  • add support for hiding activity definitions in edit file by setting --no-activity-definitions

Misc

  • refactor and split modules
  • improve test coverage (mainly using Claude)
  • v0.8: Improve configuration, add new report command, add group_by arguments and more... by @coko7 in #5

Full Changelog: v0.7.0...v0.8.0

v0.7.0

10 Apr 18:38

Choose a tag to compare

What's Changed

  • feat(edit): add interactive log editing command

Full Changelog: v0.6.1...v0.7.0

v0.6.1

03 Apr 15:18

Choose a tag to compare

What's Changed

  • refactor: put commands into individual files + add more logging

Full Changelog: v0.6.0...v0.6.1

v0.6.0

02 Apr 10:04

Choose a tag to compare

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.
  • 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

27 Mar 21:15
52ee2b3

Choose a tag to compare

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_CONFIG env 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

25 Mar 20:18

Choose a tag to compare

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.rs command 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

24 Mar 22:23

Choose a tag to compare

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

24 Mar 09:40

Choose a tag to compare

What's Changed

  • chore: add bundled-sqlite feature + setup boat h alias for boat help

Full Changelog: v0.2.0...v0.2.1

v0.2.0

23 Mar 16:24

Choose a tag to compare

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_flag for now as it seems to cause some issues

Full Changelog: v0.1.0...v0.2.0