Pythagora-io / gpt-pilot

The first real AI developer
Other
29.08k stars 2.91k forks source link

Prevent lazy loading of SQLAlchemy relationships. #960

Closed gperetin closed 1 month ago

gperetin commented 1 month ago

This is somewhat complex area so I added a few comments in key places, hopefully it clarifies it. The gist is that we have "boundary", things that are eagerly loaded and things that aren't. That boundary is set/reset in 3 places: when creating a project, when loading a project and when a StateManager.commit() is done. The goal of this diff is to ensure that the set of eagerly loaded models is always the same regardless of how we get to a certain state, so the rest of the app doesn't have to do any awaiting/lazy loading, and can rely that the models will be in place.