Session Time Travel and Forking
- Dominant language
- Go
- Stars
- 8.8k
- Forks
- 1k
- Avg merge
- 3d 18h
- Merged PRs (30d)
- 88
Description
I'm working on a custom coding agent and this is a feature I want to have. It is unclear where this support should live. Some thoughts and questions
1. Having this feature in ADK generally seems really useful across every downstream application
2. It could facilitate making better testing data for evals, synth or hand crafted
3. It would have implications for how this is supported in the other services (like Artifacts), namespacing, but also linking?
4. Sessions should ideally remain accurate when loading later on. This would mean having a snapshot of the app & user state at the time they were created would be needed, if they use or modify, for their inputs and deltas to remain stable long term
5. Is this possible today without changes to ADK? _I think so_, but requires some forethought for said namespacing to avoid collision with users and/or sessions. I'll let you know what I learn!
At some point it starts to sound like git, container layers, crdt, deltadb on a per-session basis, OCI intrigues me in this regard
Contributor guide
Research direction
Start by reviewing ADK's current session and state handling, then examine how downstream services such as Artifacts represent namespacing and links. Determine whether time travel and forking can be supported today without ADK changes, and document the required snapshot, collision-avoidance, and long-term session-accuracy behavior before proposing an implementation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- ai, backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100