Skip to content

delete_conversions can't clean up a resumed artifact — the variant-experiment workflow has no teardown #46

Description

@coryking

Problem

The intended convert-fork workflow is: convert_session (one copy per variant) → rewind_transcript --cut beforeSendMessage each copy a variant prompt → collect answers → delete_conversions to clean up.

But the act of using a fork (SendMessage resumes it) makes it GROW past lines_at_creation, and delete_conversions' growth guard then refuses it:

{"refused":[{"id":"…","reason":"conversion has been resumed or built upon since
 creation; someone may depend on it — confirm with the user before removing…"}]}

So the cleanup step refuses every fork the experiment actually drove. The reaper also won't auto-reap grown artifacts (pristine-only). Net: the forks leak, and the user must delete the files by hand. Repro: convert a small session, SendMessage it once, delete_conversions([id]) → refused.

Why the guard exists (don't just rip it out)

The growth guard protects a resumed conversation someone may still depend on. That's correct for the accidental case. The fork-experiment case is the opposite: the user deliberately drove the fork and explicitly wants it gone afterward.

Possible directions (not prescribing)

A force/confirm: true on delete_conversions for grown artifacts; or a way to mark a fork "ephemeral" at convert time so its teardown skips the guard; or scoping the sweep-this-session default to also offer grown forks behind an explicit flag. Whatever keeps the safety net for the accidental case while giving the experiment a clean teardown.

Breadcrumb

Surfaced reproducing a field session's convert→rewind→SendMessage fork experiment (bluetaka). Related to the rewind fixes in #44/#45.

Metadata

Metadata

Assignees

No one assigned

    Labels

    cc-explorerMCP server and typed JSONL toolkitenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions