从 progress.md 续做。先报告 app.py 当前状态、已完成项和剩余失败测试，再只补未完成项；不要重写整个项目。