Implements the configuration-first setup documented in #51.
Require YAML auth.origin when authentication is enabled; generate a session secret unless auth.secret is supplied.
Prepare framework URLs before startup and reject inconsistent second loads. Ordinary config reloads preserve sessions.
Make .env optional and use production image defaults in Compose.
Consolidate tests around startup, session lifetime, origin handling, and private-data boundaries.
Existing authenticated deployments need their origin in YAML. Set or explicitly interpolate a secret to keep sessions across restarts. Operator and demo configuration is untouched.
Verification
493 config, 7 CLI, and 505 web unit/process tests passed.
122 browser tests passed.
Production build, typechecks, lint, formatting, schema check, and isolated native Vite smoke tests passed.
Deliberately restoring the legacy-secret fallback failed the restart test; restoring the build made it pass.
Independent code and test review completed.
Docker build/run was not performed in this sandbox. Manual follow-up: start Compose without .env, sign in using YAML credentials, then restart and confirm default sessions expire.
## Summary
Implements the configuration-first setup documented in #51.
- Require YAML `auth.origin` when authentication is enabled; generate a session secret unless `auth.secret` is supplied.
- Prepare framework URLs before startup and reject inconsistent second loads. Ordinary config reloads preserve sessions.
- Make `.env` optional and use production image defaults in Compose.
- Consolidate tests around startup, session lifetime, origin handling, and private-data boundaries.
Existing authenticated deployments need their origin in YAML. Set or explicitly interpolate a secret to keep sessions across restarts. Operator and demo configuration is untouched.
## Verification
- 493 config, 7 CLI, and 505 web unit/process tests passed.
- 122 browser tests passed.
- Production build, typechecks, lint, formatting, schema check, and isolated native Vite smoke tests passed.
- Deliberately restoring the legacy-secret fallback failed the restart test; restoring the build made it pass.
- Independent code and test review completed.
Docker build/run was not performed in this sandbox. Manual follow-up: start Compose without `.env`, sign in using YAML credentials, then restart and confirm default sessions expire.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Implements the configuration-first setup documented in #51.
auth.originwhen authentication is enabled; generate a session secret unlessauth.secretis supplied..envoptional and use production image defaults in Compose.Existing authenticated deployments need their origin in YAML. Set or explicitly interpolate a secret to keep sessions across restarts. Operator and demo configuration is untouched.
Verification
Docker build/run was not performed in this sandbox. Manual follow-up: start Compose without
.env, sign in using YAML credentials, then restart and confirm default sessions expire.