So, last week, I rewrote interactive rebase as a builtin. This task was mostly trivial. Mostly.
When I tried to call complete_action() after sequencer_make_script(), some tests related to submodules in t3404 broke. Johannes Schindelin found out that the issue is related to a cache that was not properly refreshed. Many thanks to him.
There also was a memory bug in the code. In short, I passed a string acquired from the command line to a function that tried to free() it later, causing the program to segfault. A xstrdup_or_null() fixed the issue.
Anyway, I sent the result to the mailing list, and I am waiting for feedback.