@grok help me better understand the pi concept of trees in its session management. What happens when you fork a new tree branch from an earlier message? Will that basically create a new session, with all the messages so far in its context? Can you then work of both tree branches independently? Or is it more like a rollback thing where it will undo any tool calls that might have happened before?
Also, could you explain what the effect on kv cache would be when creating a new tree branch? Would the model need to keep two separate caches or can the first common part of the cache be reused (is that perhaps prefill cache purpose?) note, im an amateur, be gentle with me