Static Production
afaik "static" production refers to items that are directly obtained through basic actions like harvesting resources or crafting items. This is not what is observed in practice
e.g. a program which crafts iron plates but we don't see it in the observation log
Static achievements are always empty if:
- No resources are harvested or items crafted between pre and post production flows.
- The production flow data is missing or unchanged.
- All produced items are immediately consumed, so there's no net output increase.
Static = harvested + crafted items (not automated).
If your program doesn't harvest/craft, or the flow data is wrong, static achievements will be empty.
Check the harvested and crafted fields in pre/post flows to debug.
The gym observation space was meant to capture whatever was being used in the original environment and trajectory runner loop. In this case the info is coming from ThroughputTask.verify() -> TaskResponse which uses eval_program_with_achievements() which uses AchievementTracker.calculate_achievements() where there's a base case where you would get {"static": {}, "dynamic": {}}. Maybe it's hitting the base case and thus is a silent error?
I think you're right there's something not right here. The fact that eval_program_with_achievements() calls self.instance.eval_with_error seems off.
thanks for checking it might be hitting the base case like you mention