This branch introduces a comprehensive HALFFRAMECAMERA feature flag system across the shell scripts, runtime container, CI, and Python support library. In make_roll.sh, make_openai_alt.sh, and make_openai_critic.sh, new HALFFRAMECAMERA_* switches are applied with strict precedence: when HALFFRAMECAMERA is true, these flags can force OpenAI modes, ZIP behavior, author mode visibility, EXIF display, and score/critic presentation, with consistent logging for default vs non-default states. The ZIP flow is refined to use a dedicated <ROOT>/.zips path and to optionally hide originals or download links; benchmark display is now gated by explicit HALFFRAMECAMERA feature flags. The HTML/JS output for gallery and overlay is updated to support disabling author mode entirely and to omit quality/importance/critic/EXIF/alt text cleanly when configured, without breaking layout or overlay behavior.

A large new test suite (tests/make_roll.tests.sh) covers all HALFFRAMECAMERA options with positive/negative cases and logs timing per test; tests parse HTML and verify file system changes. The CI pipeline is extended to run these tests and produce JUnit output, while the runtime image and CI image are updated to include required dependencies for this test flow. The Python package side adds/updates runtime models and utils, including additional config surface and defaults, plus tests for env handling and image references. Dockerfile.runtime gains default HALFFRAMECAMERA env defaults. AGENTS.md gets updated with the workflow note to add regression tests for bugs. Overall, this branch focuses on feature-flagging Halfframe behavior end-to-end, ensuring predictable output in both runtime and CI, and validating the new behavior with robust automated tests.