Altair v0.2.1
The Phase 6 hardening wave, the redesigned website, and the end-to-end showcase demo. This is the last planned milestone before post-release work.
Highlights
- Sessions + flash + CSRF + auth — pluggable
Altair::Sessionbacked by an HMAC-SHA256 signed cookie store, one-requestFlash,protect_from_forgerywith constant-time token checks, andAltair::Auth::JWT(HS256) for stateless API auth — plussign_in/sign_out/require_login/authenticate!helpers. - File-driven configuration.
.env/.env.<environment>andconfig/database.ymlper-environment settings merged intoconfigat boot. - Multipart form parsing. File uploads arrive as
Altair::HTTP::UploadedFileviaparams.upload("avatar"), with#saveand#content. - Security middleware set.
SecurityHeaders(nosniff / SAMEORIGIN / referrer),RequestId(with request-scoped trace id), and opt-inCors. - Website redesign + new docs. Sessions, config, security and uploads guides; feature count bumped to 705 specs passing with Phase 6 complete.
Fixes
- Template
form_fortranspiler: helper actions with nested parens (e.g.form_for(post_path(post.id), ...)) and block forms no longer break the compile-time transpiler. altair updatefollows redirects: GitHub asset host redirects are now handled with bounded retries and timeouts.
Binaries
Standalone builds for Linux, macOS and Windows (amd64 + arm64), verified by SHA256SUMS. Install with curl -sSL https://.../install.sh | sh, then altair update.
See the CHANGELOG for the complete list.