This is instead of a single big string with chunks separated by ":".
":" is used in RFC 3339 date-time strings (like "2025-07-16 21:23:44
-06:00"), so it's inconvenient to reserve ":" to be the chunk separator.
I'm not super wedded to this new Vec<String> way of doing the filter,
but it seems fine and convenient for now.
Before this commit:
change state of issue f3990ac13cd93a925f2a66e6a72eb0f2 to backlog
After this commit:
change state of issue 406e2330695040fed5fdbcaae5d2b331, new -> inprogress
Instead of a two-step process handled by the application
(`Issue::new_comment()` and `Comment::set_description()` or
`Comment::edit_description()`), make a simpler-to-use single-step
`Issue::add_comment()`.
Move the implementation details from Issue to Comment.
Better log message when adding a comment.
This starts cleaning up the Issue API.
* Start separating the public API from the internal API.
* Make `Issue::new()` and `Issue::edit_description()` better behaved,
simpler, reduce code duplication, and also produce better git log
messages.
* Update `ent` to call the changed `new()` function.
* Add some comments documenting the Issue API.
* `ent new` and `ent edit` now use the editor specified by the EDITOR
environment variable, if any. Defaults to `vi` if unspecified.
This makes each command in `handle_command()` handle its own issues
database. The commands that only need read-only access to the issues
make a detached worktree, while the commands that need read-write access
make a normal worktree with the `entomologist-data` branch checked out.
This lets us run any number of read-only operations (like `ent list`,
`ent show`, etc), even when a long-lived read-write operation (like
`ent new` or `ent edit`) is running.
Fixes `ent 317ea8ccac1d414cde55771321bdec30`.
This returns Ok(true) if the worktree has any modified files (staged or
unstaged), or any added (staged) files. Ok(false) if not.
Ignores untracked files.