feat(cli, conversation): add conversation fork command
#374
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introduce the
jp conversation forkcommand, allowing users to create a new conversation based on the contents of an existing one. This is useful for exploring different paths or isolating specific parts of a discussion.The command supports time-based filtering of events using the
--fromand--untilflags, which accept both relative (e.g., "5mins") and absolute timestamps. Users can also immediately switch to the new fork using the--activateflag.Internally, changes are made to make it easier to test code that relies on the current timestamp, such as
Workspace::set_active_conversation_id, andWorkspace::create_conversation. Additionally, the persistence logic was moved fromCtxtoWorkspaceto ensure state is saved even when the workspace is dropped outside of the CLI context.